Skip to content

Commit 52f0d5d

Browse files
committed
pink-runtime: Change storage depoist mask size to 256
1 parent cd4c232 commit 52f0d5d

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

crates/pink/runtime/src/contract.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ define_mask_fn!(mask_low_bits64, 64, u64);
7575
define_mask_fn!(mask_low_bits128, 128, u128);
7676

7777
fn mask_deposit(deposit: u128, deposit_per_byte: u128) -> u128 {
78-
let min_mask_bits = 128 - (deposit_per_byte * 1024).leading_zeros();
78+
const MIN_MASKED_BYTES: u128 = 256;
79+
let min_masked_value = deposit_per_byte
80+
.saturating_mul(MIN_MASKED_BYTES)
81+
.saturating_sub(1);
82+
let min_mask_bits = 128 - min_masked_value.leading_zeros();
7983
mask_low_bits128(deposit, min_mask_bits)
8084
}
8185

@@ -103,9 +107,11 @@ fn mask_low_bits_works() {
103107
);
104108

105109
let price = 10;
106-
assert_eq!(mask_deposit(0, price), 0x3fff);
107-
assert_eq!(mask_deposit(0x10, price), 0x3fff);
108-
assert_eq!(mask_deposit(0x10_0000, price), 0x10_3fff);
110+
assert_eq!(mask_deposit(0, 0), 0);
111+
assert_eq!(mask_deposit(0, 1), 255);
112+
assert_eq!(mask_deposit(0, price), 4095);
113+
assert_eq!(mask_deposit(0x10, price), 4095);
114+
assert_eq!(mask_deposit(0x10_0000, price), 0x10_0fff);
109115
assert_eq!(mask_deposit(0x10_0000_0000, price), 0x10_0fff_ffff);
110116
assert_eq!(
111117
mask_deposit(0x10_0000_0000_0000, price),

0 commit comments

Comments
 (0)