* contracts: Allow to distinguish out of gas from other traps
When a contract encounters a runtime error a wasm trap is
triggered and the execution is halted. Currently, no matter
what was the cause for the trap it is always reported as:
DispatchError::Other("contract trapped during execution").
However, the trap that is triggered if a contract exhausts
its gas budget is particulary interesting. Therefore we add
a seperate error message for this cause:
DispatchError::Other("ran out of gas during contract execution").
A test is added hat executes a contract that never terminates.
Therefore it always exhausts is gas budget.
* fixup! contracts: Allow to distinguish out of gas from other traps
Remove overlong lines.
* fixup! contracts: Allow to distinguish out of gas from other traps
Rename Contract to Contracts
* Give perthigns the trait it always deserved.
* Make staking and phragmen work with the new generic per_thing
* Make everything work together 🔨
* a bit of cleanup
* Clean usage
* Bump.
* Fix name
* fix grumbles
* hopefully fix the ui test
* Some grumbles
* revamp traits again
* Better naming again.
* Initial transfer bench
* Add best case
* Transfer keep alive
* Set balance benchmarks
* Bump impl
* Fix text
Co-authored-by: Gavin Wood <github@gavwood.com>
* Add non-zero ed check on Balances genesis
* Update ED from 0 to 1
* bump impl
* bump spec
* Found remove more ed = 0
* Fix some contract tests
* Use ctx.overlay.set_balance for contracts
* Fix staking test
* Remove obsolete logic
* Allow death of payout account in society
* Update frame/balances/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Dont create genesis balances if balance is zero in transaction payment pallet
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Gavin Wood <github@gavwood.com>
* Wrap runtime_print! macro in its own scope
Before this fix runtime_print! can be used only once in a scope
because of the name pollution.
* Bump runtime impl versioin (no logic change)
* Init epoch changes module
* Initial integration of new epoch changes module for BABE
* Fix all initial compile errors
* rename: digest -> digests
* Fix babe tests
* Bump impl_version
* Fix more test issues
* Remove test flag for tree
It unfortunately won't work for multiple crates.
* Update cargo lock
* Fix duplicate parking_lot version
* Add missing license header
* Initially scoping out of the problem
* Remove need for exiry in balance locks.
* Remove expiry from locks.
* Remove supefluous balance test
* Amalgamate pieces of balance module
* Split out vesting
* Fix tests
* Fixes for vesting.
* Docs.
* Weight docs.
* Refactor things in terms of set_balances.
* Switch out ED to be free + reserved.
* Remove on_free_balance_zero and some docs.
* Build fixes
* Update frame/vesting/src/lib.rs
Co-Authored-By: Xiliang Chen <xlchen1291@gmail.com>
* Update frame/vesting/src/lib.rs
Co-Authored-By: Xiliang Chen <xlchen1291@gmail.com>
* Migration
* Remove superfluous code.
* Test fixes
* Fix some tests
* Fix repatriate reserve
* Fixes
* Add test for migration
* Final cleanups
* Fix
* Indentation.
* Undo unneeded referencing
* Bump runtime version
* Fixes
Co-authored-by: Xiliang Chen <xlchen1291@gmail.com>
* Small follow-up docs improvements in rent module
* Update frame/contracts/src/rent.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* Use a shorter version of the sentence
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Expose information about the extrinsic in the metadata
This pr exposes some information about the extrinsic used in the runtime
via metadata. The following information are exposed:
- Version of the extrinsic
- List of all signed extensions used by the extrinsic.
* Increment `spec_version`
* Print extrinsic failed error always, not just on import
Before we printed the error of a transaction only when importing a
block, this pr changes it to print the error also at building the block.
* Increment `impl_version`
* contracts: during execution -> contract trapped during execution
This message confused many people so we are improving it to make clear what happened.
* contracts: rename Event::Contract -> Event::ContractExecution
* contracts: fix tests after ContractExecution renaming
* contracts: Add Evicted and Restored events
* fix doc comment
* wrap to not go over (soft) 100 column line limit
* add event deposit for eventual eviction upon pay_rent
* contracts: adjust tests for the new events
* emit Evicted event immediately and add tombstone flag bool