티스토리 뷰
728x90
Web3.js
자바스크립트를 이용한 이더리움 네트워크 API. Web3.js는 자바스크립트에서 HTTP, IPC, WebSocket 등을 사용해 이더리움 네트워크의 노드들과 상호작용하기 위한 API이다.
이더스캔 기능 구현
지갑 주소 하나와 블록 넘버(시작, 끝 블록)를 입력받아 해당 블록 범위 내에서 지갑 주소와 관련이 있는 트랜잭션을 출력하는 스크립트를 작성해보자.
const Web3 = require("web3");
const fs = require("fs");
const readline = require("readline");
const INFURA_PROJECT_ID = fs.readFileSync("./infura_project_id.txt", {
encoding: "utf8",
flag: "r",
});
const rpcURL = `https://ropsten.infura.io/v3/${INFURA_PROJECT_ID}`;
const txs = [];
const web3 = new Web3(rpcURL);
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const getTransaction = async (account, startBlock, endBlock) => {
for (var i = parseInt(startBlock); i <= parseInt(endBlock); i++) {
// console.log("block number: ", i);
const block = await web3.eth.getBlock(i);
// console.log('transactions count: ', block.transactions.length)
for (let tx of block.transactions) {
const txResult = await web3.eth.getTransaction(tx);
if (account === txResult.to || account === txResult.from) {
// console.log(">>> ", tx);
txs.push(tx);
}
}
}
console.log(txs);
};
rl.question("탐색할 주소를 입력해주세요: ", (account) => {
rl.question("탐색할 범위(시작 블록, 끝 블록)를 입력해주세요: ", (block) => {
const [startBlock, endBlock] = block.split(", ");
// console.log(`${account}`);
// console.log(`${startBlock}, ${endBlock}`);
getTransaction(account, startBlock, endBlock);
rl.close();
});
});
'블록체인 개발 > DApp' 카테고리의 다른 글
로컬 네트워크에 erc20 토큰 배포(truffle) (0) | 2021.12.24 |
---|---|
[DApp] 오픈씨 일부 기능 구현(NFT 민팅, 전송 등) (0) | 2021.12.20 |
[라이브러리] web3 vs. ethers (0) | 2021.12.18 |
[개발 도구] Ganache, Truffle, Hardhat, Openzeppelin (0) | 2021.12.18 |
[web3.js] 스마트 컨트랙트 호출 call() vs. send() (0) | 2021.12.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스마트 컨트랙트
- ERC721
- class
- 블록 탐색기
- web3-token
- Hardhat
- metamask-extension
- swr
- Android
- Truffle
- Upgradeable Contracts
- caver-js
- eslint
- 블록체인
- JWT
- caver.js
- interface
- Call
- avalanchego
- nft
- Proxy Pattern
- web3.js
- 이더리움
- ethers.js
- web3
- ganache
- Flutter
- erc20
- 앱 아이콘
- typescript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함