Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

스테이킹 프리컴파일 레퍼런스

개요

staking 프리컴파일 컨트랙트는 EVM 환경에서 Stable SDK의 x/staking 모듈 기능을 사용할 수 있게 해주는 브리지 역할을 합니다.

목차

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

개념

Stable SDK의 x/staking 모듈에서는 스테이킹을 위해 체인 초기화 중에 본드 denom을 등록해야 합니다. 검증자와 위임자는 본드 denom 스테이킹 토큰만 사용할 수 있습니다. staking 프리컴파일 컨트랙트는 검증자 또는 위임자가 호출자인지 확인하기 위한 추가 검사를 수행합니다.

구성

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

컨트랙트 주소

  • 0x0000000000000000000000000000000000000800

메서드

createValidator

검증자를 생성합니다. 검증자는 운영자의 초기 위임으로 생성되어야 합니다. 잠재적 위임자를 위해 검증자는 수수료율에 대한 정보와 계획을 제공해야 합니다. 위임자는 공개된 정보를 바탕으로 토큰을 위임할 검증자를 선택할 수 있으며, 시장 메커니즘에 의한 자연스러운 규제가 이루어집니다.

CreateValidator는 검증자가 성공적으로 등록될 때 발생합니다.

입력

이름타입설명
descriptionDescription검증자의 정보
commissionRatesCommissionRates검증자가 보상받는 스테이킹 토큰의 수수료율
minSelfDelegationuint256검증자의 최소 자기 위임 금액
validatorAddressaddress검증자의 주소
pubkeystring검증자의 공개 키
valueuint256검증자에게 초기에 자기 위임된 스테이킹 토큰의 양

Description은 다음 필드를 가진 구조체입니다:

이름타입설명
monikerstring검증자의 이름
identitystring검증자의 신원
websitestring검증자 웹사이트의 url
securityContactstring보안 연락처 정보
detailsstring검증자에 대한 추가 설명

CommissionRates는 다음 필드를 가진 구조체입니다:

이름타입설명
rateuint256검증자가 받는 현재 수수료율
maxRateuint256최대 수수료율(이보다 높게 설정할 수 없음)
maxChangeRateuint256검증자가 하루에 변경할 수 있는 최대 수수료율

rate는 시장이 수용할 수 있는 적절한 값으로 설정해야 합니다.

  • 검증자의 수수료율이 높을수록 위임자의 이익은 낮아집니다.
  • 검증자의 수수료율이 낮을수록 검증자의 이익이 낮아지고 운영이 어려워집니다.

높은 maxRate는 위임자가 검증자의 예상치 못한 높은 수수료율을 우려하게 만들 수 있으므로 maxRate는 신중하게 설정해야 합니다. maxChangeRate는 초기화된 후에는 변경할 수 없습니다.

출력

이름타입설명
successbool검증자가 성공적으로 등록되면 true

editValidator

검증자가 자신의 정보를 업데이트합니다. 검증자는 CommissionRates 구조체의 maxRatemaxChangeRate 같은 변경 불가능한 필드를 제외한 정보만 업데이트할 수 있습니다.

EditValidator는 검증자가 성공적으로 업데이트될 때 발생합니다.

입력

이름타입설명
descriptionDescription검증자의 정보
validatorAddressaddress검증자의 주소
commissionRateint256검증자가 보상받는 스테이킹 토큰의 수수료율
minSelfDelegationint256검증자의 최소 자기 위임 금액

출력

이름타입설명
successbool검증자가 성공적으로 업데이트되면 true

delegate

위임자가 검증자에게 위임할 토큰의 양을 설정합니다.

Delegate는 위임이 성공적으로 완료될 때 발생합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
validatorAddressaddress검증자의 주소
amountuint256검증자에게 위임된 스테이킹 토큰의 양

출력

이름타입설명
successbool위임이 성공적으로 완료되면 true

이벤트

newShares는 위임자의 소유 비율을 나타냅니다. 동일한 양의 토큰이 위임되더라도 시점에 따라 계산된 share가 달라질 수 있습니다.

undelegate

위임자가 검증자에게 위임한 토큰의 양을 출금합니다.

Unbond는 위임 해제가 성공적으로 완료될 때 발생합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
validatorAddressaddress검증자의 주소
amountuint256검증자로부터 위임 해제하려는 스테이킹 토큰의 양

출력

이름타입설명
successbool위임 해제가 성공적으로 완료되면 true

redelegate

위임자가 검증자에게 위임한 토큰의 양을 다른 검증자로 재위임합니다.

Redelegate는 재위임이 성공적으로 완료될 때 발생합니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
validatorSrcstring출발 검증자의 주소
validatorDststring도착 검증자의 주소
amountuint256재위임할 스테이킹 토큰의 양

출력

이름타입설명
successbool재위임이 성공적으로 완료되면 true

delegation

위임자와 검증자 간의 위임 정보를 반환합니다. 위임이 발견되지 않으면 sharesbalance0이 됩니다.

입력

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

출력

이름타입설명
sharesuint256위임된 share
balanceCoin위임된 토큰의 양과 denom

Coin은 다음 필드를 가진 구조체입니다:

이름타입설명
denomstring보상의 denom
amountuint256보상의 양

unbondingDelegation

위임자와 검증자 간의 위임 해제 정보를 반환합니다. 위임 해제가 발견되지 않으면 빈 UnbondingDelegationOutput이 반환됩니다.

입력

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

출력

이름타입설명
unbondingDelegationUnbondingDelegationOutput위임 해제의 정보

