* Use 'Pallet' struct in construct_runtime.
* Fix genesis and metadata macro.
* Fix 'Pallet' type alias.
* Replace 'Module' with 'Pallet' for all construct_runtime use cases.
* Replace more deprecated 'Module' struct.
* Bring back AllModules and AllPalletsWithSystem type, but deprecate them.
* Replace deprecated 'Module' struct from merge master.
* Minor fix.
* Fix UI tests.
* Revert UI override in derive_no_bound.
* Fix more deprecated 'Module' use from master branch.
* Fix more deprecated 'Module' use from master branch.
* seal: Change prefix "ext_" to "seal_" for contract callable functions
The word Ext is a overloaded term in the context of substrate. It usually
is a trait which abstracts away access to external resources usually in order
to mock them away for the purpose of tests. The contract module has its own
`Ext` trait in addition the the substrate `Ext` which makes things even more
confusing.
In order to differentiate the contract callable functions more clearly from
this `Ext` concept we rename them to use the "seal_" prefix instead.
This should change no behaviour at all. This is a pure renaming commit.
* seal: Rename import module from "env" to "seal0"
* seal: Fixup integration test
* seal: Add more tests for new import module names
* 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
* Implement ext_ hashes for contracts (issue #5258)
* load cryto hash .wat from raw string literal instead of file
* update .wat contents for testing crypto hashes
* remove unnecessary 'static
* fix bug in input (call_indirect required 1+ at least it seems)
* no longer use scratch buffer for crypto hash functions
* improve doc comments of ext_ hash functions
* remove unnecessary comment in .wat test file
* add return value (const 0) to contract test to hopefully enable result buffer
* fix bug in contract assertion
* implement proper output_len in contract
* implement proper test for crypto hashes
* bump spec_version 238 -> 239
* fix COMPLEXITY description
* remove final invalid instances of scratch buffer from docs
With this patch forward this will be the only way for
a contract to destroy itself. This patch therefore changes
the semantics of all other contract initiated balance
transfers to fail if they would bring the caller below the
existential deposit.
* contracts: Add ext_transfer call
This call allows contracts to send balance to any account
contract or not. Previously, the only way to do that was
though ext_call.
* Apply suggestions from code review
Co-Authored-By: Nikolay Volf <nikvolf@gmail.com>
* The define_env! macro does not allow for trailing comma
* Update frame/contracts/src/exec.rs
Co-Authored-By: Nikolay Volf <nikvolf@gmail.com>
* Bump spec version
* Do not use nested gas meter
* Use explicit 0 or 1 as return value
* Remove superflous intermediate binding
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* split out ext_clear_storage from ext_set_storage contracts API
* update tests to adjust for the ext_set_storage changes
* adjust COMPLEXITY for the ext_set_storage API changes
* remove value_len == 0 constraint for ext_set_storage
* bump spec_version
* remove guarantee from COMPLEXITY of ext_clear_storage
Co-authored-by: Gavin Wood <gavin@parity.io>