Skip to content

Commit 371153b

Browse files
committed
fix: pass Memory as value
1 parent 2cacbe4 commit 371153b

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

clarity/src/vm/clarity_wasm.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5030,20 +5030,20 @@ fn link_map_delete_fn(linker: &mut Linker<ClarityWasmContext>) -> Result<(), Err
50305030

50315031
fn check_height_valid(
50325032
caller: &mut Caller<'_, ClarityWasmContext>,
5033-
memory: &Memory,
5033+
memory: Memory,
50345034
height_lo: i64,
50355035
height_hi: i64,
50365036
return_offset: i32,
50375037
) -> Result<u32, Error> {
5038-
let height = (height_lo as u128) | ((height_hi as u128) << 64);
5038+
let height = (height_hi as u128) << 64 | ((height_lo as u64) as u128);
50395039

50405040
let height_value = match u32::try_from(height) {
50415041
Ok(result) => result,
50425042
_ => {
50435043
// Write a 0 to the return buffer for `none`
50445044
write_to_wasm(
50455045
caller,
5046-
*memory,
5046+
memory,
50475047
&TypeSignature::BoolType,
50485048
return_offset,
50495049
return_offset + get_type_size(&TypeSignature::BoolType),
@@ -5063,7 +5063,7 @@ fn check_height_valid(
50635063
// Write a 0 to the return buffer for `none`
50645064
write_to_wasm(
50655065
caller,
5066-
*memory,
5066+
memory,
50675067
&TypeSignature::BoolType,
50685068
return_offset,
50695069
return_offset + get_type_size(&TypeSignature::BoolType),
@@ -5094,20 +5094,21 @@ fn link_get_block_info_time_property_fn(
50945094
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
50955095

50965096
let height_value =
5097-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5097+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
50985098

50995099
let block_time = caller
51005100
.data_mut()
51015101
.global_context
51025102
.database
51035103
.get_block_time(height_value)?;
5104+
let (result, ty) = (Value::UInt(block_time as u128), TypeSignature::UIntType);
51045105
write_to_wasm(
51055106
&mut caller,
51065107
memory,
5107-
&TypeSignature::UIntType,
5108+
&ty,
51085109
return_offset,
5109-
return_offset + get_type_size(&TypeSignature::UIntType),
5110-
&Value::UInt(block_time as u128),
5110+
return_offset + get_type_size(&ty),
5111+
&Value::some(result)?,
51115112
true,
51125113
)?;
51135114

@@ -5143,7 +5144,7 @@ fn link_get_block_info_vrf_seed_property_fn(
51435144
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
51445145

51455146
let height_value =
5146-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5147+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
51475148

51485149
let vrf_seed = caller
51495150
.data_mut()
@@ -5200,7 +5201,7 @@ fn link_get_block_info_header_hash_property_fn(
52005201
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
52015202

52025203
let height_value =
5203-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5204+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
52045205

52055206
let header_hash = caller
52065207
.data_mut()
@@ -5257,7 +5258,7 @@ fn link_get_block_info_burnchain_header_hash_property_fn(
52575258
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
52585259

52595260
let height_value =
5260-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5261+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
52615262

52625263
let burnchain_header_hash = caller
52635264
.data_mut()
@@ -5314,7 +5315,7 @@ fn link_get_block_info_identity_header_hash_property_fn(
53145315
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
53155316

53165317
let height_value =
5317-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5318+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
53185319

53195320
let id_header_hash = caller
53205321
.data_mut()
@@ -5371,7 +5372,7 @@ fn link_get_block_info_miner_address_property_fn(
53715372
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
53725373

53735374
let height_value =
5374-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5375+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
53755376

53765377
let miner_address = caller
53775378
.data_mut()
@@ -5421,7 +5422,7 @@ fn link_get_block_info_miner_spend_winner_property_fn(
54215422
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
54225423

54235424
let height_value =
5424-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5425+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
54255426

54265427
let winner_spend = caller
54275428
.data_mut()
@@ -5471,7 +5472,7 @@ fn link_get_block_info_miner_spend_total_property_fn(
54715472
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
54725473

54735474
let height_value =
5474-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5475+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
54755476

54765477
let total_spend = caller
54775478
.data_mut()
@@ -5521,7 +5522,7 @@ fn link_get_block_info_block_reward_property_fn(
55215522
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
55225523

55235524
let height_value =
5524-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5525+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
55255526

55265527
let block_reward_opt = caller
55275528
.data_mut()
@@ -5589,7 +5590,7 @@ fn link_get_burn_block_info_header_hash_property_fn(
55895590
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
55905591

55915592
let height_value =
5592-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5593+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
55935594

55945595
let burnchain_header_hash_opt = caller
55955596
.data_mut()
@@ -5650,7 +5651,7 @@ fn link_get_burn_block_info_pox_addrs_property_fn(
56505651
.ok_or(Error::Wasm(WasmError::MemoryNotFound))?;
56515652

56525653
let height_value =
5653-
check_height_valid(&mut caller, &memory, height_lo, height_hi, return_offset)?;
5654+
check_height_valid(&mut caller, memory, height_lo, height_hi, return_offset)?;
56545655

56555656
let pox_addrs_and_payout = caller
56565657
.data_mut()

0 commit comments

Comments
 (0)