This commit is contained in:
Daniel Lubarov 2023-03-20 23:57:44 -07:00
parent afded1682b
commit e1ae539271
2 changed files with 7 additions and 4 deletions

View File

@ -19,6 +19,7 @@ global get_create_address:
PUSH 0 // context
// stack: RLP_ADDR: 3, rlp_len, retdest
KECCAK_GENERAL
%mod_const(0x10000000000000000000000000000000000000000) // 2^160
// stack: address, retdest
%observe_new_address
SWAP1

View File

@ -1,4 +1,6 @@
use anyhow::Result;
use ethereum_types::U256;
use hex_literal::hex;
use crate::cpu::kernel::aggregator::KERNEL;
use crate::cpu::kernel::interpreter::Interpreter;
@ -7,11 +9,11 @@ use crate::cpu::kernel::interpreter::Interpreter;
fn test_get_create_address() -> Result<()> {
let get_create_address = KERNEL.global_labels["get_create_address"];
// TODO: Replace with real data once we have a real implementation.
// This is copied from OpenEthereum's `test_contract_address`.
let retaddr = 0xdeadbeefu32.into();
let nonce = 5.into();
let sender = 0.into();
let expected_addr = 123.into();
let nonce = 88.into();
let sender = U256::from_big_endian(&hex!("0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6"));
let expected_addr = U256::from_big_endian(&hex!("3f09c73a5ed19289fb9bdc72f1742566df146f56"));
let initial_stack = vec![retaddr, nonce, sender];
let mut interpreter = Interpreter::new_with_kernel(get_create_address, initial_stack);