-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Conversation
/benchmark runtime pallet pallet_contracts |
Benchmark Runtime Pallet for branch "at-storage-deposit" with command cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs Results
ERROR: Unable to push ./frame/contracts/src/weights.rs |
fe1efe5
to
190b2fe
Compare
/benchmark runtime pallet pallet_contracts |
Benchmark Runtime Pallet for branch "at-storage-deposit" with command cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs Results
|
c355e87
to
d36a09f
Compare
d36a09f
to
8b92865
Compare
/benchmark runtime pallet pallet_contracts |
Benchmark Runtime Pallet for branch "at-storage-deposit" with command cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs Results
ERROR: Unable to commit file ./frame/contracts/src/weights.rs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just more superficial comments, nearly done
Co-authored-by: Andrew Jones <ascjones@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Co-authored-by: Andrew Jones <ascjones@gmail.com>
bot merge |
* WIP display all events * Clean up and generalize displaying events * Fix multiple event new lines * Fmt * Create wrapper types for Display, derive Debug for originals * Control indentation of pretty printing * Indent events display * More tuning of runtime events pretty printing * Fmt * Use Display impls for printing events * Add DisplayTransferEvent * Namespace events * Add CodeStored and Instantiated events * Refactor Deploy command and use verbosity for events display * Fix up string message return * Code hash LowerHex and println after events * Use LowerHex api for Bytes * Parse code hash with 0x prefix * Fmt * Spawn canvas node for integration test * Increment attempts * Get the test running with spawned canvas node * Instantiate deploy works with manual node * Test works locally and cleans up temp dir * Fmt * Fix duplicate import * Build before testing so cargo-contract bin available for testing * Separate line for build * Extract decode_hex util fn * WIP failing Literal tests for SS58 account ids * Upgrade to nom 0.6 * Use nom error in custom error, impl FromStr * Fmt * Update lockfile after merge * Make TryFrom take reference for verbosity conversion * Fix parsing literals * Plumbing for custom encoders * Implement AccountId32 custom encoder * Refactor: extract env types * Test for encoding ss58 literal * Fmt and add back failing struct test * Use AccountId type in test * TEMP: Use github dependencies of scale-info and ink * Err for 256 bit ints * Use new registry type enumeration * Extract type lookup and introduce Encoder * WIP: extract Transcoder and implement env type decoding * Implement env type decoding, removes generic Input. Custom env decoders are trait objects so can't have generic type parameters on its decode method. * Fix AccountId decoding, add some debug logging * Test for different AccountId aliasing * Passing tests for AccountId encoding and fmt * Update scale-info and ink deps, patch ink deps for now * Update scale-info and ink deps, patch ink deps for now * Remove extrinsics feature * Dependencies * More deps * Cargo.lock * Cargo.lock * WIP upgrading to latest subxt and scale-info * More upgrading to latest subxt * Fix more errors * Fix up extrinsic commands * Refactor transcoder decode, handle Compact * Refactor transcoder encode, initial compact support * Fmt * Fix metadata file loading * Constructor arg rename * Enable tokio * Make instantiate work * Update contracts runtime from substrate-contracts-node * Fix warnings and add todo * Update subxt * Add missing import * Use explicit substrate branch to match subxt import * Remove sp_rpc dependency * Remove sp_rpc dependency * Use metadata to decode events * Fmt * Pretty print events * WIP custom transcoders for events * Custom transcoders for events working * Fix some warnings * Slim down bat dependency * Decode contract events * Use correct field for instantiated contract account * Fix warnings * Fix multiple line warning * Update contracts RPC types * Fmt * Fix deploy contract account * Use ink! master branch * Oops * Remove patches * Bump ink deps to rc6 * Update to latest subxt * Update to latest subxt * Fix errors after subxt update * Fix instantiate_with_code.rs * Update subxt * Add deserializing context * Fmt * Expose public metadata fields * Implement full metadata decoding * Cargo.lock * Update calls to work with storage_gas_limit from paritytech/substrate#10082 * Cargo.lock * Update to latest subxt * Fmt * WIP unify instantiate command * Fix call command errors * Main warning unused result * Call and instantiate warns and errors and fmt * Update to ink rc7 * Default to local contract wasm if none specified * Change instantiate endowment to value * Use latest subxt branch * Update to latest subxt * Unify call and instantiate arg names * Instantiate and call args consistency * Add todo comment for encoding message args * Refactor, tidy up call and instantiate * Display decoded contract event separately * Register env types with and without aliases * Add pretty print flag * WIP add upload * Wiring up upload code extrinsic * Download latest contracts node metadata * Wire up upload command and WIP manifest path * in! default features and cargo update * Add manifest path argument for extrinsics * Only fetch crate metadata once * Fmt * Cargo upgrade * Update substrate dependencies * Pretty print code upload dry run values * Extract name value println macro * Print code hash from upload extrinsic * Refactor upload code command * Pretty print instantiate results * Add salt arg to instantiate command * WIP custom events display, removes big bat dep * Extract method for printing RPC contract result * Ugly printing of events * Fix contract event decoding * Fmt * Pretty print event fields * Only print event fields if verbose * More event prettification * Fmt * Resolve some todos * Remove some code comments, moved to follow ups in PR * Refactor: extract compact encoding function * Fix storage_deposit_limit and add todo re: compact primitives * Add todo re: compact primitives * Cargo.lock * Use released substrate crates and subxt master * Fix encoding compact, inline for each uint * Fix encoding compact, inline for each uint * Add extrinsics markdown outline * Dynamic compact encoding * Replace bitvec todos with errs, added follow up in PR * Remove todo about friendly encoding error, add to PR follow ups * Rename codec to scale for test contract, fix some transcoding tests * Attempt to fix linking with __ink_generate_metadata * Update to ink rc8 * Add test for out of order composite fields * Update ink metadata version * Update ink metadata types and methods * Fix metadata error message * Add std feature to fix test compilation with inline contract * Fix out of order struct fields * Improve encoding of field error message * Fmt imports * Rename TypeLookupId to TypeLookup * Remove alias matching for custom env type transcoding * Fix variant encoding for maps and out of order fields * Add failing test & impl for compact struct transcoding * Use released version of pallet-contracts primitives * WIP attempting to fix compact struct transcoding * Fix compact struct decoding * Add todo for integration test * Renamed SconParseError * Failing test for invalid integer * Use nom-supreme for combinators, error handling * Use released subxt * Refactor integer parsing * Refactor char parsing * Refactor seq parsing * Refactor tuple parsing * Refactor unit tuple parsing * Refactor map parsing * Refactor bytes parsing * Remove final nom `map` free function usage * Use some postfix recognizes * Remove final recognize combinator * Use postfix value combinator * Use opt postfix combinator * Move entry point and top level parser to the top of the file * Inline some string parsers * Inline some local helper functions * Fix failing integer tests * Fix Rust ident parsing * Fix up integration test * Make clippy happy * Fmt * Clippy clippy clippy * Ignore integration test for CI * Support parsing underscore separators for integer literals * + sign prefix parses to signed int * Allow underscores for balance CLI args * Add helper function for handling runtime errors * Add helper function for displaying runtime module errors * Elide lifetime * Add some basic module level docs for transcoding * Improve error message where metadata file not found * Adding common args section to extrinsics.md * Move --dry-run to extrinisic opts and more docs * Move --storage-deposit-limit to ExtrinsicOpts, move ExtrinsicOpts to extrinsics. * Add instantiate docs * Add call docs * Update Extrinsics docs * Update Cargo.toml Co-authored-by: Alexander Theißen <alex.theissen@me.com> * Don't wait for finalization before displaying transaction success * Update docs/extrinsics.md Co-authored-by: Alexander Theißen <alex.theissen@me.com> * Remove static error detail lookup, since it may be inaccurate if the target chain differs * CLIPPY * Print debug message lines * Display not Debug return value * Fmt Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Frame no longer needs to be mutable (refactoring artifact) * Remove Contract/Tombstone deposit * Add StorageMeter * cargo fmt * Fix weight annotation * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Simplify keep check for contract accounts - Make sure that the "base deposit" for each contract >= ed - Remove now obsolete checks when sneding away free balance * Remove unused imports and functions * Rename storage_limit to storage_deposit_limit * cargo fmt * Fix typo Co-authored-by: Michael Müller <michi@parity.io> * Finish up rename of storage_limit * Fix rpc tests * Make use of `StorageDepositLimitTooHigh` * Add tests and fix bugs discovered by tests * Add storage migration * Don't use u128 in RPC * Fix weight of migration * Rename `endowment` to `value` * Fix bug where contract couldn't get funded by a storage deposit - Make sure that contract gets funded from deposits before value is transferred - Don't reserve value at origin because otherwise funding isn't possible - Just transfer free balance and reserve it after the transfer - When refunding make sure that this refund can't dust the contract - Can only happen after a runtime upgrade where costs where upped - Add more tests * Apply suggestions from code review Co-authored-by: Andrew Jones <ascjones@gmail.com> * Remove unused `fn storage_meter` * Fix copy pasta doc error * Import `MaxEncodeLen` from codec * Beautify RPC trait bounds * Add re-instrument behaviour to dispatchable doc * Make sure a account won't be destroyed a refund after a slash * Apply suggestions from code review Co-authored-by: Andrew Jones <ascjones@gmail.com> * Update `Storage::write` docs * Improve doc * Remove superflous conditional * Typos * Remove superflous clone (refactoring artifact) * Apply suggestions from code review Co-authored-by: Andrew Jones <ascjones@gmail.com> Co-authored-by: Parity Bot <admin@parity.io> Co-authored-by: Michael Müller <michi@parity.io> Co-authored-by: Andrew Jones <ascjones@gmail.com>
* Frame no longer needs to be mutable (refactoring artifact) * Remove Contract/Tombstone deposit * Add StorageMeter * cargo fmt * Fix weight annotation * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Simplify keep check for contract accounts - Make sure that the "base deposit" for each contract >= ed - Remove now obsolete checks when sneding away free balance * Remove unused imports and functions * Rename storage_limit to storage_deposit_limit * cargo fmt * Fix typo Co-authored-by: Michael Müller <michi@parity.io> * Finish up rename of storage_limit * Fix rpc tests * Make use of `StorageDepositLimitTooHigh` * Add tests and fix bugs discovered by tests * Add storage migration * Don't use u128 in RPC * Fix weight of migration * Rename `endowment` to `value` * Fix bug where contract couldn't get funded by a storage deposit - Make sure that contract gets funded from deposits before value is transferred - Don't reserve value at origin because otherwise funding isn't possible - Just transfer free balance and reserve it after the transfer - When refunding make sure that this refund can't dust the contract - Can only happen after a runtime upgrade where costs where upped - Add more tests * Apply suggestions from code review Co-authored-by: Andrew Jones <ascjones@gmail.com> * Remove unused `fn storage_meter` * Fix copy pasta doc error * Import `MaxEncodeLen` from codec * Beautify RPC trait bounds * Add re-instrument behaviour to dispatchable doc * Make sure a account won't be destroyed a refund after a slash * Apply suggestions from code review Co-authored-by: Andrew Jones <ascjones@gmail.com> * Update `Storage::write` docs * Improve doc * Remove superflous conditional * Typos * Remove superflous clone (refactoring artifact) * Apply suggestions from code review Co-authored-by: Andrew Jones <ascjones@gmail.com> Co-authored-by: Parity Bot <admin@parity.io> Co-authored-by: Michael Müller <michi@parity.io> Co-authored-by: Andrew Jones <ascjones@gmail.com>
Fixes #9807
Please refer to the linked issue for information on this PR. I updated it recently to reflect the current state of things.
Porting Guide
Client Update Required
This adds new RPCs and alters existing ones with new arguments. A client update is necessary for RPC nodes.
Storage
This PR includes changes to storage. A storage migration was added in this PR that will be executed automatically.
UI
@jacogr @statictype
This PR adds the new parameter
storage_deposit_limit
to existing dispatchables and RPCs. The affected dispatchables arecall
,instantiate
,instantiate_with_code
. Affected RPCs arecall
andinstantiate
.This PR adds two new dispatchables
upload_code
andremove_code
and the new RPCupload_code
. The latter can be used to determine thestorage_deposit_limit
required to upload some code. Those new functions should be supported eventually but do not break the UI if not added.Renamed
endowment
tovalue
This PR makes
0
a valid value for theendowment
when instantiating the contract. It is no longer needed to keep the contract alive. Those costs will be deducted automatically and be limited by thestorage_deposit_limit
which can be automatically estimated through RPC. This is why we renamedendowment
tovalue
in order to makeinstantiate
consistent withcall
.