-
Notifications
You must be signed in to change notification settings - Fork 251
/
approval_receiver.rs
27 lines (26 loc) · 1.21 KB
/
approval_receiver.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use crate::non_fungible_token::token::TokenId;
use near_sdk::{ext_contract, AccountId};
/// 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<String>; // TODO: how to make "any"?
}