码云 Gitee IDE 全新上线——支持 Git 管理的轻量在线编码环境
0 Watch 13 Star 19 Fork 4

Bytom Blockchain / bytom-java-sdkJava

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
比原链(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.

项目点评 ( 0 )

你可以在登录后,发表评论

搜索帮助