목차
- 블럭 가져오기
- transaction 가져오기
- transaction receipt 가져오기
1. 블럭 가져오기
1-1. 문법(syntax)
web3.eth.getBlock(1,2,3)
1-2. 매개변수(parameters)
- String|Number|BN|BigNumber - 블록 번호 또는 블록 해시. 또는 "earliest", "latest" or "pending
- 불리언(선택, 디폴트는 false) - 만약 true라면, 반환된 블록의 transactions의 배열은 {}, false라면 tx 해시로 반환됨
- 함수(선택) - 첫번째 매개변수로 error 객체, 두번째 매개변수로 result를 반환하는 콜백함수
3. 반환(return): block 객체
{
difficulty: '558380', //블록 채굴의 난이도
extraData: '0xd983010a14846765746888676f312e31382e338664617277696e',
//해당 블럭에 대한 추가 정보
gasLimit: 5928685, //해당 블럭에 허용된 최대 가스
gasUsed: 0, //해당 블럭 내의 모든 거래에서 사용된 가스
hash: '0xdc874e3a698dbaec3a47f9e18965ea9b568b826a8329323fc936a39b89c4280f',
//블럭의 해시
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
// 블럭의 로그에 대한 bloom filter. 만약 pening 상태의 블럭이라면 null값
miner: '0x6459c8b0A359D32F247C8C58542075EaC9846ad2', //채굴에 대한 보상이 주어질 계정
mixHash: '0xb683b6bd5cc5332cddb0d28548de9f5a462cd8f81030ba1ebac12f7b72f7ce4a',
//해당 블록의 고유 식별값(해시). 만약 블럭이 pending 상태라면 null 값
nonce: '0x6f8dad56fcd695ce', //POW 방식으로 생성된 해시. 만약 블럭이 pending 상태라면 null 값
number: 238, //블록의 번호. 만약 블럭이 pending 상태라면 null 값
parentHash: '0xfe8fb7ad3bb83dc8eda2deb68423ade54c306f07823cefff76890e039da433a0',
//이전 블록의 고유 식별값(해시)
receiptsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',
sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',
//블록 안에 있는 엉클 데이터의 SHA3
size: 538, //byte로 나타낸 블럭의 크기
stateRoot: '0x780bd21649e84bafe33815c6bb0fccadcc92ea5d69e08d97a2034519390c34ef',
//블럭의 최종 상태 트리의 root
timestamp: 1656641992, //블록이 채굴된 시간
totalDifficulty: '126124918', //해당 블럭까지의 체인의 난이도
transactions: [], //Tx 객체 또는 반환된 Tx객체에 대한 32 바이트 Tx 해시의 배열
transactionsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',
//블럭의 Tx트리의 root
uncles: [] //엉클 해시의 배열
}
2. Transaction 가져오기
- 주어진 Tx 해시에 알맞는 Transaction 반환
- 메타마스크(사용자)가 서명까지 완료해서 노드에게 보내준 데이터 형태(매개변수로 입력한 tx)
- txpool에 있는 수준의 tx
2-1. 문법(syntax)
web.eth.getTransaction()
2-2. 매개변수(parameters)
- string : Transaction 해시
- 함수(선택) - 첫번째 매개변수로 error 객체, 두번째 매개변수로 result를 반환하는 콜백함수
2-3. 반환(return): transaction 객체
tx: {
blockHash: '0x32ab075786131cfee8311fccd4651422af9162cd9048a580cb3a6309f32cf837',
//해당 transaction이 들어있었던 블록의 해시값
blockNumber: 239, //transaction이 들어있었던 블록의 번호
from: '0x6459c8b0A359D32F247C8C58542075EaC9846ad2', //발신인 계정
gas: 21000, //발신인에 의해 공급된 가스
gasPrice: '1000000000', //발신인에 의해 제공된 가스비(단위: wei)
hash: '0x11b3193f9e25eae51607158cd61cad0c1f04849296067c92a2eb66864a790a6c', //transaction의 해시
input: '0x', //tx와 함께 보내진 data
nonce: 0,//해당 transaction 이전에 sender에 의해 만들어진 transacion의 수
to: '0x791e62e00E65E6B152cc83e07B06d8A99aaF7a3B',
//수신인 계정, 만약 contract를 생성하는 transaction이라면 null
transactionIndex: 0, //블록 내에서 transaction 인덱스의 좌표 번호
value: '10000000000000000000', //전송 금액(단위: wei)
type: 0,
v: '0x3c78',
r: '0xe0956096af38fa6dcfe7cd4b1e74871fcff2f1ad4ab2457caf8d44d1e77cc3f2',
s: '0x6cfdd8715de630172a0f055b08551370d32fd69a60bd485fa050d2d23216f4da'
}
3. Transaction receipt가져오기
- 주어진 Tx 해시에 알맞는 Transaction 반환
- receipt은 pending 상태의 tx에서는 확인불가능하며 null을 반환함
- 검증이 끝난 후 실제 블록에 들어간 실제 tx라고 보면 됨
3-1. 문법(syntax)
web.eth.getTransactionReceipt()
3-2. 매개변수(parameters)
- string : Transaction 해시
- 함수(선택) - 첫번째 매개변수로 error 객체, 두번째 매개변수로 result를 반환하는 콜백함수
3-3. 반환(return)
tx Receipt: {
blockHash: '0x32ab075786131cfee8311fccd4651422af9162cd9048a580cb3a6309f32cf837',
blockNumber: 239,
contractAddress: null, //tx가 contract를 생성했다면 CA, 그렇지 않을 경우 null
cumulativeGasUsed: 21000, //블럭 안에서 Tx가 실행되었을 때 사용된 가스의 총량
effectiveGasPrice: 1000000000,
from: '0x6459c8b0a359d32f247c8c58542075eac9846ad2',
gasUsed: 21000, //특정한 단일 거래에 사용된 가스의 양
logs: [], //해당 Tx가 생성한 log 객체의 배열
logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
status: true, //tx가 성공적이었다면 true, EVM이 tx를 원복시켰다면 false
to: '0x791e62e00e65e6b152cc83e07b06d8a99aaf7a3b',
transactionHash: '0x11b3193f9e25eae51607158cd61cad0c1f04849296067c92a2eb66864a790a6c',
transactionIndex: 0,
type: '0x0'
}
'블록체인' 카테고리의 다른 글
geth 통해서 tx보내기 및 balance에 반영시키기 (0) | 2022.07.01 |
---|---|
geth command line option (0) | 2022.07.01 |
puppeth 명령어를 통한 genesis.json 생성하기 (0) | 2022.07.01 |
이더리움3. web3 라이브러리 (0) | 2022.06.28 |
이더리움 생태계 (0) | 2022.06.27 |
댓글