일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 typescript
- ethers
- ethers type
- 스마트 컨트렉트 함수이름 중복
- 스마트컨트렉트 함수이름 중복 호출
- git rebase
- Vue
- 컨트렉트 동일한 함수이름 호출
- ethers websocket
- ambiguous function description
- 오블완
- 머신러닝기초
- erc4337
- 컨트렉트 배포 자동화
- 러스트기초
- multicall
- erc4337 contract
- chainlink 설명
- 스마트컨트렉트테스트
- rust 기초
- ethers v6
- 티스토리챌린지
- vue기초
- SBT표준
- 계정추상화
- Vue.js
- Today
- Total
목록블록체인 (225)
체인의정석
유니스왑 V3를 보면 multicall이 내장되어 있다. 따라서 서비스를 만들 때 해당 멀티콜을 써서 다양한 트랜잭션을 보내주거나 조회해 올 수 있는데 ethers와 typescript를 사용해서 멀티콜을 하는 부분을 사용하는 부분을 기록해 두려고 한다. struct를 encode 하는 부분 참고 소스코드는 다음과 같다. const a = '0x...'; const b = '123123123123132123123'; const c = true; const myStructData = ethers.utils.AbiCoder.prototype.encode( ['address', 'uint', 'bool'], [a, b, c] ); const tx = await myContract.myFunction( mySt..
hardhat config 에서 먼저 다음과 같이 네트워크와 프라이빗 키를 넣어준다. wemixTest: { url: 'https://api.test.wemix.com', accounts: [process.env.PRIVATE_KEY!,process.env.PRIVATE_KEY2!], } 해당 private key에 대한 public key를 불러오려면 다음과 같이 쓰면 된다. const signer = await ethers.getSigners(); console.log("getSigner:", signer[0].address); console.log("getSigner:", signer[1].address); 그리고 해당 signer의 경우 const contractName = await ethers..
https://docs.uniswap.org/contracts/v3/guides/providing-liquidity/setting-up Set Up Your Contract | Uniswap Setting up the Contract docs.uniswap.org 이번 포스팅에서는 유니스왑 홈페이지의 Providing Liquidity를 보도록 하겠습니다. 1. Contract Setting import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol'; import '@uniswap/v3-core/contracts/libraries/TickMath.sol'; import '@openzeppelin/contracts/token/ERC721/IERC7..
Uniswap V3관련 프로젝트에 들어가기 전에 어느정도 학습을 할 시간이 생겨서 유니스왑 v3를 따로 컨트렉트를 짜서 사용하는 방법에 대해서 한번 실습을 해보려고 한다. https://docs.uniswap.org/contracts/v3/guides/local-environment Set Up Your Local Environment | Uniswap One of the most common questions we get asked is what development toolset to use to build on-chain integrations with Uniswap. There’s no right answer to this question but for this guide we’ll recomme..
실제로 실무를 하다보면 블록체인 서비스의 데이터를 종합하여 보고해야 하는 일이 빈번히 일어난다. 백엔드 개발과 더불어 지속적으로 들어오는 업무이므로, 뭔가 자체적인 db를 쌓기에는 반복적이지 않고 엑셀로 결과물을 정리해서 비 개발직군 분들에게 넘겨줘야 할 경우를 생각하여 프로그램을 설계해 봤다. STEP 1. 다양한 레포지토리의 컨트렉트를 하나의 경로에서 모두 관리하기 먼저 가장 귀찮았던 것은 매 컨트렉트 마다 계속해서 경로를 생성해서 처리해줘야하는 부분이였다. 이 경우 생각보다 매우 쉬운 방법이 있다. 바로 hardhat의 특징 상 기본 경로 구조 자체가 contracts에 들어가 있기 때문에 contracts 폴더의 하위 디렉터리로 각 레포지토리를 넣어주면 되는 것이였다. 예를 들어 하나의 defi ..
사용환경 : typescript, ethers, hardhat 에러 코드 및 발생 상황 : HeadersTimeoutError: Headers Timeout Error at Timeout.onParserTimeout [as _onTimeout] (/Users/chohk/Desktop/git/geteventwinner/node_modules/undici/lib/client.js:902:28) at listOnTimeout (node:internal/timers:571:11) at processTimers (node:internal/timers:512:7) { code: 'UND_ERR_HEADERS_TIMEOUT' } 만약 hardhat 환경에서 이벤트를 뽑아내거나 view를 호출하는데 양이 많거나 여러 ..
Uniswap V2 컨셉 토큰과 토큰의 거래를 해주는 거래소가 DEX인데 유니스왑 V2,V3의 거래량은 다양한 DEX 중 가장 많은 거래량을 자랑한다. UniswapV2는 자동화되어 토큰을 거래해주는 프로토콜이다. 유니스왑 V2는 이더리움 또는 이더리움의 레이어 2 위에만 존재한다. 거래소에서는 오더북 형식으로 서버에서 관리되며 DEX는 유동성 풀에서 거래되며 블록체인에서 거래된다. CPMM 유니스왑에서 SWAP은 x*y = k 이라는 Constant Product Market Maker라는 CPMM 모델을 사용한다. X와 Y의 가치의 곱인 K가 유지가 되기 때문에 이러한 값이 나오게 된다. 그래프에서 결국 한 점에서의 기울기가 price인데 해당 기울기는 x와 y 좌표의 이동에 따라서 변화가 되게 되는..
TypeError: 컨트렉트이름.함수 is not a function 위와 같은 에러가 난다면? 위에처럼 ethers에서 함수를 못 찾을 때는 일단 abi 부터 체크해 보아야 한다. 먼저 컨트렉트와 상호작용한 변수를 만들어 주면 const exampleContract = await ethers.getContractAt("exampleContract", exampleContractAddress); 이런식으로 변수를 만들어 준 후에 console.log(exampleContract.functions); 해당 변수에 담겨있는 함수들 리스트를 가져와서 내가 사용하려는 함수가 있는지 확인해 본다. 근데 만약 다시 컴파일도 하고 함수이름까지 있는데 인식이 안된다면? 이건 오버로딩 문제일 수도 있다. ethers에서..