수수료 부분 위임 트랜잭션

TxTypeFeeDelegatedValueTransferWithRatio

TxTypeFeeDelegatedValueTransferWithRatio는 사용자가 KLAY를 보내려고 할 때 사용됩니다. Klaytn은 각 목적에 맞는 여러가지 트랜잭션 유형들을 제공하는데, TxTypeFeeDelegatedValueTransferWithRatio는 KLAY를 EOA에 전송할 때 사용하는 기능입니다. 따라서 TxTypeFeeDelegatedValueTransferWithRatio는 to가 EOA일때만 작동합니다. KLAY를 스마트 컨트랙트로 전송하려면 TxTypeFeeDelegatedSmartContractExecutionWithRatio를 대신 사용하여야 합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    수수료 납부자의 잔고는 주어진 트랜잭션 수수료 비율(fee ratio)에 따라 감소합니다.
  2. 2.
    발신자의 잔고는 남은 트랜잭션 수수료만큼 줄어듭니다. 예를 들어 만약 feeRatio가 30이라면 30%의 트랜잭션 수수료가 수수료 납부자에 의해서 지불되고, 남은 70%는 발신자에 의해서 지불됩니다.
  3. 3.
    발신자의 논스가 1 증가합니다.
  4. 4.
    value KLAY가 발신자로부터 수신자로 전송됩니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedValueTransferWithRatio의 유형입니다. 이는 0x0a이어야 합니다.
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)
발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
feeRatio
uint8 (Go)
트랜잭션 수수료 납부자의 부담 비율입니다. 유효한 범위는 1에서 99 사이입니다. 영(0)은 허용되지 않습니다. 100 이상 또한 허용되지 않습니다.
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, feeRatio]), 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, feeRatio]), 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, feeRatio, 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, feeRatio, 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 0xf83ab6f50a8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b1e018080
6
SigHash 0x0f7d520cd00034299b36004c21b571263dbb9a77edbd5920c4136f7f74050d9d
7
Signature f845f84325a0dde32b8241f039a82b124fe94d3e556eb08f0d6f26d07dcc0f3fca621f1090caa01c8c336b358ab6d3a2bbf25de2adab4d01b754e2fb3b9b710069177d54c1e956
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf84fb6f50a8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b1e945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0x38123c30a5f83db853e9ae4e8dd8d4f6aa6840415acffb8dbf18b2050463dec4
13
SignatureFeePayer f845f84326a0091ecf53f91bb97bb694f2f2443f3563ac2b646d651497774524394aae396360a044228b88f275aa1ec1bab43681d21dc7e3a676786ed1906f6841d0a1a188f88a
14
TxHashRLP 0x0af8d78204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b1ef845f84325a0dde32b8241f039a82b124fe94d3e556eb08f0d6f26d07dcc0f3fca621f1090caa01c8c336b358ab6d3a2bbf25de2adab4d01b754e2fb3b9b710069177d54c1e956945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0091ecf53f91bb97bb694f2f2443f3563ac2b646d651497774524394aae396360a044228b88f275aa1ec1bab43681d21dc7e3a676786ed1906f6841d0a1a188f88a
15
TxHash 83a89f4debd8e9d6374b987e25132b3a4030c9cf9ace2fc6e7d1086fcea2ce40
16
SenderTxHashRLP 0x0af87b8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b1ef845f84325a0dde32b8241f039a82b124fe94d3e556eb08f0d6f26d07dcc0f3fca621f1090caa01c8c336b358ab6d3a2bbf25de2adab4d01b754e2fb3b9b710069177d54c1e956
17
SenderTxHash 4711ed4023e821425968342c1d50063b6bc3176b1792b7075cfeee3656d450f6
18
19
TX(83a89f4debd8e9d6374b987e25132b3a4030c9cf9ace2fc6e7d1086fcea2ce40)
20
Type: TxTypeFeeDelegatedValueTransferWithRatio
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Signature: [{"V":"0x25","R":"0xdde32b8241f039a82b124fe94d3e556eb08f0d6f26d07dcc0f3fca621f1090ca","S":"0x1c8c336b358ab6d3a2bbf25de2adab4d01b754e2fb3b9b710069177d54c1e956"}]
28
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
29
FeeRatio: 30
30
FeePayerSig: [{"V":"0x26","R":"0x91ecf53f91bb97bb694f2f2443f3563ac2b646d651497774524394aae396360","S":"0x44228b88f275aa1ec1bab43681d21dc7e3a676786ed1906f6841d0a1a188f88a"}]
31
Hex: 0af8d78204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b1ef845f84325a0dde32b8241f039a82b124fe94d3e556eb08f0d6f26d07dcc0f3fca621f1090caa01c8c336b358ab6d3a2bbf25de2adab4d01b754e2fb3b9b710069177d54c1e956945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0091ecf53f91bb97bb694f2f2443f3563ac2b646d651497774524394aae396360a044228b88f275aa1ec1bab43681d21dc7e3a676786ed1906f6841d0a1a188f88a
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": "0xb8583f638efefb297922aa8b8a30cf451a30e266126d52da03ba9ead0fbb1ccd",
10
"S": "0x4bc5ca3756f88d857d115b128b00babe5b3c0b089f087a0b30a9ced269e00603"
11
}
12
],
13
"feeRatio": "0x14",
14
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
15
"gas": "0x174876e800",
16
"gasPrice": "0x5d21dba00",
17
"gasUsed": "0x8ca0",
18
"logs": [],
19
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
20
"nonce": "0x3",
21
"senderTxHash": "0xac372c68d2937383d4344a2d187e70b207c76160eb407b68e08c944b919328de",
22
"signatures": [
23
{
24
"V": "0x26",
25
"R": "0x1a8d5bf583843ceba87943569a34a8a6caa18a9ab5e4cf6914d8048e607787bc",
26
"S": "0x27458275c84adcb8144b4596946111f1a539643941de74f587fa69a7df98ed1b"
27
}
28
],
29
"status": "0x1",
30
"to": "0x75c3098be5e4b63fbac05838daaee378dd48098d",
31
"transactionHash": "0x670ff613022278cc2551a7e4669d8911f1658ffaa4dcc3695b14f39194a8a38c",
32
"transactionIndex": "0x3",
33
"type": "TxTypeFeeDelegatedValueTransferWithRatio",
34
"typeInt": 10,
35
"value": "0x989680"
36
}
Copied!

