Skip to content

Commit 8718f28

Browse files
committed
fix: fix consensus break issue
1 parent 73076fb commit 8718f28

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

vms/fastvm/native/rust_evm_intf/fastvm.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,12 @@ extern "C" {
382382
pop_gbl_obj();
383383
gbl_cb_obj = gbl_cb_objs[cur_obj];
384384
recv_idx -= 1;
385-
if (recv_idx == -1)
385+
if (recv_idx == -1) {
386386
curr_recv_addr.filled = 0;
387-
387+
}
388+
else {
389+
memcpy(&curr_recv_addr.addr, &recv_addr_repo[recv_idx], sizeof(evm_address));
390+
}
388391
// release
389392
#if 1
390393
if (evm_result.release) {

vms/fastvm/src/core.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use std::ptr;
2626
use bincode::{serialize};
2727
use ffi::*;
2828

29+
const REVISION_AION_V0: i32 = 5;
2930
const REVISION_AION_V1: i32 = 7;
3031

3132
impl EvmJit<u8> for EvmResult {
@@ -129,7 +130,12 @@ impl FastVM {
129130
//let vm_ctx: *mut ::libc::wchar_t = unsafe { mem::transmute(&ctx_buffer[0]) };
130131
let vm_ctx = get_libc_pointer_of_bytes(&ctx_buffer);
131132

132-
let vm_rev: i32 = self.revision.clone() as i32;
133+
// let vm_rev: i32 = self.revision.clone() as i32;
134+
let vm_rev: i32 = if ctx.depth == 0 {
135+
REVISION_AION_V1
136+
} else {
137+
REVISION_AION_V0
138+
};
133139
let mut result = EvmResult::new();
134140

135141
match result.output_data.is_null() {

0 commit comments

Comments
 (0)