본문 바로가기

Solidity

솔리디티 크립토좀비 푸는 중

컨트렉트 간 상속

 

컨트렉트 간의 함수에 접근할 수 있도록 컨트렉트를 상속받는 것

 

contract newContract is Contract {}

뭔가 module.export랑 같은 맥락이라고 생각하면 될 듯하다!

 

솔리디티 파일이 나뉘었을 경우 다른 파일을 불러오는 방법은 react와 동일하게 import를 사용한다.

 

storage

상태변수 : 전역변수 : const

이것은 블록체인에 등록되서 사라지지 않는다.

 

memory

지역변수 : let

함수안에서만 발동되어 함수 호출이 종료되면 사라진다.

 

 

  1. 먹이를 먹는 좀비 DNA를 얻을 필요가 있으므로, 그 다음으로 myZombie라는 Zombie형 변수를 선언한다 (이는 storage 포인터가 될 것이다). 이 변수에 zombies 배열의 _zombieId 인덱스가 가진 값에 부여한다.

Zombie storage myZombie = zombies[_zombieId];

 

struct Zombie {

string name;

uint dna;

}

 

Zombie storage myZombie;

이 Zombie의 sturct를 가진 myZombie라는 변수가 생성되었다. 그 변수는 storage 상태변수이다.

그리고 이 변수에는 

Zombie[] public zombies;

 

////모르겠다

Zombie의 structure를 가진 zombies라는 배열의 zombieId 인덱스가 가진 값에 부여한다 뭔뜻임?

 

 

  1. 먼저, _targetDna가 16자리보다 크지 않도록 해야 한다. 이를 위해, _targetDna를 _targetDna % dnaModulus와 같도록 해서 마지막 16자리 수만 취하도록 한다.

_targetDna = _targetDna % dnaModulus;

///이게 왜 16자리 수를 취한 건지 이해 안됨

 

 

합수 접근 제어자

public

private

external - 함수가 컨트랙트 바깥에서만 호출될 수 있고 컨트랙트 내의 다른 함수에 의해 호출될 수 없다는 점을 제외하면 public과 동일

internal - 함수가 정의되어있는 컨트렉트를 상속하는 컨트렉트에서도 접근이 가능함.