安装使用
下载
GitHub:https://github.com/MatrixAINetwork/aiman
通过npm安装
1 | npm install aiman |
使用示例
1 | //初始化过程 |
aiman.version.network
返回网络协议版本。
同步方式:aiman.version.network
异步方式:aiman.version.getNetwork(callback(error, result){ … })
无
- String - 网络协议版本
1 | //省略初始化过程 |
aiman.setProvider
设置Provider。
无
undefine
1 | aiman.setProvider(new aiman.providers.HttpProvider('http://localhost:8545')); |
aiman.sha3
返回使用Keccak-256 SHA3算法哈希过的结果。
String - 传入的需要使用Keccak-256 SHA3算法进行哈希运算的字符串。
Object - 可选项设置。如果要解析的是hex格式的十六进制字符串。需要设置encoding为hex。因为JS中会默认忽略0x。
- String - 使用Keccak-256 SHA3算法哈希过的结果。
1 | //省略初始化过程 |
aiman.toHex
将任何值转为HEX。
- String|Number|Object|Array|BigNumber - 需要转化为HEX的值。如果是一个对象或数组类型,将会先用JSON.stringify进行转换成字符串。如果传入的是BigNumber,则将得到对应的Number的HEX。
- 十六进制字符串
1 | //初始化基本对象 |
aiman.toAscii
将HEX字符串转为ASCII字符串。
- String - 十六进制字符串。
- String - 给定十六进制字符串对应的ASCII码值。
aiman.fromAscii
将任何的ASCII码字符串转为HEX字符串。
String - ASCII码字符串.
Number - 返回的字符串字节大小,不够长会自动填充。
- String - 转换后的HEX字符串。
1 | var str = aiman.fromAscii('matrix'); |
aiman.toDecimal
将一个十六进制转为一个十进制的数字。
- String - 十六进制字符串
- Number - 传入字符串所代表的十六进制值。
1 | var number = aiman.toDecimal('0x15'); |
aiman.fromDecimal
将一个数字,或者字符串形式的数字转为一个十六进制串。
- Number|String - 数字
- String - 给定数字对应的十六进制表示。
1 | var value = aiman.fromDecimal('21'); |
aiman.toBigNumber
将给定的数字或十六进制字符串转为BigNumber。
- Number|String - 数字或十六进制格式的数字
- BigNumber - BigNumber的实例。
1 | var value = aiman.toBigNumber('200000000000000000000001'); |
aiman.net.listening
如果客户端处于监听网络连接的状态,该调用返回true。
同步方式:aiman.net.listening
异步方式:aiman.net.getListener(callback(error, result){ … })
无
- Boolean - true表示连接上的节点正在listen网络请求,否则返回false。
1 | var listening = aiman.net.listening; |
aiman.net.peerCount
返回连接节点已连上的其它节点的数量。
- 同步方式:aiman.net.peerCount
- 异步方式:aiman.net.getPeerCount(callback(error, result){ … })
无
- Number - 连接节点连上的其它节点的数量
1 | var peerCount = aiman.net.peerCount; |
aiman.man.defaultBlock
使用下述方法时,会使用默认块设置,你也可以通过传入defaultBlock来覆盖默认配置。
aiman.man.getBalance()
aiman.man.getCode()
aiman.man.getTransactionCount()
aiman.man.getStorageAt()
aiman.man.call()
可选的块参数,可能下述值中的一个:
- Number - 区块号
- String - earliest,创世块。
- String - latest,最近刚出的最新块,当前的区块头。
默认值是latest。
无
- Number|String - 默认要查状态的区块号。
1 | console.log("defaultBlock: " + aiman.man.defaultBlock); |
aiman.man.syncing
如果正在同步,返回同步对象。否则返回false。
- 同步方式:aiman.man.syncing
- 异步方式:aiman.man.getSyncing(callback(error, result){ … })
无
- Object|Boolean - 如果正在同步,返回含下面属性的同步对象。否则返回false。
- startingBlock:Number - 同步开始区块号
- currentBlock: Number - 节点当前正在同步的区块号
- highestBlock: Number - 预估要同步到的区块
1 | var sync = aiman.man.syncing; |
aiman.man.mining
表示该节点是否配置挖矿。
- 同步方式:aiman.man.coinbase
- 异步方式:aiman.man.getCoinbase(callback(error, result){ … })
无
- Boolean - true 表示配置挖矿,否则表示没有。
1 | var mining = aiman.man.mining; |
aiman.man.hashrate
表示当前每秒的哈希难度。
- 同步方式:aiman.man.hashrate
- 异步方式:aiman.man.getHashrate(callback(error, result){ … })
无
- Number - 每秒的哈希数。
1 | var hashrate = aiman.man.hashrate; |
aiman.man.gasPrice
返回当前的gas价格。这个值由最近几个块的gas价格的中值决定。
- 同步方式:aiman.man.gasPrice
- 异步方式:aiman.man.getGasPrice(callback(error, result){ … })
无
- BigNumber - 当前的gas价格的BigNumber实例,以zhu为单位。
1 | var gasPrice = aiman.man.gasPrice; |
aiman.man.accounts
返回客户端持有的地址字符串列表。
- 同步方式:aiman.man.accounts
- 异步方式:aiman.man.getAccounts(callback(error, result){ … })
无
- Array - 客户端持有的地址字符串列表。
1 | var accounts = aiman.man.accounts; |
aiman.man.blockNumber
返回当前区块号。
- 同步方式:aiman.man.blockNumber
- 异步方式:aiman.man.getBlockNumber(callback(error, result){ … })
无
整数-当前区块号
1 | var number = aiman.man.blockNumber; |
aiman.man.getBalance
获得在指定区块时给定地址的余额。
String - 要查询余额的地址。
Number|String -(可选)如果不设置此值使用aiman.man.defaultBlock设定的块,否则使用指定的块。
Funciton - (可选)回调函数,用于支持异步的方式执行[async]。
OBJECT – 对应账户币种余额对象数组,结构如下:
accountType:
QUANTITY
–整形,币种编号。0,表示主币种,MANbalance:
QUANTITY
–整形,余额,单位:zhu
请求:
1 | var number = aiman.man.blockNumber; |
响应:
1 | [ |
aiman.man.getCode
获取指定地址的代码。
- String - 要获得代码的地址。
- String -字符串,币种名称。
- Number|String -(可选)如果未传递参数,默认使用aiman.man.defaultBlock定义的块,否则使用指定区块。
- Function - 回调函数,用于支持异步的方式执行[async]。
- String - 给定地址合约编译后的字节代码。
1 | var code = aiman.man.getCode('MAN.4Pn182LSJ3JNr9by4T5kDKsf127Jb','MAN','latest'); |
aiman.man.getBlock
返回块号或区块哈希值所对应的区块。
- Number|String -(可选)如果未传递参数,默认使用aiman.man.defaultBlock定义的块,否则使用指定区块。
- Boolean -(可选)默认值为false。true会将区块包含的所有交易作为对象返回。否则只返回交易的哈希。
- Function - 回调函数,用于支持异步的方式执行[async]。
- difficulty - BigNumber类型。当前块的难度,整数。
- elect – 数组。选举信息
- extraData - 字符串。当前块的extra data字段。
- gasLimit - Number,当前区块允许使用的最大gas。
- gasUsed - 当前区块累计使用的总的gas。
- hash – 字符串 区块的哈希
- leader –字符串。这个区块的leader
- miner - 字符串。这个区块获得奖励的矿工。
- mixHash – 字符串。混合哈希
- nettopology – json对象。网络拓扑结构
- nonce - 字符串,8字节。POW生成的哈希。当这个区块处于pending将会返回null。
- Number - 区块号。当这个区块处于pending将会返回null。
- parentHash - 字符串,32字节的父区块的哈希值。
- sha3Uncles - 字符串,32字节。叔区块的哈希值。
- sharding – 数组,分片信息
- signatures - 数组。签名数组。
- signHash – 字符串,签名hash
- size - Number。当前这个块的字节大小。
- stateRoot – 数组,状态信息
- timestamp - Number。区块打包时的unix时间戳。
- totalDifficulty - BigNumber类型。区块链到当前块的总难度,整数。
- transactions - 数组。交易对象。或者是32字节的交易哈希。
- uncles - 数组。叔哈希的数组。
- Version – 字符串。版本信息
- VrfValue – 字符串。Vrf 信息
请求:
1 | var info = aiman.man.getBlock(3150); |
响应:
1 | var info = aiman.man.getBlock(3150); |
响应:
1 | {"VrfValue":"0x038b5d8384b06f4f6006f1e27803ea7d26fc4e2b43dff3ad6839334b784500be9d04fdae385d7a70c70ad8de0d1c35a8e6e974b0c851ebaed2ca7d44896692c4d5936bc8b5d7c3be2ef0376808faef3aa038b8149a54a5ca6dd53d47dc313e7f82b7718080a40ad323b5425664307f153c60845c7c62f6c6c5109983095faaa186823316e88ea050d736b911e680b93a434c90983be6ec2cd826bfd4777de60cab8e", |
aiman.man.getBlockTransactionCount
返回指定区块的交易数量。
- Number|String - 指定区块。
- Function - 回调函数,用于支持异步的方式执行[async]。
- Nubmer - 给定区块的交易数量。
1 | var number = aiman.man.getBlockTransactionCount(122); |
aiman.man.getTransaction
返回匹配指定交易哈希值的交易。
- aiman.man.getTransaction(transactionHash [, callback])
- String - 交易的哈希值。
- Function - 回调函数,用于支持异步的方式执行[async]。
Object - 一个交易对象
- hash: String - 32字节,交易的哈希值。
- nonce: Number - 交易的发起者在之前进行过的交易数量。
- blockHash: String - 32字节。交易所在区块的哈希值。当这个区块处于pending将会返回null。
- blockNumber: Number - 交易所在区块的块号。当这个区块处于pending将会返回null。
- transactionIndex: Number - 整数。交易在区块中的序号。当这个区块处于pending将会返回null。
- from: String - 20字节,交易发起者的地址。
- to: String - 20字节,交易接收者的地址。当这个区块处于pending将会返回null。
- value: BigNumber - 交易附带的货币量,单位为zhu。
- gasPrice: BigNumber - 交易发起者配置的gas价格,单位是zhu。
- gas: Number - 交易发起者提供的gas。.
- input: String - 交易附带的数据。
- IsEntrustTx – 是否为授权交易。
- CommitTime – 交易上链时间。
- matrixType – 交易类型。
- extra_to – 交易扩展,支持一对多交易。
- TxEnterType – 整数,入池类型
- v – 字符串,
- r – 字符串
- s – 字符串
请求:
1 | var transaction = aiman.man.getTransaction('0x8838fd149ea46f4c182f2de9b465b731d6cb67794233602dddb5362474122841'); |
响应:
1 | {"blockHash":"0x1d7d46eeee21cfb1028bc85d254e0cd432d3cc128624fc219340e0ee93db8f65", |
aiman.man.getTransactionFromBlock
返回指定区块的指定序号的交易。
- getTransactionFromBlock(hashStringOrNumber,indexNumber,Currency,[, callback])
- String - 区块号或哈希。或者是earliest,latest。查看
aiman.man.defaultBlock
了解可选值。 - Number - 交易的序号。
- Currency - 币种名称。
- Function - 回调函数,用于支持异步的方式执行[async]。
- Object - 交易对象,详见
aiman.man.getTransaction
1 | var transaction = aiman.man.getTransactionFromBlock('0x4534534534', 2); |
aiman.man.getTransactionReceipt
通过一个交易哈希,返回一个交易的收据。
- aiman.man.getTransactionReceipt(hashString[, callback])
备注:处于pending状态的交易,收据是不可用的。
- String - 交易的哈希
- Function - 回调函数,用于支持异步的方式执行[async]。
Object - 交易的收据对象,如果找不到返回null
- blockHash: String - 32字节,这个交易所在区块的哈希。
- blockNumber: Number - 交易所在区块的块号。
- transactionHash: String - 32字节,交易的哈希值。
- transactionIndex: Number - 交易在区块里面的序号,整数。
- from: String-交易发送者的地址。
- to: String -交易接收者的地址。如果是一个合约创建的交易,返回null。
- cumulativeGasUsed: Number - 当前交易执行后累计花费的gas总值。
- gasUsed: Number:执行当前这个交易单独花费的gas。
- contractAddress:String - 创建的合约地址。如果是一个合约创建交易,返回合约地址,其它情况返回null。
- logs: Array - 这个交易产生的日志对象数组。
请求:
1 | var receipt = aiman.man.getTransactionReceipt('0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b'); |
响应:
1 | { |
aiman.man.getTransactionCount
返回从指定地址发送的交易数。
- aiman.man.getTransactionCount(addressString [, defaultBlock] [, callback])
- String - 要获得交易数的地址。
- Number|String -(可选)如果未传递参数,默认使用aiman.man.defaultBlock定义的块,否则使用指定区块。
- Function - 回调函数,用于支持异步的方式执行[async]。
- Number - 指定地址发送的交易数量。起始值为 0x10000000000000//十进制4503599627370496
1 | var number = aiman.man.getTransactionCount("MAN.38nGzwi5Xn5ApxHXquT8ALaMLpbyG"); |
aiman.man.sendTransaction
发送一个交易。
- aiman.man.sendTransaction(transactionObject [, callback])
Object - 要发送的交易对象。
- from: String - 指定的发送者的地址。如果不指定,使用aiman.man.defaultAccount。
- to: String - (可选)交易消息的目标地址,如果是合约创建,则不填.
- value: Number|String|BigNumber - (可选)交易携带的货币量,以zhu为单位。如果合约创建交易,则为初始的基金。
- gas: Number|String|BigNumber - (可选)默认是自动,交易可使用的gas,未使用的gas会退回。
- gasPrice: Number|String|BigNumber - (可选)默认是自动确定,交易的gas价格,默认是网络gas价格的平均值 。
- data: String - (可选)或者包含相关数据的字节字符串,如果是合约创建,则是初始化要用到的代码。
- nonce: Number - (可选)整数,使用此值,可以允许你覆盖你自己的相同nonce的,正在pending中的交易。
- Function - 回调函数,用于支持异步的方式执行[async]。
- Currency – 币种名称。
- String - 32字节的交易哈希串。用16进制表示。
如果交易是一个合约创建,请使用aiman.man.getTransactionReceipt()
在交易完成后获取合约的地址。
1 | // compiled solidity source code using https://chrisman.github.io/cpp-manereum/ |
aiman.man.sendRawTransaction
发起交易或合约来签署交易。
- aiman.man.sendRawTransaction(signedTransactionJSONObject [, callback])
- Object - 要发送的交易对象:
- to: String - (可选)交易消息的目标地址,如果是合约创建,则不填.
- value: Number|String|BigNumber - (可选)交易携带的货币量,以zhu为单位。如果合约创建交易,则为初始的基金。
- gas: Number|String|BigNumber - 交易使用的gas,未使用的gas会退回。
- gasPrice: Number|String|BigNumber - 交易的gas价格 。
- data: String - (可选)或者包含相关数据的字节字符串,如果是合约创建,则是初始化要用到的代码。
- nonce: Number - 整数,使用此值,可以允许你覆盖你自己的相同nonce的,正在pending中的交易。
- V:签名结果
- R:签名结果
- S:签名结果
- txEnterType 交易入池类型(目前只有0)
- Currency:币种名称
- TxType:交易类型
- LockHeight:保留字段
- IsEntrustTx :0-自付gas,1-代付gas
- CommitTime:提交时间,仅对定时和可撤销交易有效
- ExtraTo: 扩展交易(一对多交易填写)
- Function - 回调函数,用于支持异步的方式执行[async]。
- String - 32字节的16进制格式的交易哈希串。
如果交易是一个合约创建,请使用aiman.man.getTransactionReceipt()
在交易完成后获取合约的地址。
1 | var rawtx= { |
aiman.man.call()
立刻执行一个新的消息调用,无需在区块链上创建交易。
- Object - 要发送的交易对象:
- from: STRING - 发送交易的原地址,可选
- to: STRING - 交易目标地址
- Currency:STRING-交易币种名称
- gas: QUANTITY - 交易可用gas量,可选。man_call不消耗gas,但是某些执行环节需要这个参数
- gasPrice: QUANTITY - gas价格,可选
- value: QUANTITY - 交易发送的MAN数量,可选
- data: DATA - 方法签名和编码参数的哈希,可选
- QUANTITY|TAG - 整数块编号,或字符串”latest”、”earliest”
- DATA - 所执行合约的返回值。
1 | var obj = {"to": "MAN.468kLTuAEjm53ro2pPErnAAHqbccK","data": "0x58975919","currency": "MAN"}; |
aiman.man.sign
使用指定帐户签名要发送的数据,帐户需要处于unlocked状态。
- aiman.man.sign(address, dataToSign, [, callback])
- String - 签名使用的地址
- String - 要签名的数据
- Function -(可选)回调函数,用于支持异步的方式执行[async]。
String - 签名后的数据。
返回的值对应的是ECDSA(Elliptic Curve Digital Signature Algorithm)12签名后的字符串。
r = signature[0:64]
s = signature[64:128]
v = signature[128:130]
需要注意的是,如果你使用ecrecover,这里的v值是00或01,所以如果你想使用他们,你需要把这里的v值转成整数,再加上27。最终你要用的值将是27或2813。
1 | var result = aiman.man.sign("0x135a7de83802408321b74c322f8558db1679ac20", |
aiman.man.estimateGas
执行并估算一个交易需要的gas用量。该次交易不会写入区块链。注意,由于多种原因,例如EVM的机制 及节点旳性能,估算的数值可能比实际用量大的多。
- aiman.man.estimateGas(callObject [, callback])
参考aiman.man.sendTransaction
,所有的属性都是可选的。
- Number - 模拟的call/transcation花费的gas。
1 | var r = aiman.man.estimateGas({currency:"MAN"}); |
aiman.man.getDepositByAddr
返回指定账户的抵押信息。
- aiman.man.getDepositByAddr(“MAN.4DnD4CZ1LNiHeb9SZNrn6XQfuETPC”,”latest”)
- String – 字符串,MAN地址
- QUANTITY|TAG - 整数块编号,或字符串”latest”、”earliest”
OBJECT –抵押账户信息,信息结构如下:
- AddressA0:STRING-抵押地址
- AddressA1: STRING-签名地址
- OnlineTime: QUANTITY-整形,在线时长,按照块高计数
- Role:QUANTITY-参选身份, 128:验证者;16:矿工
- PositionNonce: QUANTITY-整形,仓位nonce值
- Dpstmsg:OBJECT-抵押仓位信息列表,抵押仓位信息结构如下:
- DepositType:QUANTITY-整形,//0-活期,1-定期1个月,3-定期3个月,6-定期6个月
- DepositAmount:QUANTITY-整形,以韦为单位的抵押值
- Interest:QUANTITY-整形,以韦为单位的利息值
- Slash:QUANTITY-整形,以韦为单位的惩罚值
- BeginTime: QUANTITY-整形,UTC时间,抵押开始时间;活期为0
- EndTime: QUANTITY-整形,UTC时间,定期表示退选时间;活期表示最早退款时间。
- Position: QUANTITY-整形, 仓位号
- WithDrawInfo:OBJECT-退款对象数组,退款对象信息结构如下:
- WithDrawAmount:QUANTITY-整形,以韦为单位的退款金额
- WithDrawTime:QUANTITY-整形,UTC时间,退款时间。
请求:
1 | var result = aiman.man.getDepositByAddr("MAN.4DnD4CZ1LNiHeb9SZNrn6XQfuETPC","latest") |
响应:
1 | { |
aiman.man.getDeposit()
返回指定区块的抵押信息,通过高度指定区块。
- QUANTITY|TAG - 整数块编号,或字符串”latest”、”earliest”
抵押账户信息数组,信息结构如下:
- Address:STRING-抵押地址
- SignAddress: STRING-签名地址
- Deposit: QUANTITY-抵押金额
- WithdrawH: QUANTITY-参选状态,0, 在选;非0,退选高度
- OnlineTime: QUANTITY-整形,在线时长,按照块高计数
- Role:QUANTITY-参选身份, 128:验证者;16:矿工
请求:
1 | var var result = aiman.man. getDeposit("latest")); |
响应:
1 | [ |
aiman.man.getMatrixCoin
返回多币种信息。
- QUANTITY|TAG - 整数块编号,或者字符串”latest”, “earliest”
- OBJECT – STRING数组,多币种名称
请求:
1 | var result = aiman.man.getMatrixCoin('latest'); |
响应:
1 | [ |
aiman.man.getMatrixCoinConfig
返回多币种的配置信息。
- STRING – 币种名称
- QUANTITY|TAG - 整数块编号,或者字符串”latest”, “earliest” 或 “pending”
OBJECT – 币种配置信息。结构如下:
- CoinRange:STRING。扩展保留。
- CoinType:STRING。支付币种名称。
- PackNum:QUANTITY。整形,每区块打包交易最大值。
- CoinUnit:QUANTITY。整形,币种单位。
- CoinTotal:QUANTITY。整形,币种发行量。
- CoinAddress:DATA,20字节。币种交易费账户地址。
请求:
1 | var result = aiman.man.getMatrixCoinConfig("MBN","latest") |
响应:
1 | [ |
aiman.man.getDestroyBalance
返回创建多币种消耗的MAN数量。
无
- QUANTITY - 整数,以zhu为单位的当前多币种发币价格
请求:
1 | var result = aiman.man.getDestroyBalance() |
响应:
1 | "0x152d02c7e14af6800000" // 100000000000000000000000 |
aiman.man.getSignAccounts
通过Hash/块高返回指定区块的区块签名列表。
块哈希或者块高
Object Array-签名对象数组。签名结构如下:
- Sign: DATA, 65字节 – 签名
- Account:STRING,–签名账户
- Validate: Boolean , -签名状态。TRUE:签名;FALSE:未签名
- Stock: QUANTITY ,股权。目前无效。
请求:
1 | var result = aiman.man.getSignAccounts(911); |
响应:
1 | [ |
aiman.man.getValidatorGroupInfo
返回指定区块联合挖矿信息,通过块高指定区块。
- QUANTITY|TAG - 整数块编号,或字符串”earliest”、”latest”
OBJECT-联合挖矿信息MAP。MAP:以子合约地址为键值, STRING;合约存储信息为值的切片,OBJECT。
合约存储信息结构如下:
- OwnerInfo。OBJECT对象,合约创建信息,结构如下:
- Owner:String- Owner账户地址
- SignAddress:String-签名账户地址
- WithdrawAllTime:QUANTITY-全部撤销时间
- Reward。OBJECT对象,回报分配信息,结构如下:
- LevelRate:OBJECT对象数组-参与者门限和回报比例信息,结构如下:
- Rate:对象。分配比例系数。{ Decimal : 分母; Rate :分子};
- Threshold:QUANTITY –整形,参与的最低门限。单位韦。
- NodeRate:OBJECT对象-管理费信息,结构如下:
- Decimal:QUANTITY –整形,管理费比例的分母
- Rate:QUANTITY –整形,管理费比例的分子
- OwnerRate:OBJECT对象数组-owner回报比例信息,结构如下:
- Decimal:QUANTITY –整形,owner回报比例的分母
- Rate:QUANTITY –整形,owner回报比例的分子
- ValidatorMap : OBJECT, 参与者信息数组,包括Owner;参与者信息结构如下:
- Address:STRING-参与者账户地址;
- Reward: QUANTITY –整形,奖励分配累加值
- AllAmount: QUANTITY –整形,总抵押值
- Current: OBJECT-活期抵押信息,结构如下:
- Amount: QUANTITY –整形,活期抵押金额
- PreAmount: QUANTITY –整形,上一轮的活期抵押金额
- Interest: QUANTITY –整形,活期利息
- WithdrawList:退出抵押信息列表.a) WithDrawAmount: 退出金额;b) WithDrawTime: 退出时间
- Positions : OBJECT-定期抵押仓信息列表;定期抵押信息结构如下:
- DType: QUANTITY –整形,定期抵押类型
- Position: QUANTITY –整形, 定期抵押仓号
- Amount: QUANTITY –整形,定期抵押金额
- EndTime: QUANTITY –整形,定期结束时间
- LevelRate:OBJECT对象数组-参与者门限和回报比例信息,结构如下:
请求:
1 | var result = aiman.man.getValidatorGroupInfo(“latest”); |
响应:
1 | { |
aiman.man.getStorageAt
返回指定地址存储位置的值。
- DATA - 20字节,存储地址
- QUANTITY - 存储中的位置号
- CURRENCY – 币种
- QUANTITY|TAG - 整数块号,或字符串”latest”、”earliest”
- DATA - 指定存储位置的值
请求:
1 | var result = aiman.man.getStorageAt("MAN.468kLTuAEjm53ro2pPErnAAHqbccK",12,"MAN","latest") |
响应:
1 | {"0x000000000000000000000000000000000000000000000000000000000000162e"} |
aiman.man.getTopologyStatusByNumber
获取指定区块顶层节点拓扑信息,通过高度指定区块。
- QUANTITY|TAG - 整数块编号,或字符串”earliest”、”latest”
Object - 匹配的拓扑信息对象。结构如下:
- leader_reelect:Boolean -验证者重选状态。False:未发生验证者重选;True:发生验证者重选;
- validators:验证者信息数组。验证者信息结构如下:
- account:STRING-账户;
- online:Boolean -在线状态。True:在线;False:离线
- position:QUANTITY-位置编号
- backup_validators:备份验证者信息数组。备份验证者信息结构见验证者信息结构
- miners:矿工信息数组。矿工信息结构见验证者信息结构
- elect_validators:验证者主节点共识上下线信息。信息结构见验证者信息结构
- elect_backup_validators:验证者备份节点共识上下线信息。信息结构见验证者信息结构
请求:
1 | var result = aiman.man.getTopologyStatus(120); |
响应:
1 | { |
aiman.man.getBlackList
返回交易黑名单账户,该账户无法进行转账交易。
无
OBJECT:字符串数组-加入黑名单的交易账户地址
请求:
1 | var result = aiman.man.getBlackList(); |
响应:
1 | {"MAN.4Pn182LSJ3JNr9by4T5kDKsf127Jb"," MAN.Tfr4DZYNeWqqTth87phrg2KZcqya"} |
备注:非共识数据,节点数据,链上无法验证。
aiman.man.getSelfLevel
返回当前节点在网络中的身份。
无
QUANTITY –身份标志。0:错误;1~4桶序号;5顶层节点;6普通节点
1 | console.log(aiman.man.getSelfLevel()); // 6 |
aiman.man.getUpTime
返回指定账户从最新抵押开始到指定区块的在线时长。通过块高指定区块。
- STRING – 账户地址
- QUANTITY|TAG - 整数块编号,或字符串”earliest”、”latest”
- QUANTITY – 整型值在线时长,按照块高计数。
1 | console.log(aiman.man.getUpTime("MAN.4Kq1ciivykmrCFzz5YjLgamcNdU76")) //0x85edb |
aiman.man.newBlockFilter
在节点中创建一个过滤器,以便当新块生成时进行通知。要检查状态是否变化, 请调用aiman.man.getFilterChanges
。
无
QUANTITY - 过滤器编号
请求:
1 | var result = aiman.man.newBlockFilter(); |
响应:
1 | " 0x15842a94627e19e5571559236b5b1700 " |
aiman.man.uninstallFilter
写在具有指定编号的过滤器。当不再需要监听时,总是需要执行该调用。另外,过滤器 如果在一定时间内未接收到aiman.man.getFilterChanges
调用会自动超时。
- QUANTITY - 过滤器编号
- Boolean - 如果成功卸载则返回true,否则返回false
1 | var result aiman.man.uninstallFilter("0xb"); // true |
aiman.man.getEntrustList
根据指定授权账户所有最新区块的委托信息。
- STRING- 授权账户地址。
- OBJECT-委托账户信息列表。委托账户信息结构如下:
- EntrustAddres : STRING-委托账户地址
- IsEntrustGas:Boolean -是否委托GAS代付。True表示是委托Gas代付。
- IsEntrustSign:Boolean -是否委托签名。True表示是委托签名。
- EnstrustSetType :DATA, 1byte- 0:按高度委托,1:按时间委托,2:按次数委托
- StartHeight :QUANTITY - 整数块编号,委托的起始高度
- EndHeight:QUANTITY - 整数块编号,委托的结束高度
- StartTime:QUANTITY – UTC时间,委托的起始时间
- EndTime:QUANTITY – UTC时间,委托的结束时间
- EntrustCount:QUANTITY-委托次数
请求:
1 | var result = aiman.man.getEntrustList("MAN.21LDRQtTVBdv3EcktxrVQebpQmLEA”); |
响应:
1 | [ |