You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Sep 5, 2022. It is now read-only.
new_editor - address of the new editor of the NFT item.
response_destination - address where to send a response with confirmation of a successful transfer and the rest of the coins.
custom_payload - optional custom data.
forward_amount - the amount of nanotons to be sent to the new editor.
forward_payload - optional custom data that should be sent to the new editor.
Should be rejected if:
message is not from current editor.
there is no enough coins (with respect to NFT own storage fee guidelines) to process operation and send forward_amount.
After processing the request, the contract must send at least in_msg_value - forward_amount - max_tx_gas_price to the response_destination address.
If the contract cannot guarantee this, it must immediately stop executing the request and throw error.
max_tx_gas_price is the price in Toncoins of maximum transaction gas limit of NFT habitat workchain. For the basechain it can be obtained from ConfigParam 21.
Otherwise should do:
change current editor of NFT to new_editor address.
if forward_amount > 0 send message to new_editor address with forward_amount nanotons attached and with the following layout:
NFTEditable
Summary
Extension for NFT Standard.
Introducing
editor
role on collection level simplifies process of mass update as well as signalling of impossibility of such mass updateIntroducing
editor
role on NFT level simplifies process of per NFT updates and provide interface for algorithmic updatesSpecification
NFT Collection and/or NFT item smart contracts must implement:
Internal messages
1.
edit_content
Request
TL-B schema of inbound message:
edit_content#1a0b9d51 query_id:uint64 payload:Cell = EditRequest;
Should be rejected if:
Message is not from current editor.
Otherwise should do:
Update NFT content according it' inner logic and
payload
.2.
transfer_editorship
Request
TL-B schema of inbound message:
transfer_editorship#1c04412a query_id:uint64 new_editor:MsgAddress response_destination:MsgAddress custom_payload:(Maybe ^Cell) forward_amount:(VarUInteger 16) forward_payload:(Either Cell ^Cell) = EditRequest;
query_id
- arbitrary request number.new_editor
- address of the new editor of the NFT item.response_destination
- address where to send a response with confirmation of a successful transfer and the rest of the coins.custom_payload
- optional custom data.forward_amount
- the amount of nanotons to be sent to the new editor.forward_payload
- optional custom data that should be sent to the new editor.Should be rejected if:
message is not from current editor.
there is no enough coins (with respect to NFT own storage fee guidelines) to process operation and send
forward_amount
.After processing the request, the contract must send at least
in_msg_value - forward_amount - max_tx_gas_price
to theresponse_destination
address.If the contract cannot guarantee this, it must immediately stop executing the request and throw error.
max_tx_gas_price
is the price in Toncoins of maximum transaction gas limit of NFT habitat workchain. For the basechain it can be obtained fromConfigParam 21
.Otherwise should do:
change current editor of NFT to
new_editor
address.if
forward_amount > 0
send message tonew_editor
address withforward_amount
nanotons attached and with the following layout:TL-B schema:
editorship_assigned#511a4463 query_id:uint64 prev_editor:MsgAddress forward_payload:(Either Cell ^Cell) = InternalMsgBody;
query_id
should be equal with request'squery_id
.forward_payload
should be equal with request'sforward_payload
.prev_editor
is address of the previous editor of this NFT item.If
forward_amount
is equal to zero, notification message should not be sent.Send all excesses of incoming message coins to
response_destination
with the following layout:TL-B schema:
excesses#d53276db query_id:uint64 = InternalMsgBody;
query_id
should be equal with request'squery_id
.Get-methods
get_editor
returns(slice editor)
return slice of type
MsgAddress
- address of editor which can update common content in NFT collection/NFT item.TL-B Schema
crc32('edit_content query_id:uint64 payload:Cell = InternalMsgBody') = 0x1a0b9d51 & 0x7fffffff = 0x1a0b9d51
crc32('transfer_editorship query_id:uint64 new_editor:MsgAddress response_destination:MsgAddress custom_payload:Maybe ^Cell forward_amount:VarUInteger 16 forward_payload:Either Cell ^Cell = InternalMsgBody') = 0x9c04412a & 0x7fffffff = 0x1c04412a
crc32('editorship_assigned query_id:uint64 prev_editor:MsgAddress forward_payload:Either Cell ^Cell = InternalMsgBody') = 0xd11a4463 & 0x7fffffff = 0x511a4463
The text was updated successfully, but these errors were encountered: