Mapping 하는 방법
다음과 같이 mapping을 선언해주고 addPerson에 _name을 key 로 _ favoriteNumber 를 value 로 하여 mapping 할 수 있다.
실제 메타마스크 계정과 연결할 수 있다.
배포를 하면 가스가 드는데 3달러면 3600원이나..
EtherScan 에서 결과를 보면 1분전에 transaction이 발생한 것을 확인할 수 있다.
addPerson 함수를 실행할 때도 당연히 gas가 발생한다.
새로 만든 컨트랙트에서 다른 컨트랙트를 import 할 수 있다.
외부 컨트랙트를 생성하여 배열에 넣으면
인덱스에 접근하여 해당 컨트랙트 주소를 얻을 수 있게된다.
어떻게 설명을 해야 처음 본 사람도 쉽게 이해할 수 있을까.
우선 sfStore라는 함수를 선언한 모습이다.
_simpleStorageIndex는 컨트랙트의 주소가 담긴 배열에 접근하기 위한 인덱스를 의미하고,
_simpleStorageNumber 는 저장할 값을 의미한다.
2번을 보면,
SimpleStorage는 아까 import 한 컨트랙트이다.
simpleStorageArray에 담긴 값은 SimpleStorage의 컨트랙트 주소값이다.
이 값을 다시한번 address 메소드를 사용하여 SimpleStorage에 전달하면 만들어진 simpleStorage 를 통하여 해당 컨트랙트의 함수에 접근할 수 있다.
이러한 과정은 import된 컨트랙트에 직접 접근하기 위함이다.
3번을 보면, 위에서 말했던 것처럼
simpleStorage.store() 와 같이 외부 컨트랙트의 함수를 사용할 수 있게된다.
중간에.. 리믹스에서 오류가 없는데 계속 있다는 현상이 발생했다. 그냥 새로고침 해주자.
짜잔 접근가능!
상속을 사용하면
simpleStorage의 모든 함수를 사용할 수 있게 되는 것 같은데..
그럼 위에서 address를 왜 사용한거지? 그냥 상속하면 되잖아. 분명히 차이가 있을텐데 아직은 잘 모르겠다.
'공부기록 > 블록체인 스터디' 카테고리의 다른 글
[블록체인 스터디] Fund Me (1) (0) | 2022.05.27 |
---|---|
This contract may be abstract, not implement an abstract parent's methods completely or not invoke an inherited contract's constructor correctly (0) | 2022.05.27 |
블록체인 - 2 (0) | 2022.05.15 |
블록체인 개념 (0) | 2022.05.12 |
블록체인 1주차 (0) | 2022.04.09 |