Transaction
klay_call
블록체인에 트랜잭션을 생성하지 않고 즉시 새 메시지 호출을 합니다. 결과 데이터를 반환하거나 또는 에러가 발생하면 JSON RPC의 에러 객체를 반환합니다.
Parameters
Name | Type | Description |
---|---|---|
callObject | Object | The transaction call object. See the next table for the object's properties. |
blockNumberOrHash | QUANTITY | TAG | HASH | Integer or hexadecimal block number, or the string |
NOTE: In versions earlier than Klaytn v1.7.0, only integer block number, the string "earliest"
and "latest"
are available.
callObject
has the following properties:
Name | Type | Description |
---|---|---|
from | 20-byte DATA | (선택 사항) 트랜잭션을 발신한 주소입니다. |
to | 20-byte DATA | (새 트랜잭션 배포 테스트 시 선택 사항) 트랜잭션을 수신하는 주소입니다. |
gas | QUANTITY | (선택 사항) 트랜잭션 실행을 위해 설정한 가스양의 정숫값입니다. |
gasPrice | QUANTITY | (선택 사항) 가스당 가격, 즉 gasPrice의 정숫값입니다. |
value | QUANTITY | (선택 사항) 트랜잭션을 통해 전송하고자 하는 송금액의 정숫값입니다. |
input | DATA | (optional) Hash of the method signature and encoded parameters. It replaces |
Return Value
Type | Description |
---|---|
DATA | 실행된 컨트랙트의 리턴값입니다. |
컨트랙트를 배포했다면 klay_getTransactionReceipt를 사용해 컨트랙트 주소를 확인하세요.
Error
문제가 발생할 경우 JSON RPC의 에러 객체를 반환합니다. 예를 들어, 어떤 메시지 호출이 REVERT
opcode로 종료되면 "evm: execution reverted"라는 메시지의 에러 객체가 생성됩니다.
Example
klay_estimateGas
Generates and returns an estimate of how much gas is necessary to allow the transaction to complete. 이때 발생한 트랜잭션은 블록체인에 추가되지 않습니다. Klaytn 가상머신의 메커니즘, 노드 성능 등의 다양한 원인에 의해 추정치가 실제 사용된 가스양보다 훨씬 클 수도 있습니다.
Parameters
Name | Type | Description |
---|---|---|
callObject | Object | The transaction call object. See the next table for the object's properties. |
callObject
has the following properties:
Name | Type | Description |
---|---|---|
from | 20-byte DATA | (optional) The address the transaction is sent from. |
to | 20-byte DATA | (optional when testing the deployment of a new contract) The address the transaction is directed to. |
gas | QUANTITY | (선택 사항) 가스 추정을 위해 제공되는 가스 한도의 정숫값입니다. 가스 한도를 지정하지 않으면 Klaytn 노드는 지정된 가스 한도를 상한으로 설정합니다. |
gasPrice | QUANTITY | (optional) Integer of the gasPrice used for each paid gas. |
value | QUANTITY | (optional) Integer of the value sent with this transaction. |
input | DATA | (optional) Hash of the method signature and encoded parameters. It replaces |
Return Value
Type | Description |
---|---|
QUANTITY | The amount of gas used. |
Example
klay_estimateComputationCost
트랜잭션을 실행하는 데에 들 연산 비용의 추정치를 생성하여 반환합니다. Klaytn은 한 트랜잭션을 실행하는 데에 너무 많은 시간이 걸리지 않도록 하기 위해 현재 트랜잭션당 연산 비용을 100000000
으로 제한합니다. 이때 발생한 트랜잭션은 klay_estimateGas와 마찬가지로 블록체인에 추가되지 않습니다.
Parameters
klay_call의 매개변수들을 보면 모든 속성이 선택사항인 것을 볼 수 있습니다. 하지만 가스 한도를 지정하지 않으면, Klaytn 노드는 기본 가스 한도(uint64 / 2) 를 상한으로 설정합니다.
Return Value
Type | Description |
---|---|
QUANTITY | 사용된 연산 비용입니다. |
Example
klay_getTransactionByBlockHashAndIndex
Returns information about a transaction by block hash and transaction index position. This API works only on RPC call, not on JavaScript console.
Parameters
Type | Description |
---|---|
32-byte DATA | Hash of a block. |
QUANTITY | Integer of the transaction index position. |
Return Value
klay_getTransactionByHash를 참고하세요.
Example
klay_getTransactionByBlockNumberAndIndex
Returns information about a transaction by block number and transaction index position. This API works only on RPC call, not on JavaScript console.
Parameters
Type | Description |
---|---|
QUANTITY | TAG | Integer or hexadecimal block number, or the string |
QUANTITY | The transaction index position. |
NOTE: In versions earlier than Klaytn v1.7.0, only integer block number, the string "earliest"
and "latest"
are available.
Return Value
Example
klay_getTransactionByHash
Returns the information about a transaction requested by transaction hash. This API works only on RPC call, not on JavaScript console.
Parameters
Type | Description |
---|---|
32-byte DATA | Hash of a transaction. |
Return Value
Object
- A transaction object, or null
when no transaction was found:
Name | Type | Description |
---|---|---|
blockHash | 32-byte DATA | Hash of the block where this transaction was in. |
blockNumber | QUANTITY | Block number where this transaction was in. |
codeFormat | String | (선택사항) 스마트 컨트랙트 코드의 코드 형식입니다. |
feePayer | 20-byte DATA | (선택사항) 트랜잭션 수수료 납부자의 주소입니다. |
feePayerSignatures | Array | (선택사항) 트랜잭션 수수료 납부자의 서명 객체들로 이루어진 배열입니다. 각 서명 객체에는 (V, R, S) 등 세 필드가 있습니다. V는 ECDSA 복구 ID를 담고 있습니다. R은 ECDSA 서명 r을 담고 있고 S는 ECDSA 서명 s를 담고 있습니다. |
feeRatio | QUANTITY | (선택사항) 트랜잭션 수수료 납부자의 부담 비율입니다. 이 값이 30이면, 트랜잭션 수수료의 30%를 트랜잭션 수수료 납부자가 지불합니다. 나머지 70%는 트랜잭션 발신자가 지불합니다. |
from | 20-byte DATA | Address of the sender. |
gas | QUANTITY | Gas provided by the sender. |
gasPrice | QUANTITY | Gas price provided by the sender in peb. |
hash | 32-byte DATA | Hash of the transaction. |
humanReadable | Boolean | (선택사항) Human-Readable Address이면 |
key | String | (선택사항) 새로 생성된 계정의 키입니다. |
input | DATA | (선택사항) 트랜잭션과 함께 전송된 데이터입니다. |
nonce | QUANTITY | The number of transactions made by the sender prior to this one. |
senderTxHash | 32-byte DATA | 트랜잭션 발신자만 서명한 트랜잭션의 해시입니다. 이에 대한 자세한 내용은 SenderTxHash를 참고하세요. 이 값은 수수료 위임된 트랜잭션이 아닌 경우의 |
signature | Array | 서명 객체의 배열입니다. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
to | 20-byte DATA | Address of the receiver. |
transactionIndex | QUANTITY | Integer of the transaction index position in the block. |
type | String | 트랜잭션의 유형을 나타내는 문자열입니다. |
typeInt | QUANTITY | An integer representing the type of the transaction. |
value | QUANTITY | peb로 전송된 값입니다. |
Example
klay_getTransactionBySenderTxHash
발신자 트랜잭션 해시로 조회한 트랜잭션의 정보를 반환합니다. This API works only on RPC call, not on JavaScript console. 이 API는 --sendertxhashindexing
에 의해 인덱싱 기능이 활성화되어 있을 때만 올바른 결과를 반환합니다. klay_isSenderTxHashIndexingEnabled를 호출하여 확인할 수 있습니다.
Parameters
Type | Description |
---|---|
32-byte DATA | Hash of a transaction that is signed only by the sender. See SenderTxHash. |
Return Value
Object
- A transaction object, or null
when no transaction was found:
Name | Type | Description |
---|---|---|
blockHash | 32-byte DATA | Hash of the block where this transaction was in. |
blockNumber | QUANTITY | Block number where this transaction was in. |
codeFormat | String | (optional) The code format of smart contract code. |
feePayer | 20-byte DATA | 트랜잭션 수수료 납부자의 주소입니다. |
feePayerSignatures | Array | 트랜잭션 수수료 납부자의 서명 객체들로 이루어진 배열입니다. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
feeRatio | QUANTITY | (optional) Fee ratio of the fee payer. If it is 30, 30% of the fee will be paid by the fee payer. 70% will be paid by the sender. |
from | 20-byte DATA | Address of the sender. |
gas | QUANTITY | Gas provided by the sender. |
gasPrice | QUANTITY | Gas price provided by the sender in peb. |
hash | 32-byte DATA | Hash of the transaction. |
humanReadable | Boolean | (optional) |
key | String | (optional) Key of the newly created account. |
input | DATA | (optional) The data sent along with the transaction. |
nonce | QUANTITY | The number of transactions made by the sender prior to this one. |
senderTxHash | 32-byte DATA | Hash of a transaction that is signed only by the sender. See SenderTxHash. This value is always the same as |
signature | Array | An array of signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
to | 20-byte DATA | Address of the receiver. |
transactionIndex | QUANTITY | Integer of the transaction index position in the block. |
type | String | A string representing the type of the transaction. |
typeInt | QUANTITY | An integer representing the type of the transaction. |
value | QUANTITY | Value transferred in peb. |
Example
klay_getTransactionReceipt
Returns the receipt of a transaction by transaction hash.
NOTE: The receipt is not available for pending transactions.
Parameters
Name | Type | Description |
---|---|---|
Hash | 32-byte DATA | Hash of a transaction. |
Return Value
Object
- A transaction receipt object, or null
when no receipt was found
Name | Type | Description |
---|---|---|
blockHash | 32-byte DATA | Hash of the block where this transaction was in. |
blockNumber | QUANTITY | The block number where this transaction was in. |
codeFormat | String | (optional) The code format of smart contract code. |
contractAddress | DATA | The contract address created, if the transaction was a contract creation, otherwise |
feePayer | 20-byte DATA | (optional) Address of the fee payer. |
feePayerSignatures | Array | (optional) An array of fee payer's signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
feeRatio | QUANTITY | (optional) Fee ratio of the fee payer. If it is 30, 30% of the fee will be paid by the fee payer. 70% will be paid by the sender. |
from | 20-byte DATA | Address of the sender. |
gas | QUANTITY | Gas provided by the sender. |
effectiveGasPrice | QUANTITY | The actual value per gas deducted from the senders account. |
gasPrice | QUANTITY | Gas price provided by the sender in peb. |
gasUsed | QUANTITY | The amount of gas used by this specific transaction alone. |
humanReadable | Boolean | (optional) |
key | String | (optional) Key of the newly created account. |
input | DATA | (optional) The data sent along with the transaction. |
logs | Array | Array of log objects, which this transaction generated. |
logsBloom | 256-byte DATA | Bloom filter for light clients to quickly retrieve related logs. |
nonce | QUANTITY | The number of transactions made by the sender prior to this one. |
senderTxHash | (optional) 32-byte DATA | Hash of the tx without the fee payer's address and signature. This value is always the same as the value of transactionHash for non fee-delegated transactions. |
signature | Array | An array of signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
status | QUANTITY | Either |
txError | QUANTITY | (optional) detailed error code if |
to | 20-byte DATA | Address of the receiver. |
transactionHash | 32-byte DATA | Hash of the transaction. |
transactionIndex | QUANTITY | Integer of the transaction index position in the block. |
type | String | A string representing the type of the transaction. |
typeInt | QUANTITY | An integer representing the type of the transaction. |
value | QUANTITY | Value transferred in peb. |
Example
klay_getTransactionReceiptBySenderTxHash
SenderTxHash로 조회한 트랜잭션의 영수증을 반환합니다.
NOTE: The receipt is not available for pending transactions. Please note that this API returns correct result only if indexing feature is enabled by --sendertxhashindexing
. This can be checked by call klay_isSenderTxHashIndexingEnabled.
Parameters
Name | Type | Description |
---|---|---|
Hash | 32-byte DATA | 트랜잭션 납부자(feePayer)에 의해 서명되기 이전의 트랜잭션의 해시입니다. (즉 senderTransactionHash입니다.) |
Return Value
Object
- A transaction receipt object, or null
when no receipt was found
Name | Type | Description |
---|---|---|
blockHash | 32-byte DATA | Hash of the block where this transaction was in. |
blockNumber | QUANTITY | The block number where this transaction was in. |
codeFormat | String | (optional) The code format of smart contract code. |
contractAddress | DATA | The contract address created, if the transaction was a contract creation, otherwise |
feePayer | 20-byte DATA | Address of the fee payer. |
feePayerSignatures | Array | An array of fee payer's signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
feeRatio | QUANTITY | (optional) Fee ratio of the fee payer. If it is 30, 30% of the fee will be paid by the fee payer. 70% will be paid by the sender. |
from | 20-byte DATA | Address of the sender. |
gas | QUANTITY | Gas provided by the sender. |
gasPrice | QUANTITY | Gas price provided by the sender in peb. |
gasUsed | QUANTITY | 이 트랜잭션에서만 사용된 가스양입니다. |
humanReadable | Boolean | (optional) |
key | String | (optional) Key of the newly created account. |
input | DATA | (optional) The data sent along with the transaction. |
logs | Array | Array of log objects, which this transaction generated. |
logsBloom | 256-byte DATA | Bloom filter for light clients to quickly retrieve related logs. |
nonce | QUANTITY | The number of transactions made by the sender prior to this one. |
senderTxHash | (선택사항) 32바이트 크기 DATA | 트랜잭션 수수료 납부자의 주소와 서명이 없는 트랜잭션 해시입니다. 이 값은 수수료 위임된 트랜잭션이 아닌 경우의 transactionHash의 값과 항상 동일합니다. |
signature | Array | An array of signature objects. A signature object contains three fields (V, R, and S). V contains ECDSA recovery id. R contains ECDSA signature r while S contains ECDSA signature s. |
status | QUANTITY | Either |
txError | QUANTITY | (선택사항) |
to | 20-byte DATA | Address of the receiver. |
transactionHash | 32-byte DATA | Hash of the transaction. |
transactionIndex | QUANTITY | Integer of the transaction index position in the block. |
type | String | A string representing the type of the transaction. |
typeInt | QUANTITY | An integer representing the type of the transaction. |
value | QUANTITY | Value transferred in peb. |
Example
klay_sendRawTransaction
Creates a new message call transaction or a contract creation for signed transactions.
Parameters
Type | Description |
---|---|
DATA | The signed transaction data. |
Return Value
Type | Description |
---|---|
32-byte DATA | The transaction hash or the zero hash if the transaction is not yet available. |
If you deployed a contract, use klay_getTransactionReceipt to get the contract address.
Example
klay_sendTransaction
주어진 파라미터로 트랜잭션을 구성한 다음, 트랜잭션 발신자의 개인키로 트랜잭션에 서명하고 트랜잭션을 Klaytn 네트워크에 전송합니다.
NOTE: The address to sign with must be unlocked.
Parameters
필수적으로 있어야 하는 파라미터들은 트랜잭션 타입에 따라 다릅니다. Working with Klaytn Transaction Types에서 적절한 파라미터를 확인하십시오.
Return Value
Type | Description |
---|---|
32-byte DATA | 트랜잭션 해시 |
If you deployed a contract, use klay_getTransactionReceipt to get the contract address.
Example
klay_sendTransactionAsFeePayer
주어진 파라미터로 트랜잭션을 구성한 다음, 트랜잭션 수수료 납부자의 개인키로 트랜잭션에 서명하고 트랜잭션을 Klaytn 네트워크에 전송합니다. 이 API는 오직 수수료 위임 트랜잭션(부분 수수료 위임 트랜잭션 포함)들만 지원합니다.
참고: 서명하려는 트랜잭션 수수료 납부자의 주소는 잠금 해제되어 있어야 합니다.
Parameters
The required parameters depend on the transaction type. Check the proper parameters in Working with Klaytn Transaction Types.
Return Value
Type | Description |
---|---|
32-byte DATA | The transaction hash |
If you deployed a contract, use klay_getTransactionReceipt to get the contract address.
Example
klay_signTransaction
주어진 파라미터로 트랜잭션을 구성한 다음, 트랜잭션 발신자의 개인키로 트랜잭션에 서명합니다. 이 메서드는 발신자 서명을 생성하거나, 최종적으로 Klaytn 네트워크에 전송할 준비를 마친 raw Transaction을 만들 때 사용할 수 있습니다.
NOTE: The address to sign with must be unlocked.
Parameters
The required parameters depend on the transaction type. Check the proper parameters in Working with Klaytn Transaction Types.
Return Value
Type | Description |
---|---|
raw | 서명된 rawTransaction을 반환합니다. |
tx | 발신자 서명을 포함한 트랜잭션 객체입니다. |
Example
klay_signTransactionAsFeePayer
주어진 파라미터로 트랜잭션을 구성한 다음, 트랜잭션 수수료 납부자의 개인키로 트랜잭션에 서명합니다. 이 메서드는 트랜잭션 수수료 납부자 서명을 생성하거나, 최종적으로 Klaytn 네트워크에 전송할 준비를 마친 raw Transaction을 만들 때 사용할 수 있습니다. 수수료 납부자 서명을 추출하고 싶다면, 결과값에서 feePayerSignatures
을 사용하십시오. 발신자 서명이 첨부되어 있지 않다면( tx
에 있는 signatures
가 비어 있는 상태), raw
트랜잭션은 최종 상태가 아닙니다.
NOTE: The fee payer address to sign with must be unlocked.
Parameters
The required parameters depend on the transaction type. Check the proper parameters in Working with Klaytn Transaction Types.
Return Value
Type | Description |
---|---|
raw | Signed raw transaction |
tx | 트랜잭션 수수료 납부자 서명을 포함한 트랜잭션 객체입니다. |
Example
txError: 트랜잭션 실행 실패에 대한 상세한 설명
Klaytn은 트랜잭션 영수증의 txError
필드를 통해 트랜잭션 실행이 실패한 원인을 알려드립니다. 이 필드는 트랜잭션 실행이 실패한 경우에만 존재합니다. 스토리지와 네트워크 대역폭을 절약하기 위해 txError
는 정숫값으로 표현됩니다. 아래 표는 txError
코드와 의미를 설명합니다.
Error Code | Description |
---|---|
0x02 | 스마트 컨트랙트 실행 도중 VM 오류가 발생하였습니다. |
0x03 | 최대 호출 뎁스를 초과하였습니다. |
0x04 | 컨트랙트 주소가 충돌합니다. |
0x05 | 컨트랙트 생성 코드의 스토리지의 가스가 부족합니다. |
0x06 | evm: 최대 코드 크기를 초과하였습니다. |
0x07 | 가스가 부족합니다. |
0x08 | evm: 쓰기가 방지되어 있습니다. |
0x09 | evm: 실행이 번복되었습니다. |
0x0a | 트랜잭션의 Opcode 연산 비용의 한계가 (100000000)에 도달하였습니다. |
0x0b | 계정이 이미 존재합니다. |
0x0c | 프로그램 계정(예를 들어, 코드 및 스토리지를 갖고 있는 계정)이 아닙니다. |
0x0d | Human-readable address가 지원되지 않습니다. |
0x0e | 트랜잭션 수수료의 비율이 [1, 99] 범위를 벗어났습니다. |
0x0f | AccountKeyFail을 업데이트할 수 없습니다. |
0x10 | 다른 계정 키 유형입니다. |
0x11 | AccountKeyNil을 계정으로 초기화할 수 없습니다. |
0x12 | 공개키가 곡선상에 없습니다. |
0x13 | 키의 weight가 0입니다. |
0x14 | 키를 일련화할 수 없습니다. |
0x15 | 중복된 키입니다. |
0x16 | 가중 합 오버플로우가 발생하였습니다. |
0x17 | 만족시킬 수 없는 임계 값입니다. 키들의 가중 합이 임계 값보다 작습니다. |
0x18 | 길이가 0입니다. |
0x19 | 길이가 너무 깁니다. |
0x1a | nested composite 타입입니다. |
0x1b | 기존 트랜잭션은 기존 계정 키를 사용해야 합니다. |
0x1c | 더는 지원하지 않는 기능입니다. |
0x1d | 지원하지 않습니다. |
0x1e | 스마트 컨트랙트 코드 형식이 잘못되었습니다. |
klay_getDecodedAnchoringTransactionByHash
주어진 트랜잭션 해시에 대응하는 트랜잭션의 앵커링 데이터를 디코딩하여 반환합니다.
Parameters
Type | Description |
---|---|
32-byte DATA | Hash of a transaction. |
Return Value
Name | Type | Description |
---|---|---|
BlockHash | 32-byte DATA | 이 앵커링 트랜잭션이 수행된 자식 체인의 블록 해시입니다. |
BlockNumber | QUANTITY | 이 앵커링 트랜잭션이 수행된 자식 체인의 블록 번호입니다. |
ParentHash | 32-byte DATA | Hash of the parent block. |
TxHash | 32-byte DATA | The root of the transaction trie of the block. |
StateRootHash | 32-byte DATA | The root of the final state trie of the block. |
ReceiptHash | 32-byte DATA | The root of the receipts trie of the block. |
BlockCount | QUANTITY | 이 앵커링 주기 동안 생성된 블록 수입니다. 대부분의 경우 이 숫자는 자식 체인의 |
TxCount | QUANTITY | 이 앵커링 주기 동안 자식 체인에서 생성된 트랜잭션 수 입니다. |
Example
klay_resend
Resends a transaction.
It will remove the given transaction from the pool and reinsert it with the new gas price and limit.
NOTE: The address to sign with must be unlocked.
Parameters:
Name | Type | Description |
---|---|---|
transactionArgs | Object | An object of transaction arguments. See the table below for the object's properties. |
gas price | QUANTITY | Integer of the gasPrice to change |
gas | QUANTITY | (optional) Integer of the gas to change |
The required parameters for transactionArgs depend on the transaction type. Check the proper parameters in Working with Klaytn Transaction Types.
Return Value
Type | Description |
---|---|
32-byte DATA | The transaction hash |
Example
Last updated