Forge-java-sdk

forge sdk 供 java 开发。 如需了解 Forge-相关的设置,请查看Forge

Forge-java-sdk 的详细参考手册在此

安装

如果您使用 gradle,必须在资源库中添加 url

repositories {
  maven { url "http://android-docs.arcblock.io/release" }
}

dependencies {
  implementation("io.arcblock.forge:core:${forge_version}")
  implementation 'io.grpc:grpc-netty:1.20.0'
}

且 java 版本必须>= 8.

使用

第 0 步

首先,在本地搭配Forge CLI运行 Forge。

第 1 步

通过forge ps查看您的 forge 当前信息,找到 forge 的 endpoint。

forge-ps

教程

第 0 步:创建一个项目

创建一个 SpringBoot gradle 项目。然后将 forge-java-sdk 添加至其依赖。

brew install springboot
spring init --build=gradle --language=kotlin {project_name}

第 1 步:连接至 Forge Node

val forge = ForgeSDK.connect("localhost",28210)

第 2 步:创建一个钱包。

val chainInfo = forge.getChainInfo().info //get chain info
val alice = forge.createWallet()
forge.declare("Alice",alice)

你必须在链上声明您的钱包,像是普通网站的注册一样。

第 3 步:询问您的账户信息。

// create a stream to listen account state
val accountRequest = forge.getAccountState(object : StreamObserver<ResponseGetAccountState> {
  override fun onNext(value: ResponseGetAccountState?) {
        logger.info("\nAccountState balance:\n${BigInteger(value?.state?.balance?.unSign?.value?.toByteArray())}")
    }
    override fun onError(t: Throwable?) {}
    override fun onCompleted() {}
    })
accountRequest.onNext(RequestGetAccountState.newBuilder().setAddress(alice.address).build())

这是一个 gRPC stream 流,可以通过 onNext 查询某个或者很多账户的信息。

第 4 步:钱包签到以获得一些代币。

forge.poke(alice)
Thread.sleep(5000) //wait for block to commit
accountRequest.onNext(RequestGetAccountState.newBuilder().setAddress(alice.address).build())

等几秒,然后查看账户余额。

第 5 步:将您的余额转移给他人。

根据第 2 步操作创建另一个钱包(如:Bob)。

forge.poke(alice)
Thread.sleep(5000) //wait for block to commit
accountRequest.onNext(RequestGetAccountState.newBuilder().setAddress(alice.address).build())

如果有用,响应将返回一个哈希字符串。您可以使用 forgeSDK,或在 forgeWeb 内询问这个哈希。tx 确认后,检查 Alice 和 Bob 的账户以确认交易成功。

TBA是 Forge 链上的默认货币。1 TBA 有 18 个数位,所以,显示为1000000000000000000。 小数是 18。

Java 使用者

Java 使用者可以按以下方式调用某些 kotlin 的 object 方法。

ForgeSDK.Companion.connect("localhost",28210)

还可以像如下方式使用 kotlin 的扩展方法。

TransactionExtKt.multiSig(tx, alice)

🎉 祝贺您!您已成功完成教程!现在您应该对 Forge 的工作原理有了基本的了解。继续探索吧!