본문으로 건너뛰기

트랜잭션

call


caver.klay.call(callObject [, defaultBlock] [, callback])

메시지 호출 트랜잭션을 실행하는데, 이 트랜잭션은 블록체인에 채굴되지 않고 노드의 Klaytn 가상머신에서 직접 실행됩니다.

매개변수

이름유형설명
callObjectObject호출에 대해 from 속성이 선택 사항이라는 차이점이 있는 트랜잭션 객체입니다. 트랜잭션 객체의 데이터 필드에 인코딩된 함수 호출을 설정해야 합니다.
defaultBlockNumber | String(선택 사항) 이 매개변수를 전달하면 caver.klay.defaultBlock으로 설정된 기본 블록이 사용되지 않습니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개 변수로 오류 개체를 반환하고 두 번째 매개 변수로 결과를 반환합니다.

리턴 값

PromiseString을 반환합니다: 호출의 반환 데이터(*예: 스마트 컨트랙트 함수 반환 값)입니다.

예시


> caver.klay.call({
to: "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", // contract address
data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
})
.then(console.log);
"0x000000000000000000000000000000000000000000000000000000000000000a"

estimateGas


caver.klay.estimateGas(callObject [, callback])

메시지 호출 또는 트랜잭션을 실행하고 시뮬레이션된 호출/트랜잭션에 사용된 가스 양을 반환합니다.

매개변수

이름유형설명
callObjectObject호출에 대해 from 속성이 선택 사항이라는 차이점이 있는 트랜잭션 객체입니다. 트랜잭션 객체의 데이터 필드에 인코딩된 함수 호출을 설정해야 합니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

Promise는 시뮬레이션된 호출/트랜잭션에 사용된 가스인 number를 반환합니다.

예시


> caver.klay.estimateGas({
to: "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
})
.then(console.log);
40

estimateComputationCost


caver.klay.estimateComputationCost(callObject [, defaultBlock] [, callback])

트랜잭션을 실행하는 데 소요될 계산 비용의 추정치를 생성하고 반환합니다. 클레이튼은 한 트랜잭션에 너무 많은 시간이 걸리지 않도록 현재 트랜잭션의 계산 비용을 100000000으로 제한하고 있습니다. 트랜잭션은 블록체인에 추가되지 않습니다.

매개변수

이름유형설명
callObjectObject호출의 경우 FROM 속성이 선택 사항이라는 차이점이 있는 트랜잭션 객체입니다. 트랜잭션 객체의 데이터 필드에 인코딩된 함수 호출을 설정해야 합니다.
defaultBlockNumber | String(선택 사항) 이 매개변수를 전달하지 않으면 caver.klay.defaultBlock에서 설정한 기본 블록이 사용됩니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

Promisenumber를 반환합니다 - 사용된 계산 비용의 양입니다.

예시


> caver.klay.estimateComputationCost({
to: '0xf796b2F18507Ec8F8C19e9F0c03092888093ebAc',
data : '0xd14e62b80000000000000000000000000000000000000000000000000000000000000022'
}).then(console.log);
0x5773
// With 'latest' block tag
> caver.klay.estimateComputationCost({
to: '0xf796b2F18507Ec8F8C19e9F0c03092888093ebAc',
data : '0xd14e62b80000000000000000000000000000000000000000000000000000000000000022'
}, 'latest').then(console.log);
0x5773

decodeTransaction


caver.klay.decodeTransaction(rawTransaction)

주어진 rawTransaction에서 디코딩된 모든 값을 포함하는 트랜잭션 객체, 즉 RLP 인코딩된 트랜잭션을 반환합니다. 레거시 트랜잭션을 제외한 모든 트랜잭션 유형은 발신자와 수수료 납부자의 서명이 여러 개일 수 있으므로, 기존에 반환된 필드 v, r, s와 payerV, payerR, payerS는 발신자와 수수료 납부자의 0번째 서명입니다.

참고 caver.klay.decodeTransaction은 v1.0.1-rc.8부터 지원됩니다. 이 기능을 사용하려면 v1.0.1-rc.8 이상을 설치하시기 바랍니다.

참고 다중 서명을 지원하기 위해 caver-js v1.2.0-rc.3 이후 signaturesfeePayerSignatures 속성이 추가되었습니다.

매개변수

이름유형설명
rawTransactionStringRLP 인코딩된 트랜잭션 데이터.

리턴 값

유형설명
Object트랜잭션 객체. 트랜잭션 유형에 따라 반환되는 트랜잭션 객체의 속성이 다릅니다. 각 트랜잭션 유형에 포함된 속성 목록은 SendTransaction을 참조하세요.

예시


