From e1ae539271827e091819f83abc4d7ff8fe1a7faf Mon Sep 17 00:00:00 2001 From: Daniel Lubarov Date: Mon, 20 Mar 2023 23:57:44 -0700 Subject: [PATCH] Fix test --- evm/src/cpu/kernel/asm/core/create_addresses.asm | 1 + evm/src/cpu/kernel/tests/core/create_addresses.rs | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/evm/src/cpu/kernel/asm/core/create_addresses.asm b/evm/src/cpu/kernel/asm/core/create_addresses.asm index 8aad8e28..7dd4e889 100644 --- a/evm/src/cpu/kernel/asm/core/create_addresses.asm +++ b/evm/src/cpu/kernel/asm/core/create_addresses.asm @@ -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 diff --git a/evm/src/cpu/kernel/tests/core/create_addresses.rs b/evm/src/cpu/kernel/tests/core/create_addresses.rs index 047ddc00..03d780d8 100644 --- a/evm/src/cpu/kernel/tests/core/create_addresses.rs +++ b/evm/src/cpu/kernel/tests/core/create_addresses.rs @@ -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);