このページは英語からの機械翻訳を使用しており、誤りや不明瞭な表現が含まれている可能性があります。最も正確な情報については、オリジナルの英語版をご覧ください。頻繁な更新のため、一部のコンテンツはオリジナルの英語になっている可能性があります。Crowdinでの取り組みに参加して、このページの翻訳改善にご協力ください。 (Crowdin translation page, Contributing guide)
手数料の委任
TxTypeFeeDelegatedValueTransfer
TxTypeFeeDelegatedValueTransferは、ユーザーがKAIAを送信したいときに使用される。 Kaiaは複数のトランザクションタイプを提供し、各トランザクションタイプが単一の目的を果たすようにするため、TxTypeFeeDelegatedValueTransferはKAIAを外部所有口座に送信するように制限されています。 したがって、TxTypeFeeDelegatedValueTransferは、to
が外部所有口座である場合にのみ受理される。 KAIAをスマートコントラクト口座に送金するには、代わりにTxTypeFeeDelegatedSmartContractExecutionを使用する。 このトランザクションタイプでは、以下の変更が行われる。
- 手数料支払者の残高は、取引手数料の分だけ減少する。
- 送信者のnonceは1増加する。
value
KAIAは送信者から受信者に転送される。
属性
属性 | タイプ | 説明 |
---|---|---|
type | uint8 (Go) | TxTypeFeeDelegatedValueTransfer の型。 これは0x09でなければならない。 これは0x09でなければならない。 |
nonce | uint64 (Go) | 送信者のトランザクションを一意に識別するために使用される値。 送信者のトランザクションを一意に識別するために使用される値。 同じnonceを持つ2つのトランザクションが送信者によって生成された場合、1つだけが実行される。 |
gasPrice | *big.Int (Go) | 送金者は、kei 単位のガス料金を取引手数料として支払う。 取引手数料の金額は、gas * gasPrice として計算されます。 For example, if the transaction consumes 10 units of gas and gasPrice is 10^18, the transaction fee will be 10 KLAY. KAIAのユニット](../../learn/token-economics/kaia-native-token.md#units-of-kaia)を参照。 |
gas | uint64 (Go) | トランザクションが使用できるガスの最大量。 |
to | common.Address (Go) | 送金された金額を受け取る口座アドレス。 |
value | *big.Int (Go) | 譲渡されるkei の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)
トランザクション・ハッシュのRLPエンコーディング
トランザクション・ハッシュを作るには、以下のようにRLPシリアライズを行う必要がある:
txSignatures (a single signature) = [[v, r, s]]txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]feePayerSignatures (a single signature) = [[v, r, s]]feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]TxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, txSignatures, feePayer, feePayerSignatures])`TxHash = keccak256(TxHashRLP)