// Basic Transaction
> caver.klay.decodeTransaction('0xf86b038505d21dba00843b9ac9ff94d03227635c90c7986f0e3a4e551cefbca8c5531685174876e8008026a06fc7412ad1801b4790e7a5a5097fdbef01bc9fe1b970d08232184d110226c221a04665f772edbc4ba4dfbf189d89a9b9cb1e5cdcea0fd5a8b1a497b9c275e5267c')
{
type: 'LEGACY',
nonce: '0x03',
gasPrice: '0x05d21dba00',
gas: '0x3b9ac9ff',
to: '0xd03227635c90c7986f0e3a4e551cefbca8c55316',
value: '0x174876e800',
data: '0x',
v: '0x26',
r: '0x6fc7412ad1801b4790e7a5a5097fdbef01bc9fe1b970d08232184d110226c221',
s: '0x4665f772edbc4ba4dfbf189d89a9b9cb1e5cdcea0fd5a8b1a497b9c275e5267c',
signatures: [
'0x26',
'0x6fc7412ad1801b4790e7a5a5097fdbef01bc9fe1b970d08232184d110226c221',
'0x4665f772edbc4ba4dfbf189d89a9b9cb1e5cdcea0fd5a8b1a497b9c275e5267c'
]
}
// Fee Delegation
> caver.klay.decodeTransaction('0x09f8dd2c8505d21dba00830dbba094a36960d00c9cbf10e80928eead73ff308193bde70194ad8d5b8c7da3746df7de39c41fa572d660aa8e91f847f845824e43a099c0a4c85bb9f2c0be2646b963201680e2f76128e4fd1f54d3f9cf80d1d117e7a069b62aa6640c8aa3606a67869fe062dde1c61a60aea5c5161550ff11ee71c24b946a4b71a6796c2fd376fb0526385e0783da86a039f847f845824e43a0bdfdc50649c8f52930a330b2e44d92f8943b28c7ff7edd8ff7f2f95e617c0d77a06e96bdd983494f6967f1a26d2f0ae991a4e8ebef1ac3c9029251a18c19002ab3')
{
type: 'FEE_DELEGATED_VALUE_TRANSFER',
nonce: '0x2c',
gasPrice: '0x05d21dba00',
gas: '0x0dbba0',
to: '0xa36960d00c9cbf10e80928eead73ff308193bde7',
value: '0x01',
from: '0xad8d5b8c7da3746df7de39c41fa572d660aa8e91',
v: '0x4e43',
r: '0x99c0a4c85bb9f2c0be2646b963201680e2f76128e4fd1f54d3f9cf80d1d117e7',
s: '0x69b62aa6640c8aa3606a67869fe062dde1c61a60aea5c5161550ff11ee71c24b',
signatures: [
[
'0x4e43',
'0x99c0a4c85bb9f2c0be2646b963201680e2f76128e4fd1f54d3f9cf80d1d117e7',
'0x69b62aa6640c8aa3606a67869fe062dde1c61a60aea5c5161550ff11ee71c24b'
]
],
feePayer: '0x6a4b71a6796c2fd376fb0526385e0783da86a039',
payerV: '0x4e43',
payerR: '0xbdfdc50649c8f52930a330b2e44d92f8943b28c7ff7edd8ff7f2f95e617c0d77',
payerS: '0x6e96bdd983494f6967f1a26d2f0ae991a4e8ebef1ac3c9029251a18c19002ab3',
feePayerSignatures: [
[
'0x4e43',
'0xbdfdc50649c8f52930a330b2e44d92f8943b28c7ff7edd8ff7f2f95e617c0d77',
'0x6e96bdd983494f6967f1a26d2f0ae991a4e8ebef1ac3c9029251a18c19002ab3'
]
]
}
// Partial Fee Delegation
> caver.klay.decodeTransaction('0x2af902ca0a8505d21dba00843b9ac9ff80809490b3e9a3770481345a7f17f22f16d020bccfd33eb901fe608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029802180f845f84325a0d8cdc1219df8bbca8a00255420a5bec0f602e6266b76ce7dcf5b0b26bd7fe3b9a05557496a3a17f784c3eb40acbb526dfbc20ae6b00c633a0186d804cd9137b13e9433f524631e573329a550296f595c820d6c65213ff845f84325a041a4c4bf0e3039d04472beae4135a14c26ae4c88bad08d5f0acf61f7c0eb60dfa03d1658f38e5c2089d64985fb33cb13db2e41cde6958ba2cfcfaba685a7f565e2')
{
type: 'FEE_DELEGATED_SMART_CONTRACT_DEPLOY_WITH_RATIO',
nonce: '0x0a',
gasPrice: '0x05d21dba00',
gas: '0x3b9ac9ff',
to: '0x',
value: '0x',
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
data: '0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029',
humanReadable: false,
feeRatio: '0x21',
codeFormat: '0x',
v: '0x25',
r: '0xd8cdc1219df8bbca8a00255420a5bec0f602e6266b76ce7dcf5b0b26bd7fe3b9',
s: '0x5557496a3a17f784c3eb40acbb526dfbc20ae6b00c633a0186d804cd9137b13e',
signatures: [
[
'0x25',
'0xd8cdc1219df8bbca8a00255420a5bec0f602e6266b76ce7dcf5b0b26bd7fe3b9',
'0x5557496a3a17f784c3eb40acbb526dfbc20ae6b00c633a0186d804cd9137b13e'
]
],
feePayer: '0x33f524631e573329a550296f595c820d6c65213f',
payerV: '0x25',
payerR: '0x41a4c4bf0e3039d04472beae4135a14c26ae4c88bad08d5f0acf61f7c0eb60df',
payerS: '0x3d1658f38e5c2089d64985fb33cb13db2e41cde6958ba2cfcfaba685a7f565e2',
feePayerSignatures: [
[
'0x25',
'0x41a4c4bf0e3039d04472beae4135a14c26ae4c88bad08d5f0acf61f7c0eb60df',
'0x3d1658f38e5c2089d64985fb33cb13db2e41cde6958ba2cfcfaba685a7f565e2'
]
]
}