TxTypeFeeDelegatedValueTransferMemoWithRatio

TxTypeFeeDelegatedValueTransferMemoWithRatio는 사용자가 특정 메시지와 함께 KLAY를 보내려고 할 때 사용됩니다. 따라서 TxTypeFeeDelegatedValueTransferMemoWithRatio는 to가 EOA일때만 작동합니다. KLAY를 스마트 컨트랙트로 전송하려면 TxTypeFeeDelegatedSmartContractExecutionWithRatio를 대신 사용하여야 합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔액은 트랜잭션 수수료의 수수료 부담 비율만큼 감소합니다.
  2. 2.
    발신자의 잔고는 남은 트랜잭션 수수료만큼 줄어듭니다. 예를 들어 만약 feeRatio가 30이라면 30%의 트랜잭션 수수료가 수수료 납부자에 의해서 지불되고, 남은 70%는 발신자에 의해서 지불됩니다.
  3. 3.
    발신자의 논스가 1 증가합니다.
  4. 4.
    value KLAY가 발신자로부터 수신자로 전송됩니다.

속성

속성
설명
타입
type
uint8 (Go)
TxTypeFeeDelegatedValueTransferMemoWithRatio의 유형입니다. 이는 0x12이어야 합니다
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)
트랜잭션에 첨부되는 데이터입니다. 메시지는 이 속성으로 전달되어야 합니다.
feeRatio
uint8 (Go)
트랜잭션 수수료 납부자의 부담 비율입니다. 유효한 범위는 1에서 99 사이입니다. 영(0)은 허용되지 않습니다. 100 이상 또한 허용되지 않습니다.
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, feeRatio]), 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, feeRatio]), 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, feeRatio, 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, feeRatio, 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 0xf842b83df83b128204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6f1e018080
6
SigHash 0x50eef45abe0743dce17e40db185d1d85607245a545f7517a52b90f3673aff689
7
Signature f845f84326a0769f0afdc310289f9b24decb5bb765c8d7a87a6a4ae28edffb8b7085bbd9bc78a06a7b970eea026e60ac29bb52aee10661a4222e6bdcdfb3839a80586e584586b4
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf857b83df83b128204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6f1e945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0x09583a871c38a4860e336bfa5f16003feec75e710cfd9186c37892cee7d9775b
13
SignatureFeePayer f845f84325a0c1c54bdc72ce7c08821329bf50542535fac74f4bba5de5b7881118a461d52834a03a3a64878d784f9af91c2e3ab9c90f17144c47cfd9951e3588c75063c0649ecd
14
TxHashRLP 0x12f8dd8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6f1ef845f84326a0769f0afdc310289f9b24decb5bb765c8d7a87a6a4ae28edffb8b7085bbd9bc78a06a7b970eea026e60ac29bb52aee10661a4222e6bdcdfb3839a80586e584586b4945a0043070275d9f6054307ee7348bd660849d90ff845f84325a0c1c54bdc72ce7c08821329bf50542535fac74f4bba5de5b7881118a461d52834a03a3a64878d784f9af91c2e3ab9c90f17144c47cfd9951e3588c75063c0649ecd
15
TxHash abcb0fd8ebb8f62ac899e5211b9ba47fe948a8efd815229cc4ed9cd781464f15
16
SenderTxHashRLP 0x12f87b8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b1ef845f84326a0769f0afdc310289f9b24decb5bb765c8d7a87a6a4ae28edffb8b7085bbd9bc78a06a7b970eea026e60ac29bb52aee10661a4222e6bdcdfb3839a80586e584586b4
17
SenderTxHash 2c4e8cd3c68a4aacae51c695e857cfc1a019037ca71d8cd1e8ca56ec4eaf55b1
18
19
TX(abcb0fd8ebb8f62ac899e5211b9ba47fe948a8efd815229cc4ed9cd781464f15)
20
Type: TxTypeFeeDelegatedValueTransferMemoWithRatio
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Signature: [{"V":"0x26","R":"0x769f0afdc310289f9b24decb5bb765c8d7a87a6a4ae28edffb8b7085bbd9bc78","S":"0x6a7b970eea026e60ac29bb52aee10661a4222e6bdcdfb3839a80586e584586b4"}]
28
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
29
FeeRatio: 30
30
FeePayerSig: [{"V":"0x25","R":"0xc1c54bdc72ce7c08821329bf50542535fac74f4bba5de5b7881118a461d52834","S":"0x3a3a64878d784f9af91c2e3ab9c90f17144c47cfd9951e3588c75063c0649ecd"}]
31
Data: 36383635366336633666
32
Hex: 12f8dd8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0b8568656c6c6f1ef845f84326a0769f0afdc310289f9b24decb5bb765c8d7a87a6a4ae28edffb8b7085bbd9bc78a06a7b970eea026e60ac29bb52aee10661a4222e6bdcdfb3839a80586e584586b4945a0043070275d9f6054307ee7348bd660849d90ff845f84325a0c1c54bdc72ce7c08821329bf50542535fac74f4bba5de5b7881118a461d52834a03a3a64878d784f9af91c2e3ab9c90f17144c47cfd9951e3588c75063c0649ecd
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": "0x1f71cc0dee26dce62a987d189650ee62a6751fcde1c7f7915abaf6c0137930da",
10
"S": "0x585115c7eecb3a88e3805a90be8cb6458f245029274a781afd2b867579ff73fa"
11
}
12
],
13
"feeRatio": "0x1e",
14
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
15
"gas": "0x174876e800",
16
"gasPrice": "0x5d21dba00",
17
"gasUsed": "0x8e94",
18
"input": "0x68656c6c6f",
19
"logs": [],
20
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
21
"nonce": "0x6",
22
"senderTxHash": "0xe68e9194c5448d17137f00aae392ade4d8a143c1ae4f3c5a2340a332bce009e4",
23
"signatures": [
24
{
25
"V": "0x25",
26
"R": "0x60e5da74cc0f7d73b57dc4b2a5bb7dd05d40757b47febc079e3a43769878abc3",
27
"S": "0x68e16f2a7bce21e16cebbe22a3624aa5edd814dd74a70ab8aaf850cd7a4b757f"
28
}
29
],
30
"status": "0x1",
31
"to": "0x75c3098be5e4b63fbac05838daaee378dd48098d",
32
"transactionHash": "0xda18ebcf420af8a0a7acf6636711540f71b8bb65bc86e960e6a6bbb665a062f3",
33
"transactionIndex": "0x6",
34
"type": "TxTypeFeeDelegatedValueTransferMemoWithRatio",
35
"typeInt": 18,
36
"value": "0x989680"
37
}
Copied!

