eth_getTransactionReceipt
eth_getTransactionReceipt(txHash) → receipt | null 트랜잭션이 블록에 포함된 뒤의 영수증을 반환합니다. 트랜잭션이 아직 대기 중이면 null을 반환하므로 값이 채워질 때까지 폴링하거나 ethers.js의 tx.wait()를 사용합니다. 영수증에는 최종 상태(성공/revert), 사용된 가스, 발생한 로그, 컨트랙트 주소(배포 트랜잭션인 경우)가 포함됩니다.
파라미터
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
txHash | string | ✓ | 트랜잭션 해시(32바이트, 0x 접두사가 있는 16진수 인코딩) |
반환값
타입:
object | null 영수증 객체에는 status(0x1 = 성공, 0x0 = revert), blockNumber, gasUsed, logs, contractAddress(배포 트랜잭션인 경우), effectiveGasPrice가 포함됩니다. 트랜잭션이 대기 중이거나 알 수 없는 경우 null을 반환합니다.
예제
ethers.js v6 — 컨펌 대기
예시 해시를 본인 트랜잭션의 해시로 바꾸세요. 체인에 없는 해시는 null을 반환하므로 예시는 "Still pending"을 출력합니다. sendTransaction에서 반환된 tx 객체가 있다면 await tx.wait()를 사용하는 것이 편리합니다. 자동으로 폴링하여 블록 포함 즉시 영수증을 반환합니다.
import { JsonRpcProvider } from "ethers";
const provider = new JsonRpcProvider("https://rpc-testnet.maroo.io");
const receipt = await provider.getTransactionReceipt("0x0f8e3c4d2a1b9c7e6f5d4c3b2a19087f6e5d4c3b2a19087f6e5d4c3b2a190871"); // replace with your transaction hash
if (receipt === null) {
console.log("Still pending");
} else {
console.log("Status:", receipt.status === 1 ? "success" : "reverted");
console.log("Block:", receipt.blockNumber, "Gas used:", receipt.gasUsed.toString());
} cURL로 직접 호출
전체 영수증 객체를 JSON으로 반환합니다. params에 eth_sendRawTransaction이 반환한 해시를 넣고, result가 채워질 때까지 폴링합니다. 체인에 없는 해시는 계속 null입니다.
# replace the hash in "params" with your own transaction hash
curl -X POST https://rpc-testnet.maroo.io \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getTransactionReceipt",
"params": ["0x0f8e3c4d2a1b9c7e6f5d4c3b2a19087f6e5d4c3b2a19087f6e5d4c3b2a190871"],
"id": 1
}'