getTransaction


caver.klay.getTransaction(transactionHash [, callback])

주어진 트랜잭션 해시와 일치하는 트랜잭션을 반환합니다.

매개변수

이름유형설명
transactionHashString트랜잭션 해시입니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

Promise는 트랜잭션 오브젝트인 Object를 반환하거나 트랜잭션을 찾을 수 없는 경우 null을 반환합니다:

이름유형설명
blockHash32-byte DATA이 트랜잭션이 있던 블록의 해시입니다. 보류 중일 때는 null입니다.
blockNumberQUANTITY이 트랜잭션이 있던 블록 번호. 보류 중인 경우 null.
codeFormatString(선택 사항) 스마트 컨트랙트 코드의 코드 형식입니다.
feePayer20-byte DATA(선택 사항) 수수료 납부자의 주소입니다.
feePayerSignaturesArray(선택 사항) 수수료 납부자의 서명 객체 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이 포함되고 S에는 ECDSA 서명 s가 포함됩니다.
feeRatioQUANTITY(선택 사항) 수수료 납부자의 수수료 비율입니다. 30이면 수수료의 30%를 수수료 납부자가 지불합니다. 70이면 발신자가 70%를 지불합니다.
from20-byte DATA수신자의 주소.
gasQUANTITY발신자가 제공한 가스.
gasPriceQUANTITY발신자가 제공한 가스 가격(단위: peb).
hash32-byte DATA트랜잭션의 해시.
humanReadableBoolean(선택 사항) 주소가 사람이 읽을 수 있는 주소인 경우 true, 사람이 읽을 수 없는 주소인 경우 false.
keyString(선택 사항) 새로 만든 계정의 키입니다.
inputDATA(선택 사항) 트랜잭션과 함께 전송된 데이터입니다.
nonceQUANTITY이 트랜잭션 이전에 발신자가 수행한 트랜잭션의 수입니다.
senderTxHash32-byte DATA(선택 사항) 수수료 납부자의 주소와 서명이 없는 트랜잭션의 해시입니다. 이 값은 수수료 위임이 아닌 트랜잭션의 hash 값과 항상 동일합니다.
signaturesArray서명 객체의 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이, S에는 ECDSA 서명 s가 포함됩니다.
to20-byte DATA발신자의 주소. 컨트랙트 생성 트랜잭션인 경우 null.
transactionIndexQUANTITY블록에서 트랜잭션 인덱스 위치의 정수입니다. 보류 중인 경우 null.
typeString트랜잭션의 유형을 나타내는 문자열입니다.
typeIntQUANTITY트랜잭션 유형을 나타내는 정수입니다.
valueQUANTITY전송된 값입니다.

예시


> caver.klay.getTransaction('0x2d26f602cfbb4c662931592bf2c4ee18d29f09683be5b9e8d589ff935fca0b97')
.then(console.log);
{
blockHash: '0xd6f3bc2bd7853ed423677766b5332c3e55d900abf4252ede196661cd58e817a6',
blockNumber: 141766,
from: '0x8948Ab8526fDA9a7349Ee8FCa5372e46d0268777',
gas: 20000000,
gasPrice: '25000000000',
hash: '0x2d26f602cfbb4c662931592bf2c4ee18d29f09683be5b9e8d589ff935fca0b97',
input: '0x',
nonce: 8,
signatures:[{
V: '0xfe9',
R: '0x76a0ac07a371fe3849f46a115d62830e611e62fab91714bb66fe18a937557666',
S: '0x1daace52366434ab11287d4f5ebe9c87f314e45d13f05093bbcdd5862fcf462e'
}],
to: '0x2259cFDae62F9853f84298aAf20C999391B1c6a3',
transactionIndex: 0,
type: 'TxTypeLegacyTransaction',
typeInt: 0,
value: '1'
}

getTransactionBySenderTxHash


caver.klay.getTransactionBySenderTxHash(senderTxHash [, callback])

주어진 senderTxHash로 식별된 트랜잭션에 대한 정보를 반환합니다. 이 API는 노드에서 인덱싱 기능이 --sendertxhashindexing으로 활성화된 경우에만 올바른 결과를 반환한다는 점에 유의하세요. 인덱싱 기능이 활성화되어 있는지 확인하려면 isSenderTxHashIndexingEnabled를 사용하세요.

매개변수

이름유형설명
senderTxHashString보낸 사람만 서명한 트랜잭션의 32바이트 데이터 해시입니다. SenderTxHash를 참조하세요.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

Promise는 트랜잭션 오브젝트인 Object를 반환하거나 트랜잭션을 찾을 수 없는 경우 null을 반환합니다:

