From 0f2b55f6ff3899390080951240894ba721116afc Mon Sep 17 00:00:00 2001 From: xermicus Date: Fri, 13 Sep 2024 08:41:23 +0200 Subject: [PATCH] fixed output size for transferred value Signed-off-by: xermicus --- crates/llvm-context/src/polkavm/evm/ether_gas.rs | 9 +++------ crates/runtime-api/src/polkavm_imports.c | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/crates/llvm-context/src/polkavm/evm/ether_gas.rs b/crates/llvm-context/src/polkavm/evm/ether_gas.rs index e435998..4abe1d3 100644 --- a/crates/llvm-context/src/polkavm/evm/ether_gas.rs +++ b/crates/llvm-context/src/polkavm/evm/ether_gas.rs @@ -23,14 +23,11 @@ pub fn value<'ctx, D>( where D: Dependency + Clone, { - let (output_pointer, output_length_pointer) = - context.build_stack_parameter(revive_common::BIT_LENGTH_VALUE, "value_transferred_output"); + let output_pointer = context.build_alloca(context.value_type(), "value_transferred"); + context.build_store(output_pointer, context.word_const(0))?; context.build_runtime_call( runtime_api::imports::VALUE_TRANSFERRED, - &[ - output_pointer.to_int(context).into(), - output_length_pointer.to_int(context).into(), - ], + &[output_pointer.to_int(context).into()], ); context.build_load_word( output_pointer, diff --git a/crates/runtime-api/src/polkavm_imports.c b/crates/runtime-api/src/polkavm_imports.c index fefb482..b031fec 100644 --- a/crates/runtime-api/src/polkavm_imports.c +++ b/crates/runtime-api/src/polkavm_imports.c @@ -57,7 +57,7 @@ POLKAVM_IMPORT(void, seal_return, uint32_t, uint32_t, uint32_t) POLKAVM_IMPORT(void, returndatacopy, uint32_t, uint32_t, uint32_t) -POLKAVM_IMPORT(void, value_transferred, uint32_t, uint32_t) +POLKAVM_IMPORT(void, value_transferred, uint32_t) POLKAVM_IMPORT(uint32_t, set_storage, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)