Merge pull request #7110 from paritytech/remove-storage-error

WASM storage_read and storage_write don't return anything
This commit is contained in:
Marek Kotewicz 2017-11-21 20:43:23 +01:00 committed by GitHub
commit a2c48deab5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 24 deletions

@ -1 +1 @@
Subproject commit d4920761f959a785c3ec15cf2848fc75795eb2d4 Subproject commit e5fcae4e9c2a570f293a22baa4d78d9f4b391a0f

View File

@ -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",

View File

@ -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

View File

@ -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));
} }