UnbondingDelegationOutput은 다음 필드를 가진 구조체입니다:

이름타입설명
validatorAddressaddress검증자의 주소
delegatorAddressaddress위임자의 주소
entriesUnbondingDelegationEntry[]위임 해제의 엔트리

UnbondingDelegationEntry는 다음 필드를 가진 구조체입니다:

이름타입설명
creationHeightuint64엔트리의 생성 높이
completionTimeuint64엔트리의 완료 시간
initialBalanceCoin엔트리의 초기 잔액
balanceCoin엔트리의 잔액

validator

검증자 정보를 반환합니다. 검증자가 발견되지 않으면 빈 ValidatorOutput이 반환됩니다.

입력

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

출력

이름타입설명
validatorValidator검증자의 정보

Validator는 다음 필드를 가진 구조체입니다:

이름타입설명
operatorAddressaddress검증자의 주소
consensusPubkeystring검증자의 공개 키
jailedbool검증자가 jail 상태인지 여부
statusint32검증자의 상태
tokensuint256검증자에게 위임된 스테이킹 토큰의 양
delegatorSharesuint256위임 share의 양
descriptionstring검증자의 설명
unbondingHeightint64검증자가 위임 해제되는 높이
unbondingTimeint64검증자가 위임 해제되는 시간
commissionuint256검증자가 보상받는 스테이킹 토큰의 수수료율
minSelfDelegationuint256검증자의 최소 자기 위임 금액

validators

상태와 일치하는 모든 검증자를 반환합니다. 검증자가 발견되지 않으면 빈 ValidatorsOutput이 반환됩니다.

x/staking 모듈에 선언된 상태는 다음 중 하나일 수 있습니다:

  • 0 : "BOND_STATUS_UNSPECIFIED", 지정되지 않은 상태
  • 1 : "BOND_STATUS_UNBONDING", 검증자가 위임 해제 중
  • 2 : "BOND_STATUS_UNBONDED", 검증자가 위임 해제됨
  • 3 : "BOND_STATUS_BONDED", 검증자가 본딩됨

입력

이름타입설명
statusstring검증자의 상태
pageRequestPageReq페이지네이션 요청

PageReq는 다음 필드를 가진 구조체입니다:

이름타입설명
keybytes페이지의 키
offsetint64페이지의 오프셋
limitint64페이지의 한도
countTotalbool전체 결과 수를 셀지 여부
reversebool결과를 역순으로 할지 여부

출력

이름타입설명
validatorsValidator[]검증자의 배열
pageResponsePageResp페이지네이션 응답

PageResp는 다음 필드를 가진 구조체입니다:

이름타입설명
nextKeybytes페이지의 다음 키
totaluint64전체 결과 수

redelegation

위임자, 출발 검증자, 도착 검증자의 재위임 정보를 반환합니다. 재위임이 발견되지 않으면 빈 RedelegationOutput이 반환됩니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
srcValidatorAddressaddress출발 검증자의 주소
dstValidatorAddressaddress도착 검증자의 주소

출력

이름타입설명
redelegationRedelegationOutput재위임의 정보

RedelegationOutput은 다음 필드를 가진 구조체입니다:

이름타입설명
delegatorAddressaddress위임자의 주소
validatorSrcAddressaddress출발 검증자의 주소
validatorDstAddressaddress도착 검증자의 주소
entriesRedelegationEntry[]재위임의 엔트리

RedelegationEntry는 다음 필드를 가진 구조체입니다:

이름타입설명
creationHeightuint64엔트리의 생성 높이
completionTimeuint64엔트리의 완료 시간
initialBalanceCoin엔트리의 초기 잔액
balanceCoin엔트리의 잔액

redelegations

위임자, 출발 검증자, 도착 검증자의 모든 재위임을 반환합니다. 재위임이 발견되지 않으면 빈 RedelegationResponsePageResp가 반환됩니다.

입력

이름타입설명
delegatorAddressaddress위임자의 주소
srcValidatorAddressaddress출발 검증자의 주소
dstValidatorAddressaddress도착 검증자의 주소
pageRequestPageReq페이지네이션 요청

출력

이름타입설명
responseRedelegationResponse[]재위임의 정보
pageResponsePageResp페이지네이션 응답

이벤트

CreateValidator

이름타입인덱싱됨설명
valiAddraddressY검증자의 주소
valueuint256N검증자에게 초기에 자기 위임된 스테이킹 토큰의 양

EditValidator

이름타입인덱싱됨설명
valiAddraddressY검증자의 주소
commissionRateint256N검증자가 보상받는 스테이킹 토큰의 업데이트된 수수료율
minSelfDelegationint256N검증자의 업데이트된 최소 자기 위임 금액

Delegate

이름타입인덱싱됨설명
delegatorAddraddressY위임자의 주소
validatorAddrstringY검증자의 주소
amountuint256N검증자에게 위임된 스테이킹 토큰의 양
newSharesuint256N위임 후 위임 share의 양

Unbond

이름타입인덱싱됨설명
delegatorAddraddressY위임자의 주소
validatorAddrstringY검증자의 주소
amountuint256N검증자로부터 위임 해제된 스테이킹 토큰의 양
completionTimeuint256N위임 해제의 완료 시간

Redelegate

이름타입인덱싱됨설명
delegatorAddraddressY위임자의 주소
validatorSrcAddressaddressY출발 검증자의 주소
validatorDstAddressaddressY도착 검증자의 주소
amountuint256N재위임할 스테이킹 토큰의 양
completionTimeuint256N재위임의 완료 시간