eth_getFilterChanges
필터에 대한 폴링 방법으로, 최근 폴링 이후 발생한 로그를 배열의 형태로 반환합니다.
Parameters
Name Type Description 필터 ID(예를 들어 , "0x16" // 22)입니다.
Return Value
배열
- 로그 객체의 배열을 반환하거나 또는 최근 폴링 이후 변화가 없는 경우 빈 배열을 반환합니다.
For filters created with eth_newBlockFilter , the return are block hashes (32-byte DATA), e.g. , ["0x3454645634534..."]
.
For filters created with eth_newFilter , logs are objects with following parameters:
Name Type Description 체인 재구성으로 로그가 제거된 경우 true
입니다. 유효한 로그이면 false
입니다.
블록에서 로그 인덱스 위치의 정숫값입니다. 보류 중인 로그인 경우 null
을 반환합니다.
로그가 생성된 트랜잭션의 인덱스 위치의 정숫값입니다. 보류 중인 경우 null
을 반환합니다.
로그가 생성된 트랜잭션의 해시입니다. null
when pending.
로그가 생성된 블록의 해시입니다. null
when pending.
로그가 속한 블록의 번호입니다. null
when pending.
로그 중 인덱스화되지 않은 인수를 담고 있습니다.
길이가 0부터 4까지인 배열로, 배열의 각 원소는 32바이트 크기 DATA 형태의 인덱스화된 로그 인수들입니다. (솔리디티의 경우 anonymous
지정자로 이벤트를 선언하지 않았다면 첫 번째 토픽은 이벤트에 대한 서명의 해시입니다. (예 . Deposit(address,bytes32,uint256)
))
Example
Copy // Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x16"],"id":73}' http://localhost:8551
// Result
{
"id" :1,
"jsonrpc" : "2.0" ,
"result" : [{
"logIndex" : "0x1" , // 1
"blockNumber" : "0x1b4" , // 436
"blockHash" : "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d" ,
"transactionHash" : "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf" ,
"transactionIndex" : "0x0" , // 0
"address" : "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d" ,
"data" : "0x0000000000000000000000000000000000000000000000000000000000000000" ,
"topics" : [ "0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5" ]
},{
...
}]
}
eth_getFilterLogs
Returns an array of all logs matching filter with given id, which has been obtained using eth_newFilter . Note that filter ids returned by other filter creation functions, such as eth_newBlockFilter or eth_newPendingTransactionFilter , cannot be used with this function.
이 API의 실행은 Klaytn 노드 자원의 안전한 관리를 위해 2개로 제한될 수 있습니다.
한 번의 조회당 반환되는 최대 숫자 (기본값: 10.000)
한 번의 조회당 실행 시간 (기본값: 10초)
Parameters
Return Value
See eth_getFilterChanges
Example
Copy // Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0xd32fd16b6906e67f6e2b65dcf48fc272"],"id":1}' http://localhost:8551
// Result
{
"jsonrpc" : "2.0" ,
"id" :1,
"result" : [{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xd596fdad182d29130ce218f4c1590c4b5ede105bee36690727baa6592bd2bfc8" ],
"data":"0x0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000007b",
"blockNumber" : "0x54" ,
"transactionHash" : "0xcd4703cd62bd930d4652999bce8dcb75b7ade49d922fa42dc11e568c52a5fa6f" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0x9a49f30f1d1876ff3913bd0aa58f328822e7a369cb13e0640b82234f26e781bb" ,
"logIndex" : "0x0" ,
"removed" :false
}]
}
eth_getLogs
입력으로 받은 필터 객체와 일치하는 모든 로그를 배열 형태로 반환합니다.
The execution of this API can be limited by two node configurations to manage resources of Klaytn node safely.
The number of maximum returned results in a single query (Default: 10,000).
The execution duration limit of a single query (Default: 10 seconds).
Parameters
Object
- 필터 객체를 구성하는 옵션은 다음과 같습니다.
Name Type Description (선택 사항, 기본값: "latest"
)정수 또는 16진수 형태의 블록 번호 또는 기본 블록 매개변수 에서와 같이 "earliest"
, "latest"
, "pending"
과 같이 상태를 나타내는 문자열입니다.
(optional, default: "latest"
) Integer or hexadecimal block number, or the string "earliest"
, "latest"
or "pending"
as in the default block parameter .
(선택 사항) 로그를 발생시킨 컨트랙트 주소 또는 주소들의 목록입니다.
(선택 사항) 32바이트 크기 DATA 형태의 토픽으로 이루어진 배열입니다. 토픽은 순서에 따라 다릅니다. 각 토픽은 “or” 옵션과 함께 DATA 배열이 될 수도 있습니다.
(선택 사항) 32바이트 길이의 해시 blockHash를 사용하여 단일 블록으로 반환된 로그를 제한하는 필터 옵션입니다. blockHash를 사용하면, blockHash로 지정한 블록의 번호가 fromBlock, toBlock과 같아집니다. 따라서 필터 기준에 blockHash가 있으면 fromBlock과 toBlock이 허용되지 않습니다.
Return Value
See eth_getFilterChanges
예제
Copy // Request
$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"0x1","toBlock":"latest","address":"0x87ac99835e67168d4f9a40580f8f5c33550ba88b"}],"id":1}' http://localhost:8551
// Result
{
"jsonrpc" : "2.0" ,
"id" :1,
"result" : [
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xfa9b2165fc71c1d6ffa03291c7f5d223ea363ec063d747eec9ce2d30d24855ef" ],
"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b481000000000000000000000000000000000000000000000000000000000000001341646472657373426f6f6b436f6e747261637400000000000000000000000000",
"blockNumber" : "0xd3b5" ,
"transactionHash" : "0x57ca8ff0a0d454d4c5418694c21bc4ef3de26cf7cd18dd404d6a7189a826bfe0" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0x279251a907c6ab1fb723595511ff401432e7c2437d54189298f53a7d33ce3a60" ,
"logIndex" : "0x0" ,
"removed" :false
},
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xfa3e1e272694072320aad73a3fadd8876c4bf8f40899c6c7ce2fda9f4e652cfa" ],
"data":"0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000041383b6ee0ea5108d6b139165a9c85351aacd39800000000000000000000000057f7439898e652fa9b5654022297588532e5e0370000000000000000000000005b5b7a718a4124eb746ae00b1ce6edcaa5ab55bc",
"blockNumber" : "0xd3b5" ,
"transactionHash" : "0x57ca8ff0a0d454d4c5418694c21bc4ef3de26cf7cd18dd404d6a7189a826bfe0" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0x279251a907c6ab1fb723595511ff401432e7c2437d54189298f53a7d33ce3a60" ,
"logIndex" : "0x1" ,
"removed" :false
},
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6" ],
"data":"0x000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b481000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003000000000000000000000000286d09b578d6126e09296dfe6c775ea7d0cf06e9000000000000000000000000860350f6d774efd16046335c388b832b910d3f8c00000000000000000000000061a7cbdd597848494fa85cbb76f9c63ad9c06cad",
"blockNumber" : "0x14d96" ,
"transactionHash" : "0x73282602d2f908180f47e3c8673f41c0899cbbb2d606976c2f77188ffa57d6e7" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0xa5268a093cd5df7eccde18217a7019a35ab761088312027af16682aafa704ee3" ,
"logIndex" : "0x1" ,
"removed" :false
},
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6" ],
"data":"0x000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b4810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000030000000000000000000000002f91d1b79dd06da1b622122d61e05e64562de61e0000000000000000000000006e76e0ce76dfba55060400144318d4821a58510600000000000000000000000031b93ca83b5ad17582e886c400667c6f698b8ccd",
"blockNumber" : "0x14e4e" ,
"transactionHash" : "0xf9d86ed451d67abc68c517f7fa0e0a7a8e3dedec23f56febda2b7f52d35185b6" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0x7ddf4a0a203d40afc1706aa24b787da601e1bce326319349d0eeef6c41656fa5" ,
"logIndex" : "0x1" ,
"removed" :false
}
]
}
Copy // Request
$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"earliest","toBlock":"latest","topics":["0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6"]}],"id":2}' http://localhost:8551
// Result
{
"jsonrpc" : "2.0" ,
"id" :2,
"result" : [
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6" ],
"data":"0x000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b481000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003000000000000000000000000286d09b578d6126e09296dfe6c775ea7d0cf06e9000000000000000000000000860350f6d774efd16046335c388b832b910d3f8c00000000000000000000000061a7cbdd597848494fa85cbb76f9c63ad9c06cad",
"blockNumber" : "0x14d96" ,
"transactionHash" : "0x73282602d2f908180f47e3c8673f41c0899cbbb2d606976c2f77188ffa57d6e7" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0xa5268a093cd5df7eccde18217a7019a35ab761088312027af16682aafa704ee3" ,
"logIndex" : "0x1" ,
"removed" :false
},
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6" ],
"data":"0x000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b4810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000030000000000000000000000002f91d1b79dd06da1b622122d61e05e64562de61e0000000000000000000000006e76e0ce76dfba55060400144318d4821a58510600000000000000000000000031b93ca83b5ad17582e886c400667c6f698b8ccd",
"blockNumber" : "0x14e4e" ,
"transactionHash" : "0xf9d86ed451d67abc68c517f7fa0e0a7a8e3dedec23f56febda2b7f52d35185b6" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0x7ddf4a0a203d40afc1706aa24b787da601e1bce326319349d0eeef6c41656fa5" ,
"logIndex" : "0x1" ,
"removed" :false
},
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6" ],
"data":"0x000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b481000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a2b1264624c92257dd8e7f0cac42d451061d1510000000000000000000000000b381ee81e319e5ec48f42d0b47b5e4361c9a6f740000000000000000000000003855407fa65c4c5104648b3a9e495072df62b585",
"blockNumber" : "0x14f38" ,
"transactionHash" : "0xc8f8c637ea9fcbe71e23fe0779b59fb10173e8c4fd7e49bce3cce76ff67d353d" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0xb1717038e443f517bd7a8c37b66fb731fed573f5fa5486ebbbb5e4c9060be50b" ,
"logIndex" : "0x1" ,
"removed" :false
},
{
"address" : "0x87ac99835e67168d4f9a40580f8f5c33550ba88b" ,
"topics" : [ "0xc7b359b1e189b7d721be7f0765a8d745be718566b8e67cbd2728dae5d6fd64b6" ],
"data":"0x000000000000000000000000d3564e57bb5c6f4d983a493a946534f8e1e8b4810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000030000000000000000000000009dd579f23912665b956b0cd50387b29a62052732000000000000000000000000c98a86af2eca2989c0cb2a2b8d4bb841f11e94ab000000000000000000000000f65e07b6626ab43ecea744803fa46bd4a89bfdb6",
"blockNumber" : "0x14fe7" ,
"transactionHash" : "0x14da1883bb2aae487ce1cb93cd39bc9bb802adbba083f337051877358150ab3f" ,
"transactionIndex" : "0x0" ,
"blockHash" : "0xcd820189f00e9a6faaea7313437b92114e69bd32e18b4a28e7763117716c6fa9" ,
"logIndex" : "0x1" ,
"removed" :false
}
]
}
eth_newBlockFilter
노드에 필터를 생성하여 새로운 블록이 도착하였음을 알립니다. To check if the state has changed, call eth_getFilterChanges .
Parameters
None
Return Value
Example
Copy // Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":73}' http://localhost:8551
// Result
{
"jsonrpc" : "2.0" ,
"id" :73,
"result" : "0xc2f2e8168a7e38b5d979d0f7084130ee"
}
eth_newFilter
필터 옵션에 따라 필터 객체를 생성하여 상태가 변경되었음(로그)을 알립니다.
To obtain all logs matching the filter created by eth_newFilter
, call eth_getFilterLogs .
토픽 필터 지정 시 참고사항: 토픽은 순서에 따라 다릅니다. [A, B]
인 토픽인 로그가 있는 트랜잭션은 다음 토픽 필터에 대응됩니다.
[A]
"A가 첫 번째 위치에 있음 (이후에는 무엇이든 와도 됨)"
[null, B]
"첫 번째 위치에 어떤 것이 있으며 B가 두 번째 위치에 있음 (이후에는 무엇이든 있어도 됨)"
[A, B]
"A가 첫 번째 위치에 있으며 B가 두 번째 위치에 있음 (이후에는 무엇이든 있어도 됨)"
[[A, B], [A, B]]
"(A 또는 B)가 첫 번째 위치에 있으며 (A 또는 B)가 두 번째 위치에 있음 (이후에는 무엇이든 있어도 됨)"
Parameters
Object
- The filter options:
Name Type Description (optional, default: "latest"
) Integer or hexadecimal block number, or the string "earliest"
, "latest"
or "pending"
as in the default block parameter .
(optional, default: "latest"
) Integer or hexadecimal block number, or the string "earliest"
, "latest"
or "pending"
as in the default block parameter .
(optional) Contract address or a list of addresses from which logs should originate.
(optional) Array of 32-byte DATA topics. Topics are order-dependent. 각 토픽은 “or” 옵션과 함께 DATA 배열이 될 수도 있습니다.
참고: Klaytn v1.7.0 이전 버전에서는 정수형 블록 번호나 "earliest"
, "latest"
같은 문자열만 사용할 수 있습니다.
Return Value
Example
Copy // Request
$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"fromBlock":"earliest","toBlock":"latest","address":"0x87ac99835e67168d4f9a40580f8f5c33550ba88b","topics":["0xd596fdad182d29130ce218f4c1590c4b5ede105bee36690727baa6592bd2bfc8"]}],"id":1}' http://localhost:8551
// Result
{ "jsonrpc" : "2.0" , "id" :1, "result" : "0xd32fd16b6906e67f6e2b65dcf48fc272" }
eth_newPendingTransactionFilter
노드에 필터를 생성하여 보류 상태인 새로운 트랜잭션이 도착하였음을 알립니다. To check if the state has changed, call eth_getFilterChanges .
Parameters
None
Return Value
Example
Copy // Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":73}' http://localhost:8551
// Result
{
"jsonrpc" : "2.0" ,
"id" :73,
"result" : "0x90cec22a723fcc725fb2462733c2880f"
}
eth_subscribe
Websockets을 통한 RPC Pub/Sub 또는 HTTP를 통한 필터를 이용하여 특정 이벤트에 대한 새 구독을 생성합니다. 클라이언트가 이벤트에 대해 폴링하는 대신 이벤트 발생을 기다리게 해줍니다.
매 생성된 구독에 대해 노드는 구독 ID를 반환할 것입니다. 구독에 일치하는 모든 이벤트에 대해서는 관계된 데이터와 구독 ID를 포함한 알림이 전송됩니다. 연결이 닫힐 경우, 이 연결을 통해 생성된 모든 구독들이 제거됩니다.
Parameters
Object
-알림 타입: "newHeads"
또는 "logs"
.
"newHeads"
는 블록체인에 블록이 추가될 때 매번 알림을 보냅니다. "logs"
는 새 블록에 포함된 로그에 대해 알림을 보냅니다. 이러한 타입은 필터 옵션을 구체화하는 두 번째 매개변수를 필요로 합니다. For more details, go to eth_newFilter > parameters .
Return Value
Type Description 구독이 생성될 때의 구독 ID입니다. 구독에 일치하는 모든 이벤트에 대해서는 관계된 데이터와 구독 ID를 포함한 알림이 전달됩니다.
Example
이 API는 WebSocket 툴인 wscat
과 함께 쓰기에 적합합니다.
Copy // Request
wscat -c http://localhost:8551
> { "jsonrpc" : "2.0" , "id" : 1, "method" : "eth_subscribe" , "params" : [ "newHeads" ]}
// Result
< { "jsonrpc" : "2.0" , "id" :1, "result" : "0x48bb6cb35d6ccab6eb2b4799f794c312" }
< {"jsonrpc":"2.0","method":"eth_subscription","params":{"subscription":"0x48bb6cb35d6ccab6eb2b4799f794c312","result":{"parentHash":"0xc39755b6ac01d1e8c58b1088e416204f7af5b6b66bfb4f474523292acbaa7d57","reward":"0x2b2a7a1d29a203f60e0a964fc64231265a49cd97","stateRoot":"0x12aa1d3ab0440d844c28fbc6f89d26082f39a8435b512fa487ff55c2056aceb3","number":"0x303bea4”, ... ... }}}
Copy // Request
wscat -c http://localhost:8551
> {"jsonrpc":"2.0", "id": 1, "method": "eth_subscribe", "params": ["logs", {"fromBlock":"earliest","toBlock":"latest","address":"0x87ac99835e67168d4f9a40580f8f5c33550ba88b","topics":["0xd596fdad182d29130ce218f4c1590c4b5ede105bee36690727baa6592bd2bfc8"]}]}
// Result
< { "jsonrpc" : "2.0" , "id" :1, "result" : "0xbdab16c8e4ae1b9e6930c78359de3e0e" }
< {"jsonrpc":"2.0","method":"eth_subscription","params":{"subscription":"0xbdab16c8e4ae1b9e6930c78359de3e0e","result":{"address":"0x2e4bb340e26caffb4073d7f1151f37d17524cdbc","topics":["0xb1a7310b1a46c788fcf30784cad70442d5232acaef480b0c094c76bee8d9c77d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000d2588fe96a34c56a5d0a484cb603bc16fc5cdbbc","blockNumber":"0x3041201","transactionHash":"0xdacdebc77006fc566f65448524a0bc770056d8c7a05244bc7bfb2123b1bd398c","transactionIndex":"0x0","blockHash":"0x899b2dbfe96a34ce5d965dbcfcf39d072b4ce1097d479923e6b6355f3e2609ec","logIndex":"0x0","removed":false}}}
eth_uninstallFilter
입력으로 받은 ID를 가진 필터를 제거합니다. 더는 모니터링이 필요없을 때 항상 호출해야 합니다. Additionally, filters timeout when they are not requested with eth_getFilterChanges for a period of time.
Parameters
Return Value
Type Description 필터가 성공적으로 제거되면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
Example
Copy // Request
curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0xb"],"id":73}' http://localhost:8551
// Result
{
"jsonrpc" : "2.0" ,
"id" :1,
"result" : true
}
eth_unsubscribe
Websockets을 통한 RPC Pub/Sub 또는 HTTP를 통한 필터를 이용하여 특정 구독 ID에 대한 구독을 취소합니다. 해당 구독을 생성한 연결만이 구독을 취소할 수 있습니다.
Parameters
Return Value
Type Description 구독이 성공적으로 취소되면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
Example
This API is appropriate for use with a WebSocket tool, wscat
.
Copy // Request
> { "jsonrpc" : "2.0" , "id" : 1, "method" : "eth_unsubscribe" , "params" : [ "0xab8ac7a4045025d0c2807d63060eea6d" ]}
// Result
< { "jsonrpc" : "2.0" , "id" :1, "result" :true}