面向Node的客户端SDK
这是0chain js-client-sdk的Node.js实现。使用此SDK与0Chain区块链进行交互。SDK支持钱包创建、交易提交和验证。除此之外,sdk还提供api来查询区块链运行状况本身。看到 example.js 以文件获取更多详细信息。
安装
通过Github: https://github.com/0chain/js-client-sdk
api
所有功能 init() 回报的承诺。
第一个 import / require 来自github的库 https://github.com/0chain/js-client-sdk
import jsClientSdk from 'js-client';
初始化
在调用SDK中的任何函数之前, 初始化 应该调用具有集群配置和bls-wasm实例的函数。
bls-wasm依赖
在初始化js-client-sdk时,要传递一个bls实例。BLS可以通过NPM安装,使用下面的命令:
npm install bls-wasm
Github库:
https://github.com/herumi/bls-wasm
输入参数
Config——包含集群配置的json字符串
输出
无
下面的代码显示了一个初始化SDK的示例 0 chain-local-cluster.
var config = {
"miners": [
"http://one.devnet-0chain.net:31071/",
"http://one.devnet-0chain.net:31072/",
"http://one.devnet-0chain.net:31073/",
"http://one.devnet-0chain.net:31074/",
"http://one.devnet-0chain.net:31075/",
"http://one.devnet-0chain.net:31076/",
"http://one.devnet-0chain.net:31077/",
"http://one.devnet-0chain.net:31078/",
"http://one.devnet-0chain.net:31079/"
],
"sharders": [
"http://one.devnet-0chain.net:31171/",
"http://one.devnet-0chain.net:31172/",
"http://one.devnet-0chain.net:31173/",
"http://one.devnet-0chain.net:31174/",
"http://one.devnet-0chain.net:31175/",
"http://one.devnet-0chain.net:31176/",
"http://one.devnet-0chain.net:31177/",
"http://one.devnet-0chain.net:31178/",
"http://one.devnet-0chain.net:31179/"
],
"chain_id" : "0afc093ffb509f059c55478bc1a60351cef7b4e9c008a53a6cc8241ca8617dfe",
"clusterName" : "0chain-local-cluster",
"proxyServerUrl" : "http://localhost:9082",
"transaction_timeout" : 20,
"state " : true
}
jsClientSdk.init(config, bls)
要使用本地集群,请使用bls-wasm实例配置调用init
jsClientSdk.init(bls)
registerClient
用0Chain区块链注册客户端。
输入参数 无
输出
钱包 成功承诺解决的情况下的对象。
jsClientSdk.registerClient()
restoreWallet
使用0Chain区块链恢复现有客户端。需要传递秘密助记符
输入参数
助记符——字符串
输出
钱包——如果成功的话。错误,否则
jsClientSdk.restoreWallet(mnemonic)
sendTransaction
使用这个函数将令牌从一个钱包发送到另一个钱包。
输入参数
fromAccount -从钱包
toWalletId -到钱包的客户端id
值-发送的数量
注意-事务的描述
输出
交易——如果成功。错误,否则
jsClientSdk.sendTransaction(fromAccount, toWalletId, value, note)
storeData
使用这个函数在钱包中存储数据
输入参数
fromAccount -从钱包
数据-要保存在区块链中的数据(字符串类型)
注意-事务的描述
输出
交易——如果成功。错误,否则
jsClientSdk.storeData(fromAccount, data, note)
checkTransactionStatus
使用此函数检查先前放置的事务的状态。
注意 只有在事务处理完成后,事务状态才可用。请提供至少3秒的时间处理交易。您可以多次检查状态。
输入参数
hash -先前放置的事务的哈希值
输出
TransactionDetails——具有status字段的事务的详细信息。
jsClientSdk.checkTransactionStatus(hash)
getBalance
使用这个功能来获取特定钱包的余额。
输入参数
client_id—您感兴趣的余额的客户id
输出
TransactionDetails——包含balance字段的事务的详细信息。
jsClientSdk.getBalance(client_id)
executeSmartContract
发送指定金额的交易,如value参数fromAccount toWalletId中提到的。
输入参数
fromAccount -来自钱包
smartContractAddress -智能合约的地址
payload——取决于正在执行的smartContract函数
transactionValue -事务值——默认为零
输出 如果成功,事务——对象。
jsClientSdk.executeSmartContract(fromAccount, smartContractAddress, payload, transactionValue)
getBlockInfoByHash
使用此函数可以通过块散列获取块摘要或块详细信息。
输入参数
哈希——区块的哈希值
options——使用BlockInfoOptions。HEADER只获取摘要或BlockInfoOptions。满取整个街区。默认为HEADER
回调——成功时调用的函数
errCallback——失败时调用的函数
输出
块摘要或块对象,具体取决于指定的选项
jsClientSdk.getBlockInfoByHash(hash, options, callback, errCallback)
getBlockInfoByRound
使用此函数按整数获取块摘要或块详细信息。
输入参数
整数——整数 options——使用BlockInfoOptions。HEADER只获取摘要或BlockInfoOptions。满取整个街区。默认为HEADER
回调——成功时调用的函数
errCallback——失败时调用的函数
输出
块摘要或块对象,具体取决于指定的选项
jsClientSdk.getBlockInfoByRound(round, options, callback, errCallback)
getChainStats
使用这个函数来获取关于区块链的当前信息,比如当前的整数、平均块生成/结束时间等
输入参数
无
输出
ChainStats——一个包含区块链详细信息的对象。
jsClientSdk.getChainStats()
getLatestFinalized
使用此函数获取最后完成的块摘要。
输入参数
无
输出
BlockSummary——如果成功,对象包含最新完成块的信息
jsClientSdk.getLatestFinalized()
getRecentFinalized
使用此函数获取最近完成的10个块的摘要。
输入参数
无
输出
BlockSummary的数组。——如果成功。
jsClientSdk.getRecentFinalized()
示例文件
SDK还附带了一个 example.js 该文件演示了如何使用api。