일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Vue.js
- nest.js설명
- 러스트기초
- ethers v6
- vue기초
- ethers type
- 프록시배포구조
- ambiguous function description
- ethers websocket
- 스마트 컨트렉트 함수이름 중복
- 컨트렉트 동일한 함수이름 호출
- rust 기초
- 스마트컨트렉트프록시
- 깃허브명령어
- ethers typescript
- chainlink 설명
- 머신러닝기초
- 러스트 기초
- Vue
- 러스트 기초 학습
- 스마트컨트렉트테스트
- git rebase
- SBT표준
- nestjs 튜토리얼
- 체인의정석
- 컨트렉트 배포 자동화
- ethers
- multicall
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트 함수이름 중복 호출
- Today
- Total
목록분류 전체보기 (488)
체인의정석
오랜기간 ethers와 typescipt를 사용했었는데 ethers의 타입을 지정하는 부분이 많이 어려웠었다. 지금까지 알게 된 내용들을 한번 정리해 보려고 한다. 1. 컨트렉트 객체 생성 시에 타입 지정해 버리기 import { NonfungiblePositionManager } from '../typechain/NonfungiblePositionManager'; const nonfungiblePositionManager = await ethers.getContractAt("NonfungiblePositionManager", contractAddressNftManager, signer) as NonfungiblePositionManager; 위와 같은 형태로 typechain을 사용하면 여기서 기본적인..
유니스왑 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..
그간 프론트 엔드를 사용할때는 그냥 ejs, html, bootstrap 등만 사용했었는데 이젠 프론트 엔드 프레임워크를 하나쯤은 써보고 싶었다. 몇년 전부터 미루고 미루다가 드디어 react를 시작해보기로 마음 먹었다! 튜토리얼 사이트 무언가를 처음 배울 때 나는 무조건 공식 홈페이지의 튜토리얼 사이트 부터 본다. https://react.dev/learn Quick Start – React The library for web and native user interfaces react.dev 내가 원래 배우고 익히는 속도가 느리긴 하지만 그냥 나는 내 속도대로 천천히 공부해야지 컴포넌트 일단 컴포넌트라는 유익한 것을 바로 알려주는데 이렇게 함수를 만들어서 태그를 명시하고 난 후 function MyBu..
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를 호출하는데 양이 많거나 여러 ..