This repository was archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
[contracts] Port host functions to Weight V2 and storage deposit limit #13565
Merged
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit
Hold shift + click to select a range
eacb017
added [unstable][seal2] call()
agryaznov b3c9265
updated test to cover new seal_call proof_limit
agryaznov e226add
docs updated
agryaznov aba8782
add [seal2][unstable] instantiate() and test
agryaznov 53d8fde
add [seal2][unstable] weight_to_fee() + docs and test
agryaznov 09d1df6
add [seal2][unstable] gas_left() + docs and test
agryaznov c644fa1
update benchmarks
agryaznov 2cb30c7
add DefaultDepositLimit to pallet Config
agryaznov a968b29
specify deposit limit for nested call
agryaznov 45b48c2
specify deposit limit for nested instantiate
agryaznov ec58346
Merge branch 'master' into ag-proof_limit
agryaznov edf1aac
update benchmarks
agryaznov 2bfb866
added missing fixtures
agryaznov 1ff3f16
fix benches
agryaznov b0f3103
pass explicit deposit limit to storage bench
agryaznov 3af8712
explicit deposit limit for another set_storage bench
agryaznov 825a6bc
add more deposit limit for storage benches
agryaznov 8f9ea17
moving to simplified benchmarks
agryaznov 6ac5355
Merge branch 'master' into ag-proof_limit
agryaznov 04ead1b
moved to simplified benchmarks
agryaznov 7d1023d
fix seal_weight_to_fee bench
agryaznov 8e6c6d2
fix seal_instantiate benchmark
agryaznov d618957
Merge branch 'master' into ag-proof_limit
agryaznov 16f0994
doc typo fix
agryaznov 24dcd0e
default dl for benchmarking
agryaznov d7eab4a
max_runtime_mem to Schedule limits
agryaznov 91fd102
Merge branch 'master' into ag-proof_limit
agryaznov af1b353
add default deposit limit fallback check to test
agryaznov 04bea78
weight params renaming
agryaznov c01f166
Merge branch 'master' into ag-proof_limit
agryaznov 50c96da
fmt
agryaznov 95c83ea
Update frame/contracts/src/benchmarking/mod.rs
agryaznov 22c5794
prettify inputs in tests
agryaznov 418aa50
Merge branch 'ag-proof_limit' of github.com:paritytech/substrate into…
agryaznov 0dac6f6
typestate param refactored
agryaznov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
66 changes: 66 additions & 0 deletions
66
frame/contracts/fixtures/create_storage_and_instantiate.wat
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| ;; This instantiates another contract and passes some input to its constructor. | ||
| (module | ||
| (import "seal0" "seal_input" (func $seal_input (param i32 i32))) | ||
| (import "seal0" "seal_set_storage" (func $seal_set_storage (param i32 i32 i32))) | ||
| (import "seal2" "instantiate" (func $seal_instantiate | ||
| (param i32 i64 i64 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result i32) | ||
| )) | ||
| (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) | ||
| (import "env" "memory" (memory 1 1)) | ||
|
|
||
| ;; [0, 8) send 10_000 balance | ||
| (data (i32.const 48) "\10\27\00\00\00\00\00\00") | ||
|
|
||
| (func $assert (param i32) | ||
| (block $ok | ||
| (br_if $ok | ||
| (get_local 0) | ||
| ) | ||
| (unreachable) | ||
| ) | ||
| ) | ||
|
|
||
| (func (export "deploy")) | ||
|
|
||
| (func (export "call") | ||
| ;; store length of input buffer | ||
| (i32.store (i32.const 0) (i32.const 512)) | ||
| ;; store length of contract address | ||
| (i32.store (i32.const 84) (i32.const 32)) | ||
|
|
||
| ;; copy input at address 4 | ||
| (call $seal_input (i32.const 4) (i32.const 0)) | ||
|
|
||
| ;; memory layout is: | ||
| ;; [0,4): size of input buffer | ||
| ;; [4,8): size of the storage to be created in callee | ||
| ;; [8,40): the code hash of the contract to instantiate | ||
| ;; [40,48): for the encoded deposit limit | ||
| ;; [48,52): value to transfer | ||
| ;; [52,84): address of the deployed contract | ||
| ;; [84,88): len of the address | ||
|
|
||
| ;; instantiate a contract | ||
| (call $assert (i32.eqz | ||
| ;; (i32.store | ||
| ;; (i32.const 64) | ||
| (call $seal_instantiate | ||
| (i32.const 8) ;; Pointer to the code hash. | ||
| (i64.const 0) ;; How much ref_time weight to devote for the execution. 0 = all. | ||
| (i64.const 0) ;; How much proof_size weight to devote for the execution. 0 = all. | ||
| (i32.const 40) ;; Pointer to the storage deposit limit | ||
| (i32.const 48) ;; Pointer to the buffer with value to transfer | ||
| (i32.const 4) ;; Pointer to input data buffer address | ||
| (i32.const 4) ;; Length of input data buffer | ||
| (i32.const 52) ;; Pointer to where to copy address | ||
| (i32.const 84) ;; Pointer to address len ptr | ||
| (i32.const 0xffffffff) ;; u32 max sentinel value: do not copy output | ||
| (i32.const 0) ;; Length is ignored in this case | ||
| (i32.const 0) ;; salt_ptr | ||
| (i32.const 0) ;; salt_len | ||
| ) | ||
| )) | ||
| ;; return the deployed contract address | ||
| (call $seal_return (i32.const 0) (i32.const 52) (i32.const 32)) | ||
| ) | ||
| ) |
File renamed without changes.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.