@@ -21,12 +21,12 @@ use near_contract_standards::non_fungible_token::core::{
2121} ;
2222use near_contract_standards:: non_fungible_token:: enumeration:: NonFungibleTokenEnumeration ;
2323use near_contract_standards:: non_fungible_token:: metadata:: {
24- NFTContractMetadata , NonFungibleTokenMetadataProvider , TokenMetadata , NFT_METADATA_SPEC ,
24+ NFTContractMetadata , TokenMetadata , NFT_METADATA_SPEC ,
2525} ;
2626use near_contract_standards:: non_fungible_token:: NonFungibleToken ;
2727use near_contract_standards:: non_fungible_token:: { Token , TokenId } ;
2828use near_sdk:: collections:: LazyOption ;
29- use near_sdk:: json_types:: U128 ;
29+ use near_sdk:: json_types:: { U128 , U64 } ;
3030use 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}
0 commit comments