跳转到主要内容

概述

distribution 预编译合约作为桥梁,使 Stable SDK 的 x/distribution 模块功能能在 EVM 环境中使用。

目录

  1. 概念
  2. 配置
  3. 方法
  4. 事件

概念

distribution 预编译合约中,会进行额外检查以确保委托者或存款者是调用者。

配置

合约地址和gas费用已预定义。

合约地址

  • 0x0000000000000000000000000000000000001002

方法

setWithdrawAddress

设置用于接收委托者向验证者委托代币奖励的地址。 有时,当委托者是自我委托时,验证者地址被用作委托者。 当提取者地址成功设置时,会发出 SetWithdrawAddress 事件。

输入参数

名称类型描述
delegatorAddressaddress委托者的地址
withdrawerAddressstring接收委托奖励的地址

输出参数

名称类型描述
successbool如果提取者地址成功设置,则为true

withdrawDelegatorRewards

提取委托者从验证者那里应得的奖励。 验证者奖励给委托者的所有类型的代币都在单次交易中提取。 当奖励成功提取时,会发出 WithdrawDelegatorRewards 事件。

输入参数

名称类型描述
delegatorAddressaddress委托者的地址
validatorAddressstring验证者的地址

输出参数

名称类型描述
amountCoin[]委托者将获得的各种代币奖励
Coin 是一个包含以下字段的结构:
名称类型描述
denomstring奖励的denomination
amountuint256奖励的数量

withdrawValidatorCommission

提取验证者的佣金。 验证者作为佣金获得的所有类型的代币都在单次交易中提取。 当佣金成功提取时,会发出 WithdrawValidatorCommission 事件。

输入参数

名称类型描述
validatorAddressstring验证者的地址

输出参数

名称类型描述
amountCoin[]验证者将获得的各种代币佣金

validatorDistributionInfo

返回代表验证者将获得奖励的分配信息。验证者可以在自己的地址上向自己委托代币,这被称为自绑定。

输入参数

名称类型描述
validatorAddressstring验证者的地址

输出参数

名称类型描述
distributionInfoValidatorDistributionInfo验证者的分配信息
ValidatorDistributionInfo 是一个包含以下字段的结构:
名称类型描述
operatorAddressstring验证者操作员的地址
selfBondRewardsDecCoin[]验证者的自绑定金额
commissionDecCoin[]验证者的佣金
DecCoin 是一个包含以下字段的结构:
名称类型描述
denomstring奖励的denomination
amountuint256奖励的数量
precisionuint8奖励的精度

validatorOutstandingRewards

返回验证者的未结算奖励。未结算奖励表示由验证者的佣金和自绑定奖励以及委托者的总奖励组成的奖励总额。如果有验证者A,委托者B、C和D委托给A,那么验证者的未结算奖励是A的佣金和自绑定奖励 + B、C和D的奖励的总和。

输入参数

名称类型描述
validatorAddressstring验证者的地址

输出参数

名称类型描述
rewardsDecCoin[]验证者的未结算奖励

validatorCommission

返回验证者的佣金。此方法用于在调用 withdrawValidatorCommission 方法之前检索验证者的佣金。

输入参数

名称类型描述
validatorAddressstring验证者的地址

输出参数

名称类型描述
commissionDecCoin[]验证者的佣金

validatorSlashes

返回验证者在起始高度和结束高度之间的削减历史。削减是当验证者恶意行为或违反网络规则(如双重签名、不当行为或不遵循链规则)时施加的罚款。

输入参数

名称类型描述
validatorAddressstring验证者的地址
startingHeightuint64起始高度
endingHeightuint64结束高度
pageRequestPageReq分页请求
PageReq 是一个包含以下字段的结构:
名称类型描述
keybytes分页的键
offsetuint64分页的偏移量
limituint64分页的限制
countTotalbool是否计算总页数
reversebool是否反转分页

输出参数

名称类型描述
slashesValidatorSlashEvent[]验证者的削减
paginationPageResp分页响应
ValidatorSlashEvent 是一个包含以下字段的结构:
名称类型描述
validatorPerioduint64验证者的期间
fractionDec削减的分数
Dec 是一个包含以下字段的结构:
名称类型描述
valueuint64Dec的值
precisionuint8Dec的精度
PageResp 是一个包含以下字段的结构:
名称类型描述
nextKeybytes分页的下一个键
totaluint64总页数

delegationRewards

返回委托者从验证者那里获得的奖励。

输入参数

名称类型描述
delegatorAddressaddress委托者的十六进制地址
validatorAddressstring验证者的地址

输出参数

名称类型描述
rewardsDecCoin[]委托者从验证者那里获得的奖励

delegationTotalRewards

返回委托者从所有验证者那里获得的总奖励。

输入参数

名称类型描述
delegatorAddressaddress委托者的十六进制地址

输出参数

名称类型描述
rewardsDelegationDelegatorReward[]委托者从所有验证者那里获得的总奖励
totalDecCoin[]奖励的总额
DelegationDelegatorReward 是一个包含以下字段的结构:
名称类型描述
validatorAddressstring验证者的地址
rewardDecCoin[]委托者从验证者那里获得的奖励

delegatorValidators

返回委托者绑定的验证者。

输入参数

名称类型描述
delegatorAddressaddress委托者的十六进制地址

输出参数

名称类型描述
validatorsstring[]委托者绑定的验证者

delegatorWithdrawAddress

返回通过 setWithdrawAddress 方法设置的接收委托奖励的地址。

输入参数

名称类型描述
delegatorAddressaddress委托者的十六进制地址

输出参数

名称类型描述
withdrawAddressstring接收委托奖励的地址

事件

SetWithdrawAddress

名称类型索引描述
calleraddressY调用者(委托者)的地址
withdrawAddressstringN接收委托奖励的地址

WithdrawDelegatorRewards

名称类型索引描述
delegatorAddressaddressY委托者的地址
validatorAddressaddressY验证者的地址
amountuint256N奖励的数量

WithdrawValidatorCommission

名称类型索引描述
validatorAddressstringY验证者的地址
commissionuint256N佣金的总数量