Merge pull request #7110 from paritytech/remove-storage-error
WASM storage_read and storage_write don't return anything
This commit is contained in:
commit
a2c48deab5
@ -1 +1 @@
|
|||||||
Subproject commit d4920761f959a785c3ec15cf2848fc75795eb2d4
|
Subproject commit e5fcae4e9c2a570f293a22baa4d78d9f4b391a0f
|
@ -25,12 +25,12 @@ pub const SIGNATURES: &'static [UserFunctionDescriptor] = &[
|
|||||||
Static(
|
Static(
|
||||||
"_storage_read",
|
"_storage_read",
|
||||||
&[I32; 2],
|
&[I32; 2],
|
||||||
Some(I32),
|
None,
|
||||||
),
|
),
|
||||||
Static(
|
Static(
|
||||||
"_storage_write",
|
"_storage_write",
|
||||||
&[I32; 2],
|
&[I32; 2],
|
||||||
Some(I32),
|
None,
|
||||||
),
|
),
|
||||||
Static(
|
Static(
|
||||||
"_balance",
|
"_balance",
|
||||||
|
@ -168,7 +168,7 @@ impl<'a, 'b> Runtime<'a, 'b> {
|
|||||||
|
|
||||||
self.ext.set_storage(key, val).map_err(|_| UserTrap::StorageUpdateError)?;
|
self.ext.set_storage(key, val).map_err(|_| UserTrap::StorageUpdateError)?;
|
||||||
|
|
||||||
Ok(Some(0i32.into()))
|
Ok(None)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Read from the storage to wasm memory
|
/// Read from the storage to wasm memory
|
||||||
@ -184,7 +184,7 @@ impl<'a, 'b> Runtime<'a, 'b> {
|
|||||||
|
|
||||||
self.memory.set(val_ptr as u32, &*val)?;
|
self.memory.set(val_ptr as u32, &*val)?;
|
||||||
|
|
||||||
Ok(Some(0.into()))
|
Ok(None)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Fetches balance for address
|
/// Fetches balance for address
|
||||||
|
@ -112,7 +112,7 @@ fn logger() {
|
|||||||
U256::from(1_000_000_000),
|
U256::from(1_000_000_000),
|
||||||
"Logger sets 0x04 key to the trasferred value"
|
"Logger sets 0x04 key to the trasferred value"
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(19_143));
|
assert_eq!(gas_left, U256::from(19_147));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This test checks if the contract can allocate memory and pass pointer to the result stream properly.
|
// This test checks if the contract can allocate memory and pass pointer to the result stream properly.
|
||||||
@ -180,7 +180,7 @@ fn dispersion() {
|
|||||||
result,
|
result,
|
||||||
vec![0u8, 0, 125, 11, 197, 7, 255, 8, 19, 0]
|
vec![0u8, 0, 125, 11, 197, 7, 255, 8, 19, 0]
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(96_961));
|
assert_eq!(gas_left, U256::from(96_393));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -208,7 +208,7 @@ fn suicide_not() {
|
|||||||
result,
|
result,
|
||||||
vec![0u8]
|
vec![0u8]
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(97_290));
|
assert_eq!(gas_left, U256::from(96_725));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -240,7 +240,7 @@ fn suicide() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert!(ext.suicides.contains(&refund));
|
assert!(ext.suicides.contains(&refund));
|
||||||
assert_eq!(gas_left, U256::from(97_249));
|
assert_eq!(gas_left, U256::from(96_687));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -270,7 +270,7 @@ fn create() {
|
|||||||
assert!(ext.calls.contains(
|
assert!(ext.calls.contains(
|
||||||
&FakeCall {
|
&FakeCall {
|
||||||
call_type: FakeCallType::Create,
|
call_type: FakeCallType::Create,
|
||||||
gas: U256::from(65_903),
|
gas: U256::from(65_899),
|
||||||
sender_address: None,
|
sender_address: None,
|
||||||
receive_address: None,
|
receive_address: None,
|
||||||
value: Some(1_000_000_000.into()),
|
value: Some(1_000_000_000.into()),
|
||||||
@ -278,7 +278,7 @@ fn create() {
|
|||||||
code_address: None,
|
code_address: None,
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
assert_eq!(gas_left, U256::from(65_896));
|
assert_eq!(gas_left, U256::from(65_892));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -393,7 +393,7 @@ fn realloc() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
assert_eq!(result, vec![0u8; 2]);
|
assert_eq!(result, vec![0u8; 2]);
|
||||||
assert_eq!(gas_left, U256::from(97_278));
|
assert_eq!(gas_left, U256::from(96_723));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tests that contract's ability to read from a storage
|
// Tests that contract's ability to read from a storage
|
||||||
@ -419,7 +419,7 @@ fn storage_read() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(Address::from(&result[12..32]), address);
|
assert_eq!(Address::from(&result[12..32]), address);
|
||||||
assert_eq!(gas_left, U256::from(99_706));
|
assert_eq!(gas_left, U256::from(99_767));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tests keccak calculation
|
// Tests keccak calculation
|
||||||
@ -445,7 +445,7 @@ fn keccak() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(H256::from_slice(&result), H256::from("68371d7e884c168ae2022c82bd837d51837718a7f7dfb7aa3f753074a35e1d87"));
|
assert_eq!(H256::from_slice(&result), H256::from("68371d7e884c168ae2022c82bd837d51837718a7f7dfb7aa3f753074a35e1d87"));
|
||||||
assert_eq!(gas_left, U256::from(82_009));
|
assert_eq!(gas_left, U256::from(81_446));
|
||||||
}
|
}
|
||||||
|
|
||||||
// memcpy test.
|
// memcpy test.
|
||||||
@ -477,7 +477,7 @@ fn memcpy() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(result, test_payload);
|
assert_eq!(result, test_payload);
|
||||||
assert_eq!(gas_left, U256::from(72_773));
|
assert_eq!(gas_left, U256::from(72_216));
|
||||||
}
|
}
|
||||||
|
|
||||||
// memmove test.
|
// memmove test.
|
||||||
@ -509,7 +509,7 @@ fn memmove() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(result, test_payload);
|
assert_eq!(result, test_payload);
|
||||||
assert_eq!(gas_left, U256::from(72_773));
|
assert_eq!(gas_left, U256::from(72_216));
|
||||||
}
|
}
|
||||||
|
|
||||||
// memset test
|
// memset test
|
||||||
@ -534,7 +534,7 @@ fn memset() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(result, vec![228u8; 8192]);
|
assert_eq!(result, vec![228u8; 8192]);
|
||||||
assert_eq!(gas_left, U256::from(72_763));
|
assert_eq!(gas_left, U256::from(72_196));
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! reqrep_test {
|
macro_rules! reqrep_test {
|
||||||
@ -591,7 +591,7 @@ fn math_add() {
|
|||||||
U256::from_dec_str("1888888888888888888888888888887").unwrap(),
|
U256::from_dec_str("1888888888888888888888888888887").unwrap(),
|
||||||
(&result[..]).into()
|
(&result[..]).into()
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(96_084));
|
assert_eq!(gas_left, U256::from(95_524));
|
||||||
}
|
}
|
||||||
|
|
||||||
// multiplication
|
// multiplication
|
||||||
@ -613,7 +613,7 @@ fn math_mul() {
|
|||||||
U256::from_dec_str("888888888888888888888888888887111111111111111111111111111112").unwrap(),
|
U256::from_dec_str("888888888888888888888888888887111111111111111111111111111112").unwrap(),
|
||||||
(&result[..]).into()
|
(&result[..]).into()
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(95_234));
|
assert_eq!(gas_left, U256::from(94_674));
|
||||||
}
|
}
|
||||||
|
|
||||||
// subtraction
|
// subtraction
|
||||||
@ -635,7 +635,7 @@ fn math_sub() {
|
|||||||
U256::from_dec_str("111111111111111111111111111111").unwrap(),
|
U256::from_dec_str("111111111111111111111111111111").unwrap(),
|
||||||
(&result[..]).into()
|
(&result[..]).into()
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(96_076));
|
assert_eq!(gas_left, U256::from(95_516));
|
||||||
}
|
}
|
||||||
|
|
||||||
// subtraction with overflow
|
// subtraction with overflow
|
||||||
@ -677,7 +677,7 @@ fn math_div() {
|
|||||||
U256::from_dec_str("1125000").unwrap(),
|
U256::from_dec_str("1125000").unwrap(),
|
||||||
(&result[..]).into()
|
(&result[..]).into()
|
||||||
);
|
);
|
||||||
assert_eq!(gas_left, U256::from(89_074));
|
assert_eq!(gas_left, U256::from(88_514));
|
||||||
}
|
}
|
||||||
|
|
||||||
// This test checks the ability of wasm contract to invoke
|
// This test checks the ability of wasm contract to invoke
|
||||||
@ -765,7 +765,7 @@ fn externs() {
|
|||||||
"Gas limit requested and returned does not match"
|
"Gas limit requested and returned does not match"
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(gas_left, U256::from(95_291));
|
assert_eq!(gas_left, U256::from(94_733));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -791,7 +791,7 @@ fn embedded_keccak() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(H256::from_slice(&result), H256::from("68371d7e884c168ae2022c82bd837d51837718a7f7dfb7aa3f753074a35e1d87"));
|
assert_eq!(H256::from_slice(&result), H256::from("68371d7e884c168ae2022c82bd837d51837718a7f7dfb7aa3f753074a35e1d87"));
|
||||||
assert_eq!(gas_left, U256::from(82_009));
|
assert_eq!(gas_left, U256::from(81_446));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This test checks the correctness of log extern
|
/// This test checks the correctness of log extern
|
||||||
@ -826,5 +826,5 @@ fn events() {
|
|||||||
assert_eq!(&log_entry.data, b"gnihtemos");
|
assert_eq!(&log_entry.data, b"gnihtemos");
|
||||||
|
|
||||||
assert_eq!(&result, b"gnihtemos");
|
assert_eq!(&result, b"gnihtemos");
|
||||||
assert_eq!(gas_left, U256::from(80_199));
|
assert_eq!(gas_left, U256::from(79_637));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user