Skip to content

Commit 3535abc

Browse files
committed
wip
1 parent 0ae3e7f commit 3535abc

File tree

2 files changed

+22
-32
lines changed

2 files changed

+22
-32
lines changed

src/lib.rs

+21-31
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ use near_contract_standards::non_fungible_token::core::{
2121
};
2222
use near_contract_standards::non_fungible_token::enumeration::NonFungibleTokenEnumeration;
2323
use near_contract_standards::non_fungible_token::metadata::{
24-
NFTContractMetadata, NonFungibleTokenMetadataProvider, TokenMetadata, NFT_METADATA_SPEC,
24+
NFTContractMetadata, TokenMetadata, NFT_METADATA_SPEC,
2525
};
2626
use near_contract_standards::non_fungible_token::NonFungibleToken;
2727
use near_contract_standards::non_fungible_token::{Token, TokenId};
2828
use near_sdk::collections::LazyOption;
29-
use near_sdk::json_types::U128;
29+
use near_sdk::json_types::{U128, U64};
3030
use near_sdk::{
3131
env, near, require, AccountId, BorshStorageKey, PanicOnDefault, Promise, PromiseOrValue,
3232
};
@@ -108,24 +108,26 @@ impl Contract {
108108
self.tokens
109109
.internal_mint(token_id, token_owner_id, Some(token_metadata))
110110
}
111-
}
112111

113-
#[near]
114-
impl NonFungibleTokenCore for Contract {
115112
#[payable]
116-
fn nft_transfer(
113+
pub fn nft_transfer(
117114
&mut self,
118115
receiver_id: AccountId,
119116
token_id: TokenId,
120-
approval_id: Option<u64>,
117+
approval_id: Option<U64>,
121118
memo: Option<String>,
122119
) {
120+
let approval_id = match approval_id {
121+
Some(value) => Some(value.0),
122+
None => None,
123+
};
124+
123125
self.tokens
124126
.nft_transfer(receiver_id, token_id, approval_id, memo);
125127
}
126128

127129
#[payable]
128-
fn nft_transfer_call(
130+
pub fn nft_transfer_call(
129131
&mut self,
130132
receiver_id: AccountId,
131133
token_id: TokenId,
@@ -137,15 +139,12 @@ impl NonFungibleTokenCore for Contract {
137139
.nft_transfer_call(receiver_id, token_id, approval_id, memo, msg)
138140
}
139141

140-
fn nft_token(&self, token_id: TokenId) -> Option<Token> {
142+
pub fn nft_token(&self, token_id: TokenId) -> Option<Token> {
141143
self.tokens.nft_token(token_id)
142144
}
143-
}
144145

145-
#[near]
146-
impl NonFungibleTokenResolver for Contract {
147146
#[private]
148-
fn nft_resolve_transfer(
147+
pub fn nft_resolve_transfer(
149148
&mut self,
150149
previous_owner_id: AccountId,
151150
receiver_id: AccountId,
@@ -159,12 +158,9 @@ impl NonFungibleTokenResolver for Contract {
159158
approved_account_ids,
160159
)
161160
}
162-
}
163161

164-
#[near]
165-
impl NonFungibleTokenApproval for Contract {
166162
#[payable]
167-
fn nft_approve(
163+
pub fn nft_approve(
168164
&mut self,
169165
token_id: TokenId,
170166
account_id: AccountId,
@@ -174,16 +170,16 @@ impl NonFungibleTokenApproval for Contract {
174170
}
175171

176172
#[payable]
177-
fn nft_revoke(&mut self, token_id: TokenId, account_id: AccountId) {
173+
pub fn nft_revoke(&mut self, token_id: TokenId, account_id: AccountId) {
178174
self.tokens.nft_revoke(token_id, account_id);
179175
}
180176

181177
#[payable]
182-
fn nft_revoke_all(&mut self, token_id: TokenId) {
178+
pub fn nft_revoke_all(&mut self, token_id: TokenId) {
183179
self.tokens.nft_revoke_all(token_id);
184180
}
185181

186-
fn nft_is_approved(
182+
pub fn nft_is_approved(
187183
&self,
188184
token_id: TokenId,
189185
approved_account_id: AccountId,
@@ -192,23 +188,20 @@ impl NonFungibleTokenApproval for Contract {
192188
self.tokens
193189
.nft_is_approved(token_id, approved_account_id, approval_id)
194190
}
195-
}
196191

197-
#[near]
198-
impl NonFungibleTokenEnumeration for Contract {
199-
fn nft_total_supply(&self) -> U128 {
192+
pub fn nft_total_supply(&self) -> U128 {
200193
self.tokens.nft_total_supply()
201194
}
202195

203-
fn nft_tokens(&self, from_index: Option<U128>, limit: Option<u64>) -> Vec<Token> {
196+
pub fn nft_tokens(&self, from_index: Option<U128>, limit: Option<u64>) -> Vec<Token> {
204197
self.tokens.nft_tokens(from_index, limit)
205198
}
206199

207-
fn nft_supply_for_owner(&self, account_id: AccountId) -> U128 {
200+
pub fn nft_supply_for_owner(&self, account_id: AccountId) -> U128 {
208201
self.tokens.nft_supply_for_owner(account_id)
209202
}
210203

211-
fn nft_tokens_for_owner(
204+
pub fn nft_tokens_for_owner(
212205
&self,
213206
account_id: AccountId,
214207
from_index: Option<U128>,
@@ -217,11 +210,8 @@ impl NonFungibleTokenEnumeration for Contract {
217210
self.tokens
218211
.nft_tokens_for_owner(account_id, from_index, limit)
219212
}
220-
}
221213

222-
#[near]
223-
impl NonFungibleTokenMetadataProvider for Contract {
224-
fn nft_metadata(&self) -> NFTContractMetadata {
214+
pub fn nft_metadata(&self) -> NFTContractMetadata {
225215
self.metadata.get().unwrap()
226216
}
227217
}

tests/tests/approval.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ pub async fn test_approved_account_transfers_token(
230230
.args_json((
231231
alice.id(),
232232
TOKEN_ID,
233-
Some(1u64),
233+
"1",
234234
Some("gotcha! bahahaha".to_string()),
235235
))
236236
.max_gas()

0 commit comments

Comments
 (0)