| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- ethers type
- 오블완
- erc4337
- redux toolkit 설명
- 러스트 기초 학습
- 스마트컨트렉트 예약어 함수이름 중복
- ethers websocket
- ethers v6
- cloud hsm
- cloud hsm 사용하기
- 스마트 컨트렉트 함수이름 중복
- rust 기초
- ambiguous function description
- 러스트기초
- redux 기초
- 컨트렉트 동일한 함수이름 호출
- cloud hsm 서명
- 체인의정석
- ethers typescript
- Vue.js
- git rebase
- 스마트컨트렉트 함수이름 중복 호출
- erc4337 contract
- 계정추상화
- 머신러닝기초
- vue기초
- Vue
- SBT표준
- 러스트 기초
- 티스토리챌린지
- Today
- Total
목록전체 글 (530)
체인의정석
이전 글 Buy now에 대한 패턴 분석 https://it-timehacker.tistory.com/254 오픈씨 스마트 컨트렉트 구매 패턴 분석 먼저 오픈씨는 #Rinkeby네트워크 에서 테스트가 가능하다. 우선 오픈씨를 테스트 하기위하여 간단한 NFT를 배포해 볼 수 있다. NFT를 배포하는 부분은 일단 생략하기로 하겠다. https://it-timehacker.tistor it-timehacker.tistory.com 이어서 2번째 구매 유형인 오퍼로 구매하는 부분에 대해 살펴보도록 한다. make offer를 클릭 동의 후 기간 및 가격 설정 후 오퍼 이더리움으로 하면 오퍼가 안됨. 따라서 WETH로 전환 필요 make offer에서는 WETH에 대한 approve 거래 진행 approve 이후..
먼저 오픈씨는 #Rinkeby네트워크 에서 테스트가 가능하다. 우선 오픈씨를 테스트 하기위하여 간단한 NFT를 배포해 볼 수 있다. NFT를 배포하는 부분은 일단 생략하기로 하겠다. https://it-timehacker.tistory.com/210 hardhat 사용법 정리 02- ERC721 배포해보기 이어서 하드햇과 오픈제플린 라이브러리를 연결하는 부분부터 진행을 하도록 한다. https://docs.openzeppelin.com/upgrades-plugins/1.x/hardhat-upgrades Using with Hardhat - OpenZeppelin Docs You can also.. it-timehacker.tistory.com 지난번에 올린 배포하는 법을 참고해서 하면 된다. 아니면 리믹..
코드리뷰 전에는 주소를 받아와서 넣어서 사용하였는데, 반복되는 사용처에는 이런식으로 사용하는 대신 인터페이스를 정의하여 사용하는 것이 더 깔끔하다. 라이브러리를 가져와서 컨트렉트끼리 연결시키는 경우 주소값을 받아와서 라이브러리를 정의한 후 사용하면 된다. IMapping mappingContract; 위와 같이 인터페이스에 해당하는 컨트렉트를 자료형으로 지정한 후 뒤에 변수를 넣으면 되는데, constructor( address mappingContractAddress ) public { mappingContract = IMapping(mappingContractAddress); } 위와 같이 생성자 안에서 주소를 지정하여 인터페이스 객체로 만들어 주면 된다. 이런식으로 만들었을 경우 조회함수와 수정함수..
예전에는 스마트컨트렉트에서 0x00 주소를 체크하여 예외 처리를 안해주면 비어있는 값이 들어왔을 때 그대로 실행시켰기 때문에 꼭 예외 처리를 해줬어야 했다. 하지만 최근 코드에는 이러한 체크가 많이 이루어지지 않는 것을 볼 수 있었다. https://forum.openzeppelin.com/t/removing-address-0x0-checks-from-openzeppelin-contracts/2222 Removing address != 0x0 checks from OpenZeppelin Contracts OpenZeppelin Contracts has quite a strict policy of never allowing zero addresses, by placing checks like require..
서로 다른 체인에서 같은 컨트렉트 주소가 나올 수 있을까? 현재 작성하는 프로그램에서 서로 다른 체인에서 상호작용을 하는데 CA를 키값으로 매핑을 구현하였다. 어차피 중간에 있는 관리 프로그램이 관리를 할 예정이지만 충분히 고려해봐야 할 상황이기 때문에 조사를 해보았다. 일단, 결론부터 말하자면 지갑과 nonce값이 같다면 같은 값이 나올 수 있다는것이 정답이다. 따라서 CA를 여러 다른 체인에서 같이 다룰때는 이를 고려하여 코드를 짜야한다. https://www.reddit.com/r/ethdev/comments/nxcc6r/how_can_contracts_have_the_same_addresses_across/ How can contract's have the same addresses across ..
크게 3가지 유형으로 나뉘며, 이걸 제대로 못할 시 에러가 나게 된다. 스마트컨트렉트 개발에 가장 큰 시간을 들여야 하는 부분은 역시 테스트 코드가 아닌가 싶다. 반복되는 부분을 정리하여 나중에 해메지 않아야 하기 때문에 이쯤에서 다시한번 정리하고 넘어가도록 하겠다. 1. 함수를 실행하고 이벤트를 남겼는지 체크 이 경우 await로 전체를 감싸준다. 이벤트가 발생되었는지 체크하는 시점은 함수 전체가 실행 되고 난 이후이기 때문이다. it("Should setBridge in Contract", async () => { await expect(컨트렉트이름.함수명(입력값1, 입력값2)) .to.emit(컨트렉트이름, "이벤트이름") .withArgs(이벤트값1, 이벤트값2) }) 2. 오류가 제대로 발생하는..
NomicLabsHardhatPluginError: You are trying to create a contract factory for the contract A, which is abstract and can't be deployed. 위 에러가 나왔다. 이전에도 한참 해맸어서 기억이 나는데 일단 이 경우 봐야 할 점은 1. 상속관계 2. 생성자 위 2 부분중 문제가 생겨서 에러가 발생한다고 보면 된다. 이러한 에러는 1. 컴파일 에러 해결 2. 배포 스크립트 실행 2번에서 발생되는 에러이다. 물론, 어디서 에러가 났는지는 알 방법이 없다. 따라서 나도 여기서 시간을 많이 잡아먹었는데 , 이러한 경우 에러가 나는 부분을 파악하기 위하여 상속해둔 컨트렉트나 새로 만든 함수들 인터페이스 위주로 하나씩 지..
일단 트랜잭션을 보내기 위해서는 signer 객체를 생성해야 한다. 이는 hardhat.config.ts에 있는 module.exports = { networks: { hardhat: { }, ropsten: { url: process.env.DEFAULT_ETHEREUM_ROPSTEN_RPC_URL, accounts: [process.env.TEST_PK] }, 위와 같은 형태의 네트워크 설정값의 accounts에 넣어주면 된다. 해당 내용은 https://docs.ethers.io/v5/api/signer/ Signers Documentation for ethers, a complete, tiny and simple Ethereum library. docs.ethers.io ethers js의 사이너..
