일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- erc4337
- git rebase
- 머신러닝기초
- vue기초
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트 기초 학습
- ethers typescript
- rust 기초
- ethers v6
- 러스트기초
- 계정추상화
- ethers websocket
- 컨트렉트 동일한 함수이름 호출
- 체인의정석
- SBT표준
- redux 기초
- cloud hsm 사용하기
- Vue
- 티스토리챌린지
- redux toolkit 설명
- Vue.js
- 러스트 기초
- erc4337 contract
- 오블완
- 스마트컨트렉트 함수이름 중복 호출
- cloud hsm 서명
- ethers type
- ambiguous function description
- 스마트 컨트렉트 함수이름 중복
- cloud hsm
- Today
- Total
목록전체 글 (526)
체인의정석
서로 다른 체인에서 같은 컨트렉트 주소가 나올 수 있을까? 현재 작성하는 프로그램에서 서로 다른 체인에서 상호작용을 하는데 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의 사이너..
작성한 스마트컨트렉트의 배포 이후 지난번 메타마스크에 이어서 이번에는 관리자가 사용할 백엔드 환경에서의 API를 만들어야 하는 상황이 왔다. 지난번에는 자바스크립트로 모듈을 만들었었는데 이번에는 타입스크립트로 ABI를 저장한 후 불러와서 사용해야 되는 상황이 되었다. https://radlohead.gitbook.io/typescript-deep-dive/project/modules/external-modules 파일을 이용한 모듈화 - TypeScript Deep Dive 그러나 특정조건에서 foo파일만 불러오기를 원할 수 있습니다. 그런 경우에는 type annotation 및 not로 import를 변수이름으로 사용해야 합니다. 이렇게하면 타입스크립트에서 주입되는 런타임 종속성 radlohead.g..
https://hardhat.org/tutorial/debugging-with-hardhat-network.html Ethereum development environment for professionals by Nomic Labs Compile, deploy, test and debug your Ethereum software. Get Solidity stack traces, console.log, mainnet forking and more. hardhat.org pragma solidity ^0.6.0; import "hardhat/console.sol"; contract Token { //... } 테스트때 쓰려고 막상 찾으려니 찾는데 해메서 글로 올린다. 위와 같이 import를 선언하여 har..
테스트 코드에서는 잘못된 값을 넣었을 때 실패를 반환하는지를 체크해서 알려주어야 한다. ethers.constants.AddressZero //0x0000 형태의 주소 일단 위와 같은 제로 address의 경우 스마트컨트렉트 오딧을 받게 되면 항상 막아야 한다고 나오게 된다. 제로 address를 막는 이유는 빈값이 들어왔을 때 이를 막기 위함이 아닐까 싶다. 아무튼 주소값이 입력값으로 들어오는 경우면 위의 Addresszero를 사용하여 해당 값을 넣었을 때 false 값을 반환하는지에 대한 여부를 항상 체크해 주어야 한다. 이 외에도 bytes32형태로 값을 넣는 경우가 종종 있다. 이벤트 구독형 기능을 사용하거나 하나의 컨트렉트에 여러 세부 모듈을 다룰 때 이를 많이 사용하는데 const zero3..
트레블룰을 만족하는 크로스체인 NFT 브릿지 요약 트레블룰은 자금 세탁 방지를 위하여서 기존 금융권에 적용되고 있는 제도로서 현재 기존 금융자산들은 해외 송금을 진행할 때 국제은행간통신협회(SWIFT)가 요구하는 형식에 맞추어 송금자와 수신자의 정보를 기록중이다. 2019년 6월 국제자산세탁방지기구(FATF)가 코인 규제 권고안을 추가하면서 현재는 국내 거래소들도 암호화폐에 트래블룰이 적용되길 준비하는 단계이다. 특히 최근 디파이나 NFT에 대한 관심과 유입 자금의 증가로 트레블룰의 도입을 해야하는 가상자산 사업자(VASP)의 범위에 NFT를 다루는 사업자들도 포함될 수 있다는 의견(하단참고)도 나오고 있다. 트레블룰에 대한 사항은 기술중립적으로 신뢰성을 마련하는 방법에 대한 제약 또한 없어 이에 대한 ..