Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion contracts/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,6 @@ hex = { version = "0.4.3", default-features = false, features = ["alloc"] }
[profile.dev]
# Optimize WASM for size in debug to avoid massive binaries that slow compilation
opt-level = "z"
debug = false
debug = false
strip = "symbols"

9 changes: 1 addition & 8 deletions crates/contracts/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,7 @@ fn main() {
let contracts_dir = fluentbase_root_dir.join("contracts");
println!("cargo:rerun-if-changed={}", contracts_dir.to_str().unwrap());
let contracts_manifest_path = contracts_dir.join("Cargo.toml");
// TODO(khasan): why router::test_client_solidity is failing with WASM compiled in debug profile
// test router::test_client_solidity ... FAILED
// Caused by:
// process didn't exit successfully:
// `/home/khasan/code/fluentlabs/fluentbase/target/debug/deps/fluentbase_e2e-b00ad5ba2b63abf1`
// (signal: 11, SIGSEGV: invalid memory reference)
// let is_debug_profile = env::var("PROFILE").unwrap() == "debug";
let is_debug_profile = false;
let is_debug_profile = env::var("PROFILE").unwrap() == "debug";
let metadata = MetadataCommand::new()
.manifest_path(&contracts_manifest_path)
.exec()
Expand Down
9 changes: 5 additions & 4 deletions crates/evm/src/evm/contract.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use bitvec::macros::internal::funty::Integral;
use crate::{
as_usize_or_fail,
gas,
Expand Down Expand Up @@ -102,7 +103,7 @@ pub fn call<SDK: SharedAPI>(evm: &mut EVM<SDK>) {
to,
value,
input.as_ref(),
Some(local_gas_limit * FUEL_DENOM_RATE),
Some(local_gas_limit.wrapping_mul(FUEL_DENOM_RATE)),
);
insert_call_outcome(evm, result, return_memory_offset);
}
Expand All @@ -123,7 +124,7 @@ pub fn call_code<SDK: SharedAPI>(evm: &mut EVM<SDK>) {
to,
value,
input.as_ref(),
Some(local_gas_limit * FUEL_DENOM_RATE),
Some(local_gas_limit.wrapping_mul(FUEL_DENOM_RATE)),
);
insert_call_outcome(evm, result, return_memory_offset);
}
Expand All @@ -141,7 +142,7 @@ pub fn delegate_call<SDK: SharedAPI>(evm: &mut EVM<SDK>) {
evm.sync_evm_gas();
let result = evm
.sdk
.delegate_call(to, input.as_ref(), Some(local_gas_limit * FUEL_DENOM_RATE));
.delegate_call(to, input.as_ref(), Some(local_gas_limit.wrapping_mul(FUEL_DENOM_RATE)));
insert_call_outcome(evm, result, return_memory_offset);
}

Expand All @@ -158,6 +159,6 @@ pub fn static_call<SDK: SharedAPI>(evm: &mut EVM<SDK>) {
evm.sync_evm_gas();
let result = evm
.sdk
.static_call(to, input.as_ref(), Some(local_gas_limit * FUEL_DENOM_RATE));
.static_call(to, input.as_ref(), Some(local_gas_limit.wrapping_mul(FUEL_DENOM_RATE)));
insert_call_outcome(evm, result, return_memory_offset);
}
6 changes: 6 additions & 0 deletions crates/svm/src/builtins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1877,6 +1877,8 @@ declare_builtin_function!(
}
};



let input = translate_slice::<u8>(
memory_mapping,
input_addr,
Expand Down Expand Up @@ -1952,6 +1954,10 @@ declare_builtin_function!(
}
};

if input_size <= 0 {
return Ok(SUCCESS);
}

let input = translate_slice::<u8>(
memory_mapping,
input_addr,
Expand Down
2 changes: 1 addition & 1 deletion e2e/src/router.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ fn test_client_solidity() {
ctx.add_balance(contract_address, U256::from(10e18));
ctx.add_balance(client_address, U256::from(10e18));

let client_input = hex!("f60ea708000000000000000000000000f91c20c0cafbfdc150adff51bbfc5808edde7cb50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4100000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b48656c6c6f20576f726c64000000000000000000000000000000000000000000");
let client_input = hex!("f60ea708000000000000000000000000f91c20c0cafbfdc150adff51bbfc5808edde7cb50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d4100000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b48656c6c6f20576f726c64000000000000000000000000000000000000000000");

println!("calling client...");
let result = ctx.call_evm_tx(
Expand Down