Skip to content

Commit

Permalink
Solving comments. Fix for when get_previous_block_hashchain is called…
Browse files Browse the repository at this point in the history
… after empty Aurora blocks.
  • Loading branch information
Casuso committed Feb 27, 2023
1 parent 860361e commit 512c8bf
Show file tree
Hide file tree
Showing 3 changed files with 15,938 additions and 11,929 deletions.
16 changes: 16 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 20 additions & 2 deletions engine/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,15 @@ mod contract {
#[no_mangle]
pub extern "C" fn get_previous_block_hashchain() {
let mut io = Runtime;
let blockchain_hashchain = hashchain::get_state(&io).sdk_unwrap();
let block_height = io.block_height();
let mut blockchain_hashchain = hashchain::get_state(&io).sdk_unwrap();

if block_height > blockchain_hashchain.get_current_block_height() {
blockchain_hashchain
.move_to_block(block_height)
.sdk_unwrap();
}

let previous_block_hashchain = blockchain_hashchain.get_previous_block_hashchain();
io.return_output(&previous_block_hashchain);
}
Expand Down Expand Up @@ -1035,14 +1043,24 @@ mod contract {
}

fn update_hashchain(io: &mut Runtime, method_name: &str, input: &[u8], output: &[u8]) {
let mut blockchain_hashchain = hashchain::get_state(io).sdk_unwrap();
let block_height = io.block_height();

let mut blockchain_hashchain = hashchain::get_state(io).unwrap_or_else(|_| {
BlockchainHashchain::new(
&state::get_state(io).sdk_unwrap().chain_id,
io.current_account_id().as_bytes(),
block_height,
[0; 32],
[0; 32],
)
});

if block_height > blockchain_hashchain.get_current_block_height() {
blockchain_hashchain
.move_to_block(block_height)
.sdk_unwrap();
}

blockchain_hashchain
.add_block_tx(block_height, method_name, input, output)
.sdk_unwrap();
Expand Down
Loading

0 comments on commit 512c8bf

Please sign in to comment.