일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리챌린지
- ethers v6
- chainlink 설명
- ethers type
- 컨트렉트 동일한 함수이름 호출
- 스마트컨트렉트프록시
- nest.js설명
- ethers
- git rebase
- SBT표준
- Vue
- 컨트렉트 배포 자동화
- 스마트컨트렉트 함수이름 중복 호출
- ambiguous function description
- multicall
- 머신러닝기초
- 러스트기초
- ethers typescript
- rust 기초
- ethers websocket
- 체인의정석
- 오블완
- 러스트 기초
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트테스트
- 스마트 컨트렉트 함수이름 중복
- 러스트 기초 학습
- vue기초
- Vue.js
- 프록시배포구조
- Today
- Total
목록블록체인/Ethers & web3 (59)
체인의정석
txhash로 부터 데이터를 뽑아낼 때에는 다음과 같이 뽑아내면 된다.const getTxDataFromHash = async (provider, txhash) => { const txReceipt = await provider.getTransactionReceipt(txhash); const res = {}; res.blockNumber = Number(txReceipt.blockNumber); res.gasUsed = Number(txReceipt.gasUsed); const blockTimestamp = await provider.getBlock(Number(txReceipt.blockNumber)); res.blockTimestamp = blockTimestamp.timestamp; ..
만약 hardhat toolbox를 사용한다면 굳이 외부 라이브러리를 설치할 필요가 없다.https://hardhat.org/hardhat-runner/docs/guides/test-contracts Hardhat | Ethereum development environment for professionals by Nomic FoundationHardhat is an Ethereum development environment. Compile your contracts and run them on a development network. Get Solidity stack traces, console.log and more.hardhat.org이미 하드햇 툴박스에 있기 때문이다.하드햇 툴박스에는 테스트 실행을..
크로스체인 트랜잭션 실행 로직을 만들 때 만든 코드 중 다시 사용할 만한 코드만 뽑아서 기록해둔다. 해당 로직은 Ethers v6 버전으로 진행하였다.A. Ethers & WebSocket 사용하여 이벤트 구독하기A-1. ping, pong 을 통해 커넥션 살리기이벤트 구독이 일시적으로 되더라도 계속해서 ws 구독을 유지시키려면 다음과 같이 체크 로직을 만들어서 돌려주어야 한다.const { ethers } = require("ethers");const ResilientWebsocket = async (url) => { const EXPECTED_PONG_BACK = 15000; const KEEP_ALIVE_CHECK_INTERVAL = 30 * 1000; //7500; const de..
이벤트 구독 로직의 경우 실제 테스트 환경까지 통과하더라도 이벤트 구독 로직을 오래 켜두면 RPC 엔드포인트 관련 문제가 발생할 수 있다. 이에 따른 대안은 2가지이다.1. 웹소켓을 쓰고 ping, pong로직 구현 (웹소켓을 쓰는것이 좋다고는 하지만 웹소켓을 써봤자 지속적으로 살려주는 ping, pong 로직을 구현해주고 체크 또한 지속적으로 해주어야 한다.) 2. http 통신을 쓰고 문제가 생길때마다 재시작 1. 가장 좋은 케이스는 문제 없는 URC URL이 제공되며 풀 아카이브 노드 형태로 제공되는 형태 이 경우 일반적인 구독을 사용하더라도 문제가 없다. 이러한 경우 아래와 같이 사용하면 끝난다. Contract.on("ReceiveMessage", async (...args) => { ..
https://docs.ethers.org/v6/migrating/ Documentation Documentation for ethers, a complete, tiny and simple Ethereum library. docs.ethers.org
현재 2023년 12월 기준 ethers의 최신 버전 공식문서는 아래와 같다. 아래 v5 -> v6으로 마이그레이션 하는 문서를 보면 ethers.utils 문법이 사라졌으며 그 외에도 다양한 문법이 크게 바뀌었다. https://docs.ethers.org/v6/migrating/ Documentation Documentation for ethers, a complete, tiny and simple Ethereum library. docs.ethers.org 내가 사용하려던 ethers.utils 에서 해시를 취하는 값 또한 utils가 빠지게 되면서 ethers.keccack256으로 바뀌었다. https://docs.ethers.org/v6/api/crypto/#keccak256 Documenta..
provider에 console.log를 찍어보니 HTTP provider가 로컬호스트로만 작동하고 해결이 안되고 있었다. 해당 부분을 보니 설정 문제인거 같은데 설정 파일을 바꾸고 체크를 해봐도 해결이 되지 않았다. 그래서 그냥 hardhat의 config를 사용하는 대신 수동으로 모두 지정해 주기로 하였다. import { BigNumber, BigNumberish, Signer } from "ethers"; import { ethers } from "hardhat"; export const basicSettings = async (): Promise => { const provider = new ethers.providers.JsonRpcProvider("RPC_URL"); const wallet ..
1. tsConfig 살펴보기 tsConfig에서 scripts 경로가 지정되어있는지 확인한다. include 안에 들어가있는지 보면된다. { "compilerOptions": { "target": "ES2017", "module": "commonjs", "declaration": true, "declarationMap": true, "sourceMap": true, "outDir": "./dist", "strict": true, "rootDirs": ["./src", "./scripts", "./test"], "esModuleInterop": true }, "exclude": ["dist", "node_modules"], "include": ["./test", "./src", "./scripts"], ..