@@ -21,12 +21,12 @@ use near_contract_standards::non_fungible_token::core::{
21
21
} ;
22
22
use near_contract_standards:: non_fungible_token:: enumeration:: NonFungibleTokenEnumeration ;
23
23
use near_contract_standards:: non_fungible_token:: metadata:: {
24
- NFTContractMetadata , NonFungibleTokenMetadataProvider , TokenMetadata , NFT_METADATA_SPEC ,
24
+ NFTContractMetadata , TokenMetadata , NFT_METADATA_SPEC ,
25
25
} ;
26
26
use near_contract_standards:: non_fungible_token:: NonFungibleToken ;
27
27
use near_contract_standards:: non_fungible_token:: { Token , TokenId } ;
28
28
use near_sdk:: collections:: LazyOption ;
29
- use near_sdk:: json_types:: U128 ;
29
+ use near_sdk:: json_types:: { U128 , U64 } ;
30
30
use near_sdk:: {
31
31
env, near, require, AccountId , BorshStorageKey , PanicOnDefault , Promise , PromiseOrValue ,
32
32
} ;
@@ -108,24 +108,26 @@ impl Contract {
108
108
self . tokens
109
109
. internal_mint ( token_id, token_owner_id, Some ( token_metadata) )
110
110
}
111
- }
112
111
113
- #[ near]
114
- impl NonFungibleTokenCore for Contract {
115
112
#[ payable]
116
- fn nft_transfer (
113
+ pub fn nft_transfer (
117
114
& mut self ,
118
115
receiver_id : AccountId ,
119
116
token_id : TokenId ,
120
- approval_id : Option < u64 > ,
117
+ approval_id : Option < U64 > ,
121
118
memo : Option < String > ,
122
119
) {
120
+ let approval_id = match approval_id {
121
+ Some ( value) => Some ( value. 0 ) ,
122
+ None => None ,
123
+ } ;
124
+
123
125
self . tokens
124
126
. nft_transfer ( receiver_id, token_id, approval_id, memo) ;
125
127
}
126
128
127
129
#[ payable]
128
- fn nft_transfer_call (
130
+ pub fn nft_transfer_call (
129
131
& mut self ,
130
132
receiver_id : AccountId ,
131
133
token_id : TokenId ,
@@ -137,15 +139,12 @@ impl NonFungibleTokenCore for Contract {
137
139
. nft_transfer_call ( receiver_id, token_id, approval_id, memo, msg)
138
140
}
139
141
140
- fn nft_token ( & self , token_id : TokenId ) -> Option < Token > {
142
+ pub fn nft_token ( & self , token_id : TokenId ) -> Option < Token > {
141
143
self . tokens . nft_token ( token_id)
142
144
}
143
- }
144
145
145
- #[ near]
146
- impl NonFungibleTokenResolver for Contract {
147
146
#[ private]
148
- fn nft_resolve_transfer (
147
+ pub fn nft_resolve_transfer (
149
148
& mut self ,
150
149
previous_owner_id : AccountId ,
151
150
receiver_id : AccountId ,
@@ -159,12 +158,9 @@ impl NonFungibleTokenResolver for Contract {
159
158
approved_account_ids,
160
159
)
161
160
}
162
- }
163
161
164
- #[ near]
165
- impl NonFungibleTokenApproval for Contract {
166
162
#[ payable]
167
- fn nft_approve (
163
+ pub fn nft_approve (
168
164
& mut self ,
169
165
token_id : TokenId ,
170
166
account_id : AccountId ,
@@ -174,16 +170,16 @@ impl NonFungibleTokenApproval for Contract {
174
170
}
175
171
176
172
#[ 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 ) {
178
174
self . tokens . nft_revoke ( token_id, account_id) ;
179
175
}
180
176
181
177
#[ payable]
182
- fn nft_revoke_all ( & mut self , token_id : TokenId ) {
178
+ pub fn nft_revoke_all ( & mut self , token_id : TokenId ) {
183
179
self . tokens . nft_revoke_all ( token_id) ;
184
180
}
185
181
186
- fn nft_is_approved (
182
+ pub fn nft_is_approved (
187
183
& self ,
188
184
token_id : TokenId ,
189
185
approved_account_id : AccountId ,
@@ -192,23 +188,20 @@ impl NonFungibleTokenApproval for Contract {
192
188
self . tokens
193
189
. nft_is_approved ( token_id, approved_account_id, approval_id)
194
190
}
195
- }
196
191
197
- #[ near]
198
- impl NonFungibleTokenEnumeration for Contract {
199
- fn nft_total_supply ( & self ) -> U128 {
192
+ pub fn nft_total_supply ( & self ) -> U128 {
200
193
self . tokens . nft_total_supply ( )
201
194
}
202
195
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 > {
204
197
self . tokens . nft_tokens ( from_index, limit)
205
198
}
206
199
207
- fn nft_supply_for_owner ( & self , account_id : AccountId ) -> U128 {
200
+ pub fn nft_supply_for_owner ( & self , account_id : AccountId ) -> U128 {
208
201
self . tokens . nft_supply_for_owner ( account_id)
209
202
}
210
203
211
- fn nft_tokens_for_owner (
204
+ pub fn nft_tokens_for_owner (
212
205
& self ,
213
206
account_id : AccountId ,
214
207
from_index : Option < U128 > ,
@@ -217,11 +210,8 @@ impl NonFungibleTokenEnumeration for Contract {
217
210
self . tokens
218
211
. nft_tokens_for_owner ( account_id, from_index, limit)
219
212
}
220
- }
221
213
222
- #[ near]
223
- impl NonFungibleTokenMetadataProvider for Contract {
224
- fn nft_metadata ( & self ) -> NFTContractMetadata {
214
+ pub fn nft_metadata ( & self ) -> NFTContractMetadata {
225
215
self . metadata . get ( ) . unwrap ( )
226
216
}
227
217
}
0 commit comments