일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 v6
- 컨트렉트 동일한 함수이름 호출
- Vue
- rust 기초
- git rebase
- erc4337
- 계정추상화
- 머신러닝기초
- 러스트기초
- 체인의정석
- 스마트 컨트렉트 함수이름 중복
- multicall
- ethers websocket
- ethers typescript
- 오블완
- vue기초
- 러스트 기초
- ambiguous function description
- 러스트 기초 학습
- chainlink 설명
- 티스토리챌린지
- ethers type
- 스마트컨트렉트테스트
- SBT표준
- erc4337 contract
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- ethers
- 컨트렉트 배포 자동화
- 스마트컨트렉트 예약어 함수이름 중복
- Today
- Total
목록분류 전체보기 (496)
체인의정석
스마트컨트렉트에서 Encode와 Decode를 할 때는 아래와 같이 encode, decode 함수를 사용하여서 할 수 있다. contract Encode { function encode(string memory _string1, uint _uint, string memory _string2) public pure returns (bytes memory) { return (abi.encode(_string1, _uint, _string2)); } function decode(bytes memory data) public pure returns (string memory _str1, uint _number, string memory _str2) { (_str1, _number, _str2) = abi.de..
한 환경에서 배포를 다양하게 해야할 경우 migration을 사용하여서 배포가 가능하다. https://trufflesuite.com/docs/truffle/reference/truffle-commands/ Truffle Commands - Truffle Suite Truffle Commands This section will describe every command available in the Truffle application. Usage All commands are in the following form: truffle [options] Passing no arguments is equivalent to truffle help, which will display a list of all comm..
가나슈의 경우 UI가 되어 있는 버전도 있지만 CLI에서 사용가능한 버전도 있다고 한다. 특히 최근에는 그냥 기본 rpc test에서 지원이 된다고 한다. https://github.com/trufflesuite/ganache/tree/master GitHub - trufflesuite/ganache: A tool for creating a local blockchain for fast Ethereum development. A tool for creating a local blockchain for fast Ethereum development. - GitHub - trufflesuite/ganache: A tool for creating a local blockchain for fast Ethereu..
이런식으로 작성한 컨트렉트에 대한 UML은 코드로 쉽게 만들 수 있다. 바로 npm link sol2uml --only=production\n sudo npm link sol2uml --only=production\n sol2uml ./ERC721TravelRuleExtension.sol\n 이 순서대로 명령어를 실행하면 된다. sol2uml 명령어는 컨트렉트가 있는 장소로 지정해주어야 해당 장소에 UML이 생성되며 컨트렉트를 직접 지정할 경우 하나의 UML이 나오게 되고 컨트렉트의 최상단 경로에서 사용할 때는 전체 UML 구조가 나오게 된다. 이를 이용해서 산출물을 빠르게 만들 수 있다.
1. 데이터를 bytes 형태로 사용하는 경우 먼저 encode 후에 decode 를 해서 데이터를 컨트렉트 간에 보내지만 다시 풀어내야 하는 경우가 있다. 이 경우 bytes memory Data 이런식으로 bytes 자료형에 memory를 명시하여 데이터를 받는다. solidity에서의 사용 uint256 uintData = abi.decode(bytes(Data), (uint256)); 만약 숫자형의 데이터를 넣어서 풀 경우 위와 같이 풀어서 decode를 하면 원래의 값을 가져와서 사용할 수 있다. 상황에 따라서 다른 데이터를 보내는 컨트렉트 구조를 짤때 위와 같이 응용이 가능하다. (폴리곤 브릿지에서 모든 토큰 유형의 자산을 지원할때도 사용 이러한 경우 데이터를 넣을때는 다음과 같이 코드를 짠다..
기존 EVM 계열 네트워크는 모두 hardhat + ethers를 사용하였지만 클레이튼의 경우 레퍼런스가 많은 truffle + caver.js를 사용하여서 하기로 하였다. 일단 클레이튼의 경우 evm 계열이지만 지정하는 버전을 맞추어 주어야 사용이 가능하다. 이런 환경 세팅의 경우 공식 문서에 들어가서 체크하고 모두 해당 버전으로 맞춰주어야 한다. 안그럼 나중에 고생한다. https://ko.docs.klaytn.foundation/dapp/sdk/caver-js/getting-started 시작하기 - Klaytn Docs ... ko.docs.klaytn.foundation node 버전 세팅하기 1. nvm 설치하기 curl -o- https://raw.githubusercontent.com/cr..
일단 현재 구상해 놓은 컨트렉트의 구조이다. 초기 구조와 달라진점은 바로 관리하는 ID이다. 내가 적용시키려는 것은 NFT 자체이기 때문에, NFT중 하나의 extension 처럼 활용할 예정이다. TravelRule extenstion 과 같은 느낌으로 작성할 에정이다. 그리고 그걸 관리하는 TravelRule Registry 이 모든 걸 바탕으로 모든 트레블룰 솔루션을 통괄하는 TravelRuleManager 까지 나누어서 구현하는것이 목표이다. 실제 프로덕트라면 많은 시간을 들여 구조를 잡아야 한다. 하지만 지금은 POC 형태의 논문 연구용 구현이므로 간단하게 구조를 짜고 논문으로 넘어간다. 이번에 정리할 내용은 예시로 사용할 트레블룰 솔루션에 대한 구현코드이다. 해당 코드의 경우 IVMS101 표..
일단 멀티시그 지갑의 경우 예전 버전이라 그런지 public으로 선언한 변수가 있었다. 항상 view 함수만을 사용하여 테스트코드를 짜왔기 때문에 이러한 부분이 오류가 났다. const transactionId_Object = await multiSigContract.transactionCount(); const transactionId_Array = Object.values(transactionId_Object); console.log("transactionId_Array >>>>>>>>>>", transactionId_Array); const transactionId = transactionId_Array[0]; console.log("TXID >>>>>", transactionId); 여기서 tra..