* Transition getter functions to not use scratch buffer
* Remove scratch buffer from ext_get_storage
* Remove scratch buffer from ext_call
* Remove scratch buffer from ext_instantiate
* Add ext_input and remove scratch buffer
* Rework error handling (changes RPC exposed data)
* ext_return passes a flags field instead of a return code
* Flags is only for seal and not for the caller
* flags: u32 replaced status_code: u8 in RPC exposed type
* API functions use a unified error type (ReturnCode)
* ext_transfer now traps on error to be consistent with call and instantiate
* Remove the no longer used `Dispatched` event
* Updated inline documentation
* Prevent skipping of copying the output for getter API
* Return gas_consumed from the RPC contracts call interface
* Updated COMPLEXTITY.md
* Rename ext_gas_price to ext_weight_to_fee
* Align comments with spaces
* Removed no longer used `ExecError`
* Remove possible panic in `from_typed_value`
* Use a struct as associated data for SpecialTrap::Return
* Fix nits in COMPLEXITY.md
* Renamed SpecialTrap to TrapReason
* Fix test
* Finish renaming special_trap -> trap_reason
* Remove no longer used get_runtime_storage
* fixup! Remove no longer used get_runtime_storage
* Removed tabs for comment aligment
* Add a simple direct storage access module
* WIP
* Completely migrate to the transactional system.
* Format
* Fix wasm compilation
* Get rid of account_db module
* Make deposit event eager
* Make restore_to eager
* It almost compiles.
* Make it compile.
* Make the tests compile
* Get rid of account_db
* Drop the result.
* Backport the book keeping.
* Fix all remaining tests.
* Make it compile for std
* Remove a stale TODO marker
* Remove another stale TODO
* Add proof for `terminate`
* Remove a stale comment.
* Make restoration diverging.
* Remove redudnant trait: `ComputeDispatchFee`
* Update frame/contracts/src/exec.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Introduce proper errors into the storage module.
* Adds comments for contract storage module.
* Inline `ExecutionContext::terminate`.
* Restore_to should not let sacrifice itself if the contract present on the stack.
* Inline `transfer` function
* Update doc - add "if succeeded"
* Adapt to TransactionOutcome changes
* Updates the docs for `ext_restore_to`
* Add a proper assert.
* Update frame/contracts/src/wasm/runtime.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Alexander Theißen <alexander.theissen@parity.io>
* Don't store the storage size offset in the contract itself.
* Clean the AccountDb code a bit
* Use `storage_size: 0` when creating AliveContractInfo
* Count empty storage items.
* Update frame/contracts/src/account_db.rs
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* Use more clear wording.
Co-authored-by: Alexander Theißen <athei@users.noreply.github.com>
* Change the order of decrement and increment for storage size
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
Co-authored-by: Alexander Theißen <athei@users.noreply.github.com>