본문 바로가기

전체 글71

레슨2 챕터 10, 11, 12, 13 - 인터페이스 인터페이스는 다른 컨트랙트에 있는 함수를 불러올 수 있는 길을 터주는 역할을 한다. JS의 module.exports , require 와 비슷한 개념이다 인터페이스에 들어갈 함수는 { } 의 내용이 빠진채로 끝내주면 된다. contract 인터페이슥 { function 함수다(매개변수) public returns (uint a, uint b); } 이렇게 인터페이스가 정의 되면 다른 컨트랙트에서 가져다가 사용할 수 있다. contract 멸치컨트랙트 { 인터페이슥 인터컨트랙트; 인터컨트랙트.함수다(매개매개); } 크립토좀비에서 사용하고있는 형태에 의하면 나를 가리키고 있는 주소값을 다른 주소값으로 변경할 수도 있나보다. contract 멸치컨트랙트 { address 남의주소 = 0xabc... 인터페이.. 2022. 2. 12.
레슨2 챕터9 - 함수 접근 제어자 함수에 private 이나 public을 붙임에 따라 함수 사용(접근)에 제한을 줄 수 있다. 기본적으로 아무것도 안쓰면 public이다 public 다른 컨트랙트에서도 호출할 수 있게 된다 private 해당 함수가 속해있는 컨트랙트에서만 호출할 수 있고 다른 컨트랙트에서는 사용할 수 없다. internal 해당 함수가 속한 컨트랙트와 해당 컨트랙트를 상속받는 컨트랙트에서만 사용할 수 있고 그외의 상속받지 않은 다른 컨트랙트에서는 사용할 수 없다. external 함수가 있는 컨트랙트 내부에서는 사용할 수 없고 다른 컨트랙트에서만 사용할 수 있다. 챕터 9 수정 전 function _createZombie(string _name, uint _dna) private { uint id = zombies.p.. 2022. 2. 12.
레슨2 챕터 7, 8 - storage, memory storage는 블록체인에 영구적으로 저장되는 변수이고 memory는 호출되었다가 지워지는 임시적인 변수이다 storage는 하드디스크, memory는 램과 같다고 보면 된다. 보통 함수 외부에서 선언된 변수는 storage로 자동 선언되고 함수 내부에서 선언된 변수는 memory로 자동 선언된다 크립토좀비에서 설명하는 예시를 보면 contract SandwichFactory { struct Sandwich { string name; string status; } Sandwich[] sandwiches; function eatSandwich(uint _index) public { // Sandwich mySandwich = sandwiches[_index]; // ^ 꽤 간단해 보이나, 솔리디티는 여기서.. 2022. 2. 12.
레슨2 챕터 5, 6 - 상속 / import 상속 컨트랙트는 다른 컨트랙트를 상속받을 수 있고 상속받은 컨트랙트는 해당 컨트랙트의 상태변수, 함수 등을 사용할 수 있다(public, private, internal external 등에 따라 사용하지 못할 수 있을듯) 다중 상속이 가능하다 사용방법은 다음과 같다 contract 나는컨트랙트 { } contract 나는세컨트랙트 { } contract 상속자 is 나는컨트랙트, 나는세컨트랙트 { } import JS의 require나 TS, 리액트의 import와 같다고 보면 된다 import "./경로/경로경로/파일.sol"; 챕터 5 답 // ZombieFeeding은 ZombieFactory로부터 상속받는다 contract ZombieFeeding is ZombieFactory { } 챕터 6 .. 2022. 2. 12.