개요
distribution precompile 컨트랙트는 Stable SDK의 x/distribution 모듈 기능을 EVM 환경에서 사용할 수 있도록 브리지 역할을 합니다.
목차
개념
distribution precompile 컨트랙트에서는 위임자 또는 예치자가 호출자인지 확인하는 추가 검사가 수행됩니다.
구성
컨트랙트 주소와 가스 비용은 사전 정의되어 있습니다.컨트랙트 주소
0x0000000000000000000000000000000000000801
메서드
setWithdrawAddress
위임자가 검증자에게 위임한 토큰에 대한 rewards를 받을 주소를 설정합니다.
때로는 위임자가 자기 위임(self-delegated)일 때 검증자 주소가 위임자로 사용됩니다.
SetWithdrawAddress는 출금 주소가 성공적으로 설정되었을 때 발생합니다.
입력
출력
withdrawDelegatorRewards
검증자로부터 위임자가 받을 rewards를 출금합니다.
검증자가 위임자에게 지급하는 모든 유형의 토큰이 단일 트랜잭션으로 출금됩니다.
WithdrawDelegatorRewards는 rewards가 성공적으로 출금되었을 때 발생합니다.
입력
출력
Coin은 다음 필드를 가진 구조체입니다:
withdrawValidatorCommission
검증자의 수수료를 출금합니다.
검증자가 수수료로 받는 모든 유형의 토큰이 단일 트랜잭션으로 출금됩니다.
WithdrawValidatorCommission은 수수료가 성공적으로 출금되었을 때 발생합니다.
입력
출력
validatorDistributionInfo
검증자가 받을 reward를 나타내는 분배 정보를 반환합니다. 검증자는 자신의 주소로 토큰을 위임하여 자기 결합(self-bonded)이라고 하는 위임자 역할을 할 수 있습니다.
입력
출력
ValidatorDistributionInfo는 다음 필드를 가진 구조체입니다:
DecCoin은 다음 필드를 가진 구조체입니다:
validatorOutstandingRewards
검증자의 미지급 rewards를 반환합니다. 미지급 rewards는 검증자의 수수료와 자기 결합 rewards, 그리고 위임자들의 총 rewards로 구성된 총 reward 금액을 나타냅니다. 검증자 A가 있고 위임자 B, C, D가 A에게 위임하는 경우, 검증자의 미지급 rewards는 A의 수수료와 자기 결합 rewards + B, C, D의 rewards의 합계입니다.
입력
출력
validatorCommission
검증자의 수수료를 반환합니다. 이 메서드는 withdrawValidatorCommission 메서드를 호출하기 전에 검증자의 수수료를 조회하는 데 사용됩니다.
입력
출력
validatorSlashes
시작 높이와 종료 높이 사이에 검증자의 슬래시 이력을 반환합니다. 슬래싱은 검증자가 악의적으로 행동하거나 이중 서명, 잘못된 행동, 체인 규칙을 따르지 않는 등의 네트워크 규칙을 위반했을 때 부과되는 벌금입니다.
입력
PageReq는 다음 필드를 가진 구조체입니다:
출력
ValidatorSlashEvent는 다음 필드를 가진 구조체입니다:
Dec은 다음 필드를 가진 구조체입니다:
PageResp는 다음 필드를 가진 구조체입니다:
delegationRewards
위임자가 검증자로부터 받는 rewards를 반환합니다.
입력
출력
delegationTotalRewards
위임자가 모든 검증자로부터 받는 총 rewards를 반환합니다.
입력
출력
DelegationDelegatorReward는 다음 필드를 가진 구조체입니다:
delegatorValidators
위임자가 결합된 검증자들을 반환합니다.
입력
출력
delegatorWithdrawAddress
setWithdrawAddress 메서드로 설정한 위임 rewards를 받을 주소를 반환합니다.

