첫 NFT 를 이더리움 메인넷에 배포했다. 다행히 코인값도 떨어지고 가스비도 낮아서(15그웨이 고맙다) 적은부담으로 할수 있었다. 컨트랙트도 올리고 민팅도 잘되고 디자인도 이쁘게 나오고 이더스캔에도 컨트랙도 잘 올렸는데 이게 뭐람? 느낌표가 있길래 눌러봤더니 가능한 버그가 세개나? 이럴수가 열심히 디버깅한다고 했는데 이런 참사가.. 싶어서 3개를 들여다 보았다. 다행히 very low-severity 라고 떠서 사소하긴하지만 신경쓰이잖아. (1)DataLocationChangeInInternalOverride (2)NestedCallataArrayAbiReencodingSizeValidation (3)SignedImmutables 3종류가 떴다. 혹시나하고 다른 nft 프로젝트의 컨트랙트를봤는데 안-심..
NFT 민팅할때 보통 화이트리스트에게 먼저 NFT를 민팅할 권리를 준다. 솔리디티에서 이부분을 구현할때 메모리나 맵에 올리면 가스비로 아주 큰 비용을 지불해야한다. 이 문제를 해결하는것이 머클트리이다 Merkle Tree 사용법 https://medium.com/@ItsCuzzo/using-merkle-trees-for-nft-whitelists-523b58ada3f9 간략하게말하면 js단: (1) WL 리스트를 암호화해서(keccak256쓰던 SHA쓰던 본인선택) 머클트리에 넣는다. 그럼 암호화된 전체 노드가 나오는데 Root Node만 키처럼 들고있음 const leaves = whitelistAddresses.map(addr => keccak256(addr)); tree = new MerkleTre..
Variables are declared as either storage, memory or calldata to explicitly specify the location of the data. storage - variable is a state variable (store on blockchain) memory - variable is in memory and it exists while a function is being called calldata - special data location that contains function arguments -스토리지가 당연히 가스비가 제일 많이든다. -메모리 이때 말하는 메모리는 evm의 메모리 https://ethereum.org/en/developer..
1. 이벤트 내뿜기(Emitting events) - 실행하기, 부르기인가 싶었는데 그건 invoke임.. 2단계가 필요하다. - 우선 이벤트를 선언한다 event ExampleEvent(uint _exampleArgument); - function 바디 안에서 선언한 이벤트를 emit한다. function exampleFunction() external { emit ExampleEvent(5); } emit를 한 후에 이벤트를 invoke할수 있다. 🚩이벤트는 주로 어퍼카멜케이스를 쓰고, 펑션은 주로 로워카멜케이스를 쓴다. 이걸 naming convention (작명관례)라한다. 이벤트를 emit한 컨트랙트를 eth_getLogs 를 통해 로그를 찍으면 이런 값을 리턴받는데, 데이터와 토픽에대해 논해보..
체인샷 기본강의 이번에는 다른 스마트컨트랙을 부르는 법을 배운다 1. Enum contract Player { enum Directions { Up, Down, Left, Right } } pure: function is isolated, does not read from anything outside itself and promises not to modify contract state. view: function can read contract state but promises not to modify contract state. 뷰도 컨트랙트의 데이터를 바꾸지 않는다
https://app.buildspace.so/projects/CO961ddb5f-f428-4608-9949-a9a2f461eb3f buildspace Start building cool web3 projects, earn NFTs, access secret work opportunities in crypto. buildspace.so 메마 지갑 연결, 트젝, 펀딩등을 해보았으니 nft민팅 차례이다 이과제는 3단계로 이루어졌다. 1. NFT 로직관련 스마트 컨트랙트 짜기 2. 스마트컨트랙트 deploy 3. 프론트에 컨트랙트 연결하기 예제는 오픈제플린 erc721을 사용한다 근데 요새는 아주키가 만든 erc721a를 사용하는게 대세 Solidity 개념 상태변수 (State Variable) 상태 변수는..
https://app.buildspace.so/projects/CO02cf0f1c-f996-4f50-9669-cf945ca3fb0b buildspace Start building cool web3 projects, earn NFTs, access secret work opportunities in crypto. buildspace.so 이 코스는 web3 페이지를 만든다. 그런데 그냥 만드는게 아니고 (1)이더리움 컨트랙트를 작성/ 테스트하고(run) (2)컨트랙트를 온체인에 배포하고(deploy) (3)프론트만들기- 아까 배포한 온체인을 적용해서 프론트만들기 이런 구조로 이루어져있다. 이렇게 웹3 앱과, 이더리움 스마트컨트랙트를 배포하는 절차를 Shipping이라고 한다. (1)스마트컨트랙 작성: 서버..
전엔 크립토 좀비를 했는데, 개념을 세세하고 꼼꼼하게 (정석이니까) 설명해서 좋은 교육자료였지만 실제로 빌드하지 않고 웹에서 예제를 돌려보는 정도여서 아쉬웠다. 또 클래식이어서 탄탄하긴 하지만 최신자료가 아니라서 또 아쉬웠다. 근데 (1)최신자료이고 (2)환경설정-빌드까지 하는 교육자료가 있다. https://buildspace.so/ buildspace Start building cool web3 projects, earn NFTs, access secret work opportunities in crypto. buildspace.so 교육프로그램치곤 진짜 독특하게 디스코드로 바로 연결이되고 커리큘럼이 디코에 떠있음.. 이거 5개를 제한기간내에 다 수료하면 nft도 줌 그래서 교육 사이트에 가입할때 메..