체인의정석

ethers에서 블록태그(block tag) 사용하기 본문

블록체인/Ethers & web3

ethers에서 블록태그(block tag) 사용하기

체인의정석 2023. 5. 23. 10:55
728x90
반응형

과거 특정 시점에서의 특정 값을 조회 할 때

이벤트 말고도 조회가 가능한 방법이 있다.

바로 조회 함수에 특정 블록번호를 넣어주는 블록태그 blocktag이다.

https://github.com/ethers-io/ethers.js/blob/ab319f2f4c365d4cd1b1e17e577ecd18a7a89276/packages/contracts/src.ts/index.ts#L33

 

GitHub - ethers-io/ethers.js: Complete Ethereum library and wallet implementation in JavaScript.

Complete Ethereum library and wallet implementation in JavaScript. - GitHub - ethers-io/ethers.js: Complete Ethereum library and wallet implementation in JavaScript.

github.com

ethers에서 들어가서 보면 다음과 같이 정의가 되어 있는 것을 확인할 수 있으며

for(let i = 0; i < blockNumberList.length; i++){
  const blockNumber = blockNumberList[i]
  const response = await contract.foo({
    blockTag: blockNumber
  })
}

이런식으로 사용해 주면 되는데

blockTag: 조회하고자 하는 블록번호

이렇게 넣어주게 되면 해당 블록에서의 컨트렉트 함수를 조회해서 가져올 수 있다.

만약 인자 값이 들어간 경우라면

for(let i = 0; i < blockNumberList.length; i++){
  const blockNumber = blockNumberList[i]
  const response = await contract.foo(
  	input 1,
	{
   	 blockTag: blockNumber
  	})
}

위와 같이 블록태그를 걸어줄 수 있다.

 

 

728x90
반응형
Comments