@@ -50,6 +50,7 @@ async fn run_test() {
5050 let res = banks. process_transaction ( tx) . await ;
5151 assert ! ( res. is_ok( ) ) ;
5252
53+ // Check token mint account data
5354 let mint_account_data = banks
5455 . get_account ( token_mint_keypair. pubkey ( ) )
5556 . await
@@ -64,20 +65,26 @@ async fn run_test() {
6465 payer. pubkey( )
6566 ) ;
6667
67- let metadata_pda = Pubkey :: find_program_address (
68- & [
69- METADATA ,
70- mpl_token_metadata:: ID . as_ref ( ) ,
71- token_mint_keypair. pubkey ( ) . as_ref ( ) ,
72- ] ,
73- & mpl_token_metadata:: ID ,
74- )
75- . 0 ;
76- let metadata_account_data = banks. get_account ( metadata_pda) . await . unwrap ( ) . unwrap ( ) . data ;
68+ // Check token metadata account data
69+ let metadata_account_data = banks
70+ . get_account ( metadata_pda ( token_mint_keypair. pubkey ( ) ) . 0 )
71+ . await
72+ . unwrap ( )
73+ . unwrap ( )
74+ . data ;
7775 let deserialized_metadata_data =
7876 mpl_token_metadata:: accounts:: Metadata :: from_bytes ( & metadata_account_data) . unwrap ( ) ;
7977 assert_eq ! ( deserialized_metadata_data. update_authority, payer. pubkey( ) ) ;
8078 assert_eq ! ( deserialized_metadata_data. mint, token_mint_keypair. pubkey( ) ) ;
79+ assert_eq ! (
80+ deserialized_metadata_data. name. trim_end_matches( '\0' ) ,
81+ "Solana Gold"
82+ ) ;
83+ assert_eq ! (
84+ deserialized_metadata_data. symbol. trim_end_matches( '\0' ) ,
85+ "GOLDSOL"
86+ ) ;
87+ assert_eq ! ( deserialized_metadata_data. uri. trim_end_matches( '\0' ) , "https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/spl-token.json" ) ;
8188
8289 //NFT
8390 let nft_mint_keypair = Keypair :: new ( ) ;
@@ -106,4 +113,40 @@ async fn run_test() {
106113
107114 let res = banks. process_transaction ( tx) . await ;
108115 assert ! ( res. is_ok( ) ) ;
116+
117+ //Check nft mint account data
118+ let mint_account_data = banks
119+ . get_account ( nft_mint_keypair. pubkey ( ) )
120+ . await
121+ . unwrap ( )
122+ . unwrap ( )
123+ . data ;
124+ let deserialized_mint_data = spl_token:: state:: Mint :: unpack ( & mint_account_data) . unwrap ( ) ;
125+ assert ! ( deserialized_mint_data. is_initialized) ;
126+ assert_eq ! ( deserialized_mint_data. decimals, decimals) ;
127+ assert_eq ! (
128+ deserialized_mint_data. mint_authority. unwrap( ) ,
129+ payer. pubkey( )
130+ ) ;
131+
132+ //Check nft metadata account data
133+ let metadata_account_data = banks
134+ . get_account ( metadata_pda ( nft_mint_keypair. pubkey ( ) ) . 0 )
135+ . await
136+ . unwrap ( )
137+ . unwrap ( )
138+ . data ;
139+ let deserialized_metadata_data =
140+ mpl_token_metadata:: accounts:: Metadata :: from_bytes ( & metadata_account_data) . unwrap ( ) ;
141+ assert_eq ! ( deserialized_metadata_data. update_authority, payer. pubkey( ) ) ;
142+ assert_eq ! ( deserialized_metadata_data. mint, nft_mint_keypair. pubkey( ) ) ;
143+ assert_eq ! (
144+ deserialized_metadata_data. name. trim_end_matches( '\0' ) ,
145+ "Homer NFT"
146+ ) ;
147+ assert_eq ! (
148+ deserialized_metadata_data. symbol. trim_end_matches( '\0' ) ,
149+ "HOMR"
150+ ) ;
151+ assert_eq ! ( deserialized_metadata_data. uri. trim_end_matches( '\0' ) , "https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/nft.json" ) ;
109152}
0 commit comments