This page uses machine translation from English, which may contain errors or unclear language. For the most accurate information, please see the original English version. Some content may be in the original English due to frequent updates. Help us improve this page's translation by joining our effort on Crowdin. (Crowdin translation page, Contributing guide)
수수료 위임
TxTypeFeeDelegatedValuetransfer
TxTypeFeeDelegatedValueTransfer는 사용자가 KAIA를 전송하고자 할 때 사용됩니다. 카이아는 각 트랜잭션 유형이 하나의 용도로 사용될 수 있도록 여러 트랜잭션 유형을 제공하기 때문에 TxTypeFeeDelegatedValueTransfer는 외부 소유 계정으로 KAIA를 전송하는 것으로 제한됩니다. 따라서 TxTypeFeeDelegatedValueTransfer는 to
가 외부 소유 계정인 경우에만 허용됩니다. 스마트 컨트랙트 계정으로 KAIA를 전송하려면, 대신 TxTypeFeeDelegatedSmartContractExecution을 사용하세요. 이 트랜잭션 유형에 따라 다음과 같이 변경됩니다.
- 수수료 납부자의 잔액이 트랜잭션 수수료만큼 감소합니다.
- 발신자의 nonce가 1 증가합니다.
- 발신자에서 수신자에게
value
KAIA가 전송됩니다.
속성
속성 | 유형 | 설명 |
---|---|---|
type | uint8 (Go) | TxTypeFeeDelegatedValueTransfer의 유형입니다. 0x09여야 합니다. |
nonce | uint64 (Go) | 발신자의 트랜잭션을 고유하게 식별하는 데 사용되는 값입니다. 발신자가 동일한 nonce를 가진 두 개의 트랜잭션을 생성한 경우 하나만 실행됩니다. |
gasPrice | *big.Int (Go) | 발신자가 트랜잭션 수수료로 지불할 peb 단위의 가스 단가입니다. 트랜잭션 수수료 금액은 gas * gasPrice 으로 계산됩니다. 예를 들어, 트랜잭션이 가스 10단위를 소비하고 가스 가격이 10^18이면 트랜잭션 수수료는 10 KAIA가 됩니다. [KLAY 단위]를 참고하세요. |
gas | uint64 (Go) | 트랜잭션이 사용할 수 있는 최대 가스 양입니다. |
to | common.Address (Go) | 이체된 값을 받을 계정 주소입니다. |
value | *big.Int (Go) | 전송할 peb 의 KAIA 금액입니다. |
from | common.Address (Go) | 발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 유효성 검사를 참조하세요. |
txSignatures | []{*big.Int, *big.Int, *big.Int} (Go) | 발신자의 서명. 자세한 내용은 트랜잭션의 서명 유효성 검사를 참조하세요. |
feePayer | common.Address (Go) | 수수료 납 부자의 주소입니다. |
feePayerSignatures | []{*big.Int, *big.Int, *big.Int} (Go) | 수수료 납부자의 서명. |
발신자 서명을 위한 RLP 인코딩
발신자의 서명을 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다:
SigRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from]), chainid, 0, 0])SigHash = keccak256(SigRLP)Signature = sign(SigHash, <the sender's private key>)
수수료 납부자 서명을 위한 RLP 인코딩
수수료 납부자의 서명을 만들기 위해서는 다음과 같이 RLP 직렬화를 수행해야 합니다:
SigFeePayerRLP = encode([ encode([type, nonce, gasPrice, gas, to, value, from]), feePayer, chainid, 0, 0 ])SigFeePayerHash = keccak256(SigFeePayerRLP)SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
SenderTxHash용 RLP 인코딩
SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다:
txSignatures (a single signature) = [[v, r, s]]txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]SenderTxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, txSignatures])SenderTxHash = keccak256(SenderTxHashRLP)