수수료 위임 트랜잭션

TxTypeFeeDelegatedValueTransfer

TxTypeFeeDelegatedValueTransfer는 사용자가 KLAY를 보내려고 할 때 사용됩니다. Klaytn은 각 목적에 맞는 여러가지 트랜잭션 유형들을 제공하는데, TxTypeFeeDelegatedValueTransfer는 KLAY를 EOA에 전송할 때 사용하는 기능입니다. 따라서 TxTypeFeeDelegatedValueTransfer는 to가 EOA일때만 작동합니다. KLAY를 스마트 컨트랙트로 전송하려면 TxTypeFeeDelegatedSmartContractExecution를 대신 사용하여야 합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔고는 트랜잭션 수수료만큼 감소합니다.
  2. 2.
    발신자의 논스가 1 증가합니다.
  3. 3.
    value KLAY가 발신자로부터 수신자로 전송됩니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedValueTransfer의 유형입니다. 이는 0x09이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 트랜잭션 수수료로 지불하는 가스의 단가입니다(단위는 peb). 트랜잭션 수수료는 gas * gasPrice으로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 가스양입니다.
to
common.Address (Go)
전송되는 KLAY를 받을 계정 주소입니다.
value
*big.Int (Go)
명시된 양의 KLAY(단위: peb)가 전송됩니다.
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 직렬화를 수행해야 합니다.
1
SigRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from]), chainid, 0, 0])
2
SigHash = keccak256(SigRLP)
3
Signature = sign(SigHash, <the sender's private key>)
Copied!

수수료 납부자의 서명을 위한 RLP 인코딩

수수료 납부자의 서명을 만들려면 RLP 직렬화를 다음과 같이 수행해야 합니다.
1
SigFeePayerRLP = encode([ encode([type, nonce, gasPrice, gas, to, value, from]), feePayer, chainid, 0, 0 ])
2
SigFeePayerHash = keccak256(SigFeePayerRLP)
3
SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
Copied!

SenderTxHash를 위한 RLP 인코딩

SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
SenderTxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

트랜잭션 해시를 위한 RLP 인코딩

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
feePayerSignatures (a single signature) = [[v, r, s]]
4
feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
5
TxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, txSignatures, feePayer, feePayerSignatures])`
6
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xf839b5f4098204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b018080
6
SigHash 0xb86e4cc0955f7c2cda1b36038c9d43a2724fc956c11e09c37625379b7eb2bd21
7
Signature f845f84325a09f8e49e2ad84b0732984398749956e807e4b526c786af3c5f7416b293e638956a06bf88342092f6ff9fabe31739b2ebfa1409707ce54a54693e91a6b9bb77df0e7
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf84eb5f4098204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0x3e7c5f40e826d1d22493be59bf62928dc397de5c972bd9bfa3fe5206c24a5f82
13
SignatureFeePayer f845f84326a0f45cf8d7f88c08e6b6ec0b3b562f34ca94283e4689021987abb6b0772ddfd80aa0298fe2c5aeabb6a518f4cbb5ff39631a5d88be505d3923374f65fdcf63c2955b
14
TxHashRLP 0x09f8d68204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bf845f84325a09f8e49e2ad84b0732984398749956e807e4b526c786af3c5f7416b293e638956a06bf88342092f6ff9fabe31739b2ebfa1409707ce54a54693e91a6b9bb77df0e7945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0f45cf8d7f88c08e6b6ec0b3b562f34ca94283e4689021987abb6b0772ddfd80aa0298fe2c5aeabb6a518f4cbb5ff39631a5d88be505d3923374f65fdcf63c2955b
15
TxHash e1e07f9971153499fc8c7bafcdaf7abc20b37aa4c18fb1e53a9bfcc259e3644c
16
SenderTxHashRLP 0x09f87a8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bf845f84325a09f8e49e2ad84b0732984398749956e807e4b526c786af3c5f7416b293e638956a06bf88342092f6ff9fabe31739b2ebfa1409707ce54a54693e91a6b9bb77df0e7
17
SenderTxHash 40f8c94e01e07eb5353f6cd4cd3eabd5893215dd53a50ba4b8ff9a447ac51731
18
19
TX(e1e07f9971153499fc8c7bafcdaf7abc20b37aa4c18fb1e53a9bfcc259e3644c)
20
Type: TxTypeFeeDelegatedValueTransfer
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Signature: [{"V":"0x25","R":"0x9f8e49e2ad84b0732984398749956e807e4b526c786af3c5f7416b293e638956","S":"0x6bf88342092f6ff9fabe31739b2ebfa1409707ce54a54693e91a6b9bb77df0e7"}]
28
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
29
FeePayerSig: [{"V":"0x26","R":"0xf45cf8d7f88c08e6b6ec0b3b562f34ca94283e4689021987abb6b0772ddfd80a","S":"0x298fe2c5aeabb6a518f4cbb5ff39631a5d88be505d3923374f65fdcf63c2955b"}]
30
Hex: 09f8d68204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bf845f84325a09f8e49e2ad84b0732984398749956e807e4b526c786af3c5f7416b293e638956a06bf88342092f6ff9fabe31739b2ebfa1409707ce54a54693e91a6b9bb77df0e7945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0f45cf8d7f88c08e6b6ec0b3b562f34ca94283e4689021987abb6b0772ddfd80aa0298fe2c5aeabb6a518f4cbb5ff39631a5d88be505d3923374f65fdcf63c2955b
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{
2
"blockHash": "0x7ad6ed1f9955be00db8fb5452125f0e9a3c0856abb5b4cc4aed91ffc134321da",
3
"blockNumber": "0x1",
4
"contractAddress": null,
5
"feePayer": "0x029fdce0457db02f05c4be9f67b7115cb8ea15ca",
6
"feePayerSignatures": [
7
{
8
"V": "0x26",
9
"R": "0x984e9d43c496ef39ef2d496c8e1aee695f871e4f6cfae7f205ddda1589ca5c9e",
10
"S": "0x46647d1ce8755cd664f5fb4eba3082dd1a13817488029f3869662986b7b1a5ae"
11
}
12
],
13
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
14
"gas": "0x174876e800",
15
"gasPrice": "0x5d21dba00",
16
"gasUsed": "0x7918",
17
"logs": [],
18
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
19
"nonce": "0x2",
20
"senderTxHash": "0x6a8cf9a2f6d16561303445309d4f210c8be862f0d0c0e6f4998775fef9b4f957",
21
"signatures": [
22
{
23
"V": "0x25",
24
"R": "0x368b3324b37831b51711a2eba2a7608438a2bd5956ccecbcdb07d9163ff8bc87",
25
"S": "0x7ee2e86ad6f01c867b2ced9d69e614ba22e539726451400fccdd56acbbc7a6f7"
26
}
27
],
28
"status": "0x1",
29
"to": "0x75c3098be5e4b63fbac05838daaee378dd48098d",
30
"transactionHash": "0xea4341b5c95fd5a0c3a8a15a4177ab6394725c24f722a9e31f53474a6dcf086a",
31
"transactionIndex": "0x2",
32
"type": "TxTypeFeeDelegatedValueTransfer",
33
"typeInt": 9,
34
"value": "0x21e19e0c9bab2400000"
35
}
Copied!

TxTypeFeeDelegatedValueTransferMemo

TxTypeFeeDelegatedValueTransferMemo는 사용자가 특정 메시지와 함께 KLAY를 보내려고 할 때 사용됩니다. 따라서 TxTypeFeeDelegatedValueTransferMemo는 to가 EOA일때만 작동합니다. KLAY를 스마트 컨트랙트로 전송하려면 TxTypeFeeDelegatedSmartContractExecution를 대신 사용하여야 합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔고는 트랜잭션 수수료만큼 감소합니다.
  2. 2.
    발신자의 논스가 1 증가합니다.
  3. 3.
    value KLAY가 발신자로부터 수신자로 전송됩니다.

속성

속성
설명
타입
예제 값
type
uint8 (Go)
TxTypeFeeDelegatedValueTransferMemo의 유형입니다. 이는 0x11이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 트랜잭션 수수료로 지불하는 가스의 단가입니다(단위는 peb). 트랜잭션 수수료는 gas * gasPrice으로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 가스양입니다.
to
common.Address (Go)
전송되는 KLAY를 받을 계정 주소입니다.
value
*big.Int (Go)
명시된 양의 KLAY(단위: peb)가 전송됩니다.
from
common.Address (Go)
발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
input
[]byte (Go)
트랜잭션에 첨부되는 데이터입니다. 메시지는 이 속성으로 전달되어야 합니다.
txSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
발신자의 서명입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
feePayer
common.Address (Go)
트랜잭션 수수료 납부자의 주소입니다.
feePayerSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
트랜잭션 수수료 납부자의 서명입니다.

발신자의 서명을 위한 RLP 인코딩

발신자의 서명을 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
SigRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from, input]), chainid, 0, 0])
2
SigHash = keccak256(SigRLP)
3
Signature = sign(SigHash, <the sender's private key>)
Copied!

수수료 납부자의 서명을 위한 RLP 인코딩

수수료 납부자의 서명을 만들려면 RLP 직렬화를 다음과 같이 수행해야 합니다.
1
SigFeePayerRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from, input]), feePayer, chainid, 0, 0])
2
SigFeePayerHash = keccak256(SigFeePayerRLP)
3
SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
Copied!

SenderTxHash를 위한 RLP 인코딩

SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
SenderTxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

트랜잭션 해시를 위한 RLP 인코딩

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
feePayerSignatures (a single signature) = [[v, r, s]]
4
feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
5
TxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input, txSignatures, feePayer, feePayerSignatures])
6
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xf841b83cf83a118204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6f018080
6
SigHash 0x3333b9336d431ffa53b795fedcf03cc2217cea3f26825ea5cbf7d69f0b99fde9
7
Signature f845f84326a064e213aef0167fbd853f8f9989ef5d8b912a77457395ccf13d7f37009edd5c5ba05d0c2e55e4d8734fe2516ed56ac628b74c0eb02aa3b6eda51e1e25a1396093e1
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf856b83cf83a118204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6f945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0xed015096fb27764f576415e23576228cbf7c4fdad464ea7ffc3a1856dfe391c9
13
SignatureFeePayer f845f84326a087390ac14d3c34440b6ddb7b190d3ebde1a07d9a556e5a82ce7e501f24a060f9a037badbcb12cda1ed67b12b1831683a08a3adadee2ea760a07a46bdbb856fea44
14
TxHashRLP 0x11f8dc8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6ff845f84326a064e213aef0167fbd853f8f9989ef5d8b912a77457395ccf13d7f37009edd5c5ba05d0c2e55e4d8734fe2516ed56ac628b74c0eb02aa3b6eda51e1e25a1396093e1945a0043070275d9f6054307ee7348bd660849d90ff845f84326a087390ac14d3c34440b6ddb7b190d3ebde1a07d9a556e5a82ce7e501f24a060f9a037badbcb12cda1ed67b12b1831683a08a3adadee2ea760a07a46bdbb856fea44
15
TxHash 8f68882f6192a53ba470aeca1e83ed9b9e519906a91256724b284dee778b21c9
16
SenderTxHashRLP 0x11f8808204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6ff845f84326a064e213aef0167fbd853f8f9989ef5d8b912a77457395ccf13d7f37009edd5c5ba05d0c2e55e4d8734fe2516ed56ac628b74c0eb02aa3b6eda51e1e25a1396093e1
17
SenderTxHash fffaa2b38d4e684ea70a89c78fc7b2659000d130c76ad721d68175cbfc77c550
18
19
TX(8f68882f6192a53ba470aeca1e83ed9b9e519906a91256724b284dee778b21c9)
20
Type: TxTypeFeeDelegatedValueTransferMemo
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Signature: [{"V":"0x26","R":"0x64e213aef0167fbd853f8f9989ef5d8b912a77457395ccf13d7f37009edd5c5b","S":"0x5d0c2e55e4d8734fe2516ed56ac628b74c0eb02aa3b6eda51e1e25a1396093e1"}]
28
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
29
FeePayerSig: [{"V":"0x26","R":"0x87390ac14d3c34440b6ddb7b190d3ebde1a07d9a556e5a82ce7e501f24a060f9","S":"0x37badbcb12cda1ed67b12b1831683a08a3adadee2ea760a07a46bdbb856fea44"}]
30
Data: 36383635366336633666
31
Hex: 11f8dc8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6ff845f84326a064e213aef0167fbd853f8f9989ef5d8b912a77457395ccf13d7f37009edd5c5ba05d0c2e55e4d8734fe2516ed56ac628b74c0eb02aa3b6eda51e1e25a1396093e1945a0043070275d9f6054307ee7348bd660849d90ff845f84326a087390ac14d3c34440b6ddb7b190d3ebde1a07d9a556e5a82ce7e501f24a060f9a037badbcb12cda1ed67b12b1831683a08a3adadee2ea760a07a46bdbb856fea44
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{
2
"blockHash": "0x7ad6ed1f9955be00db8fb5452125f0e9a3c0856abb5b4cc4aed91ffc134321da",
3
"blockNumber": "0x1",
4
"contractAddress": null,
5
"feePayer": "0x029fdce0457db02f05c4be9f67b7115cb8ea15ca",
6
"feePayerSignatures": [
7
{
8
"V": "0x25",
9
"R": "0xb5d80dc924c51f58eb674a142ebfd8ca1c0bc722bc85b001a5a6905ba8226b1",
10
"S": "0x79852418faacd4407aee4a461a08602fcf6a3a3cb63b9ba69d70ffe2f5fe3cd"
11
}
12
],
13
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
14
"gas": "0x174876e800",
15
"gasPrice": "0x5d21dba00",
16
"gasUsed": "0x7b0c",
17
"input": "0x68656c6c6f",
18
"logs": [],
19
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
20
"nonce": "0x5",
21
"senderTxHash": "0x5a4e42bac0b2bc8dda4ee82bfafc83e7f156f74d81d367a3db430abd40b2cd47",
22
"signatures": [
23
{
24
"V": "0x26",
25
"R": "0xe8f5484b057b542c80f16c5bb8707e040619c3dc9ac5628d2797aa3d8a2fc0d0",
26
"S": "0x5d598f2f10283ded6f6e6a216f4278b27fdf4d431272fa090064ac0fd3fc8102"
27
}
28
],
29
"status": "0x1",
30
"to": "0x75c3098be5e4b63fbac05838daaee378dd48098d",
31
"transactionHash": "0x66fe4d1abdf15a250f9391646e0242c8e4c3310250ca316d8fd00856aac16172",
32
"transactionIndex": "0x5",
33
"type": "TxTypeFeeDelegatedValueTransferMemo",
34
"typeInt": 17,
35
"value": "0x989680"
36
}
Copied!

TxTypeFeeDelegatedSmartContractDeploy

TxTypeFeeDelegatedSmartContractDeploy는 트랜잭션 수수료를 위임하는 스마트 컨트랙트를 배포합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔고는 트랜잭션 수수료만큼 감소합니다.
  2. 2.
    발신자의 논스가 1 증가합니다.
  3. 3.
    input에 기입된 코드로 스마트 컨트랙트가 배포됩니다. 배포된 주소는 영수증의 contractAddress를 통해 반환됩니다.
  4. 4.
    value KLAY가 발신자로부터 수신자로 전송됩니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedSmartContractDeploy의 유형입니다. 이는 0x29이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 트랜잭션 수수료로 지불하는 가스의 단가입니다(단위는 peb). 트랜잭션 수수료는 gas * gasPrice으로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 트랜잭션 수수료입니다.
to
*common.Address (Go)
전송되는 KLAY를 받을 계정 주소입니다. 현재 이 값은 nil이어야합니다. 특정 주소를 지정하는 기능은 향후 지원될 예정입니다.
value
*big.Int (Go)
명시된 양의 Klay(단위: peb)가 전송됩니다.
from
common.Address (Go)
발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
input
[]byte (Go)
트랜잭션 실행에 이용되며 트랜잭션에 첨부되는 데이터입니다.
humanReadable
bool (Go)
Human-readable address는 아직 지원되지 않으므로 이 값은 false여야 합니다. 이 값이 true라면 트랜잭션은 실패합니다.
codeFormat
uint8 (Go)
스마트 컨트랙트 코드의 코드 형식입니다. 현재는 오직 EVM(0x00)만 지원됩니다.
txSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
발신자의 서명입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
feePayer
common.Address (Go)
트랜잭션 수수료 납부자의 주소입니다.
feePayerSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
트랜잭션 수수료 납부자의 서명입니다.

발신자의 서명을 위한 RLP 인코딩

발신자의 서명을 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
SigRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from, input, humanReadable, codeFormat]), chainid, 0, 0])
2
SigHash = keccak256(SigRLP)
3
Signature = sign(SigHash, <the sender's private key>)
Copied!

수수료 납부자의 서명을 위한 RLP 인코딩

수수료 납부자의 서명을 만들려면 RLP 직렬화를 다음과 같이 수행해야 합니다.
1
SigFeePayerRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from, input, humanReadable, codeFormat]), feePayer, chainid, 0, 0])
2
SigFeePayerHash = keccak256(SigFeePayerRLP)
3
SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
Copied!

SenderTxHash를 위한 RLP 인코딩

SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
SenderTxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input,humanReadable, codeFormat, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

트랜잭션 해시를 위한 RLP 인코딩

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
feePayerSignatures (a single signature) = [[v, r, s]]
4
feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
5
TxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input, humanReadable, codeFormat, txSignatures, feePayer, feePayerSignatures])
6
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xf90240b9023af90237298204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f00290180018080
6
SigHash 0xfd5e0726c763d117d07e5e688889ab7e4d0d1164d1bbca26a9d4ee629cbd875b
7
Signature f845f84325a04ea37b8ecfed93795a9f99b1e4d554df6fb05a361965a7655abd4e4c4422a9e5a00b05e3fffe5a3c0892eaff31466f6c47b7edad80703d395d65bbfc1a2c6a2570
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf90255b9023af90237298204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f00290180945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0xb7ea4d9d8c4d20ac6fd6cfffcaf89ae7d217d7450820b3b40d9ea29a0f01a1b2
13
SignatureFeePayer f845f84326a0c6738376304dfb32c77649bddd4ade925b947876cfe6b1fd2c06a2e4394504cca023817ba66a6b7c92fcf23f2d5506ea2a673aae5f1a1e4d742367971ae58a1576
14
TxHashRLP 0x29f902d98204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f00290180f845f84325a04ea37b8ecfed93795a9f99b1e4d554df6fb05a361965a7655abd4e4c4422a9e5a00b05e3fffe5a3c0892eaff31466f6c47b7edad80703d395d65bbfc1a2c6a2570945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0c6738376304dfb32c77649bddd4ade925b947876cfe6b1fd2c06a2e4394504cca023817ba66a6b7c92fcf23f2d5506ea2a673aae5f1a1e4d742367971ae58a1576
15
TxHash a457cc54b5cfd35eb61baa5ad61398fdcecab4c83693815addf00ca7166cb87e
16
SenderTxHashRLP 0x29f9027d8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f00290180f845f84325a04ea37b8ecfed93795a9f99b1e4d554df6fb05a361965a7655abd4e4c4422a9e5a00b05e3fffe5a3c0892eaff31466f6c47b7edad80703d395d65bbfc1a2c6a2570
17
SenderTxHash f3bca26fc8b50bfbcc1e94bc792ee6489cff14056e7e9aa2b074abb385f2139f
18
19
TX(a457cc54b5cfd35eb61baa5ad61398fdcecab4c83693815addf00ca7166cb87e)
20
Type: TxTypeFeeDelegatedSmartContractDeploy
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Data: 363038303630343035323334383031353631303031303537363030303830666435623530363130316465383036313030323036303030333936303030663330303630383036303430353236303034333631303631303036313537363366666666666666663763303130303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303630303033353034313636333161333964386566383131343631303038303537383036333633353335383662313436313030613735373830363337306130383233313134363130306361353738303633666436623765663831343631303066383537356233333630303039303831353236303031363032303532363034303831323038303534333439303831303139303931353538313534303139303535303035623334383031353631303038633537363030303830666435623530363130303935363130313064353635623630343038303531393138323532353139303831393030333630323030313930663335623631303063383733666666666666666666666666666666666666666666666666666666666666666666666666666666663630303433353136363130313133353635623030356233343830313536313030643635373630303038306664356235303631303039353733666666666666666666666666666666666666666666666666666666666666666666666666666666663630303433353136363130313437353635623334383031353631303130343537363030303830666435623530363130306338363130313539353635623630303035343831353635623733666666666666666666666666666666666666666666666666666666666666666666666666666666663136363030303930383135323630303136303230353236303430383132303830353433343930383130313930393135353831353430313930353535363562363030313630323035323630303039303831353236303430393032303534383135363562333336303030393038313532363030313630323035323630343038313230383035343930383239303535393038313131313536313031616635373630343035313333393038323135363130386663303239303833393036303030383138313831383538383838663139333530353035303530313536313031396335373631303161663536356233333630303039303831353236303031363032303532363034303930323038313930353535623530353630306131363536323761376137323330353832303632376361343662623039343738613031353736323830366363303063343331323330353031313138633763323663333061633538633465303965353163346630303239
28
HumanReadable: true
29
CodeFormat: CodeFormatEVM
30
Signature: [{"V":"0x25","R":"0x4ea37b8ecfed93795a9f99b1e4d554df6fb05a361965a7655abd4e4c4422a9e5","S":"0xb05e3fffe5a3c0892eaff31466f6c47b7edad80703d395d65bbfc1a2c6a2570"}]
31
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
32
FeePayerSig: [{"V":"0x26","R":"0xc6738376304dfb32c77649bddd4ade925b947876cfe6b1fd2c06a2e4394504cc","S":"0x23817ba66a6b7c92fcf23f2d5506ea2a673aae5f1a1e4d742367971ae58a1576"}]
33
Hex: 29f902d98204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f00290180f845f84325a04ea37b8ecfed93795a9f99b1e4d554df6fb05a361965a7655abd4e4c4422a9e5a00b05e3fffe5a3c0892eaff31466f6c47b7edad80703d395d65bbfc1a2c6a2570945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0c6738376304dfb32c77649bddd4ade925b947876cfe6b1fd2c06a2e4394504cca023817ba66a6b7c92fcf23f2d5506ea2a673aae5f1a1e4d742367971ae58a1576
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{
2
"blockHash": "0x82983fe294d286e76486760e6904369285554e1744af16786c2393a956fb4ec4",
3
"blockNumber": "0x2",
4
"codeFormat": "0x0",
5
"contractAddress": "0x636f6e7472616374322e6b6c6179746e00000000",
6
"feePayer": "0x029fdce0457db02f05c4be9f67b7115cb8ea15ca",
7
"feePayerSignatures": [
8
{
9
"V": "0x25",
10
"R": "0x614fd887f4702627156132c9d56584207d1eaff529ee2967431eeaba924678f9",
11
"S": "0x6b883a4467ca95a0ee75567062cb6d35629e9a22faeb8a711896488ce2cc4ed9"
12
}
13
],
14
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
15
"gas": "0x174876e800",
16
"gasPrice": "0x0",
17
"gasUsed": "0xee6e5b4d",
18
"humanReadable": true,
19
"input": "0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029",
20
"logs": [],
21
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
22
"nonce": "0xb",
23
"senderTxHash": "0xf8f83c7a4a334430f403b20d84db492fac43ebabbd9676d731e11460d01a2160",
24
"signatures": [
25
{
26
"V": "0x26",
27
"R": "0xf3c521fea307b39bfa914b4835112bad18f89a627d639ddabe70c20af99d29a5",
28
"S": "0x5179048cf993049b380f8cf7017c6e83b23da7883d2728208fe6161808594f44"
29
}
30
],
31
"status": "0x1",
32
"to": "0x636f6e7472616374322e6b6c6179746e00000000",
33
"transactionHash": "0x39b8a31f0c02a951615e3497d68a6534b8c8cc565e514ceafec53ee7ff50b8d9",
34
"transactionIndex": "0x4",
35
"type": "TxTypeFeeDelegatedSmartContractDeploy",
36
"typeInt": 41,
37
"value": "0x0"
38
}
Copied!

TxTypeFeeDelegatedSmartContractExecution

TxTypeFeeDelegatedSmartContractExecution는 스마트 컨트랙트를 실행하고, input에 입력된 데이터를 이용합니다. 트랜잭션 수수료는 지정된 수수료 납부자가 지불합니다. TxTypeFeeDelegatedSmartContractExecution는 to가 스마트 컨트랙트 계정일 때만 실행됩니다. KLAY를 외부 소유 계정으로 전송하려면 TxTypeFeeDelegatedValueTransfer를 대신 사용하십시오. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    to가 스마트 컨트랙트라면 input을 이용하여 코드가 실행됩니다. 그렇지 않으면 트랜잭션은 거절됩니다.
  2. 2.
    트랜잭션 수수료 납부자의 잔고는 트랜잭션 수수료만큼 감소합니다.
  3. 3.
    발신자의 논스가 1 증가합니다.
  4. 4.
    value에 값이 입력되었으면 발신자에서 tovalue KLAY가 전송됩니다. 컨트랙트가 KLAY를 받기 위해서는 컨트랙트는 payable fallback function을 가져야 합니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedSmartContractExecution의 유형입니다. 이는 0x31이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 트랜잭션 수수료로 지불하는 가스의 단가입니다(단위는 peb). 트랜잭션 수수료는 gas * gasPrice으로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 트랜잭션 수수료입니다.
to
common.Address (Go)
실행할 스마트 컨트랙트 계정의 주소입니다.
value
*big.Int (Go)
명시된 양의 KLAY(단위: peb)가 전송됩니다.
from
common.Address (Go)
발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
input
[]byte (Go)
트랜잭션 실행에 이용되며 트랜잭션에 첨부되는 데이터입니다.
txSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
발신자의 서명입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
feePayer
common.Address (Go)
트랜잭션 수수료 납부자의 주소입니다.
feePayerSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
트랜잭션 수수료 납부자의 서명입니다.

발신자의 서명을 위한 RLP 인코딩

발신자의 서명을 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
SigRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from, input]), chainid, 0, 0])
2
SigHash = keccak256(SigRLP)
3
Signature = sign(SigHash, <the sender's private key>)
Copied!

수수료 납부자의 서명을 위한 RLP 인코딩

수수료 납부자의 서명을 만들려면 RLP 직렬화를 다음과 같이 수행해야 합니다.
1
SigFeePayerRLP = encode([encode([type, nonce, gasPrice, gas, to, value, from, input]), feePayer, chainid, 0, 0])
2
SigFeePayerHash = keccak256(SigFeePayerRLP)
3
SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
Copied!

SenderTxHash를 위한 RLP 인코딩

SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
SenderTxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

트랜잭션 해시를 위한 RLP 인코딩

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
feePayerSignatures (a single signature) = [[v, r, s]]
4
feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
5
TxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input, txSignatures, feePayer, feePayerSignatures])
6
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xf860b85bf859318204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b2018080
6
SigHash 0xa5dd93af9f96fa316f0ddd84f10acb2e6eb41baaec3b42f9068c38aa1618f7e1
7
Signature f845f84325a0253aea7d2c37160da45e84afbb45f6b3341cf1e8fc2df4ecc78f14adb512dc4fa022465b74015c2a8f8501186bb5e200e6ce44be52e9374615a7e7e21c41bc27b5
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf875b85bf859318204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b2945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0xf547d9d0041912e0daa2db2b65170a9e833877cd8482f405a11b03429fcbd554
13
SignatureFeePayer f845f84326a0e7c51db7b922c6fa2a941c9687884c593b1b13076bdf0c473538d826bf7b9d1aa05b0de2aabb84b66db8bf52d62f3d3b71b592e3748455630f1504c20073624d80
14
TxHashRLP 0x31f8fb8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b2f845f84325a0253aea7d2c37160da45e84afbb45f6b3341cf1e8fc2df4ecc78f14adb512dc4fa022465b74015c2a8f8501186bb5e200e6ce44be52e9374615a7e7e21c41bc27b5945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0e7c51db7b922c6fa2a941c9687884c593b1b13076bdf0c473538d826bf7b9d1aa05b0de2aabb84b66db8bf52d62f3d3b71b592e3748455630f1504c20073624d80
15
TxHash ef46f28c54b3d90a183e26f406ca1d5cc2b6e9fbb6cfa7c85a10330ffadf54b0
16
SenderTxHashRLP 0x31f89f8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b2f845f84325a0253aea7d2c37160da45e84afbb45f6b3341cf1e8fc2df4ecc78f14adb512dc4fa022465b74015c2a8f8501186bb5e200e6ce44be52e9374615a7e7e21c41bc27b5
17
SenderTxHash 3cd3380f4206943422d5d5b218dd66d03d60d19a109f9929ea12b52a230257cb
18
19
TX(ef46f28c54b3d90a183e26f406ca1d5cc2b6e9fbb6cfa7c85a10330ffadf54b0)
20
Type: TxTypeFeeDelegatedSmartContractExecution
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Data: 363335333538366230303030303030303030303030303030303030303030303062633539353166303535613835663431613362363266643666363861623764653736643239396232
28
Signature: [{"V":"0x25","R":"0x253aea7d2c37160da45e84afbb45f6b3341cf1e8fc2df4ecc78f14adb512dc4f","S":"0x22465b74015c2a8f8501186bb5e200e6ce44be52e9374615a7e7e21c41bc27b5"}]
29
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
30
FeePayerSig: [{"V":"0x26","R":"0xe7c51db7b922c6fa2a941c9687884c593b1b13076bdf0c473538d826bf7b9d1a","S":"0x5b0de2aabb84b66db8bf52d62f3d3b71b592e3748455630f1504c20073624d80"}]
31
Hex: 31f8fb8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b2f845f84325a0253aea7d2c37160da45e84afbb45f6b3341cf1e8fc2df4ecc78f14adb512dc4fa022465b74015c2a8f8501186bb5e200e6ce44be52e9374615a7e7e21c41bc27b5945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0e7c51db7b922c6fa2a941c9687884c593b1b13076bdf0c473538d826bf7b9d1aa05b0de2aabb84b66db8bf52d62f3d3b71b592e3748455630f1504c20073624d80
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{
2
"blockHash": "0x82983fe294d286e76486760e6904369285554e1744af16786c2393a956fb4ec4",
3
"blockNumber": "0x2",
4
"contractAddress": null,
5
"feePayer": "0x029fdce0457db02f05c4be9f67b7115cb8ea15ca",
6
"feePayerSignatures": [
7
{
8
"V": "0x25",
9
"R": "0x1c7de2c83542b623ba47722f310c0e5893486eef4eed70b634d456262fb430a7",
10
"S": "0x177929c52669c4b9433565a76e53723b702bae8142debe1981062f59f25062ab"
11
}
12
],
13
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
14
"gas": "0x174876e800",
15
"gasPrice": "0x0",
16
"gasUsed": "0xb0bc",
17
"input": "0x6353586b0000000000000000000000000fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
18
"logs": [],
19
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
20
"nonce": "0xe",
21
"senderTxHash": "0xffd354e4e271ff94a7459c2f1bc0df20dc112a83f5625ff7e31d196444f72710",
22
"signatures": [
23
{
24
"V": "0x25",
25
"R": "0xefc6fec3dae47a08941712f637c95dbc46ef2afd3d16e68da602a878c0bba047",
26
"S": "0x938a5374edcea0503df8e7af906a7642f7e935eab7c489b7ca8b976a8e5ab7e"
27
}
28
],
29
"status": "0x1",
30
"to": "0x636f6e74726163742e6b6c6179746e0000000000",
31
"transactionHash": "0x658a118112ffb0c06adecd59b0f11b58cf7d8afd7ec5e5d323cfca021c3dcb37",
32
"transactionIndex": "0x7",
33
"type": "TxTypeFeeDelegatedSmartContractExecution",
34
"typeInt": 49,
35
"value": "0xa"
36
}
Copied!

TxTypeFeeDelegatedAccountUpdate

TxTypeFeeDelegatedAccountUpdate는 해당 계정의 키를 업데이트합니다. 트랜잭션 수수료는 트랜잭션 수수료 납부자가 지불합니다. 이 트랜잭션 유형은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔고는 트랜잭션 수수료만큼 감소합니다.
  2. 2.
    발신자의 논스가 1 증가합니다.
  3. 3.
    계정의 키는 key로 업데이트됩니다.
  4. 4.
    이 유형의 트랜잭션이 실행되고 나면 계정에서 전송된 트랜잭션은 새 key로 검증됩니다.
  5. 5.
    트랜잭션 수수료는 트랜잭션 수수료 납부자가 지불합니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeAccountUpdate의 유형입니다. 이는 0x21이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 얼마나 가스비를 지급해야하는지 알 수 있도록 곱하는 값입니다. 발신자가 지급해야할 비용은 gas * gasPrice로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 트랜잭션 수수료입니다.
from
common.Address (Go)
발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
key
AccountKey (Go)
업데이트 될 AccountKey입니다.
txSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
발신자의 서명입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
feePayer
common.Address (Go)
트랜잭션 수수료 납부자의 주소입니다.
feePayerSignatures
[]{*big.Int, *big.Int, *big.Int} (Go)
트랜잭션 수수료 납부자의 서명입니다.

발신자의 서명을 위한 RLP 인코딩

발신자의 서명을 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
SigRLP = encode([encode([type, nonce, gasPrice, gas, from, rlpEncodedKey]), chainid, 0, 0])`
2
SigHash = keccak256(SigRLP)
3
Signature = sign(SigHash, <the sender's private key>)
Copied!

수수료 납부자의 서명을 위한 RLP 인코딩

수수료 납부자의 서명을 만들려면 RLP 직렬화를 다음과 같이 수행해야 합니다.
1
SigFeePayerRLP = encode([encode([type, nonce, gasPrice, gas, from, rlpEncodedKey]), feePayer, chainid, 0, 0])
2
SigFeePayerHash = keccak256(SigFeePayerRLP)
3
SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
Copied!

SenderTxHash를 위한 RLP 인코딩

SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
SenderTxHashRLP = type + encode([nonce, gasPrice, gas, from, rlpEncodedKey, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

트랜잭션 해시를 위한 RLP 인코딩

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
feePayerSignatures (a single signature) = [[v, r, s]]
4
feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
5
TxHashRLP = type + encode([nonce, gasPrice, gas, from, rlpEncodedKey, txSignatures, feePayer, feePayerSignatures])
6
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xf849b844f842218204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d018080
6
SigHash 0x78437953e6beb985ea3ccbee8d6a648a09d11249389477a32c7094fc7b8765ef
7
Signature f845f84326a0ab69d9adca15d9763c4ce6f98b35256717c6e932007658f19c5a255de9e70ddaa026aa676a3a1a6e96aff4a3df2335788d614d54fb4db1c3c48551ce1fa7ac5e52
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf85eb844f842218204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0x1026d3ac74f56b52453d656b084d06798479b8bcfda1868d8beaa23e36f3aeb3
13
SignatureFeePayer f845f84326a0f295cd69b4144d9dbc906ba144933d2cc535d9d559f7a92b4672cc5485bf3a60a0784b8060234ffd64739b5fc2f2503939340ab4248feaa6efcf62cb874345fe40
14
TxHashRLP 0x21f8e48204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33df845f84326a0ab69d9adca15d9763c4ce6f98b35256717c6e932007658f19c5a255de9e70ddaa026aa676a3a1a6e96aff4a3df2335788d614d54fb4db1c3c48551ce1fa7ac5e52945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0f295cd69b4144d9dbc906ba144933d2cc535d9d559f7a92b4672cc5485bf3a60a0784b8060234ffd64739b5fc2f2503939340ab4248feaa6efcf62cb874345fe40
15
TxHash 756ff5d3912a4089659614d42a218eee59e602a5992bddca383c2d295c6637bb
16
SenderTxHashRLP 0x21f8888204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33df845f84326a0ab69d9adca15d9763c4ce6f98b35256717c6e932007658f19c5a255de9e70ddaa026aa676a3a1a6e96aff4a3df2335788d614d54fb4db1c3c48551ce1fa7ac5e52
17
SenderTxHash f56937017bd3b75c637ba5b4ce90df20c166006a2a529b42e808bc806159b98f
18
19
TX(756ff5d3912a4089659614d42a218eee59e602a5992bddca383c2d295c6637bb)
20
Type: TxTypeFeeDelegatedAccountUpdate
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
Nonce: 1234
23
GasPrice: 0x19
24
GasLimit: 0xf4240
25
Key: AccountKeyPublic: S256Pubkey:{"x":"0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d","y":"0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3"}
26
Signature: [{"V":"0x26","R":"0xab69d9adca15d9763c4ce6f98b35256717c6e932007658f19c5a255de9e70dda","S":"0x26aa676a3a1a6e96aff4a3df2335788d614d54fb4db1c3c48551ce1fa7ac5e52"}]
27
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
28
FeePayerSig: [{"V":"0x26","R":"0xf295cd69b4144d9dbc906ba144933d2cc535d9d559f7a92b4672cc5485bf3a60","S":"0x784b8060234ffd64739b5fc2f2503939340ab4248feaa6efcf62cb874345fe40"}]
29
Hex: 21f8e48204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33df845f84326a0ab69d9adca15d9763c4ce6f98b35256717c6e932007658f19c5a255de9e70ddaa026aa676a3a1a6e96aff4a3df2335788d614d54fb4db1c3c48551ce1fa7ac5e52945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0f295cd69b4144d9dbc906ba144933d2cc535d9d559f7a92b4672cc5485bf3a60a0784b8060234ffd64739b5fc2f2503939340ab4248feaa6efcf62cb874345fe40
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{
2
"blockHash": "0x82983fe294d286e76486760e6904369285554e1744af16786c2393a956fb4ec4",
3
"blockNumber": "0x2",
4
"contractAddress": null,
5
"feePayer": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
6
"feePayerSignatures": [
7
{
8
"V": "0x25",
9
"R": "0x3b019642e5ae37f3ecbf85e6fc1ee77e51d1618299367bcedd816d0da6afb1e0",
10
"S": "0x5c12c87811a74183f8b56b707fa90a916b1c641652c93e52300f5cee36141d73"
11
}
12
],
13
"from": "0x636f6c696e322e6b6c6179746e00000000000000",
14
"gas": "0x174876e800",
15
"gasPrice": "0x5d21dba00",
16
"gasUsed": "0xc738",
17
"key": "0x02a1034ef27ba4b7d1ae09b166744c5b7ee4a7a0cc5c76b2e5d74523a0a4fb56db3191",
18
"logs": [],
19
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
20
"nonce": "0x0",
21
"senderTxHash": "0xf4e7ef082451d4a3c8ad7c4348fc99c965a9c130bfc98d7971f3103e3dcfda3c",
22
"signatures": [
23
{
24
"V": "0x26",
25
"R": "0xd4cb16abcdf92969dc45efacaa5827ad55738fbda08a3dbaf0f0553643084a6",
26
"S": "0x23f8055933b416cf15568a017e0a11e0a5c0a8f65477f6ec71de0bf837f4a681"
27
}
28
],
29
"status": "0x1",
30
"transactionHash": "0xeb0c14d903db38deee116ac8a0d620e6ca6aa79e4f91393abbddfa30810b9d43",
31
"transactionIndex": "0x2",
32
"type": "TxTypeFeeDelegatedAccountUpdate",
33
"typeInt": 33
34
},
Copied!

TxTypeFeeDelegatedCancel

TxTypeFeeDelegatedCancel는 트랜잭션 풀에서 같은 논스를 가진 트랜잭션을 취소합니다. 자세한 내용은 TxTypeCancel를 참조하세요.
이 트랜잭션 유형은 다음과 같은 변경 사항을 만듭니다. 1. 트랜잭션 수수료 납부자의 잔고는 트랜잭션 수수료만큼 감소합니다. 2. 발신자의 논스가 1 증가합니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeCancel의 유형입니다. 이는 0x39이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 트랜잭션 수수료로 지불하는 가스의 단가입니다(단위는 peb). 트랜잭션 수수료는 gas * gasPrice으로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 트랜잭션 수수료입니다.
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 직렬화를 수행해야 합니다.
1
SigRLP = encode([encode([type, nonce, gasPrice, gas, from]), chainid, 0, 0])
2
SigHash = keccak256(SigRLP)
3
Signature = sign(SigHash, <the sender's private key>)
Copied!

수수료 납부자의 서명을 위한 RLP 인코딩

수수료 납부자의 서명을 만들려면 RLP 직렬화를 다음과 같이 수행해야 합니다.
1
SigFeePayerRLP = encode([encode([type, nonce, gasPrice, gas, from]), feePayer, chainid, 0, 0])
2
SigFeePayerHash = keccak256(SigFeePayerRLP)
3
SignatureFeePayer = sign(SigFeePayerHash, <the fee payer's private key>)
Copied!

SenderTxHash를 위한 RLP 인코딩

SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
SenderTxHashRLP = type + encode([nonce, gasPrice, gas, from, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

트랜잭션 해시를 위한 RLP 인코딩

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
txSignatures (a single signature) = [[v, r, s]]
2
txSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
3
feePayerSignatures (a single signature) = [[v, r, s]]
4
feePayerSignatures (two signatures) = [[v1, r1, s1], [v2, r2, s2]]
5
TxHashRLP = type + encode([nonce, gasPrice, gas, from, txSignatures, feePayer, feePayerSignatures])
6
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xe39fde398204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0b018080
6
SigHash 0xd36c4277f4aa1d483a5fc4d656aeea50416c28adddb27a234d320290bd2a343c
7
Signature f845f84326a08409f5441d4725f90905ad87f03793857d124de7a43169bc67320cd2f020efa9a060af63e87bdc565d7f7de906916b2334336ee7b24d9a71c9521a67df02e7ec92
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf8389fde398204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0b945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0x15859ecc06acbd2dd5820c5968a85590826d1f6affb938e89559558ac4f86a24
13
SignatureFeePayer f845f84326a0044d5b25e8c649a1fdaa409dc3817be390ad90a17c25bc17c89b6d5d248495e0a073938e690d27b5267c73108352cf12d01de7fd0077b388e94721aa1fa32f85ec
14
TxHashRLP 0x39f8c08204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0bf845f84326a08409f5441d4725f90905ad87f03793857d124de7a43169bc67320cd2f020efa9a060af63e87bdc565d7f7de906916b2334336ee7b24d9a71c9521a67df02e7ec92945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0044d5b25e8c649a1fdaa409dc3817be390ad90a17c25bc17c89b6d5d248495e0a073938e690d27b5267c73108352cf12d01de7fd0077b388e94721aa1fa32f85ec
15
TxHash 96b39d3ab849127d31a5f7b5c882ca9ba408cd9d875052640d51a64f8c4acbb2
16
SenderTxHashRLP 0x39f8648204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0bf845f84326a08409f5441d4725f90905ad87f03793857d124de7a43169bc67320cd2f020efa9a060af63e87bdc565d7f7de906916b2334336ee7b24d9a71c9521a67df02e7ec92
17
SenderTxHash cc6c2673398903b3d906a3023b41636fc08bd1bddd5aa1602116091638f48447
18
19
TX(96b39d3ab849127d31a5f7b5c882ca9ba408cd9d875052640d51a64f8c4acbb2)
20
Type: TxTypeFeeDelegatedCancel
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
Nonce: 1234
23
GasPrice: 0x19
24
GasLimit: 0xf4240
25
Signature: [{"V":"0x26","R":"0x8409f5441d4725f90905ad87f03793857d124de7a43169bc67320cd2f020efa9","S":"0x60af63e87bdc565d7f7de906916b2334336ee7b24d9a71c9521a67df02e7ec92"}]
26
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
27
FeePayerSig: [{"V":"0x26","R":"0x44d5b25e8c649a1fdaa409dc3817be390ad90a17c25bc17c89b6d5d248495e0","S":"0x73938e690d27b5267c73108352cf12d01de7fd0077b388e94721aa1fa32f85ec"}]
28
Hex: 39f8c08204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0bf845f84326a08409f5441d4725f90905ad87f03793857d124de7a43169bc67320cd2f020efa9a060af63e87bdc565d7f7de906916b2334336ee7b24d9a71c9521a67df02e7ec92945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0044d5b25e8c649a1fdaa409dc3817be390ad90a17c25bc17c89b6d5d248495e0a073938e690d27b5267c73108352cf12d01de7fd0077b388e94721aa1fa32f85ec
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{