기본
TxTypeLegacyTransaction
TxTypeLegacyTransaction은 클레이튼에 이전에 존재했던 트랜잭션 유형을 나타냅니다. 이 트랜잭션 유형은 호환성을 지원하기 위해 존재하므로, AccountKeyLegacy와 연결된 EOA에서만 작동합니다. 다른 계정 키 유형과 연결된 EOA는 TxTypeValueTransfer, TxTypeSmartContractExecution 등과 같은 다른 트랜잭션 유형을 사용해야 합니다. 이 유형의 트랜잭션은 계정 생성, 토큰 전송, 스마트 컨트랙트 배포, 스마트 컨트랙트 실행, 또는 앞서 언급한 여러 가지 작업을 수행할 수 있습니다. 이 트랜잭션 유형은 다음과 같은 변경을 시작합니다.
- 발신자의 잔액이 트랜잭션 수수료만큼 감소합니다.
- 발신자의 nonce가 1 증가합니다.
- 클레이튼에
to
가 존재하지 않는 경우, AccountKeyLegacy와 연관된 EOA가 생성됩니다. - 발신자에서 수신자에게
value
KLAY가 전송됩니다. to
가 0이면 스마트 컨트랙트 배포 트랜잭션으로 간주합니다. 스마트 컨트랙트 코드는input
으로 전달되어야 합니다.to
가 스마트 컨트랙트인 경우input
에 지정된 스마트 컨트랙트 함수가 실행됩니다.
속성
속성 | 유형 | 설명 |
---|---|---|
value | *big.Int (Go) | 전송할 peb 의 KLAY 금액입니다. |
to | *common.Address (Go) | 이체된 값을 받을 계정 주소입니다. |
input | []byte (Go) | 트랜잭션 실행에 사용되는 트랜잭션에 첨부된 데이터입니다. |
v, r, s | *big.Int (Go) | 수신자가 발신자의 주소를 얻을 수 있도록 발신자가 생성한 암호화 서명입니다. |
nonce | uint64 (Go) | 발신자의 트랜잭션을 고유하게 식별하는 데 사용되는 값입니다. 발신자가 동일한 nonce를 가진 두 개의 트랜잭션을 생성하면 하나만 실행됩니다. |
gas | uint64 (Go) | 트랜잭션이 사용할 수 있는 트랜잭션 수수료의 최대 금액입니다. |
gasPrice | *big.Int (Go) | 발신자가 토큰으로 지불할 금액을 구하기 위한 승수입니다. 발신자가 지불할 토큰의 양은 gas * gasPrice 를 통해 계산됩니다. 예를 들어, 가스값이 10이고 가스가격이 10^18이면 발신자는 트랜잭션 수수료로 10 KLAY를 지불하게 됩니다. [KLAY 단위]를 참고하세요. |
서명을 위한 RLP 인코딩
이 트랜잭션 유형의 서명을 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다:
SigRLP = encode([nonce, gasPrice, gas, to, value, input, chainid, 0, 0])SigHash = keccak256(SigRLP)Signature = sign(SigHash, <private key>)
SenderTxHash용 RLP 인코딩
SenderTxHash를 만들려면 다음과 같이 RLP 직렬화를 수행해야 합니다:
SenderTxHashRLP = encode([nonce, gasPrice, gas, to, value, input, v, r, s])SenderTxHash = keccak256(SenderTxHashRLP)