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
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.
<dependency>
<groupId>io.bytom</groupId>
<artifactId>java-sdk</artifactId>
<version>1.0.2</version>
</dependency>
compile 'io.bytom:bytom-sdk:1.0.2'
To clone, compile, and install in your local maven repository (or copy the artifacts from the target/ directory to wherever you need them):
git clone https://github.com/Bytom/bytom-java-sdk.git
cd java-sdk
mvn package -Dmaven.test.skip=true
mvn install
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 configbytom.api.url
andclient.access.token
by custom.
Step 1: Create a key
Step 2: Create an account
Step 3: Create an receiver
Step 4: Create an asset
Step 5: Issue asset
For more details, see API methods
String alias = "test";
String password = "123456";
Key.Builder builder = new Key.Builder().setAlias(alias).setPassword(password);
Key key = Key.create(client, builder);
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);
String alias = receiverAccount.alias;
String id = receiverAccount.id;
Account.ReceiverBuilder receiverBuilder = new Account.ReceiverBuilder().setAccountAlias(alias).setAccountId(id);
Receiver receiver = receiverBuilder.create(client);
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);
For more transaction details, see transactions
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);
Transaction.Template singer = new Transaction.SignerBuilder().sign(client,
controlAddress, "123456");
Transaction.SubmitResponse txs = Transaction.submit(client, singer);
For more details you can see doc. And you can find Test Cases at Junit Test Cases
If you find a bug, please submit the issue in Github directly by using Issues
Bytom JAVA SDK is based on the Apache License, Version 2.0 protocol.