이름유형설명
blockHash32-byte DATA이 트랜잭션이 있던 블록의 해시입니다. 보류 중인 경우 null.
blockNumberQUANTITY이 트랜잭션이 있던 블록 번호. 보류 중일 때는 null입니다.
codeFormatString(선택 사항) 스마트 컨트랙트 코드의 코드 형식입니다.
feePayer20-byte DATA수수료 납부자의 주소입니다.
feePayerSignaturesArray수수료 납부자의 서명 객체 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이, S에는 ECDSA 서명 s가 포함됩니다.
feeRatioQUANTITY(선택 사항) 수수료 납부자의 수수료 비율입니다. 30이면 수수료의 30%를 수수료 납부자가 지불합니다. 70%는 발신자가 지불합니다.
from20-byte DATA수신자의 주소.
gasQUANTITY발신자가 제공한 가스.
gasPriceQUANTITY발신자가 제공한 가스 가격(단위: peb).
hash32-byte DATA트랜잭션의 해시.
humanReadableBoolean(선택 사항) 주소가 사람이 읽을 수 있는 주소인 경우 true, 사람이 읽을 수 없는 주소인 경우 false.
keyString(선택 사항) 새로 만든 계정의 키입니다.
inputDATA(선택 사항) 트랜잭션과 함께 전송된 데이터입니다.
nonceQUANTITY이 트랜잭션 이전에 발신자가 수행한 트랜잭션의 수입니다.
senderTxHash32-byte DATA보낸 사람만 서명한 트랜잭션의 해시. SenderTxHash를 참조하세요. 이 값은 수수료 위임이 아닌 트랜잭션의 경우 항상 hash와 동일합니다.
signaturesArray서명 객체의 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이 포함되고 S에는 ECDSA 서명 s가 포함됩니다.
to20-byte DATA발신자의 주소. 컨트랙트 생성 트랜잭션인 경우 null.
transactionIndexQUANTITY블록에서 트랜잭션 인덱스 위치의 정수입니다. 보류 중인 경우 null.
typeString트랜잭션의 유형을 나타내는 문자열입니다.
typeIntQUANTITY트랜잭션 유형을 나타내는 정수입니다.
valueQUANTITY전송된 값입니다.

예시


> caver.klay.getTransactionBySenderTxHash('0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22').then(console.log);
{
blockHash: '0x56e950bd9283c11ad2dab7cfcbacd9164aff2f6cbeb99dd2a7b754eb210753af',
blockNumber: 773,
codeFormat: '0x0',
feePayer: '0xabae1fe62aebbfabeff072eb815d54c3359a45f4',
feePayerSignatures: [
{
V: '0x4e43',
R: '0x16293eefe0f13228ae47af67ecfe659448d8f80d9667a67a25d82c72b5ee246a',
S: '0x3c4043324bee41a6cbab905d3b4e740a3a18fde021260fc1196f73d2ab037b91' } ],
feeRatio: '0x14',
from: '0x3F0E31836C7AABb4C9e9B19d5D61359a9139E949',
gas: 900000,
gasPrice: '25000000000',
hash: '0x2ab7665d25f8f64969fa03b8d5e40a70485bb56a4e72ca2fe1e467fff904c173',
humanReadable: false,
input: '0x6080604052600080556040516020806101fa8339810180604052810190808051906020019092919050505080600081905550506101b9806100416000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd1461006757806342cbb15c14610092578063a87d942c146100bd578063d14e62b8146100e8575b600080fd5b34801561007357600080fd5b5061007c610108565b6040518082815260200191505060405180910390f35b34801561009e57600080fd5b506100a761010e565b6040518082815260200191505060405180910390f35b3480156100c957600080fd5b506100d2610116565b6040518082815260200191505060405180910390f35b6101066004803603810190808035906020019092919050505061014c565b005b60005481565b600043905090565b60007f7197668b8690d2324050bc9ad83b2b5ca0b3f5336cb178ffa2aa07006b51b65160405160405180910390a1600054905090565b7fe8451a9161f9159bc887328b634789768bd596360ef07c5a5cbfb927c44051f9816040518082815260200191505060405180910390a180600081905550505600a165627a7a723058203cb41ebe3d7128a72c997645693c64789a9b5fdeae26158fb28b55e567e805c700290000000000000000000000000000000000000000000000000000000000000001',
nonce: 9,
senderTxHash: '0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22',
signatures: [
{
V: '0x4e43',
R: '0x1b48ee0508d242c9568d7e09212d62137080d68d86c1d067b31b4bb4196c9960',
S: '0x24982f60b37859d7c39d7bd9c00b446196b3a08b27f80dbc9ceca8ee52513b11'
}
],
to: null,
transactionIndex: 0,
type: 'TxTypeFeeDelegatedSmartContractDeployWithRatio',
typeInt: 42,
value: '1'
}

getTransactionFromBlock


caver.klay.getTransactionFromBlock(hashStringOrNumber, indexNumber [, callback])

블록 해시 또는 번호와 트랜잭션 인덱스 위치를 기반으로 트랜잭션을 반환합니다.