TxTypeFeeDelegatedSmartContractDeployWithRatio

TxTypeFeeDelegatedSmartContractDeployWithRatio는 스마트 컨트랙트를 배포합니다. 주어진 부담 비율의 트랜잭션 수수료는 트랜잭션 수수료 납부자가 지불합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔액은 트랜잭션 수수료의 수수료 부담 비율만큼 감소합니다.
  2. 2.
    발신자의 잔고는 남은 트랜잭션 수수료만큼 줄어듭니다. 예를 들어 만약 feeRatio가 30이라면 30%의 트랜잭션 수수료가 수수료 납부자에 의해서 지불되고, 남은 70%는 발신자에 의해서 지불됩니다.
  3. 3.
    발신자의 논스가 1 증가합니다.
  4. 4.
    input에 기입된 코드로 스마트 컨트랙트가 배포됩니다. 배포된 주소는 영수증의 contractAddress를 통해 반환됩니다.
  5. 5.
    value KLAY가 발신자로부터 수신자로 전송됩니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedSmartContractDeployWithRatio의 유형입니다. 이는 0x2a이어야 합니다.
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라면 트랜잭션은 실패합니다.
feeRatio
uint8 (Go)
트랜잭션 수수료 납부자의 부담 비율입니다. 유효한 범위는 1에서 99 사이입니다. 영(0)은 허용되지 않습니다. 100 이상 또한 허용되지 않습니다.
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, feeRatio, 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, feeRatio, 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, feeRatio, 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, feeRatio, 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 0xf90241b9023bf902382a8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029011e80018080
6
SigHash 0x000db9e2246975d7242e2fb45279ff42bc0269e544e3b1589ea78e760775cc2c
7
Signature f845f84326a0cfe8dc29d31916b3f661a4774cb8d44d39ae700a9fb6ca04327f84bbe4de1486a01616e09ced403420cac1363d14e705b7a323518b1ce5124b16f06871c00ac424
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf90256b9023bf902382a8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029011e80945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0xedd4031ccfb27867cbd856192cec0a538ab25f6bc632f3075bf7be8368983cea
13
SignatureFeePayer f845f84325a0e29dae81defc027f059cd6a55ff74156b9c5bdb811460f09fc8d167c01aaaea1a04eba34d4d5ebbce60e4998f03b7a4658263bb21063ddf68ad3b088d670de47c8
14
TxHashRLP 0x2af902da8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029011e80f845f84326a0cfe8dc29d31916b3f661a4774cb8d44d39ae700a9fb6ca04327f84bbe4de1486a01616e09ced403420cac1363d14e705b7a323518b1ce5124b16f06871c00ac424945a0043070275d9f6054307ee7348bd660849d90ff845f84325a0e29dae81defc027f059cd6a55ff74156b9c5bdb811460f09fc8d167c01aaaea1a04eba34d4d5ebbce60e4998f03b7a4658263bb21063ddf68ad3b088d670de47c8
15
TxHash 54b6f267c2dd508ffdd9d41fd6d04847ad975cede8fcd4d5af58ca959c534946
16
SenderTxHashRLP 0x2af9027e8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029011e80f845f84326a0cfe8dc29d31916b3f661a4774cb8d44d39ae700a9fb6ca04327f84bbe4de1486a01616e09ced403420cac1363d14e705b7a323518b1ce5124b16f06871c00ac424
17
SenderTxHash 57dfef9c923cba182cca00fa65d45aaf619613d843d585d3c4026a3bd0797366
18
19
TX(54b6f267c2dd508ffdd9d41fd6d04847ad975cede8fcd4d5af58ca959c534946)
20
Type: TxTypeFeeDelegatedSmartContractDeployWithRatio
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
Signature: [{"V":"0x26","R":"0xcfe8dc29d31916b3f661a4774cb8d44d39ae700a9fb6ca04327f84bbe4de1486","S":"0x1616e09ced403420cac1363d14e705b7a323518b1ce5124b16f06871c00ac424"}]
30
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
31
FeeRatio: 30
32
CodeFormat: CodeFormatEVM
33
FeePayerSig: [{"V":"0x25","R":"0xe29dae81defc027f059cd6a55ff74156b9c5bdb811460f09fc8d167c01aaaea1","S":"0x4eba34d4d5ebbce60e4998f03b7a4658263bb21063ddf68ad3b088d670de47c8"}]
34
Hex: 2af902da8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0bb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029011e80f845f84326a0cfe8dc29d31916b3f661a4774cb8d44d39ae700a9fb6ca04327f84bbe4de1486a01616e09ced403420cac1363d14e705b7a323518b1ce5124b16f06871c00ac424945a0043070275d9f6054307ee7348bd660849d90ff845f84325a0e29dae81defc027f059cd6a55ff74156b9c5bdb811460f09fc8d167c01aaaea1a04eba34d4d5ebbce60e4998f03b7a4658263bb21063ddf68ad3b088d670de47c8
Copied!

