Solidity 4

Cryptozombie - Ch1. Making Zombie Factory

컨셉은 좀비 군대를 생성하는 게임 컨트랙트를 만드는 것이다. 직접 컨트랙트를 만들어보면서 Solidity라는 언어의 기본적인 문법들과 다른 언어들과 비교했을 때 가지는 특성들을 알아보자. 챕터1에서는 좀비를 생성하는 공장을 만든다. 1. 목표 - 모든 좀비의 정보를 가진 db를 생성한다. - 새로운 좀비를 생성하는 함수를 가진다. - 각 좀비는 고유의 DNA를 가지며, 이 DNA로부터 외모가 결정된다. 1-1. DNA로 부터 외모를 결정하는 메커니즘 좀비 DNA는 16자리 정수로 이루어지는데, 첫 두 자리는 머리, 그 다음 두 자리는 눈을 결정한다. 첫 두자리를 7로 나눈 후 1을 더한 값이 머리 모양이다. 가령 첫 두 자리가 83 이라면 83%7 + 1 = 7, 7번 머리를 가지게 된다. 2. Cont..

Solidity 2023.12.03

Ch 3

Ch 2 마지막에 외부 컨트랙트를 가져오기 위해 CA를 사용했는데, 이럴 경우 해당 CA를 가진 컨트랙트에 문제가 생길 경우 우리의 컨트랙트도 사용할 수 없게 되어버린다는 문제가 있다. 이를 보완하기 위해 CA 변수를 상수로 값을 대입하지 말고 CA가 변하더라도 그 값을 그때 그때 읽어올 수 있도록 변수화 하는 과정을 거치고 시작하자. 1. CA 변수화 /* zombiefeeding.sol */ // ..중략 contract ZombieFeeding is ZombieFactory { KittyInterface kittyContract; // CA 대입 없이 선언만 한다. function setKittyContractAddress(address _address) external { kittyContract..

Solidity 2022.08.06

Ch2

지난 번 글에 이어 계속해 cryptozombie를 해보면서 solidity 문법을 공부해보자. Ch1의 내용들이 주로 나 혼자만을 생각하고 작성했다면 Ch2부터는 컨트랙트가 배포되었을 때 다른 사람들은 이 컨트랙트에 어떤 식으로 접근할 것인지에 대해 비중을 약간씩 늘려볼 것이다. // SPDX-License-Identifier: MIT pragma solidity >=0.5.0 uint) public accountBalance; // address가 key, uint가 value의 데이터 타입, mapping의 이름은 accountbalance가 된다. 이걸 가지고 우리가 만들던 컨트랙트에서 생성된 구조체 Zombie의 id (zombies 배열의 index값)와 그 구조체(Zombie)를 만든 사람이..

Solidity 2022.07.24

Ch1

이 카테고리는 기본적인 솔리디티 문법과 사용법을 알려주는 cryptozombie를 직접 해보고 이를 내가 이해한대로 정리해보기 위해 만들었다. 처음 컨트랙트와 솔리디티 버전을 적는 등의 기본적인 작업부터 차근차근 해보자. 그 쪽에서 제시해준 솔리디티 코드의 기초적인 활용을 내 방식대로 적당히 패러프레이징 하면서 익혀가는 것을 목적으로 한다. 1. set up 1. 솔리디티 파일을 작성할때 가장 먼저 작성해줄 것은 가장 첫 줄에 주석을 달고 spdx~ 하는 것과 현재 솔리디티의 버전이다. 2. 그리고 컨트랙트를 선언해준다. 컨트랙트 이름은 ZombieFactory이다. // SPDX-License-Identifier: MIT pragma solidity >=0.5.0 < 0.6.0; contract Zom..

Solidity 2022.07.19