매개변수

이름유형설명
hashStringOrNumberString블록 번호 또는 hash입니다. 또는 문자열 genesis 또는 latest.
indexNumberNumber트랜잭션 인덱스 위치입니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 파라미터로 오류 객체를 반환하고 두 번째 파라미터로 결과를 반환합니다.

리턴 값

Object - 트랜잭션 오브젝트, caver.klay.getTransaction을 참조하세요.

예시


> caver.klay.getTransactionFromBlock('0x4534534534', 2).then(console.log);
// see caver.klay.getTransaction

getTransactionReceipt


caver.klay.getTransactionReceipt(transactionHash [, callback])

트랜잭션 해시별로 트랜잭션 영수증을 반환합니다.

매개변수

이름유형설명
transactionHashString트랜잭션 해시
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 파라미터로 오류 객체를 반환하고 두 번째 파라미터로 결과를 반환합니다.

리턴 값

Promise는 트랜잭션 영수증 오브젝트인 Object를 반환하거나, 영수증을 찾을 수 없는 경우 null을 반환합니다:

이름유형설명
blockHash32-byte String이 트랜잭션이 있던 블록의 해시입니다.
blockNumberNumber이 트랜잭션이 있던 블록 번호입니다.
codeFormatString(선택 사항) 스마트 컨트랙트 코드의 코드 형식입니다.
contractAddressDATA트랜잭션이 컨트랙트 생성인 경우 생성된 컨트랙트 주소, 그렇지 않으면 null입니다.
feePayer20-byte DATA(선택 사항) 수수료 납부자의 주소입니다.
feePayerSignaturesArray(선택 사항) 수수료 납부자의 서명 객체 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이 포함되고 S에는 ECDSA 서명 s가 포함됩니다.
feeRatioQUANTITY(선택 사항) 수수료 납부자의 수수료 비율입니다. 30이면 수수료의 30%를 수수료 납부자가 지불합니다. 70%는 발신자가 지불합니다.
from20-byte DATA수신자의 주소.
gasQUANTITY발신자가 제공한 가스.
gasPriceQUANTITY발신자가 제공한 가스 가격(단위: peb).
gasUsedQUANTITY이 특정 트랜잭션에서만 사용한 가스 양입니다.
humanReadableBoolean(선택 사항) 주소가 사람이 읽을 수 있는 경우 true, 주소가 사람이 읽을 수 없는 경우 false.
keyString(선택 사항) 새로 만든 계정의 키입니다.
inputDATA(선택 사항) 트랜잭션과 함께 전송된 데이터입니다.
logsArray이 트랜잭션이 생성한 로그 개체의 배열입니다.
logsBloom256-byte DATA라이트 클라이언트가 관련 로그를 빠르게 검색할 수 있는 블룸 필터입니다.
nonceQUANTITY이 트랜잭션 이전에 발신자가 수행한 트랜잭션의 수입니다.
senderTxHash32-byte DATA(선택 사항) 보낸 사람만 서명한 트랜잭션의 해시입니다. SenderTxHash를 참조하세요. 이 값은 수수료 위임이 아닌 트랜잭션의 경우 항상 transactionHash와 동일합니다.
signaturesArray서명 개체의 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이 포함되고 S에는 ECDSA 서명 s가 포함됩니다.
stateBoolean트랜잭션이 성공하면 true, 클레이튼 가상 머신이 트랜잭션을 되돌렸다면 false를 반환합니다.
txErrorQUANTITY(선택 사항) status가 0인 경우 상세 오류 코드.
to20-byte DATA발신자의 주소. 컨트랙트 생성 트랜잭션인 경우 null.
transactionHash32-byte DATA트랜잭션의 해시입니다.
transactionIndexQUANTITY블록에서 트랜잭션 인덱스 위치의 정수입니다.
typeString트랜잭션의 유형을 나타내는 문자열입니다.
typeIntQUANTITY트랜잭션의 유형을 나타내는 정수입니다.
valueQUANTITY전송된 값입니다.

예시


> caver.klay.getTransactionReceipt('0x9108f22693de7b16ece4db2c8d11c004feae31973acc2ecb9dbd61cd57bb0d7b')
.then(console.log);
{
blockHash: '0x62f0b4e4d2c0fdeda968bf82688a6b4426fb0b75c83ebd39a04633e087060f00',
blockNumber: 140949,
contractAddress: null,
from: '0x8948ab8526fda9a7349ee8fca5372e46d0268777',
gas: '0x1312d00',
gasPrice: '0x5d21dba00',
gasUsed: 21000,
input: '0x',
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
nonce: '0x6',
signatures: [{
V:'0xfe9',
R:'0x95e5fc90a27b4a364f4047072474147fb8885213acbc4ac89902da28ddea3931',
S:'0xeebe7d37c047f6a7b841da5c6ff2849eb6f99b689666da30f48b60a12028e59'
}],
status: true,
to: '0x2259cfdae62f9853f84298aaf20c999391b1c6a3',
transactionHash: '0x9108f22693de7b16ece4db2c8d11c004feae31973acc2ecb9dbd61cd57bb0d7b',
transactionIndex: 0,
type: 'TxTypeLegacyTransaction',
typeInt: 0,
value: '0x1'
}