RPC Output (예시)

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

TxTypeFeeDelegatedSmartContractExecutionWithRatio

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

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedSmartContractExecutionWithRatio의 유형입니다. 이는 0x32이어야 합니다.
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)
트랜잭션 실행에 이용되며 트랜잭션에 첨부되는 데이터입니다.
feeRatio
uint8 (Go)
트랜잭션 수수료 납부자의 부담 비율입니다. 유효한 범위는 1에서 99 사이입니다. 영(0)은 허용되지 않습니다. 100 이상 또한 허용되지 않습니다.
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, feeRatio]), 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, feeRatio]), 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, feeRatio, txSignatures])
4
SenderTxHash = keccak256(SenderTxHashRLP)
Copied!

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

트랜잭션 해시를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다.
1
TxHashRLP = type + encode([nonce, gasPrice, gas, to, value, from, input, feeRatio, txSignatures, feePayer, feePayerSignatures])
2
TxHash = keccak256(TxHashRLP)
Copied!

RLP 인코딩 (예시)

다음은 RLP 직렬화의 결과와 트랜잭션 오브젝트를 보여줍니다.
1
ChainID 0x1
2
PrivateKey 0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8
3
PublicKey.X 0x3a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d
4
PublicKey.Y 0x8072e77939dc03ba44790779b7a1025baf3003f6732430e20cd9b76d953391b3
5
SigRLP 0xf861b85cf85a328204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b21e018080
6
SigHash 0x1eeea77acecdd102a070ead80a00f388e039c11d813e6d4a63ec90bd0186b210
7
Signature f845f84326a074ccfee18dc28932396b85617c53784ee366303bce39a2401d8eb602cf73766fa04c937a5ab9401d2cacb3f39ba8c29dbcd44588cc5c7d0b6b4113cfa7b7d9427b
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf876b85cf85a328204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b21e945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0x8a13f42530219cddb490108e38c48e7b58bc02a82f4d797d8f4d85eb16f6d6a5
13
SignatureFeePayer f845f84325a04a4997524694d535976d7343c1e3a260f99ba53fcb5477e2b96216ec96ebb565a00f8cb31a35399d2b0fbbfa39f259c819a15370706c0449952c7cfc682d200d7c
14
TxHashRLP 0x32f8fc8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b21ef845f84326a074ccfee18dc28932396b85617c53784ee366303bce39a2401d8eb602cf73766fa04c937a5ab9401d2cacb3f39ba8c29dbcd44588cc5c7d0b6b4113cfa7b7d9427b945a0043070275d9f6054307ee7348bd660849d90ff845f84325a04a4997524694d535976d7343c1e3a260f99ba53fcb5477e2b96216ec96ebb565a00f8cb31a35399d2b0fbbfa39f259c819a15370706c0449952c7cfc682d200d7c
15
TxHash b204e530f2a7f010d65b6f0f7639d1e9fc8add73e3a0ff1551b11585c36d3bdb
16
SenderTxHashRLP 0x32f8a08204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b21ef845f84326a074ccfee18dc28932396b85617c53784ee366303bce39a2401d8eb602cf73766fa04c937a5ab9401d2cacb3f39ba8c29dbcd44588cc5c7d0b6b4113cfa7b7d9427b
17
SenderTxHash d5e22319cbf020d422d8ba3a07da9d99b9300826637af85b4e061805dcb2c1b0
18
19
TX(b204e530f2a7f010d65b6f0f7639d1e9fc8add73e3a0ff1551b11585c36d3bdb)
20
Type: TxTypeFeeDelegatedSmartContractExecutionWithRatio
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
To: 0x7b65B75d204aBed71587c9E519a89277766EE1d0
23
Nonce: 1234
24
GasPrice: 0x19
25
GasLimit: 0xf4240
26
Value: 0xa
27
Data: 363335333538366230303030303030303030303030303030303030303030303062633539353166303535613835663431613362363266643666363861623764653736643239396232
28
Signature: [{"V":"0x26","R":"0x74ccfee18dc28932396b85617c53784ee366303bce39a2401d8eb602cf73766f","S":"0x4c937a5ab9401d2cacb3f39ba8c29dbcd44588cc5c7d0b6b4113cfa7b7d9427b"}]
29
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
30
FeeRatio: 30
31
FeePayerSig: [{"V":"0x25","R":"0x4a4997524694d535976d7343c1e3a260f99ba53fcb5477e2b96216ec96ebb565","S":"0xf8cb31a35399d2b0fbbfa39f259c819a15370706c0449952c7cfc682d200d7c"}]
32
Hex: 32f8fc8204d219830f4240947b65b75d204abed71587c9e519a89277766ee1d00a94a94f5374fce5edbc8e2a8697c15331677e6ebf0ba46353586b000000000000000000000000bc5951f055a85f41a3b62fd6f68ab7de76d299b21ef845f84326a074ccfee18dc28932396b85617c53784ee366303bce39a2401d8eb602cf73766fa04c937a5ab9401d2cacb3f39ba8c29dbcd44588cc5c7d0b6b4113cfa7b7d9427b945a0043070275d9f6054307ee7348bd660849d90ff845f84325a04a4997524694d535976d7343c1e3a260f99ba53fcb5477e2b96216ec96ebb565a00f8cb31a35399d2b0fbbfa39f259c819a15370706c0449952c7cfc682d200d7c
Copied!

