수수료 위임
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)