use crate::non_fungible_token::token::TokenId; use near_sdk::{AccountId, ext_contract}; /// Approval receiver is the trait for the method called (or attempted to be called) when an NFT contract adds an approval for an account. #[ext_contract(ext_nft_approval_receiver)] pub trait NonFungibleTokenApprovalReceiver { /// Respond to notification that contract has been granted approval for a token. /// /// Notes /// * Contract knows the token contract ID from `predecessor_account_id` /// /// Arguments: /// * `token_id`: the token to which this contract has been granted approval /// * `owner_id`: the owner of the token /// * `approval_id`: the approval ID stored by NFT contract for this approval. /// Expected to be a number within the 2^53 limit representable by JSON. /// * `msg`: specifies information needed by the approved contract in order to /// handle the approval. Can indicate both a function to call and the /// parameters to pass to that function. fn nft_on_approve( &mut self, token_id: TokenId, owner_id: AccountId, approval_id: u64, msg: String, ) -> near_sdk::PromiseOrValue; // TODO: how to make "any"? }