RPC Output (예시)

다음은 JSON RPC를 통해 반환된 트랜잭션 오브젝트를 보여줍니다.
1
{
2
"blockHash": "0x82983fe294d286e76486760e6904369285554e1744af16786c2393a956fb4ec4",
3
"blockNumber": "0x2",
4
"contractAddress": null,
5
"feePayer": "0x029fdce0457db02f05c4be9f67b7115cb8ea15ca",
6
"feePayerSignatures": [
7
{
8
"V": "0x26",
9
"R": "0xfd7cbb13af34814ae5072b7078e9d98ca1806859f452c7369c88fed70150ddee",
10
"S": "0x6edee3341b62a2ef1488636a9395bc236ebcdfebc76ee3c933d48a65ea89440e"
11
}
12
],
13
"feeRatio": "0x42",
14
"from": "0x0fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
15
"gas": "0x174876e800",
16
"gasPrice": "0x0",
17
"gasUsed": "0xc444",
18
"input": "0x6353586b0000000000000000000000000fcda0f2efbe1b4e61b487701ce4f2f8abc3723d",
19
"logs": [],
20
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
21
"nonce": "0xf",
22
"senderTxHash": "0x5545f40855ac02770f8738629d2e81bd3d04df3d90bb2b6e676a10e747c0d946",
23
"signatures": [
24
{
25
"V": "0x26",
26
"R": "0xaf1fdf0874424ed6d86b1408d24e2dff36046669cf9d99282bec4a50713adfa6",
27
"S": "0x20f25bf30b0d906cee734396914a5497076a7f50ce83954b09c9f46415af8f1"
28
}
29
],
30
"status": "0x1",
31
"to": "0x636f6e74726163742e6b6c6179746e0000000000",
32
"transactionHash": "0xc4af8d6b3353ad3ad240a747d185a094c6e751373c3c08c669eb37c50f01b7b1",
33
"transactionIndex": "0x8",
34
"type": "TxTypeFeeDelegatedSmartContractExecutionWithRatio",
35
"typeInt": 50,
36
"value": "0xa"
37
}
Copied!

