일단 실습부터 해보자
Carfactory를 Deploy하고 create을 호출하면 트랜잭션 성공
일단 Car
, CarFactory
2개의 컨트랙트로 구성되어있다.
CarFactory
코드 첫 줄에 보면 Car
컨트랙트를 이용해서
cars
라는 구조체 배열과 같은 변수를 만들고
create
함수에서 new
키워드를 이용해 인자로 받은 onwer
와 model
을 이용해
constructor
를 실행시키는 방식으로 car
를 만들고, 이를 cars
에 push
한다.
나머지도 비슷한데
질문 : 컨트랙트가 배포될 때 각각의 컨트랙트가 따로 블록에 담겨 배포 되는지,
sol파일 단위로 배포되는 지 궁금하다.
왜냐면, Remix에서 실습해보았을 때, Car컨트랙트를 배포하지 않고도
CarFactory에서 Car 컨트랙트를 이용할 수 있는 것 같아서..
private 데이터 타입은 컨트랙트 외부에서 조회가 불가능하다.
하지만 블록체인에 적히는 정보이기에, slot을 뒤져서 index를 알아내면 조회 가능
그래서 slot에 적히는 방식을 대충 알아보자면 다음 그림과 같다.