| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- rust 기초
- 러스트 기초
- 러스트기초
- 머신러닝기초
- Vue
- 스마트컨트렉트 예약어 함수이름 중복
- ethers typescript
- cloud hsm 서명
- redux 기초
- git rebase
- ethers v6
- erc4337
- ambiguous function description
- Vue.js
- cloud hsm 사용하기
- vue기초
- redux toolkit 설명
- cloud hsm
- 오블완
- 러스트 기초 학습
- ethers websocket
- 체인의정석
- 계정추상화
- 스마트컨트렉트 함수이름 중복 호출
- 컨트렉트 동일한 함수이름 호출
- 티스토리챌린지
- SBT표준
- erc4337 contract
- ethers type
- 스마트 컨트렉트 함수이름 중복
- Today
- Total
목록분류 전체보기 (531)
체인의정석
코드를 계속해서 분석하다 보니 결국 릴레이어를 사용하는 모델에서는 프록시 구조를 알지 못하고서는 코드를 70%이상 이해하기 어려웠다. 따라서 프록시 구조에 대한 자세한 학습을 하고 이후에 더 깊은 분석을 해보려고 한다. 학회분들의 조언에 따라 학습은 오픈제플린 및 트러플 등에서 시작해보기로 하엿다. https://blog.openzeppelin.com/proxy-patterns/ Proxy Patterns - OpenZeppelin blog One of the biggest advantages of Ethereum is that every transaction of moving funds, every contract deployed, and every transaction made to a contrac..
이전 글 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번에서 발생되는 에러이다. 물론, 어디서 에러가 났는지는 알 방법이 없다. 따라서 나도 여기서 시간을 많이 잡아먹었는데 , 이러한 경우 에러가 나는 부분을 파악하기 위하여 상속해둔 컨트렉트나 새로 만든 함수들 인터페이스 위주로 하나씩 지..