TxTypeFeeDelegatedAccountUpdateWithRatio

TxTypeFeeDelegatedAccountUpdateWithRatio는 해당 계정의 키를 업데이트합니다. 주어진 부담 비율의 트랜잭션 수수료는 트랜잭션 수수료 납부자가 지불합니다. 이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다.
  1. 1.
    트랜잭션 수수료 납부자의 잔액은 트랜잭션 수수료의 수수료 부담 비율만큼 감소합니다.
  2. 2.
    발신자의 잔고는 남은 트랜잭션 수수료만큼 줄어듭니다. 예를 들어 만약 feeRatio가 30이라면 30%의 트랜잭션 수수료가 수수료 납부자에 의해서 지불되고, 남은 70%는 발신자에 의해서 지불됩니다.
  3. 3.
    발신자의 논스가 1 증가합니다.
  4. 4.
    계정의 키는 key로 업데이트됩니다.
  5. 5.
    이 트랜잭션이 실행되고 나면 추후에 계정에서 보내진 트랜잭션은 이 key에 의해 검증됩니다.

속성

속성
타입
설명
type
uint8 (Go)
TxTypeFeeDelegatedCancelWithRatio의 유형입니다. 이는 0x22이어야 합니다.
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입니다.
feeRatio
uint8 (Go)
트랜잭션 수수료 납부자의 부담 비율입니다. 유효한 범위는 1에서 99 사이입니다. 영(0)은 허용되지 않습니다. 100 이상 또한 허용되지 않습니다.
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, feeRatio]), 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, feeRatio]), 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, feeRatio, 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, feeRatio, 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 0xf84ab845f843228204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d1e018080
6
SigHash 0x706ba7cd01e44008077a2abeafc3aacd64cbf210f49c64983f295a2e4cc03216
7
Signature f845f84326a00e5929f96dec2b41343a9e6f0150eef08741fe7dcece88cc5936c49ed19051dca05a07b07017190e0baba32bdf6352f5a358a2798ed3c56e704a63819b87cf8e3f
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf85fb845f843228204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d1e945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0xd2a51cefec667747890e6bd11fd068e8796b5446f77e152367eaa3cf98c96b30
13
SignatureFeePayer f845f84326a0cf8d102de7c6b0a41d3f02aefb7e419522341734c98af233408298d0c424c04ba00286f89cab4668f728d7c269997116a49b80cec8776fc64e60588a9268571e35
14
TxHashRLP 0x22f8e58204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d1ef845f84326a00e5929f96dec2b41343a9e6f0150eef08741fe7dcece88cc5936c49ed19051dca05a07b07017190e0baba32bdf6352f5a358a2798ed3c56e704a63819b87cf8e3f945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0cf8d102de7c6b0a41d3f02aefb7e419522341734c98af233408298d0c424c04ba00286f89cab4668f728d7c269997116a49b80cec8776fc64e60588a9268571e35
15
TxHash 276f02c25ca4ced081dcfbb836755ced574993b047e648a583ed8d4144b3813f
16
SenderTxHashRLP 0x22f8898204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d1ef845f84326a00e5929f96dec2b41343a9e6f0150eef08741fe7dcece88cc5936c49ed19051dca05a07b07017190e0baba32bdf6352f5a358a2798ed3c56e704a63819b87cf8e3f
17
SenderTxHash e1d87538509549f4a1eb418f986bc53dc77b7eec3b2150f75cd787951d3e4b7f
18
19
TX(276f02c25ca4ced081dcfbb836755ced574993b047e648a583ed8d4144b3813f)
20
Type: TxTypeFeeDelegatedAccountUpdateWithRatio
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":"0xe5929f96dec2b41343a9e6f0150eef08741fe7dcece88cc5936c49ed19051dc","S":"0x5a07b07017190e0baba32bdf6352f5a358a2798ed3c56e704a63819b87cf8e3f"}]
27
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
28
FeeRatio: 30
29
FeePayerSig: [{"V":"0x26","R":"0xcf8d102de7c6b0a41d3f02aefb7e419522341734c98af233408298d0c424c04b","S":"0x286f89cab4668f728d7c269997116a49b80cec8776fc64e60588a9268571e35"}]
30
Hex: 22f8e58204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0ba302a1033a514176466fa815ed481ffad09110a2d344f6c9b78c1d14afc351c3a51be33d1ef845f84326a00e5929f96dec2b41343a9e6f0150eef08741fe7dcece88cc5936c49ed19051dca05a07b07017190e0baba32bdf6352f5a358a2798ed3c56e704a63819b87cf8e3f945a0043070275d9f6054307ee7348bd660849d90ff845f84326a0cf8d102de7c6b0a41d3f02aefb7e419522341734c98af233408298d0c424c04ba00286f89cab4668f728d7c269997116a49b80cec8776fc64e60588a9268571e35
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": "0xfa3690925bae82ba662abe6d3af8993b7a7994d9f922cb1ae83c59c4a26a3b70",
10
"S": "0x2bd481ddf40cb813dde5f67db0e3a6ad9ea46758ef97580a709b301c21530246"
11
}
12
],
13
"feeRatio": "0xb",
14
"from": "0x636f6c696e332e6b6c6179746e00000000000000",
15
"gas": "0x174876e800",
16
"gasPrice": "0x5d21dba00",
17
"gasUsed": "0xdac0",
18
"key": "0x02a102c8785266510368d9372badd4c7f4a94b692e82ba74e0b5e26b34558b0f081447",
19
"logs": [],
20
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
21
"nonce": "0x0",
22
"senderTxHash": "0x74be8f01f10a497dbe9ed10659ac8c4579b37f8b5022b9f7eec6362262d44845",
23
"signatures": [
24
{
25
"V": "0x25",
26
"R": "0xd17d2ae2290b35c560289797c955fa5dc1cc25606cfd198584665917da6795ff",
27
"S": "0x7bc0450ff7319ccdbf50d38095501b895717cac775c6897d2381e7182aa25742"
28
}
29
],
30
"status": "0x1",
31
"transactionHash": "0x90ccbf85ffd1f7e74620840fd9d270e030c6719e3c7b70bb8796c1cedf02fe88",
32
"transactionIndex": "0x1",
33
"type": "TxTypeFeeDelegatedAccountUpdateWithRatio",
34
"typeInt": 34
35
}
Copied!

