Staking 模块

这篇文章主要介绍如何使用 Javascript SDK 与 YOUChain Staking API 进行交互。

createValidator

描述:创建验证者

参数值

参数名 类型 描述
name string 验证者的别名
operator string 执行者地址
coinbase string 矿工奖励地址
mainPubKey string 共识公钥
blsPubKey string BLS 公钥
value string 金额
role number chancellor(议长) - 1, senator(参议) - 2, house(众议) - 3
nonce number nonce,防止多重交易

返回值

参数名 类型 描述
data string 编码后的数据

示例:

youchain.you.createValidator("myValidator", "0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", "0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", "0x03485ae0ddd3c95a8f0c6fb159d2083c7ccca86945fd0abc4bb61d54c6360906d5", "0x03485ae0ddd3c95a8f0c6fb159d2083c7ccca86945fd0abc4bb61d54c6360906d5", "0x100", 1, 10).then(result => {
  console.log('encoded data: ', result);
});

updateValidator

描述:更新验证者信息

参数值

参数名 类型 描述
mainAddress string mainPubKey 对应的共识地址
operator string 执行者地址
coinbase string 矿工奖励地址
nonce number nonce,防止多重交易

返回值

参数名 类型 描述
data string 编码后的数据

示例:

youchain.you.updateValidator("0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", "0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", "0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", 10).then(result => {
    console.log('encoded data: ', result);
});

changeStatusValidator

描述:改变验证者状态

参数值

参数名 类型 描述
mainAddress string mainPubKey 对应的共识地址
status number 共识状态, 0 - 不参与共识,1 - 参与共识
nonce number nonce,防止多重交易

返回值

参数名 数据类型 备注
data string 编码后的数据

示例:

youchain.you.changeStatusValidator("0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", 1, 10).then(result => {
    console.log('encoded data: ', result);
});

depositValidator

描述;增加抵押金额

参数值

参数名 类型 描述
mainAddress string mainPubKey 对应的共识地址
value string 金额
nonce number nonce,防止多重交易

返回值

参数名 数据类型 备注
data string 编码后的数据

示例:

youchain.you.depositValidator("0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", "0x100", 100).then(result => {
    console.log('encoded data: ', result);
});

withdrawValidator

描述:减少抵押

参数值

参数名 类型 描述
mainAddress string 节点共识地址
recipient string 指定到账地址
value string 金额
nonce number nonce,防止多重交易

返回值

参数名 数据类型 备注
data string 编码后的数据

示例:

youchain.you.withdrawValidator("0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", "0x73e93770DF7aF71205596423cd53541c9831550f", "0x100", 10).then(result => {
    console.log('encoded data: ', result);
});

withdrawValidator

描述:验证者结算

参数值

参数名 类型 描述
mainAddress string 节点共识地址
nonce number nonce,防止多重交易

返回值

参数名 数据类型 备注
data string 编码后数据

示例:

youchain.you.settleValidator("0x59677fd68ec54e43ad4319d915f81748b5a6ff8b", 100).then(result => {
    console.log('encoded data: ', result);
});

getWithdrawRecords

描述:获取解押记录列表

参数值

参数名 类型 描述
blockNumber string 区块高度,'0x1' 或 'latest', 'pending' 等关键字

返回值

参数名 数据类型 备注
mainAddress string mainPubKey 对应的共识地址
nonce number 本次交易之前发送方已经生成的交易数量
operatorAddress string 操作者地址
recipient string 接收者地址
creationHeight string 解押发生的块高度
completionTime string 解压委托完成时间
initialBalance string 计划在完成时接收的令牌数量
finalBalance string 最后实际收到的token数量
finished boolean 是否已完成

示例:

youchain.you.getWithdrawRecords('latest').then( withdrawRecords => {
    console.log('withdrawRecord: ', withdrawRecords);
})

getValidatorByMainAddress

描述:根据节点共识地址获取验证者

参数值

参数名 类型 描述
blockNumber string 区块高度或标识,如 "latest", "pending"
mainAddress string mainPubKey 对应的共识地址

返回值

参数名 数据类型 备注
mainAddress string mainPubKey 对应的共识地址
name string 验证者别名
operatorAddress string 节点管理员
coinbase string 节点收益钱包
token string 抵押额
stake string 抵押stake
status number 状态
mainPubKey string 共识公钥
blsPubKey string BLS 公钥
role number 节点角色
rewardsBase string 基础收益
rewardsTotal string 节点加入后累计获得收益
expelled boolean 是否被罚下线
expelExpired string 被罚下线解锁的区块高度

示例:

youchain.you.getValidatorByMainAddress('latest', "0x59677fd68ec54e43ad4319d915f81748b5a6ff8b").then( validator => {
    console.log('validator by main address: ', validator);
});

getValidators

描述:获取验证者列表

参数值

参数名 类型 描述
role number 验证者角色
page number 返回第几页
pageSize number 每页返回数据多少
blockNumber String or BigInteger 区块高度

返回值

验证者列表数组,单个验证者结构:

参数名 数据类型 备注
mainAddress string mainPubKey 对应的共识地址
name string 验证者别名
operatorAddress string 节点管理员
coinbase string 节点收益钱包
token string 抵押额
stake string 抵押 stake
status number 状态
mainPubKey string 共识公钥
blsPubKey string BLS 公钥
role number 节点角色
rewardsBase string 基础收益
rewardsTotal string 节点加入后累计获得收益
expelled boolean 是否被罚下线
expelExpired string 被罚下线解锁的区块高度

示例:

youchain.you.getValidators(1, 0, 10,'latest').then( validatorArray => {
    console.log('validators: ', validatorArray);
});

getValidatorsStat

描述:获取验证者统计

参数值

参数名 类型 描述
blockNumber string 区块高度

返回值

参数名 数据类型 备注
onlineToken string 抵押额
onlineStake string 抵押stake
onlineCount number 验证者数量
offlineStake string 离线抵押stake
offlineToken string 离线抵押额
offlineCount number 离线验证者数量
lastSettle number 最后一次结算的高度
rewardsResidue string 收益剩余
rewardsLevel string 收益等级
rewardsTotal string 节点加入后累计获得收益

示例:

youchain.you.getValidatorsStat('latest').then( result => {
    console.log('validators stat: \n', result);
});

getValidatorRewardsInfo

描述:获取验证者奖励信息

参数值

参数名 类型 描述
blockNumber string 区块高度
mainAddress string mainPubKey 对应的共识地址

返回值

参数名 数据类型 备注
settled string 累计结算奖励的数量
pending string 根据节点角色等级算出的 stake 数量

示例:

youchain.you.getValidatorRewardsInfo('latest', '0x59677fd68ec54e43ad4319d915f81748b5a6ff8b').then( result => {
    console.log('validator rewards info: \n', result);
});