일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- chainlink 설명
- 스마트컨트렉트 예약어 함수이름 중복
- SBT표준
- rust 기초
- 계정추상화
- 러스트 기초 학습
- ethers type
- multicall
- ambiguous function description
- Vue.js
- 컨트렉트 배포 자동화
- ethers v6
- erc4337 contract
- Vue
- 머신러닝기초
- ethers websocket
- 티스토리챌린지
- ethers typescript
- 스마트컨트렉트 함수이름 중복 호출
- 러스트 기초
- erc4337
- 러스트기초
- git rebase
- 스마트컨트렉트테스트
- 체인의정석
- ethers
- 오블완
- 컨트렉트 동일한 함수이름 호출
- vue기초
- 스마트 컨트렉트 함수이름 중복
- Today
- Total
목록블록체인 (225)
체인의정석
컨트렉트를 작성하고 컴파일을 하면서 TypeError: Linearization of inheritance graph impossible 다음과 같은 에러가 나타났다. 이러한 에러에 대하여 찾아보니. 상속의 순서를 최소화 시키지 않고 중복되지 않게 해야 오류가 안난다고 한다. 이에 따라서 확장성을 고려하여 설계한 각 컨트렉트에서는 하나의 인터페이스로 묶고 인터페이스를 상속해주어야지 실제로 해당 하위 컨트렉트에 external을 불러와서 사용할 수 있게 되기 때문에 원래 작성했던 컨트렉트에서 공통된 부분으로 뽑아서 하위에 전달해야 하는 공통부분을 인터페이스로 만드는 작업을 진행하였다. 각 토큰 유형별로 있는 컨트렉트의 공통 함수를 뽑아서 하나의 인터페이스로 잡은 후 최상단에서는 해당 인터페이스만 작업하도록..
Require과 Assert를 사용하는 방법 1. 함수가 실패해야 할 경우 실패를 하게 만든다. 2. 배후에 실행되는 것을 확실하게 하기 위하여 이전에는 실행이 되지 않게 require를 사용해야 한다. 3. 자신이나, 테스터에게 함수가 실패할 수 있을 경우를 상기시키기 위하여 사용한다. require 형태의 실패를 유발하기 위하여 DRY를 지키는 것이 중요하다. 그리고 해피케이스의 최소 조건에서 멀어진 단위테스트를 하면 fail이 일어나게 한다. 또한 각 함수의 유니크한 require 메세지를 통하여 왜 실패하였는지를 밝히는 것이 중요하다. 테스트 Modifier에 대하여 require 체크와 유사하게 모든 modifier들은 테스트를 해야 한다. 예를 들어 submitProposal 단위 테스트는 o..
이제 배포를 했으니 테스트코드를 작성하고 돌려봐야 한다. 테스트 코드는 딱히 가나슈랑 다른 점은 없어보여서 그대로 가져와서 사용해보기로하였다. const { expect } = require("chai"); const { ethers } = require("hardhat"); describe("Greeter", function () { it("Should return the new greeting once it's changed", async function () { const Greeter = await ethers.getContractFactory("Greeter"); const greeter = await Greeter.deploy("Hello, world!"); await greeter.deplo..
구버전의 NFT의 구현 코드를 보다가 ERC165를 발견하게 되었다. 요약하자면 해당 내용은 함수의 selector를 빼와서 컨트렉트에서 표준을 잘 지켰는지를 확인해 주는 코드 이다. https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v2.5.0/contracts/token/ERC721/ERC721.sol GitHub - OpenZeppelin/openzeppelin-contracts: OpenZeppelin Contracts is a library for secure smart contract development. OpenZeppelin Contracts is a library for secure smart contract dev..
이어서 하드햇과 오픈제플린 라이브러리를 연결하는 부분부터 진행을 하도록 한다. https://docs.openzeppelin.com/upgrades-plugins/1.x/hardhat-upgrades Using with Hardhat - OpenZeppelin Docs You can also use the plugin’s functions from your Hardhat tests, in case you want to add tests for upgrading your contracts (which you should!). The API is the same as in scripts. Proxies const { expect } = require("chai"); describe("Box", functio..
1. 하드햇 문서 페이지 https://hardhat.org/guides/project-setup.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 npx hardhat 실행시 기본 세팅이 완료됨 2. hardhat.config.js 여기서 버전 설정 및 초기 실행시 기본적으로 실행할 값들 지정 가능. 만약 낮은 버전을 사용할 시 사용하는 모듈 또한 낮은 버전에 맞추어서 찾아서 활용해야 함. 0..
Minting Assets Pre requisite 1 - 먼저 화이트리스트를 신청 후 인터페이스 상속시키기 - Proxy Contract에 트랜잭션을 보냄 Pre requisite 2 - Mintable CA - API URL - Meta data - Owner Pub Key deployed contract => 주소가 아닌 진짜 pubKey Pre requisite 3 - User registration 1. 토큰 민팅 { "mints": [{ "user": "0x...", "tokens": [{ "type": "ERC721", "data": { "id": "", // custom asset ID (it's possible to make this the ERC-721 token ID depending..
출저 : https://docs.x.immutable.com/docs/concepts Immutable X Concepts There are three core components to the Immutable X stack: the ZK-Rollup scaling engine, Link and the APIs. These components work together to lower the barriers of entry in the NFT space for developers and users, and enable instant trade confirmation, massi docs.x.immutable.com 이번 글은 제대로 된 정리본을 만들기 위한 사전 조사 수준의 자료 정리로, 간단한 해석 수준..