본문 바로가기
솔리디티/크립토좀비

레슨3 챕터1 - 컨트랙트 불변성(Immutable)

by 멸치김밥 2022. 2. 17.

이더리움 DApp은 컨트랙트를 배포하고 나면 블록체인에 영구적으로 기록될 것이기에 수정할 수 없게 된다.

이에 따른 단점은 결함이 있는 코드를 배포하고나서 결함을 해결하고 수정하려고 해도 불가하다는것

반대로 장점은 다른이들도 내가 배포한 컨트랙트를 임의로 예상치 못한 결과를 만들어낼 수 없다는것

 

여하튼 그래서 컨트랙트 내부의 중요한 부분들을 수정할 수 있도록 하는 함수를 만들어두어

필요할 때 그 함수를 이용하여 중요한 값들을 변경하는데에 사용할 수 있다.


챕터1 답 수정 전

  // 1. 
  address ckAddress = 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d;
  // 2.
  KittyInterface kittyContract = KittyInterface(ckAddress);

  // 3.

수정 후

  // 1. 임의로 적혀있던 주소를 지우고
  
  // 2. 해당 주소에 대한 인터페이스를 대입했던것을 대입을 뺌
  KittyInterface kittyContract;

  // 3. 필요한 주소값을 대입시킬 함수 생성
  function setKittyContractAddress(address _address) external {
    kittyContract = KittyInterface(_address);
  }

 

댓글