# Bytom java-sdk
This page will document the API classes and ways to properly use the API.
Subsequent new releases also maintain backward compatibility with this class
approach. For more information, please see Bytom API reference documentation
at [Bytom wiki](https://github.com/Bytom/bytom/wiki/API-Reference)
## Installation
There are various ways to install and use this sdk. We'll provide three ways to get it. Note that the bytom-sdk requires JAVA 7 or newer.
### Apache Maven
```xml
<dependency>
<groupId>io.bytom</groupId>
<artifactId>java-sdk</artifactId>
<version>1.0.2</version>
</dependency>
```
### Gradle/Grails
```xml
compile 'io.bytom:bytom-sdk:1.0.2'
```
### Building from source code
To clone, compile, and install in your local maven repository (or copy the artifacts from the target/ directory to wherever you need them):
```shell
git clone https://github.com/Bytom/bytom-java-sdk.git
cd java-sdk
mvn package -Dmaven.test.skip=true
mvn install
```
## Basic Usage
```java
public static Client generateClient() throws BytomException {
String coreURL = Configuration.getValue("bytom.api.url");
String accessToken = Configuration.getValue("client.access.token");
if (coreURL == null || coreURL.isEmpty()) {
coreURL = "http://127.0.0.1:9888/";
}
return new Client(coreURL, accessToken);
}
Client client = Client.generateClient();
```
> Note: you can touch a file named ```config.properties``` in resources folder to config ```bytom.api.url``` and ```client.access.token``` by custom.
## Usage
* [`Step 1: Create a key`](#create-a-key)
* [`Step 2: Create an account`](#create-an-account)
* [`Step 3: Create an receiver`](#create-an-receiver)
* [`Step 4: Create an asset`](#create-an-asset)
* [`Step 5: Issue asset`](#issue-asset)
* [`Firstly build the transaction`](#firstly-build-the-transaction)
* [`Secondly sign the transaction`](#secondly-sign-the-transaction)
* [`Finally submit the transaction`](#finally-submit-the-transaction)
> For more details, see [API methods](https://github.com/Bytom/java-sdk/blob/master/doc/index.md#api-methods)
### Create a key
```java
String alias = "test";
String password = "123456";
Key.Builder builder = new Key.Builder().setAlias(alias).setPassword(password);
Key key = Key.create(client, builder);
```
### Create an account
```java
String alias = "sender-account";
Integer quorum = 1;
List<String> root_xpubs = new ArrayList<String>();
root_xpubs.add(senderKey.xpub);
Account.Builder builder = new Account.Builder().setAlias(alias).setQuorum(quorum).setRootXpub(root_xpubs);
Account account = Account.create(client, builder);
```
### Create an receiver
```java
String alias = receiverAccount.alias;
String id = receiverAccount.id;
Account.ReceiverBuilder receiverBuilder = new Account.ReceiverBuilder().setAccountAlias(alias).setAccountId(id);
Receiver receiver = receiverBuilder.create(client);
```
### Create an asset
```java
String alias = "receiver-asset";
List<String> xpubs = receiverAccount.xpubs;
Asset.Builder builder = new Asset.Builder()
.setAlias(alias)
.setQuorum(1)
.setRootXpubs(xpubs);
receiverAsset = builder.create(client);
```
### Issue asset
For more transaction details, see [transactions](https://github.com/Bytom/java-sdk/blob/master/doc/transactions.md)
#### Firstly build the transaction
```java
Transaction.Template controlAddress = new Transaction.Builder()
.addAction(
new Transaction.Action.SpendFromAccount()
.setAccountId(senderAccount.id)
.setAssetId(senderAsset.id)
.setAmount(300000000)
)
.addAction(
new Transaction.Action.ControlWithAddress()
.setAddress(receiverAddress.address)
.setAssetId(senderAsset.id)
.setAmount(200000000)
).build(client);
```
#### Secondly sign the transaction
```java
Transaction.Template singer = new Transaction.SignerBuilder().sign(client,
controlAddress, "123456");
```
#### Finally submit the transaction
```java
Transaction.SubmitResponse txs = Transaction.submit(client, singer);
```
### All usage examples
For more details you can see [doc](https://github.com/Bytom/bytom-java-sdk/blob/master/doc/index.md#api-methods). And you can find Test Cases at [Junit Test Cases](https://github.com/Bytom/bytom-java-sdk/tree/master/src/test/java/io/bytom/integration)
## Support and Feedback
If you find a bug, please submit the issue in Github directly by using [Issues](https://github.com/Bytom/bytom-java-sdk/issues)
## License
Bytom JAVA SDK is based on the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) protocol.
没有合适的资源?快使用搜索试试~ 我知道了~
bytom-java-sdk-master.zip
共106个文件
java:93个
md:5个
properties:4个
0 下载量 116 浏览量
2023-03-26
08:58:26
上传
评论
收藏 141KB ZIP 举报
温馨提示
比原链(Bytom)的 Java 开发包,比原链是一种多样性比特资产的区块链交互协议
资源推荐
资源详情
资源评论
收起资源包目录
bytom-java-sdk-master.zip (106个子文件)
.gitignore 61B
Ed25519.java 61KB
Transaction.java 38KB
Client.java 31KB
Field25519.java 23KB
Curve25519.java 20KB
TransactionTest.java 12KB
Asset.java 11KB
Account.java 10KB
AppTest.java 10KB
Transaction.java 7KB
Bytes.java 6KB
SignTransactionTest.java 5KB
Block.java 5KB
Ed25519Constants.java 5KB
AppTest.java 5KB
APIException.java 5KB
UnconfirmedTransaction.java 5KB
AccessToken.java 5KB
SpendInput.java 5KB
BatchResponse.java 4KB
Utils.java 4KB
UnspentOutput.java 4KB
Key.java 4KB
IssuanceInput.java 4KB
Wallet.java 4KB
RawTransaction.java 4KB
BaseInput.java 4KB
Balance.java 3KB
AccountTest.java 3KB
Entry.java 3KB
VMUtil.java 3KB
Message.java 3KB
NonHardenedChild.java 3KB
Output.java 3KB
Signer.java 2KB
BlockTest.java 2KB
NonHardenedChildTest.java 2KB
CoreConfig.java 2KB
DerivePrivateKeyTest.java 2KB
AssetTest.java 2KB
PathUtil.java 2KB
Issue.java 2KB
Spend.java 2KB
KeyTest.java 2KB
Receiver.java 1KB
TxHeader.java 1KB
MessageTest.java 1KB
DerivePrivateKey.java 1KB
RawTransactionTest.java 1KB
OutputEntry.java 1KB
SignerTest.java 1KB
Mux.java 1KB
OutputUtil.java 1KB
BalanceTest.java 1KB
ConnectivityException.java 1KB
WitnessComponent.java 1KB
BuildException.java 1KB
UnconfirmedTransactionTest.java 1KB
ExpandedPrivateKeyTest.java 1000B
JSONException.java 978B
AccessTokenTest.java 940B
AssetDefinition.java 936B
ExpandedPrivateKey.java 934B
WalletTest.java 925B
Hash.java 892B
Retirement.java 884B
TestUtils.java 844B
CoreConfigTest.java 812B
ValueDestination.java 809B
ValueSource.java 796B
DeriveXpubTest.java 781B
Configuration.java 740B
BytomException.java 703B
UTXOTest.java 651B
ParameterizedTypeImpl.java 610B
SHA3256Test.java 601B
AssetAmount.java 590B
ConfigurationException.java 590B
Program.java 576B
DeriveXpub.java 573B
HTTPException.java 539B
ExpandedKeys.java 485B
SerializeTransactionException.java 472B
SHA3Util.java 466B
SignTransactionException.java 447B
AssetID.java 445B
MapTransactionException.java 442B
WriteForHashException.java 432B
InputEntry.java 365B
BadURLException.java 316B
Utils.java 291B
SuccessMessage.java 169B
BIPProtocol.java 81B
index.md 15KB
README_zh.md 10KB
transactions.md 10KB
README.md 5KB
README.md 4KB
log4j.properties 784B
共 106 条
- 1
- 2
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功