@@ -132,24 +132,50 @@ fn test_runtime_from_binary() -> eyre::Result<()> {
132132
133133 let selector_balance = & keccak256 ( "balance_of" ) [ 0 ..4 ] ;
134134 let selector_mint = & keccak256 ( "mint" ) [ 0 ..4 ] ;
135- let to: Address = address ! ( "0000000000000000000000000000000000000007" ) ;
135+ let selector_transfer = & keccak256 ( "transfer" ) [ 0 ..4 ] ;
136+ let selector_approve = & keccak256 ( "approve" ) [ 0 ..4 ] ;
137+ let selector_allowance = & keccak256 ( "allowance" ) [ 0 ..4 ] ;
138+ let alice: Address = address ! ( "0000000000000000000000000000000000000001" ) ;
139+ let bob: Address = address ! ( "0000000000000000000000000000000000000002" ) ;
140+ let carol: Address = address ! ( "0000000000000000000000000000000000000003" ) ;
136141 let value_mint: u64 = 42 ;
137- let mut calldata_balance = to. abi_encode ( ) ;
138- let mut calldata_mint = ( to, value_mint) . abi_encode ( ) ;
142+ let value_transfer: u64 = 21 ;
143+ let mut calldata_balance = alice. abi_encode ( ) ;
144+ let mut calldata_mint = ( alice, value_mint) . abi_encode ( ) ;
145+ let mut calldata_transfer = ( bob, value_transfer) . abi_encode ( ) ;
146+ let mut calldata_approve = ( carol, value_transfer) . abi_encode ( ) ;
147+ let mut calldata_allowance = ( alice, carol) . abi_encode ( ) ;
139148
140- add_balance_to_db ( & mut db, to , 1e18 as u64 ) ;
149+ add_balance_to_db ( & mut db, alice , 1e18 as u64 ) ;
141150
142151 let mut complete_calldata_balance = selector_balance. to_vec ( ) ;
143152 complete_calldata_balance. append ( & mut calldata_balance) ;
144153
145154 let mut complete_calldata_mint = selector_mint. to_vec ( ) ;
146155 complete_calldata_mint. append ( & mut calldata_mint) ;
156+ let mut complete_calldata_transfer = selector_transfer. to_vec ( ) ;
157+ complete_calldata_transfer. append ( & mut calldata_transfer) ;
147158
159+ let mut complete_calldata_approve = selector_approve. to_vec ( ) ;
160+ complete_calldata_approve. append ( & mut calldata_approve) ;
161+
162+ let mut complete_calldata_allowance = selector_allowance. to_vec ( ) ;
163+ complete_calldata_allowance. append ( & mut calldata_allowance) ;
164+
165+ // Mint 42 tokens to Alice
148166 run_tx ( & mut db, & CONTRACT_ADDR , complete_calldata_mint. clone ( ) ) ?;
167+ // Check Alice's balance
149168 run_tx ( & mut db, & CONTRACT_ADDR , complete_calldata_balance. clone ( ) ) ?;
169+ // Transfer 21 tokens from Alice to Bob
170+ run_tx ( & mut db, & CONTRACT_ADDR , complete_calldata_transfer. clone ( ) ) ?;
171+ // Check Alice's balance
172+ run_tx ( & mut db, & CONTRACT_ADDR , complete_calldata_balance. clone ( ) ) ?;
173+ // Approve Carol to spend 21 token from Alice
174+ run_tx ( & mut db, & CONTRACT_ADDR , complete_calldata_approve. clone ( ) ) ?;
175+ // Check Carol's allowance
176+ run_tx ( & mut db, & CONTRACT_ADDR , complete_calldata_allowance. clone ( ) ) ?;
150177
151178 Ok ( ( ) )
152-
153179 /*
154180 let account_db = &evm.db().accounts[&CONTRACT_ADDR];
155181 println!("Account storage: {:?}", account_db.storage);
@@ -161,12 +187,12 @@ fn test_runtime_from_binary() -> eyre::Result<()> {
161187fn test_runtime ( addr : & Address , db : & mut InMemoryDB ) -> Result < ( ) > {
162188 let selector_balance = & keccak256 ( "balance_of" ) [ 0 ..4 ] ;
163189 let selector_mint = & keccak256 ( "mint" ) [ 0 ..4 ] ;
164- let to : Address = address ! ( "0000000000000000000000000000000000000007 " ) ;
190+ let alice : Address = address ! ( "0000000000000000000000000000000000000001 " ) ;
165191 let value_mint: u64 = 42 ;
166- let mut calldata_balance = to . abi_encode ( ) ;
167- let mut calldata_mint = ( to , value_mint) . abi_encode ( ) ;
192+ let mut calldata_balance = alice . abi_encode ( ) ;
193+ let mut calldata_mint = ( alice , value_mint) . abi_encode ( ) ;
168194
169- add_balance_to_db ( db, to , 1e18 as u64 ) ;
195+ add_balance_to_db ( db, alice , 1e18 as u64 ) ;
170196
171197 let mut complete_calldata_balance = selector_balance. to_vec ( ) ;
172198 complete_calldata_balance. append ( & mut calldata_balance) ;
0 commit comments