Ethereum Basics - Transaction
๋ธ๋ก์ฒด์ธ๊ณผ ์ด๋๋ฆฌ์์ ์ดํดํ๊ธฐ ์ํ ๊ธฐ์ด ๊ฐ๋ ์ธ ํธ๋์ญ์ ์ ๋ํด ์์๋ด ๋๋ค.
Transaction์ด๋?
Blockchain์์๋ Transaction์ ์ํ(State)์ ๋ณ๊ฒฝ์ ์คํํ๊ธฐ ์ํ ์ฒ๋ฆฌ ๋จ์์ ๋๋ค. ๋ํ์ ์ธ Transaction์ ๋์งํธ ์์ฐ์ ์ ์กํ๊ฑฐ๋ ๋ฐ๋ ์์ ์ผ๋ก Sender์ ์์ฐ์ด Receiver์ ์ฃผ์๋ก ์ ์ก๋๋ ๊ฒ ์ ๋๋ค. ์๋์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๋์ฑ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
Transaction์ด ๋ฐ์ํ๋ฉด์, Sender(User A)๊ฐ ๋ณด์ ํ๊ณ ์๋ ETH์ ์๊ณ (State)์ Receiver(User B)๊ฐ ๋ณด์ ์ค์ธ ETH์ ์๊ณ (State)๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. Node๋ ์ด๋ฌํ ์ํ ๋ณํ๋ฅผ ๋คํธ์ํฌ์ ์ ํํ๊ฒ ๋๊ณ ๋ฒจ๋ฆฌ๋ฐ์ดํฐ(์ฑ๊ตด์)๋ค์ด ์ ํ๋ Transaction์ ๋ชจ์ Block์ ์ฑ๊ตดํ๊ฒ ๋ฉ๋๋ค. Transaction์ ์ข ๋ฅ๋ ETH๋ฅผ ์ ์กํ๋ Transaction์ธ์ ๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ธฐ ์ํ Transaction, ์ค๋งํธ ์ปจํธ๋ํธ์ Method๋ฅผ ์คํํ๊ธฐ ์ํ Transaction ๋ฑ ๋ค์ํ Transaction์ด ์์ต๋๋ค.
Transaction๊ณผ Gas
์ด๋๋ฆฌ์ ๋คํธ์ํฌ์์๋ ํธ๋์ญ์ ์ ์คํํ ๋ Gas๋ผ๋ ์ด๋ฆ์ ์์๋ฃ๋ฅผ ์ง๋ถํ๊ฒ ๋ฉ๋๋ค. ์ P2P ๋คํธ์ํฌ์ธ ์ด๋๋ฆฌ์์์ ์์๋ฃ๋ฅผ ์ง๋ถํ๊ฒ ๊ตฌ์ฑ์ด ๋์ด ์์๊น์? ์ด์ ๋ ๋ฐ๋ก ์์ ํ ๋คํธ์ํฌ ํ๊ฒฝ์ ์ ์งํ๊ธฐ ์ํจ์ ๋๋ค. ํ ๋ฒ ์์ํด ๋ณผ๊น์? ์ ์์ ์ธ ๊ณต๊ฒฉ์๊ฐ Gas๊ฐ ์๋ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์์ ๋ฌดํ์ผ๋ก ๋ก์ง์ด ๋์ํ๋ Transaction์ ์คํํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋๋ฆฌ์ ํน์ฑ ์, ํด๋น Transaction์ด ์คํ๋ ๋ ๋ค๋ฅธ Transaction์ ์คํ ์ค์ธ Transaction์ด ๋๋ ๋๊น์ง ๋๊ธฐํ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง ์ ์์ ์ธ Transaction์ด ๋ฌดํ์ผ๋ก ๋์ํ๊ณ ์์ผ๋ฏ๋ก ๋ค๋ฅธ Transaction๋ค์ด ์คํ๋์ง ๋ชปํด ๋คํธ์ํฌ์ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ณต๊ฒฉ์ ๋ง๊ธฐ ์ํด ์ด๋๋ฆฌ์ ๋คํธ์ํฌ๋ Transaction์ ์คํํ ๋ ๊ฐ ์์ ๋ง๋ค Gas๋ผ๋ ์ด๋ฆ์ ์์๋ฃ๋ฅผ ์๋นํ๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค. ๋ง์ฝ ์ ์์ ์ธ ๊ณต๊ฒฉ์๊ฐ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์์ ๋ฌดํ๋ฃจํ ํธ๋์ญ์ ์ ์คํํ๋ค๊ณ ๊ฐ์ ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ณต๊ฒฉ์์ Transacntion์ด ๋ฌดํ๋ฃจํ๋ฅผ ๋ ๋ ๋ง๋ค Gas๊ฐ ์๋ชจ๋๋ฉด์ ๊ณต๊ฒฉ์๊ฐ ๋ณด์ ํ ETH์ ์๊ณ ๊ฐ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ค ๊ณต๊ฒฉ์๊ฐ ๋ณด์ ํ ๋ชจ๋ ETH๋ฅผ ์๋ชจํ๋ฉด Transaction์ ์คํจํ๊ณ State๋ ์ ์์ ์ธ ๊ณต๊ฒฉ์์ Transaction ์คํ ์ด์ State๋ก ๋์๊ฐ๊ฒ ๋ฉ๋๋ค. ์ ์์ ์ธ ๊ณต๊ฒฉ์๋ ์์ ์ ETH๋ง ์๋ชจํ๊ณ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ๋ ์๋ฌด๋ฐ ํ๊ฒฉ์ ๋ฐ์ง ์๊ฒ ๋๋ ๊ฒ์ ๋๋ค. (Transaction์ด ์คํจํ๊ฒ ๋ ๊ฒฝ์ฐ, ์คํจํ ๋ถ๋ถ ๊น์ง ์๋ชจ๋ Gas๋ ์ง๋ถํ๊ฒ ๋๊ณ State๋ ์์๋ณต๊ตฌ ๋ฉ๋๋ค.)
๋ํ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์์๋ Transaction์ ๋ํ ์ต๋ Gas ์๋ชจ๋์ ์ ํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์ ํํ๋ ์ด์ ๋ ์์๋๋ Gas ์๋ชจ๋ ์ด์ ์ฌ์ฉ๋๋ ํธ๋์ญ์ ์ด ๋ฐ์ํ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ฐจ๋จํ์ฌ ์ ์ ์ ์์ฐ์ ๋ณดํธํ๊ธฐ ์ํจ์ ๋๋ค. ์ ์ ๋ Transaction์ ์คํํ ๋ ์ฌ์ฉํ ์ต๋ Gas์ Limit์ ์ง์ ํ๊ณ Node๋ Transaction์ ์คํํ๋ค๊ฐ ์ง์ ๋ Gas์ Limit๋ณด๋ค ๋ง์ Gas๋ฅผ ์๋ชจํ๊ฒ ๋ ๊ฒฝ์ฐ, Transaction์ Fail๋ก ์ฒ๋ฆฌํ๊ณ State๋ฅผ Transaction ์คํ ์ด์ ์ผ๋ก ๋๋๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ฏ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ๋ Gas์ GasLimit์ ํตํด ๋คํธ์ํฌ๋ฅผ ๋ณด๋ค ์์ ์ ์ผ๋ก ์ ์งํ๊ณ ์ ์ ์ ์์ฐ์ ๋ณดํธํ ์ ์์ต๋๋ค.
Transaction์ Structure ๋ฐ ๋ถ์
์ด๋๋ฆฌ์ Client์ธ Go-Ethereum(Geth)์์ ํ์ธํ ์ ์๋ Transaction์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
type Transaction struct {
data txdata
hash common.Hash
size int
from common.Address
nonce uint64
gasPrice *big.Int
gasLimit uint64
to *common.Address
value *big.Int
// EIP155-specific fields
chainID *big.Int
accessList types.AccessList
type uint8
**// caches**
fromCache atomic.Value
encodedCache atomic.Value
sizeCache atomic.Value
hashCache atomic.Value
}
์ฐธ์กฐ : https://github.com/ethereum/go-ethereum/blob/master/core/types/transaction.go
Transaction
Transaction์๋ ๊ฑฐ๋ ๋ฐ์ดํฐ์ Transaction ์ ์ฌ์ฉ๋๋ ๊ฐ์ค์ ์ ๋ณด ๋ฑ์ด ๊ธฐ๋ก๋ฉ๋๋ค. Transaction ํ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- data : Transaction ๊ฑฐ๋ ๋ฐ์ดํฐ ์ ๋๋ค. txdata๋ผ๋ ๊ตฌ์กฐ์ฒด์์ ๊ฐ์ ๋ถ๋ฌ์ต๋๋ค.
- hash : Transaction์ ํด์ ์ ๋๋ค.
- size : Transaction์ ํฌ๊ธฐ ์ ๋๋ค.
- from : Transaction์ ์คํํ๋ Sender์ ์ฃผ์ ์ ๋๋ค.
- nonce : from ์ฃผ์์ nonce ์ ๋๋ค. Account์ nonce๋ ์ผ์ข ์ ์นด์ดํฐ๋ก 0๋ถํฐ ์์ํ์ฌ Transaction์ ๋ฐ์์ํฌ ๋ ๋ง๋ค 1์ฉ ์ฆ๊ฐํฉ๋๋ค.
- gasPrice : Transaction ์ ์ฌ์ฉ๋๋ ๊ฐ์ค์ ๊ฐ๊ฒฉ์ผ๋ก Sender๊ฐ ์ ๋ ฅํ ์ ์์ต๋๋ค. gasPrice๊ฐ ๋์์๋ก ์๋ชจ๋๋ gas์ ๊ฐ๊ฒฉ์ด ๋น์ธ์ง์ง๋ง Transaction์ด ๋นจ๋ฆฌ ์คํ๋ ํ๋ฅ ์ด ๋์์ง๋๋ค.
- gasLimit : Transaction ์คํ์ ํ์ํ ์ต๋ ๊ฐ์ค๋์ ๋ํ๋ ๋๋ค. ํธ๋์ญ์ ์คํ ์ ํ์ํ ๊ฐ์ค์ ์์ ์ปจํธ๋ํธ์ ๋ณต์ก์ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ฐ gasLimit์ ์ง์ ํ์ฌ ์ต๋ ์ฌ์ฉ๋ ๊ฐ์ค์ ์์ ์ ํํ ์ ์์ต๋๋ค. ๋ง์ฝ Transaction ์คํ์ ํ์ํ ๊ฐ๋ณด๋ค ๋ฎ๊ฒ ์ค์ ๋์ด ์๊ฑฐ๋ Transaction์ด gasLimit๋ณด๋ค ๋ง์ gas๋ฅผ ์๋ชจํ๊ฒ ๋ ๊ฒฝ์ฐ, Transaction์ ์คํจํ๊ฒ ๋ฉ๋๋ค.
- to : Transaction์ ๋ฐ๋ ์ฃผ์ ์ ๋๋ค. EOA๋ก ์ค์ ์ด ๋์ด ์์ ๊ฒฝ์ฐ, ์๋ ์ ๋ ฅํ๋ Value์ ๋ฐ๋ผ ETH๋ฅผ ์ ์ก๋ฐ๊ฒ ๋๋ฉฐ CA๋ก ์ค์ ๋์ด ์์ ๊ฒฝ์ฐ, data์ ์ ๋ ฅํ ๊ฐ์ ๋ฐ๋ผ Contract์ Method๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ปจํธ๋ํธ๋ฅผ ์์ฑํ๋ Transaction์ผ ๊ฒฝ์ฐ, to์ ๊ฐ์ null ์ ๋๋ค.
- value : From ์ฃผ์์์ To ์ฃผ์๋ก ์ ์กํ ETH์ ์ ์ ๋๋ค.
- chainID : EIP-155 ๊ท๊ฒฉ์์ ์ง์ ๋ chain ID ์ ๋๋ค. ์ด๋๋ฆฌ์ ๊ณ์ด์ ์ฒด์ธ์ ID๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ํด๋น ์ฒด์ธ์์ ์คํํ๋ Transaction์์ ๋ช ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋๋ฆฌ์ ๋ฉ์ธ๋ท์ chainID๋ 1, Sepolia ํ ์คํธ๋ท์ chainID๋ 11155111 ์ ๋๋ค.
- accessList : EIP-2930 ๊ท๊ฒฉ์์ ์ง์ ๋ ๊ฐ์ผ๋ก ํธ๋์ญ์ ์์ ์ ๊ทผํด์ผํ๋ ์คํ ๋ฆฌ์ง์ ์์น๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ์ฌ ํด๋น ์์น๋ง ์ ๋ฐ์ดํธ, ์กฐํํ๋ ๋ฑ ํ์ํ ์์ ๋ง ์ํํ์ฌ gas ๋น์ฉ์ ์ค์ด๊ณ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. accessList์ ๋ฐ์ดํฐ ํ์ ์ array์ด๋ฉฐ accessList์ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ ํฌ๋งท์ address์ storageKeys๋ผ๋ ์ด๋ฆ์ 32byte ๋ฐฐ์ด์ ๋๋ค. address์ ๋ํ ์ ๊ทผ ํจํด ์ค ๋ณ๊ฒฝ๋ ์ ์๋ ์คํ ๋ฆฌ์ง์ ์์น๋ฅผ storageKeys๋ก ๋ช ์ํฉ๋๋ค.
TxData
Transaction ๊ตฌ์กฐ์ฒด์ data ํ๋๋ TxData๋ผ๋ ๊ตฌ์กฐ์ฒด์์ ๊ฐ์ ๋ฐ์์ต๋๋ค. TxData์ ๊ธฐ๋ก๋๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
type txdata struct {
AccountNonce uint64 `json:"nonce" gencodec:"required"`
Price *big.Int `json:"gasPrice" gencodec:"required"`
GasLimit uint64 `json:"gas" gencodec:"required"`
Recipient *common.Address `json:"to" rlp:"nil"`
Amount *big.Int `json:"value" gencodec:"required"`
Payload []byte `json:"input" gencodec:"required"`
V *big.Int `json:"v" gencodec:"required"`
R *big.Int `json:"r" gencodec:"required"`
S *big.Int `json:"s" gencodec:"required"`
Type uint8 `json:"type" gencodec:"required"`
}
- AccountNonce : Transaction ์ก์ ์์ nonce ๊ฐ ์ ๋๋ค. nonce๋ ๊ฐ ํธ๋์ญ์ ์ด ํ ๋ฒ๋ง ์ฒ๋ฆฌ๋๊ฒ ํ๊ธฐ ์ํ ์นด์ดํฐ ์ ๋๋ค. Transaction์ ์คํํ ๋๋ง๋ค ์ด ๊ฐ์ 1์ฉ ์ฆ๊ฐ์์ผ์ผ ํฉ๋๋ค.
- Price : Transaction ์ ์ฌ์ฉ๋๋ ๊ฐ์ค์ ๊ฐ๊ฒฉ์ผ๋ก Sender๊ฐ ์ ๋ ฅํ ์ ์์ต๋๋ค.
- GasLimit : Transaction ์คํ์ ํ์ํ ์ต๋ ๊ฐ์ค๋์ ๋ํ๋ ๋๋ค. ํธ๋์ญ์ ์คํ ์ ํ์ํ ๊ฐ์ค์ ์์ ์ปจํธ๋ํธ์ ๋ณต์ก์ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ฐ gasLimit์ ์ง์ ํ์ฌ ์ต๋ ์ฌ์ฉ๋ ๊ฐ์ค์ ์์ ์ ํํ ์ ์์ต๋๋ค. ๋ง์ฝ Transaction ์คํ์ ํ์ํ ๊ฐ๋ณด๋ค ๋ฎ๊ฒ ์ค์ ๋์ด ์๋ ๊ฒฝ์ฐ, ํด๋น Transaction์ ์คํจํ๊ฒ ๋ฉ๋๋ค.
- Recipient : Transaction์ ๋ฐ์ ์๋ก To์ ํด๋นํ๋ Account Address ์ ๋๋ค.
- Amount :From ์ฃผ์์์ To ์ฃผ์๋ก ์ ์กํ ETH์ ์ ์ ๋๋ค.
- Payload : Transaction ์ ํจ๊ป ์ ์กํ ๋ฐ์ดํฐ ์ ๋๋ค. ์ปจํธ๋ํธ์ Method ์คํ ์ Payload์ ์์ฑ๋ ๊ฐ์ ๋ฐํ์ผ๋ก ์ปจํธ๋ํธ์ Method๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค.
- V, R, S : ์๋ช ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์์ฑ๋ ๊ฐ์ผ๋ก ์๋ช ์ ๊ฒ์ฆํ๊ธฐ ์ํ ๊ฐ ์ ๋๋ค.
- Type : ๊ฑฐ๋ ์ ํ์ ๋ํ๋ด๋ฉฐ 0์ Legacy, 1์ AccessList, 2๋ EIP-1559์ ๋ํ Transaction ์ ํ์์ ๋ํ๋ ๋๋ค.
TxData์ User๊ฐ ์คํํ๊ณ ์ ์ ๋ ฅํ Transaction์ ์ ๋ณด์ ์๋ช ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ๊ตฌ์กฐ์ฒด์ด๊ณ Transaction์ ํด๋น ๊ฑฐ๋์ ๋ํ ์ ์ฒด์ ์ธ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์ด ๊ฑฐ๋์ ๊ฒ์ฆ ๋ฐ ์ํ ๋ณํ๋ฅผ ํ๋ ๊ตฌ์กฐ์ฒด ์ ๋๋ค.
ethers.js๋ฅผ ์ด์ฉํ์ฌ Transaction ์คํ
ether.js๋ Ethereum ํ๊ฒฝ์์ ๊ฐ๋ฐ์ ํธ๋ฆฌํ๊ฒ ํ ์ ์๋๋ก ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก Ethereum ํ์ค ์ธํฐํ์ด์ค๋ฅผ ์ค์ํ์ฌ ๋ค๋ฅธ ์ด๋๋ฆฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํธ ์ด์ฉ์ฑ์ด ๋์ต๋๋ค. ํ ์คํธ๋ท ํ๊ฒฝ์์ ์๋์ ๊ฐ์ด Transaction์ ์คํํ ์ ์์ต๋๋ค.
const { ethers } = require('ethers');
const nodeId = "{Your Node}"
const rpcEndpoint = 'https://ethereum-sepolia.nodit.io/{nodeId}';
const provider = new ethers.providers.JsonRpcProvider(rpcEndpoint);
const privateKey = "{Your Private Key}";
const wallet = new ethers.Wallet(privateKey, provider);
const myNonce = await wallet.getTransactionCount('latest');
const gasPrice = await provider.getGasPrice();
// Raw transaction data
const txData = {
to: "0x6063B58BED10C5b4d40660bD68b1a0317C3E883c",
value: ethers.utils.parseEther("0.1"),
gasLimit : 21000,
gasPrice : gasPrice._hex,
nonce: myNonce,
chainId : 11155111
};
// Sign raw Transaction data
const signedTx = await wallet.signTransaction(txData);
console.log("signed Transcation Data :", signedTx);
// send signed raw transaction data
const txResponse = await provider.sendTransaction(signedTx);
console.log("Transaction Hash : ", txResponse);
Provider ์ธ์คํด์ค์ PrivateKey๋ฅผ ์ด์ฉํ์ฌ ์๋ก์ด wallet ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ดํ ํด๋น wallet์ nonce๋ฅผ ๊ตฌํ๊ณ ํ์ฌ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ํ๊ท ์ ์ธ gasPrice๋ฅผ ๊ตฌํ ๋ค, ์ ์กํ ํธ๋์ญ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ, ์๋ช ํ, ํธ๋์ญ์ ์ ์คํํ๋ ์ฝ๋ ์ ๋๋ค.
eth_sendTransaction
์ ์๋ต์ผ๋ก ๋ฐํ๋ฐ๋ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Transaction์ ๋
ธ๋์ ์ ์กํ ํ, ๋ธ๋ก์ ํฌํจ๋๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ฆ์ ๋ฐํํฉ๋๋ค. ๋
ธ๋์ ์ ์กํ Transaction์ ๋ฐ์ดํฐ์ Transaction Hash๋ฅผ ๋ฐํ ๋ฐ์ต๋๋ค.
Response eth_sendTransaction
{
nonce: 0,
gasPrice: BigNumber { _hex: '0x59682f07', _isBigNumber: true },
gasLimit: BigNumber { _hex: '0x5208', _isBigNumber: true },
to: '0x6063B58BED10C5b4d40660bD68b1a0317C3E883c',
value: BigNumber { _hex: '0x016345785d8a0000', _isBigNumber: true },
data: '0x',
chainId: 11155111,
v: 22310257,
r: '0x850df3a3d8c6231bd7a07bc2f54bfff803dbe09a88ded4e21a40be19a1bcca0a',
s: '0x09a88296814a63733043aa13281e6a0bf241b66e9b9436a2f209e65f4af7fe97',
from: '{Sender Address}',
hash: '0x605133d8dfe07579bfa28fffd72cd766e29ba15204ec5bbc48f121f639cda730',
type: null,
confirmations: 0,
wait: [Function (anonymous)]
}
์ดํ Transaction์ด ๋ธ๋ก์ ํฌํจ๋์๋ค๋ฉด getTransactionReceipt
Method๋ฅผ ์ด์ฉํ์ฌ Transaction์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. Transaction ์คํ ๊ฒฐ๊ณผ๋ฅผ ํฌํจํ Receipt๊ฐ ๋ฐํ๋๋ฉฐ ์์ ์คํํ Transaction์ ๋ํ getTransactionReceipt
Method์ Response๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
to: '0x6063B58BED10C5b4d40660bD68b1a0317C3E883c',
from: '0x78D3D552841415FE367F08ACD869d0f0AA93e815',
contractAddress: null,
transactionIndex: 6,
gasUsed: BigNumber { _hex: '0x5208', _isBigNumber: true },
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
blockHash: '0x645ed5b68379bfce8827c6797e5ae430d73370080454914eb739f44d6f5e0091',
transactionHash: '0x605133d8dfe07579bfa28fffd72cd766e29ba15204ec5bbc48f121f639cda730',
logs: [],
blockNumber: 3317977,
confirmations: 22,
cumulativeGasUsed: BigNumber { _hex: '0x1d37ef', _isBigNumber: true },
effectiveGasPrice: BigNumber { _hex: '0x59682f07', _isBigNumber: true },
status: 1,
type: 0,
byzantium: true
}
์ค์ ํธ๋์ญ์ ์คํ ์ ์ฌ์ฉ๋ gas์ ์๊ณผ Transaction์ด ํฌํจ๋์ด ์๋ block์ Hash์ number, ๊ทธ๋ฆฌ๊ณ Confirm๋ Block์ ์ ๋ฑ, ํด๋น Transaction ์คํ ๊ฒฐ๊ณผ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Nodit Web3 Data API๋ฅผ ์ด์ฉํ Transaction ์ ๋ณด ์กฐํ
์๋ Nodit Web3 Data API ์์ธ ํ์ด์ง์์ API๋ฅผ ํธ์ถํด๋ณด๊ณ ์๋ต์ ํฌํจ๋ Transaction ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
Updated 12 days ago