BloCCat

효율적인 Contract 작성법 (1) 본문

Study/Solidity

효율적인 Contract 작성법 (1)

uooy 2021. 8. 29. 23:50

* 꼭 알고 넘어가야 할 것

1.컨트랙트 불변성

  컨트랙트는 변하지 않는다. 즉 한번 블록체인에 배포된 컨트랙트는 수정/업데이트를 할 수 없다. 

반대로 이런 특성때문에 함수 호출에 대한 의심또한 할 수 없다.

 

2. 외부 의존성

  내 컨트랙트에 외부 컨트랙트 주소(CA)값을 인터페이스 개체에 직접 넣어 사용하게 되면

외부 컨트랙트가 문제가 생길시 내 컨트랙트(함수)에도 영향을 끼치게 된다. 

따라서 이런 부분을 방지하기 위해 문제가 생기면 문제가 생긴부분만 바꿔주는 함수를 만들어 값을 저장한다.

(SET METHOD)

 

변경 전 

address ckAddress = 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d;
  KittyInterface kittyContract = KittyInterface(ckAddress);

 

변경 후

//address ckAddress = 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d;
KittyInterface kittyContract;

function setKittyContractAddress(address _address) external {
    kittyContract = KittyInterface(_address);
  }

 

'Study > Solidity' 카테고리의 다른 글

solidity - 함수 제어자 활용  (0) 2021.08.30
효율적인 Contract 작성법 (2) - 가스 절약  (0) 2021.08.30
Ownable.sol  (0) 2021.08.29
solidity 기초 (3)  (0) 2021.08.29
solidity 기초(2)  (0) 2021.08.29