일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- nest.js설명
- SBT표준
- ethers typescript
- 스마트컨트렉트테스트
- Vue.js
- 러스트 기초 학습
- 스마트컨트렉트 예약어 함수이름 중복
- ethers type
- 머신러닝기초
- 컨트렉트 동일한 함수이름 호출
- chainlink 설명
- 프록시배포구조
- 깃허브명령어
- rust 기초
- git rebase
- vue기초
- ethers websocket
- 스마트컨트렉트프록시
- 스마트컨트렉트 함수이름 중복 호출
- multicall
- ethers v6
- 스마트 컨트렉트 함수이름 중복
- nestjs 튜토리얼
- 러스트 기초
- 컨트렉트 배포 자동화
- Vue
- ambiguous function description
- Today
- Total
목록블록체인/Solidity (68)
체인의정석
EIP 1559 업데이트 이후 가스비 계산 방법이 매우 복잡해졌다. 근데 생각보다 해결방법은 간단한데 그 이유는 가스비를 계산해주는 모듈들이 나온 가스비에 곱하면 되는 가스비 상수들을 모두 실시간으로 지원해 주기 때문이다. 실제로 메인네트워크 배포까지 했는데 예측 가스비와 거의 근접한 값이 나오는 것을 확인하였다. 그렇다면 스마트컨트렉트를 작성하고 나서 테스트 코드를 작성하고. 실제 배포 전에 사용되는 가스비를 업데이트 하고 관리하려면? 상용화된 가스비를 계산해주는 api를 하나가져와서 실제 작성한 함수의 가스비를 곱해주면 되는 것이다. https://www.npmjs.com/package/eth-gas-reporter eth-gas-reporter Mocha reporter which shows gas..
클레이튼 환경에서의 개발 및 배포를 위하여 ABI를 모듈로 만들고 이를 불러와서 사용하는 작업을 진행하였다. 먼저 ABI를 모듈로 만드는 부분은 다음과 같이 진행된다. const ExampleABI = [...] module.exports = { ExampleABI } 그럼 이걸 가져오는 파일에서는 아래와 같이 코드를 작성할 수 있다. https://web3js.readthedocs.io/en/v1.7.3/web3-eth-contract.html web3.eth.Contract — web3.js 1.0.0 documentation The web3.eth.Contract object makes it easy to interact with smart contracts on the ethereum blockc..
스마트컨트렉트에서 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..
1. 데이터를 bytes 형태로 사용하는 경우 먼저 encode 후에 decode 를 해서 데이터를 컨트렉트 간에 보내지만 다시 풀어내야 하는 경우가 있다. 이 경우 bytes memory Data 이런식으로 bytes 자료형에 memory를 명시하여 데이터를 받는다. solidity에서의 사용 uint256 uintData = abi.decode(bytes(Data), (uint256)); 만약 숫자형의 데이터를 넣어서 풀 경우 위와 같이 풀어서 decode를 하면 원래의 값을 가져와서 사용할 수 있다. 상황에 따라서 다른 데이터를 보내는 컨트렉트 구조를 짤때 위와 같이 응용이 가능하다. (폴리곤 브릿지에서 모든 토큰 유형의 자산을 지원할때도 사용 이러한 경우 데이터를 넣을때는 다음과 같이 코드를 짠다..
일단 현재 구상해 놓은 컨트렉트의 구조이다. 초기 구조와 달라진점은 바로 관리하는 ID이다. 내가 적용시키려는 것은 NFT 자체이기 때문에, NFT중 하나의 extension 처럼 활용할 예정이다. TravelRule extenstion 과 같은 느낌으로 작성할 에정이다. 그리고 그걸 관리하는 TravelRule Registry 이 모든 걸 바탕으로 모든 트레블룰 솔루션을 통괄하는 TravelRuleManager 까지 나누어서 구현하는것이 목표이다. 실제 프로덕트라면 많은 시간을 들여 구조를 잡아야 한다. 하지만 지금은 POC 형태의 논문 연구용 구현이므로 간단하게 구조를 짜고 논문으로 넘어간다. 이번에 정리할 내용은 예시로 사용할 트레블룰 솔루션에 대한 구현코드이다. 해당 코드의 경우 IVMS101 표..
현재 gnosis의 멀티시그 지갑을 0.5.0 버전으로 업데이트하여 사용하기로 한 후 테스트 중이다. consensys의 멀티시그 지갑을 2년반전에 사용했었는데 같은 프로그래머가 gnosis의 멀티시그 지갑을 만들었고 현재는 gnosisSafe를 사용하고 있다. gnosis safe는 툴이 생각보다 잘 지원된다. 개발자용 배포툴도 있지만, 다중 체인을 지원하기에는 무리가 있다. 따라서 이건 패스! https://docs.gnosis-safe.io/ Introduction - Developer Docs docs.gnosis-safe.io https://dev.gnosis-safe.io/ Gnosis Safe Developer dev.gnosis-safe.io 또한 gnosisSafe의 경우 일반 유저를 대..
현재 hardhat + ether.js에서 인터널 트랜잭션에 대한 이벤트 로그 테스트가 이루어지고 있지 않은 상황이다. 완벽한 단위 테스트를 위하여서 인터널 트랜잭션에 대한 이벤트 로그를 업데이트 하기로 하였다. https://ethereum.stackexchange.com/questions/71785/how-to-test-events-that-were-sent-by-inner-transaction-delegate-call How to test events that were sent by inner transaction / delegate call? Usually, using truffle I can check for events like this: let { logs } = await myContrac..
아래 사이트에서 스마트컨트렉트에 사용된 트랜잭션을 통해 바이트코드가 파악되었으나 해당 바이트 코드가 무엇인지 모를 때 함수의 앞의 4바이트를 통해서 함수의 이름을 알아내는 서비스가 있습니다. 회사에서 CTO님이 알려주셨는데 되게 좋은 서비스 같습니다. https://www.4byte.directory/ 여기서 앞에 함수의 8바이트 코드만 넣으면 알아서 검색이 되는데, 아무래도 자체 DB에 모든 내용을 가져다가 놓고 매칭시켜서 보여주는것 같습니다.