From 461cea981da4c05192fd6befcc4b50b6f939144e Mon Sep 17 00:00:00 2001 From: Omar Date: Wed, 29 Sep 2021 22:10:26 +0600 Subject: [PATCH 1/9] Updated `ext_default_child_storage_storage_kill_version_2` --- test/runtimes/hostapi/src/lib.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/runtimes/hostapi/src/lib.rs b/test/runtimes/hostapi/src/lib.rs index 6e0d0e7d9..a4554802f 100644 --- a/test/runtimes/hostapi/src/lib.rs +++ b/test/runtimes/hostapi/src/lib.rs @@ -28,10 +28,11 @@ extern "C" { // Default child stoage API fn ext_default_child_storage_set_version_1(child: u64, key: u64, value: u64); fn ext_default_child_storage_get_version_1(child: u64, key: u64) -> u64; - fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) -> u64; + fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) + -> u64; fn ext_default_child_storage_clear_version_1(child: u64, key: u64); fn ext_default_child_storage_storage_kill_version_1(child: u64); - fn ext_default_child_storage_storage_kill_version_2(child: u64, limit: u32) -> i32; + fn ext_default_child_storage_storage_kill_version_2(child: u64, limit: u64) -> i32; fn ext_default_child_storage_exists_version_1(child: u64, key: u64) -> i32; fn ext_default_child_storage_clear_prefix_version_1(child: u64, key: u64); fn ext_default_child_storage_root_version_1(child: u64) -> u64; @@ -184,7 +185,7 @@ sp_core::wasm_export_functions! { fn rtm_ext_offchain_sleep_until_version_1(key: Vec) { unsafe { - let _ = ext_offchain_sleep_until_version_1(key.as_re_ptr()); + let _ = ext_offchain_sleep_until_version_1(key.as_re_ptr()); } } @@ -262,7 +263,7 @@ sp_core::wasm_export_functions! { fn rtm_ext_default_child_storage_storage_kill_version_2( child: Vec, - limit: u32 + limit: u64 ) -> u32 { unsafe { ext_default_child_storage_storage_kill_version_2( From a86e90d8de7f81625935b582ec16abaeec410b99 Mon Sep 17 00:00:00 2001 From: Omar Date: Wed, 29 Sep 2021 22:13:23 +0600 Subject: [PATCH 2/9] Updated runtime --- .../hostapi/hostapi_runtime.compact.wasm | Bin 41684 -> 41678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/runtimes/hostapi/hostapi_runtime.compact.wasm b/test/runtimes/hostapi/hostapi_runtime.compact.wasm index 4f6be9c155022c59c32de62fe35f138d3a02d954..e95a37751881cbadf97bb57c5172a5b44b2d56f1 100644 GIT binary patch delta 359 zcmca|l{u5*88_ zV-gnTWng3!7i1D-Vqy{$6y$|spa2~3f@I-52!n}945&j)f>Bgd2&hwd^Llo6e@6Dn z+rz9FH8+0>%Qa?o*3NGBff{mSdKm{CB3<v+< zo|T_bV6s1}CYvBgjn3o)b99&(gf_2X)nQ~5o_v!{iBV+oAGX*4QAQ>aVKH$g5fMHH zMn(xCCLty!CLtjqJ}3qXzyTjf7S4k(n3%+YI>aRz#l(bxIz=|GWM}thWS+b+%!*NC z^P8|-W5(FYQC<3h`9P1`0&xO^07E>GZUkZ>B>q|;8(IDa8vhNNdfUmjy7U?EZ071d GA`SqC*GHWI From 5355ff7a0ef153d0ed216b9d19a85216219229ff Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 12 Nov 2021 14:09:11 +0000 Subject: [PATCH 3/9] Fixed `rtm_ext_offchain_sleep_until_version_1` and `rtm_ext_offchain_timestamp_version_1` --- test/runtimes/hostapi/.vscode/settings.json | 11 +++++++++++ test/runtimes/hostapi/src/lib.rs | 10 +++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 test/runtimes/hostapi/.vscode/settings.json diff --git a/test/runtimes/hostapi/.vscode/settings.json b/test/runtimes/hostapi/.vscode/settings.json new file mode 100644 index 000000000..1eb70e12e --- /dev/null +++ b/test/runtimes/hostapi/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "cSpell.words": [ + "concat", + "keccak", + "malloc", + "offchain", + "pubkey", + "secp", + "twox" + ] +} \ No newline at end of file diff --git a/test/runtimes/hostapi/src/lib.rs b/test/runtimes/hostapi/src/lib.rs index 25666db3e..fe82a5acc 100644 --- a/test/runtimes/hostapi/src/lib.rs +++ b/test/runtimes/hostapi/src/lib.rs @@ -26,7 +26,7 @@ extern "C" { fn ext_offchain_timestamp_version_1() -> u64; fn ext_offchain_sleep_until_version_1(key: u64); - // Default child stoage API + // Default child storage API fn ext_default_child_storage_set_version_1(child: u64, key: u64, value: u64); fn ext_default_child_storage_get_version_1(child: u64, key: u64) -> u64; fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) @@ -198,16 +198,16 @@ sp_core::wasm_export_functions! { } // OffChain API - fn rtm_ext_offchain_timestamp_version_1() -> Vec { + fn rtm_ext_offchain_timestamp_version_1() -> u64 { unsafe { let value = ext_offchain_timestamp_version_1(); - from_mem(value) + value } } - fn rtm_ext_offchain_sleep_until_version_1(key: Vec) { + fn rtm_ext_offchain_sleep_until_version_1(key: u64) { unsafe { - let _ = ext_offchain_sleep_until_version_1(key.as_re_ptr()); + ext_offchain_sleep_until_version_1(key); } } From e590b5f99456acab449ae83383325f1e7b2b5d9a Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 12 Nov 2021 14:11:39 +0000 Subject: [PATCH 4/9] Updated hostapi_runtime wasm --- .../hostapi/hostapi_runtime.compact.wasm | Bin 41678 -> 42317 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/runtimes/hostapi/hostapi_runtime.compact.wasm b/test/runtimes/hostapi/hostapi_runtime.compact.wasm index e95a37751881cbadf97bb57c5172a5b44b2d56f1..0114d9ebdbd2ee819c5cebeacc94c032298770e6 100644 GIT binary patch literal 42317 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 From b0c86b0d26835439aea8c7d509e1835659724c67 Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 12 Nov 2021 20:27:33 +0600 Subject: [PATCH 5/9] Delete settings.json Not used in the repo, so deleted --- test/runtimes/hostapi/.vscode/settings.json | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 test/runtimes/hostapi/.vscode/settings.json diff --git a/test/runtimes/hostapi/.vscode/settings.json b/test/runtimes/hostapi/.vscode/settings.json deleted file mode 100644 index 1eb70e12e..000000000 --- a/test/runtimes/hostapi/.vscode/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "cSpell.words": [ - "concat", - "keccak", - "malloc", - "offchain", - "pubkey", - "secp", - "twox" - ] -} \ No newline at end of file From 400fa9f692e86e5f721bf6f322f2da7c6d80f5c4 Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 12 Nov 2021 20:29:24 +0600 Subject: [PATCH 6/9] Update lib.rs --- test/runtimes/hostapi/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/runtimes/hostapi/src/lib.rs b/test/runtimes/hostapi/src/lib.rs index a807f5595..a6439cd28 100644 --- a/test/runtimes/hostapi/src/lib.rs +++ b/test/runtimes/hostapi/src/lib.rs @@ -29,8 +29,7 @@ extern "C" { // Default child storage API fn ext_default_child_storage_set_version_1(child: u64, key: u64, value: u64); fn ext_default_child_storage_get_version_1(child: u64, key: u64) -> u64; - fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) - -> u64; + fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) -> u64; fn ext_default_child_storage_clear_version_1(child: u64, key: u64); fn ext_default_child_storage_storage_kill_version_1(child: u64); fn ext_default_child_storage_storage_kill_version_2(child: u64, limit: u64) -> i32; From 7c775d5566bd70b942de44f783340abbb64e6e85 Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 12 Nov 2021 15:51:50 +0000 Subject: [PATCH 7/9] Commented out `rtm_ext_offchain_http_request_add_header_version_1` since the related gossamer PR is still not merged --- test/runtimes/hostapi/.gitignore | 1 + .../hostapi/hostapi_runtime.compact.wasm | Bin 43031 -> 42317 bytes test/runtimes/hostapi/src/lib.rs | 25 ++++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/test/runtimes/hostapi/.gitignore b/test/runtimes/hostapi/.gitignore index 2f7896d1d..906919679 100644 --- a/test/runtimes/hostapi/.gitignore +++ b/test/runtimes/hostapi/.gitignore @@ -1 +1,2 @@ target/ +.vscode diff --git a/test/runtimes/hostapi/hostapi_runtime.compact.wasm b/test/runtimes/hostapi/hostapi_runtime.compact.wasm index 419c7e99bc04a69262c78d6c119b6937f25b139c..a1015d568f3d992b3a9a70e455206755e6b42f3a 100644 GIT binary patch delta 10115 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 delta 10664 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 B!(RXZ diff --git a/test/runtimes/hostapi/src/lib.rs b/test/runtimes/hostapi/src/lib.rs index a6439cd28..be52da20a 100644 --- a/test/runtimes/hostapi/src/lib.rs +++ b/test/runtimes/hostapi/src/lib.rs @@ -76,7 +76,8 @@ extern "C" { // Offchain fn ext_offchain_local_storage_clear_version_1(kind: u32, key: u64); fn ext_offchain_http_request_start_version_1(method: u64, uri: u64, meta: u64) -> u64; - fn ext_offchain_http_request_add_header_version_1(id: u32, key: u64, value: u64) -> u64; + // Uncomment this after PR https://github.com/ChainSafe/gossamer/pull/1994 is merged + // fn ext_offchain_http_request_add_header_version_1(id: u32, key: u64, value: u64) -> u64; } #[cfg(feature = "runtime-wasm")] @@ -590,15 +591,17 @@ sp_core::wasm_export_functions! { } } - fn rtm_ext_offchain_http_request_add_header_version_1(id: u32, key: Vec, value: Vec) -> Result<(), ()> { - unsafe { - let value = ext_offchain_http_request_add_header_version_1( - id, - key.as_re_ptr(), - value.as_re_ptr(), - ); + // Uncomment this after PR https://github.com/ChainSafe/gossamer/pull/1994 is merged - Decode::decode(&mut from_mem(value).as_slice()).unwrap() - } - } + // fn rtm_ext_offchain_http_request_add_header_version_1(id: u32, key: Vec, value: Vec) -> Result<(), ()> { + // unsafe { + // let value = ext_offchain_http_request_add_header_version_1( + // id, + // key.as_re_ptr(), + // value.as_re_ptr(), + // ); + + // Decode::decode(&mut from_mem(value).as_slice()).unwrap() + // } + // } } From d91f12bc5b3bd06fccaf88f3bb2da5cc15bb353a Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 19 Nov 2021 15:00:01 +0000 Subject: [PATCH 8/9] Uncommented codes --- test/runtimes/hostapi/src/lib.rs | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/test/runtimes/hostapi/src/lib.rs b/test/runtimes/hostapi/src/lib.rs index be52da20a..f29f82a05 100644 --- a/test/runtimes/hostapi/src/lib.rs +++ b/test/runtimes/hostapi/src/lib.rs @@ -29,7 +29,8 @@ extern "C" { // Default child storage API fn ext_default_child_storage_set_version_1(child: u64, key: u64, value: u64); fn ext_default_child_storage_get_version_1(child: u64, key: u64) -> u64; - fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) -> u64; + fn ext_default_child_storage_read_version_1(child: u64, key: u64, out: u64, offset: u32) + -> u64; fn ext_default_child_storage_clear_version_1(child: u64, key: u64); fn ext_default_child_storage_storage_kill_version_1(child: u64); fn ext_default_child_storage_storage_kill_version_2(child: u64, limit: u64) -> i32; @@ -71,13 +72,12 @@ extern "C" { // Trie API fn ext_trie_blake2_256_root_version_1(data: u64) -> u32; fn ext_trie_blake2_256_ordered_root_version_1(data: u64) -> u32; - fn ext_trie_blake2_256_verify_proof_version_1(a: u32, b: u64, c: u64, d:u64) -> u32; + fn ext_trie_blake2_256_verify_proof_version_1(a: u32, b: u64, c: u64, d: u64) -> u32; // Offchain fn ext_offchain_local_storage_clear_version_1(kind: u32, key: u64); fn ext_offchain_http_request_start_version_1(method: u64, uri: u64, meta: u64) -> u64; - // Uncomment this after PR https://github.com/ChainSafe/gossamer/pull/1994 is merged - // fn ext_offchain_http_request_add_header_version_1(id: u32, key: u64, value: u64) -> u64; + fn ext_offchain_http_request_add_header_version_1(id: u32, key: u64, value: u64) -> u64; } #[cfg(feature = "runtime-wasm")] @@ -570,7 +570,7 @@ sp_core::wasm_export_functions! { ) as u32 } } - + fn rtm_ext_offchain_local_storage_clear_version_1(kind: [u8; 4], key: Vec) { unsafe { let _ = ext_offchain_local_storage_clear_version_1( @@ -591,17 +591,15 @@ sp_core::wasm_export_functions! { } } - // Uncomment this after PR https://github.com/ChainSafe/gossamer/pull/1994 is merged - - // fn rtm_ext_offchain_http_request_add_header_version_1(id: u32, key: Vec, value: Vec) -> Result<(), ()> { - // unsafe { - // let value = ext_offchain_http_request_add_header_version_1( - // id, - // key.as_re_ptr(), - // value.as_re_ptr(), - // ); + fn rtm_ext_offchain_http_request_add_header_version_1(id: u32, key: Vec, value: Vec) -> Result<(), ()> { + unsafe { + let value = ext_offchain_http_request_add_header_version_1( + id, + key.as_re_ptr(), + value.as_re_ptr(), + ); - // Decode::decode(&mut from_mem(value).as_slice()).unwrap() - // } - // } + Decode::decode(&mut from_mem(value).as_slice()).unwrap() + } + } } From 2f81976cb8173be2cde427d9e0e630d6cefe195f Mon Sep 17 00:00:00 2001 From: Omar Date: Fri, 19 Nov 2021 15:18:51 +0000 Subject: [PATCH 9/9] Updated host api runtime wasm --- .../hostapi/hostapi_runtime.compact.wasm | Bin 42317 -> 43031 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/runtimes/hostapi/hostapi_runtime.compact.wasm b/test/runtimes/hostapi/hostapi_runtime.compact.wasm index a1015d568f3d992b3a9a70e455206755e6b42f3a..419c7e99bc04a69262c78d6c119b6937f25b139c 100644 GIT binary patch delta 10664 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 B!(RXZ delta 10115 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