8月18日(周六)成都源创会火热报名中,四位一线行业大牛与你面对面,探讨区块链技术热潮下的冷思考。
Watch Star Fork

Bytom Blockchain / bytom-java-sdkJava

Sign up for free
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
比原链(Bytom)的 Java 开发包,比原链是一种多样性比特资产的区块链交互协议
Loading...
README.md 4.74 KB

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

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

<dependency>
    <groupId>io.bytom</groupId>
    <artifactId>bytom-sdk</artifactId>
    <version>1.0.0</version>
</dependency>

Gradle/Grails

compile 'io.bytom:bytom-sdk:1.0.0'

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):

git clone https://github.com/Bytom/bytom-java-sdk.git
cd java-sdk
mvn package -Dmaven.test.skip=true
mvn install

Basic Usage

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

For more details, see API methods

Create a key

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

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

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

 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

Firstly build the transaction

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

Transaction.Template singer = new Transaction.SignerBuilder().sign(client,
        controlAddress, "123456");

Finally submit the transaction

Transaction.SubmitResponse txs = Transaction.submit(client, singer);

All usage examples

For more details you can see doc. And you can find Test Cases at Junit Test Cases

Support and Feedback

If you find a bug, please submit the issue in Github directly by using Issues

License

Bytom JAVA SDK is based on the Apache License, Version 2.0 protocol.

Comments ( 0 )

You need to Sign in for post a comment