getTransactionReceiptBySenderTxHash


caver.klay.getTransactionReceiptBySenderTxHash(senderTxHash [, callback])

주어진 senderTxHash로 식별된 트랜잭션의 영수증을 반환합니다.

참고: 보류 중인 트랜잭션에는 영수증을 사용할 수 없습니다. 이 API는 노드에서 인덱싱 기능이 --sendertxhashindexing으로 활성화된 경우에만 올바른 결과를 반환합니다. 이는 isSenderTxHashIndexingEnabled를 호출하여 확인할 수 있습니다.

매개변수

이름유형설명
senderTxHashString보낸 사람만 서명하는 트랜잭션의 해시입니다. SenderTxHash를 참조하세요.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

Promise는 트랜잭션 영수증 오브젝트인 Object를 반환하거나, 영수증을 찾을 수 없는 경우 null을 반환합니다:

이름유형설명
blockHash32-byte String이 트랜잭션이 있던 블록의 해시입니다.
blockNumberNumber이 트랜잭션이 있던 블록 번호입니다.
codeFormatString(선택 사항) 스마트 컨트랙트 코드의 코드 형식입니다.
contractAddressDATA트랜잭션이 컨트랙트 생성인 경우 생성된 컨트랙트 주소, 그렇지 않으면 null입니다.
feePayer20-byte DATA수수료 납부자의 주소입니다.
feePayerSignaturesArray수수료 납부자의 서명 객체 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이 포함되고 S에는 ECDSA 서명 s가 포함됩니다.
feeRatioQUANTITY(선택 사항) 수수료 납부자의 수수료 비율입니다. 30이면 수수료의 30%를 수수료 납부자가 지불합니다. 70%는 발신자가 지불합니다.
from20-byte DATA수신자의 주소.
gasQUANTITY발신자가 제공한 가스.
gasPriceQUANTITY발신자가 제공한 가스 가격(단위: peb).
gasUsedQUANTITY이 특정 트랜잭션에서만 사용한 가스 양입니다.
humanReadableBoolean(선택 사항) 주소가 사람이 읽을 수 있는 경우 true, 주소가 사람이 읽을 수 없는 경우 false.
keyString(선택 사항) 새로 만든 계정의 키입니다.
inputDATA(선택 사항) 트랜잭션과 함께 전송된 데이터입니다.
logsArray이 트랜잭션이 생성한 로그 개체의 배열입니다.
logsBloom256-byte DATA라이트 클라이언트가 관련 로그를 빠르게 검색할 수 있는 블룸 필터입니다.
nonceQUANTITY이 트랜잭션 이전에 발신자가 수행한 트랜잭션의 수입니다.
senderTxHash32-byte DATA보낸 사람만 서명하는 트랜잭션의 해시입니다. SenderTxHash를 참조하세요. 이 값은 수수료 위임이 아닌 트랜잭션의 경우 항상 transactionHash와 동일합니다.
signaturesArray서명 객체의 배열입니다. 서명 객체에는 세 개의 필드(V, R, S)가 포함됩니다. V에는 ECDSA 복구 ID가 포함됩니다. R에는 ECDSA 서명 r이 포함되고 S에는 ECDSA 서명 s가 포함됩니다.
stateBoolean트랜잭션이 성공하면 true, 클레이튼 가상 머신이 트랜잭션을 되돌렸다면 false를 반환합니다.
txErrorQUANTITY(선택 사항) status가 0인 경우 상세 오류 코드.
to20-byte DATA발신자의 주소. 컨트랙트 생성 트랜잭션인 경우 null.
transactionHash32-byte DATA트랜잭션의 해시입니다.
transactionIndexQUANTITY블록에서 트랜잭션 인덱스 위치의 정수입니다.
typeString트랜잭션의 유형을 나타내는 문자열입니다.
typeIntQUANTITY트랜잭션의 유형을 나타내는 정수입니다.
valueQUANTITY전송된 값입니다.

예시