TxTypeFeeDelegatedCancelWithRatio

TxTypeFeeDelegatedCancelWithRatio는 트랜잭션 풀에서 같은 논스를 가진 트랜잭션을 취소합니다. 자세한 내용은 TxTypeCancel를 참조하세요.
이 트랜잭션 타입은 다음과 같은 변경 사항을 만듭니다. 1. 트랜잭션 수수료 납부자의 잔액은 트랜잭션 수수료의 주어진 수수료 부담 비율만큼 감소합니다. 2. 발신자의 잔고는 남은 트랜잭션 수수료만큼 줄어듭니다. 3. 발신자의 논스가 1 증가합니다.

속성

속성
설명
타입
type
uint8 (Go)
TxTypeFeeDelegatedCancelWithRatio의 유형입니다. 이는 0x3a이어야 합니다.
nonce
uint64 (Go)
발신자의 트랜잭션을 고유하게 식별하기 위해 사용되는 값입니다. 발신자가 동일한 논스를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다.
gasPrice
*big.Int (Go)
발신자가 트랜잭션 수수료로 지불하는 가스의 단가입니다(단위는 peb). 트랜잭션 수수료는 gas * gasPrice으로 계산됩니다. 예를 들어, 만약 가스가 10이 필요하고 gasPrice가 10^18이라면 발신자는 트랜잭션을 위해 10 KLAY를 지급해야 합니다. KLAY의 단위를 참고해주세요.
gas
uint64 (Go)
트랜잭션에서 사용하도록 허락된 최대 트랜잭션 수수료입니다.
from
common.Address (Go)
발신자의 주소입니다. 자세한 내용은 트랜잭션의 서명 검증을 참고해주세요.
feeRatio
uint8 (Go)
트랜잭션 수수료 납부자의 부담 비율입니다. 유효한 범위는 1에서 99 사이입니다. 영(0)은 허용되지 않습니다. 100 이상 또한 허용되지 않습니다.
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, feeRatio]), 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, feeRatio]), 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, feeRatio, 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, gasPricke, gas, from, feeRatio, 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 0xe4a0df3a8204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0b1e018080
6
SigHash 0xeccd1585e8e105bc034a72190c3e9312b5407736686aa0d34b1ad75320871014
7
Signature f845f84326a072efa47960bef40b536c72d7e03ceaf6ca5f6061eb8a3eda3545b1a78fe52ef5a062006ddaf874da205f08b3789e2d014ae37794890fc2e575bf75201563a24ba9
8
FeePayerPrivateKey 0xb9d5558443585bca6f225b935950e3f6e69f9da8a5809a83f51c3365dff53936
9
FeePayerPublicKey.X 0x327434d4cfc66ef8857d431419e9deebdc53a3e415edcc55382e2d417b8dd102
10
FeePayerPublicKey.Y 0x65fc97045707faf7b8f81ac65089d4cc71f69ad0bf1bc8559bc24f13fc284ced
11
SigRLPFeePayer 0xf839a0df3a8204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0b1e945a0043070275d9f6054307ee7348bd660849d90f018080
12
SigHashFeePayer 0xf71b0b22d72ef59a063a865ee844e1ba0a103d707f06fb7013b3372ed169c705
13
SignatureFeePayer f845f84326a06ba5ef20c3049323fc94defe14ca162e28b86aa64f7cf497ac8a5520e9615614a04a0a0fc61c10b416759af0ce4ce5c09ca1060141d56d958af77050c9564df6bf
14
TxHashRLP 0x3af8c18204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0b1ef845f84326a072efa47960bef40b536c72d7e03ceaf6ca5f6061eb8a3eda3545b1a78fe52ef5a062006ddaf874da205f08b3789e2d014ae37794890fc2e575bf75201563a24ba9945a0043070275d9f6054307ee7348bd660849d90ff845f84326a06ba5ef20c3049323fc94defe14ca162e28b86aa64f7cf497ac8a5520e9615614a04a0a0fc61c10b416759af0ce4ce5c09ca1060141d56d958af77050c9564df6bf
15
TxHash 63604ebf68bfee51b2e3f54ddb2f19f9ea72d32b3fc70877324531ecda25817a
16
SenderTxHashRLP 0x3af8658204d219830f424094a94f5374fce5edbc8e2a8697c15331677e6ebf0b1ef845f84326a072efa47960bef40b536c72d7e03ceaf6ca5f6061eb8a3eda3545b1a78fe52ef5a062006ddaf874da205f08b3789e2d014ae37794890fc2e575bf75201563a24ba9
17
SenderTxHash c0818be4cffbacfe29be1134e0267e10fd1afb6571f4ccc95dcc67a788bab5e7
18
19
TX(63604ebf68bfee51b2e3f54ddb2f19f9ea72d32b3fc70877324531ecda25817a)
20
Type: TxTypeFeeDelegatedCancelWithRatio
21
From: 0xa94f5374Fce5edBC8E2a8697C15331677e6EbF0B
22
Nonce: 1234
23
GasPrice: 0x19
24
GasLimit: 0xf4240
25
Signature: [{"V":"0x26","R":"0x72efa47960bef40b536c72d7e03ceaf6ca5f6061eb8a3eda3545b1a78fe52ef5","S":"0x62006ddaf874da205f08b3789e2d014ae37794890fc2e575bf75201563a24ba9"}]
26
FeePayer: 0x5A0043070275d9f6054307Ee7348bD660849D90f
27
FeeRatio: 30