메인 콘텐츠로 건너뛰기

개요

distribution precompile 컨트랙트는 Stable SDK의 x/distribution 모듈 기능을 EVM 환경에서 사용할 수 있도록 브리지 역할을 합니다.

목차

  1. 개념
  2. 구성
  3. 메서드
  4. 이벤트

개념

distribution precompile 컨트랙트에서는 위임자 또는 예치자가 호출자인지 확인하는 추가 검사가 수행됩니다.

구성

컨트랙트 주소와 가스 비용은 사전 정의되어 있습니다.

컨트랙트 주소

  • 0x0000000000000000000000000000000000001002

메서드

setWithdrawAddress

위임자가 검증자에게 위임한 토큰에 대한 rewards를 받을 주소를 설정합니다. 때로는 위임자가 자기 위임(self-delegated)일 때 검증자 주소가 위임자로 사용됩니다. SetWithdrawAddress는 출금 주소가 성공적으로 설정되었을 때 발생합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
withdrawerAddressstring위임에 대한 rewards를 받을 주소

출력

이름타입설명
successbool출금 주소가 성공적으로 설정되면 true

withdrawDelegatorRewards

검증자로부터 위임자가 받을 rewards를 출금합니다. 검증자가 위임자에게 지급하는 모든 유형의 토큰이 단일 트랜잭션으로 출금됩니다. WithdrawDelegatorRewards는 rewards가 성공적으로 출금되었을 때 발생합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
validatorAddressstring검증자의 주소

출력

이름타입설명
amountCoin[]위임자가 받을 다양한 토큰의 rewards
Coin은 다음 필드를 가진 구조체입니다:
이름타입설명
denomstringreward의 denom
amountuint256reward의 수량

withdrawValidatorCommission

검증자의 수수료를 출금합니다. 검증자가 수수료로 받는 모든 유형의 토큰이 단일 트랜잭션으로 출금됩니다. WithdrawValidatorCommission은 수수료가 성공적으로 출금되었을 때 발생합니다.

입력

이름타입설명
validatorAddressstring검증자의 주소

출력

이름타입설명
amountCoin[]검증자가 받을 다양한 토큰의 수수료

validatorDistributionInfo

검증자가 받을 reward를 나타내는 분배 정보를 반환합니다. 검증자는 자신의 주소로 토큰을 위임하여 자기 결합(self-bonded)이라고 하는 위임자 역할을 할 수 있습니다.

입력

이름타입설명
validatorAddressstring검증자의 주소

출력

이름타입설명
distributionInfoValidatorDistributionInfo검증자의 분배 정보
ValidatorDistributionInfo는 다음 필드를 가진 구조체입니다:
이름타입설명
operatorAddressstring검증자의 운영자 주소
selfBondRewardsDecCoin[]검증자의 자기 결합 수량
commissionDecCoin[]검증자의 수수료
DecCoin은 다음 필드를 가진 구조체입니다:
이름타입설명
denomstringreward의 denom
amountuint256reward의 수량
precisionuint8reward의 정밀도

validatorOutstandingRewards

검증자의 미지급 rewards를 반환합니다. 미지급 rewards는 검증자의 수수료와 자기 결합 rewards, 그리고 위임자들의 총 rewards로 구성된 총 reward 금액을 나타냅니다. 검증자 A가 있고 위임자 B, C, D가 A에게 위임하는 경우, 검증자의 미지급 rewards는 A의 수수료와 자기 결합 rewards + B, C, D의 rewards의 합계입니다.

입력

이름타입설명
validatorAddressstring검증자의 주소

출력

이름타입설명
rewardsDecCoin[]검증자의 미지급 rewards

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

위임자가 검증자로부터 받는 rewards를 반환합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 hex 주소
validatorAddressstring검증자의 주소

출력

이름타입설명
rewardsDecCoin[]위임자가 검증자로부터 받는 rewards

delegationTotalRewards

위임자가 모든 검증자로부터 받는 총 rewards를 반환합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 hex 주소

출력

이름타입설명
rewardsDelegationDelegatorReward[]위임자가 모든 검증자로부터 받는 총 rewards
totalDecCoin[]rewards의 총 수량
DelegationDelegatorReward는 다음 필드를 가진 구조체입니다:
이름타입설명
validatorAddressstring검증자의 주소
rewardDecCoin[]위임자가 검증자로부터 받는 rewards

delegatorValidators

위임자가 결합된 검증자들을 반환합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 hex 주소

출력

이름타입설명
validatorsstring[]위임자가 결합된 검증자들

delegatorWithdrawAddress

setWithdrawAddress 메서드로 설정한 위임 rewards를 받을 주소를 반환합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 hex 주소

출력

이름타입설명
withdrawAddressstring위임 rewards를 받을 주소

이벤트

SetWithdrawAddress

이름타입인덱스설명
calleraddressY호출자(위임자)의 주소
withdrawAddressstringN위임 rewards를 받을 주소

WithdrawDelegatorRewards

이름타입인덱스설명
delegatorAddressaddressY위임자의 주소
validatorAddressaddressY검증자의 주소
amountuint256Nreward의 수량

WithdrawValidatorCommission

이름타입인덱스설명
validatorAddressstringY검증자의 주소
commissionuint256N수수료의 총 수량