누가 하위 컨트랙트를 배포합니까?

SHIB 컨트랙트 아키텍처를 떠올려 봅시다. Jetton-minter 부모의 배포된 인스턴스 하나와 jetton-wallet 컨트랙트의 SHIB 보유자당 배포된 인스턴스 하나입니다.

상위 발행자 컨트랙트는 자연스럽게 SHIB의 생성자, 아마도 Admin 사용자에 의해 배포됩니다. 그러나 배포하는 자식 컨트랙트는 어떻습니까? 디자인은 효율적입니다. 하위 컨트랙트는 소유자가 처음으로 SHIB를 받을 때만 배포됩니다. 수신자는 자신이 SHIB를 받았다는 사실을 반드시 인식하지 못하기 때문에 다소 까다롭게 들릴 수 있습니다.

위의 전송 사용자 스토리를 기억하면 메시지에 의해 SHIB 수신이 트리거됩니다 internal transfer. 이 메시지의 수신자 자식 컨트랙트가 배포된 적이 없는 경우 이 메시지를 보낸 사람이 자식을 배포해야 합니다! 여기 코드에서 이런 일이 일어나는 것을 볼 수 있습니다. state_init메시지 섹션은 실제로 배포를 담당합니다. 여기에서 자식의 초기 코드 셀 (이 컨트랙트 구현을 위해 컴파일된 TVM 바이트코드)과 초기 데이터 셀에서 계산된 것을 볼 수 있습니다.

메시지 발신자는 internal transfer수신자가 배포되었는지 여부를 확신할 수 없기 때문에 항상 배포 부분을 포함합니다. TON은 컨트랙트가 이전에 배포된 경우 배포 요소를 무시할 만큼 영리합니다.

Last updated