> caver.klay.getTransactionReceiptBySenderTxHash('0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22').then(console.log);
{
blockHash: '0x56e950bd9283c11ad2dab7cfcbacd9164aff2f6cbeb99dd2a7b754eb210753af',
blockNumber: 773,
codeFormat: '0x0',
contractAddress: '0x71163abc3b051bC2Af71e7c68eD0ffeA6182cde1',
feePayer: '0xabae1fe62aebbfabeff072eb815d54c3359a45f4',
feePayerSignatures: [
{
V: '0x4e43',
R: '0x16293eefe0f13228ae47af67ecfe659448d8f80d9667a67a25d82c72b5ee246a',
S: '0x3c4043324bee41a6cbab905d3b4e740a3a18fde021260fc1196f73d2ab037b91'
}
],
feeRatio: '0x14',
from: '0x3f0e31836c7aabb4c9e9b19d5d61359a9139e949',
gas: '0xdbba0',
gasPrice: '0x5d21dba00',
gasUsed: 235217,
humanReadable: false,
input: '0x6080604052600080556040516020806101fa8339810180604052810190808051906020019092919050505080600081905550506101b9806100416000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd1461006757806342cbb15c14610092578063a87d942c146100bd578063d14e62b8146100e8575b600080fd5b34801561007357600080fd5b5061007c610108565b6040518082815260200191505060405180910390f35b34801561009e57600080fd5b506100a761010e565b6040518082815260200191505060405180910390f35b3480156100c957600080fd5b506100d2610116565b6040518082815260200191505060405180910390f35b6101066004803603810190808035906020019092919050505061014c565b005b60005481565b600043905090565b60007f7197668b8690d2324050bc9ad83b2b5ca0b3f5336cb178ffa2aa07006b51b65160405160405180910390a1600054905090565b7fe8451a9161f9159bc887328b634789768bd596360ef07c5a5cbfb927c44051f9816040518082815260200191505060405180910390a180600081905550505600a165627a7a723058203cb41ebe3d7128a72c997645693c64789a9b5fdeae26158fb28b55e567e805c700290000000000000000000000000000000000000000000000000000000000000001',
logs: [],
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
nonce: '0x9',
senderTxHash: '0x8c0b092fed92a6619666efd582f7d71fbc3d784781072dd26741715b3731ab22',
signatures: [
{
V: '0x4e43',
R: '0x1b48ee0508d242c9568d7e09212d62137080d68d86c1d067b31b4bb4196c9960',
S: '0x24982f60b37859d7c39d7bd9c00b446196b3a08b27f80dbc9ceca8ee52513b11'
}
],
status: true,
to: null,
transactionHash: '0x2ab7665d25f8f64969fa03b8d5e40a70485bb56a4e72ca2fe1e467fff904c173',
transactionIndex: 0,
type: 'TxTypeFeeDelegatedSmartContractDeployWithRatio',
typeInt: 42,
value: '0x1'
}

sendSignedTransaction


caver.klay.sendSignedTransaction(signedTransactionData [, callback])

caver.klay.accounts.signTransaction을 사용하여 생성된 이미 서명된 트랜잭션을 전송합니다.

참고 caver.klay.sendSignedTransaction은 caver-js v1.2.0 이후 객체를 파라미터로 받을 수 있습니다. 객체는 RLP 인코딩된 트랜잭션 문자열을 포함하거나 서명/수수료 지불자 서명이 있는 인코딩되지 않은 트랜잭션 객체여야 합니다. 반환 객체는 caver.klay.accounts.signTransaction, caver.klay.accounts.feePayerSignTransaction, caver.klay.accounts.getRawTransactionWithSignatures 또는 caver.klay.accounts.combineSignatures에서 전달할 수 있습니다.

매개변수

이름유형설명
signedTransactionDataString | ObjectRLP 인코딩된 서명된 트랜잭션 문자열, rawTransaction 속성에 RLP 인코딩된 서명된 트랜잭션 문자열이 있는 객체, 또는 서명/수수료 지불자 서명이 첨부된 인코딩되지 않은 트랜잭션 객체입니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

유형설명
PromiEvent프로미 결합 이벤트 이미터입니다. 트랜잭션 영수증을 사용할 수 있을 때 해결됩니다.

PromiEvent의 경우 다음 이벤트를 사용할 수 있습니다:

  • "transactionHash"String을 반환합니다: 트랜잭션이 전송되고 트랜잭션 해시를 사용할 수 있는 직후에 발생합니다.
  • "receipt"Object를 반환합니다: 트랜잭션 영수증을 사용할 수 있을 때 발생합니다.
  • "error"Error를 반환합니다: 전송 중 에러가 발생하면 발생합니다. 가스 부족 오류에서 두 번째 매개 변수는 영수증입니다.

예시


