일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 설명
- ethers typescript
- rust 기초
- ambiguous function description
- git rebase
- ethers
- multicall
- 계정추상화
- 스마트컨트렉트 예약어 함수이름 중복
- ethers v6
- 체인의정석
- 스마트컨트렉트 함수이름 중복 호출
- 스마트컨트렉트테스트
- ethers type
- 컨트렉트 배포 자동화
- SBT표준
- 머신러닝기초
- erc4337 contract
- Vue
- 티스토리챌린지
- 러스트 기초 학습
- 오블완
- ethers websocket
- 컨트렉트 동일한 함수이름 호출
- vue기초
- Vue.js
- 러스트 기초
- 러스트기초
- erc4337
- 스마트 컨트렉트 함수이름 중복
- Today
- Total
목록분류 전체보기 (496)
체인의정석
컨트렉트에서 특정 데이터를 기록할 때 종종 keccack256의 해시 값을 저장시킨다. _tokenType = keccak256(abi.encodePacked("erc721")); 위에는 솔리디티의 코드인데, 다음과 같이 erc721 종류의 토큰을 나타내기 위해 사용하는 경우이다. 여러 토큰을 다루어야 하는 dapp이다 보니 위와 같은 표시를 남기게 되고 이를 체크하여 다양한 종류의 표준 토큰을 관리하는것이 목적인 상황이다. 테스트를 하거나 스크립트를 짤 때 이러한 점을 고려하여 keccak256을 사용해야 할 상황이 있다. 먼저 ethers에 나오는 keccak을 하는 방법이다. const tokenType721 = await ethers.utils.keccak256(ethers.utils.toUtf8..
const paddedOriginChain = ethers.utils.hexZeroPad("0x1", 32) => paddedOriginChain >>> 0x0000000000000000000000000000000000000000000000000000000000000001
nft에 있는 token URI는 앞부분은 다음과 같이 오픈제플린 표준에 있는 인터페이스방식대로 가져오면 된다. // override external view function tokenURI(uint256 tokenId) external view returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = getBaseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function getBaseURI()..
코드 리뷰 때 모든 코멘트를 싱글로 달면 메일이 계속 날라가서 다음과 같이 변경하였다. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request Commenting on a pull request - GitHub Docs You can comment on a pull request's Conversation tab to leave general comments, questions, or props. You can also suggest changes that the author of the pull request ca..
ERC721 Receiver /** * @dev Internal function to invoke `onERC721Received` on a target address. * The call is not executed if the target address is not a contract. * * This function is deprecated. * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred * @param _d..
ERC721에서 token URI는 토큰아이디와 base URI의 조합으로 만들어 진다. IERC721Metadata.sol function tokenURI(uint256 tokenId) external view returns (string memory); ERC721.sol /** * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _base..
먼저 아래 링크의 문서를 통하여 테스트 코드를 작성하기로 해보았다. https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html Getting Started — waffle documentation After you have successfully authored a Smart Contract you can now think about testing it. Fortunately for you, Waffle is packed with tools that help with that. Tests in waffle are written using Mocha alongside with Chai. You can use a different test e..
생성자로 코드 형태인 bytes32를 넣어야 하는 상황이다. 그러나 "0x1"과 같이 바로 사용하면 오류가 났다. 찾아보니 bytes32에 패딩작업을 해주지 않으면 오류가 난다고 한다. 따라서 패딩작업을 해주는 함수를 찾아서 적용하였다. const paddedA = ethers.utils.hexZeroPad("0x1", 32) const paddedB = ethers.utils.hexZeroPad("0x2", 32) 이런식으로 0을 채워서 숫자를 맞추어 주어야 32 바이트의 인자값이 나오게 된다. 32byte의 경우 고정 길이로서 외부함수 호출등에도 사용이 가능하며 용량을 작게 차지하여서 특정 인덱스 정보를 저장하는데 용이하다. 여기서는 ERC 토큰의 표준이나 체인의 아이디와 같은 값을 byte32로 지..