사용자 스토리 2: Alison은 SHIB를 가지고 있으며 일부를 Becky에게 보내고 이에 대해 Becky에게 알립니다.
SHIB 수령인 베키가 단순한 사람이 아니라 돈을 받을 때 뭔가를 해야 하는 온라인 상점 컨트랙트이라면? 예를 들어, DNS 레코드를 새 소유자를 가리키도록 변경합니다. 전용 메시지로 이 스마트 컨트랙트를 트리거할 수 있다면 좋을 것입니다.
다행히 transfer 메시지는 이 동작을 지원합니다. 이를 통해 원래 발신자는 수신자 SHIB 지갑 소유자에게 전달될 일부 알림 페이로드를 지정할 수 있습니다.
이 경우의 흐름은 마지막 단계를 제외하고는 거의 동일합니다. Excesses op 유형 메시지를 보내기 전에, Becky의 SHIB 잔액을 보유한 컨트랙트는 먼저 Becky의 SHIB 지갑 소유자인 Becky의 지갑 컨트랙트 [code]에게 transfer notification op 유형의 메시지를 보냅니다. 이 이야기는 "Becky"의 이름을 "DNS-Superstore"와 같은 온라인 상점으로 바꾸면 더 이해가 될 것입니다. 이 경우 컨트랙트 "DNS-Superstore"는 "DNS-Superstore"에 대한 SHIB 지갑의 소유자이기 때문에 이 알림을 받게 됩니다. 이 컨트랙트는 메시지를 수신하면 메시지에 제공된 데이터에 따라 DNS 레코드 소유권을 변경하는 동작을 구현합니다.
다음은 메시지 흐름입니다.

Transfer 메시지에서 지원하는 다른 기능을 어떻게 알 수 있습니까? 메시지는 일반적으로 TL-B 라는 언어로 인코딩됩니다. 가장 좋은 방법은 컨트랙트 작성자가 컨트랙트에서 처리하는 모든 메시지에 대한 TL-B 사양을 게시하는 것입니다. 관련 TL-B 사양 [코드] 는 다음과 같습니다 .
transfer query_id:uint64 amount:(VarUInteger 16) destination:MsgAddress
response_destination:MsgAddress custom_payload:(Maybe ^Cell)
forward_ton_amount:(VarUInteger 16) forward_payload:(Either Cell ^Cell)
= InternalMsgBody;
amount는 전송할 SHIB 토큰 수
destination는 Becky의 지갑 컨트랙트 주소
response_destination는 excesses 수신자의 주소 (일반적으로 Alison의 지갑 컨트랙트)
forward_payload "DNS-Superstore" use case 에 대한 알림 페이로드(notification payload)
Last updated