// sendSignedTransaction using promise with RLP encoded signed transaction string
caver.klay.sendSignedTransaction('0xf867808505d21dba0083015f9094247f2b7e9a9c51ebcc9449c7d9e7575f9baac36e0180824e43a02e50f5c4d279e17a80c3fe98327de7e48878e9d8141d26759ef64adcf66e6aa0a02ae9e8beac1ba8d5d215d87c33f9e05263b0bad163706c9dd7a563ee1e028f41').then(function(receipt){
...
})
// sendSignedTransaction using promise with returning object from caver.klay.accounts.signTransaction
caver.klay.sendSignedTransaction({
messageHash: '0x2378aeb6439f43597e30df4937f59eb13c98e502bb03babcebb39bf602cd8d73',
v: '0x4e43',
r: '0x9fc6cfd3d7c35794ab373c8d7f15746f1f4fa94c80e31270eea31977f20aaa9a',
s: '0x762343c55f7c1de87e5877887b9d10ed93b16666f4bdbc525aeee1f23fb53457',
rawTransaction: '0xf867018505d21dba0083015f9094cdba9992ffd79b12ce68905db40bf5e873b1a43e0180824e43a09fc6cfd3d7c35794ab373c8d7f15746f1f4fa94c80e31270eea31977f20aaa9aa0762343c55f7c1de87e5877887b9d10ed93b16666f4bdbc525aeee1f23fb53457',
txHash: '0x3d598805e1565ba5c4a1d2b708aff9825562d903bef4301ef22564253c6779bf',
senderTxHash: '0x3d598805e1565ba5c4a1d2b708aff9825562d903bef4301ef22564253c6779bf',
signatures: [
'0x4e43',
'0x9fc6cfd3d7c35794ab373c8d7f15746f1f4fa94c80e31270eea31977f20aaa9a',
'0x762343c55f7c1de87e5877887b9d10ed93b16666f4bdbc525aeee1f23fb53457',
],
}).then(function(receipt){
...
})
// sendSignedTransaction using promise with a transaction object that has signatures
caver.klay.sendSignedTransaction({
type: 'LEGACY',
from: '0x73647c5fd1a66fac0dbf2af2e5cc7f593a015441',
to: '0x82c5b8f3ae5c08eeb64a1af0ce89cb5233b05c6c',
value: '0x1',
gas: '0x15f90',
gasPrice: '0x5d21dba00',
nonce: '0x2',
signatures: [
'0x4e43',
'0x077b0ec1dd5dd66ffbf7d779b08bed6166ec1b0269d85a3901dbfb55331216de',
'0x23b7565fa994ba3f88290de9b7f6b6b975f2ad9c19ce1ffc4752ecbc51b6c274',
],
}).then(function(receipt){
...
})
// sendSignedTransaction using promise with a fee delegated transaction object that has signatures and feePayerSignatures
caver.klay.sendSignedTransaction({
type: 'FEE_DELEGATED_VALUE_TRANSFER',
from: '0x73647c5fd1a66fac0dbf2af2e5cc7f593a015441',
to: '0x73f9b11bd22fde3ec543f3fcbdc39fc40a942bf7',
value: '0x1',
gas: '0x15f90',
gasPrice: '0x5d21dba00',
chainId: '0x2710',
nonce: '0x3',
humanReadable: false,
feePayer: '0xebcd0271c4f8d2a84a33e073a5c9bcdb6bafc556',
signatures: [
[
'0x4e44',
'0x41dfab76e0fdcdb5c4cd4dbe39861029d8c7f156f9dd10e8292625492943e689',
'0x789f1bfc42a96366ea0bdc6727410a661fe8300cdf57889316c25aa873a5b85c',
],
],
feePayerSignatures: [
[
'0x4e44',
'0x833031cb1d709a408f1c3b83cea88671d9d86f7550101e4e7221507a39dcd462',
'0x03f1d8003513b038195c6d798623d5bb132a93e7f2f0a2c302079b92858ea8e7',
],
],
}).then(function(receipt){
...
})
// sendSignedTransaction using event emitter with RLP encoded signed transaction string
> caver.klay.sendSignedTransaction('0xf867068505d21dba0083015f90940fd7697a8b9a46b0f770a3986e8a10b6ad6fffe10180824e44a0e591e4cbf4bdada2e559ce5b9c7b604c50d3b1d7d5a29939091bcc8ad4208aa3a01ef917ec539aa79b32a043b452e81840ea012796895cd5925273fd8df139595f')
.on('transactionHash', function(hash){
...
})
.on('receipt', function(receipt){
...
})
.on('error', console.error)

sendTransaction

signTransaction


caver.klay.signTransaction(transactionObject [, callback])

트랜잭션에 서명합니다. 이 계정은 잠금을 해제해야 합니다.

매개변수

이름유형설명
transactionObjectObject서명할 트랜잭션 데이터입니다.
callbackFunction(선택 사항) 선택적 콜백으로, 첫 번째 매개변수로 오류 객체를 반환하고 두 번째 매개변수로 결과를 반환합니다.

리턴 값

Promiseobject를 반환합니다 - RLP 인코딩된 트랜잭션입니다. raw 속성을 사용하여 caver.klay.sendSignedTransaction을 사용하여 트랜잭션을 전송할 수 있습니다.

예시


> caver.klay.signTransaction({
nonce: 0,
from: "0xEB014f8c8B418Db6b45774c326A0E64C78914dC0",
gasPrice: '25000000000',
gas: "21000",
to: '0x3535353535353535353535353535353535353535',
value: "1000000000000000000",
data: ""
}).then(console.log);
{
raw: '0xf86c808504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a04f4c17305743700648bc4f6cd3038ec6f6af0df73e31757007b7f59df7bee88da07e1941b264348e80c78c4027afc65a87b0a5e43e86742b8ca0823584c6788fd0',
tx: {
nonce: '0x0',
gasPrice: '25000000000',
gas: '0x5208',
to: '0x3535353535353535353535353535353535353535',
value: '0xde0b6b3a7640000',
input: '0x',
v: '0x25',
r: '0x4f4c17305743700648bc4f6cd3038ec6f6af0df73e31757007b7f59df7bee88d',
s: '0x7e1941b264348e80c78c4027afc65a87b0a5e43e86742b8ca0823584c6788fd0',
hash: '0xda3be87732110de6c1354c83770aae630ede9ac308d9f7b399ecfba23d923384'
}
}

Make this page better