* Rename ext_transfer → ext_call
There are several tests where gas was changed. This is due to shrinking
the name and consequently a size of contracts.
* Fix macros
Specifically, make fixes that allows to use a function without arguments (apart from ctx).
For example:
```rust
ext_return_42(ctx) -> u32 => {
Ok(42)
}
```
Also, add impl ConvertibleToWasm for u64.
* Implement passing input data buffer from top-level
This allows the transaction initiator to pass some input data that can be accessed from the executed contract.
However, this only works for the top-level contract. The contract still cannot pass input data to the callee contract. The reason for that is that API doesn't support this presently.
This will be addressed in the following commits.
* Input data passing thru `ext_call`
`ext_call` now takes a buffer (or more specifically, pointer to the start of and size of a buffer).
This allows contracts to pass input data while calling into other contracts.
* Input data passing thru `ext_create`
Same as previous commit but for `ext_create`.
* Trap on decoding error instead of panicking
* Don't cascade failure in ext_call
Instead, if callee doesn't complete successfuly, return a non-zero status code.
This will prevent cascading traps up to the top-level. Due to this some tests were altered so that they now expect successful transfer instead of a failure.
* Don't cascade failure in ext_create
Same as previous commit but for ext_create.
* Specify how much gas to allot for a call
* Specify how much gas to allot for a create
* Update tests.rs
* Initial commit.
* Split out balances module
* Minimise Balances trait requirements
* Fix up balances, remove balances stuff from staking
* Split off and fix up staking module
* Fix executive tests
* Fix up democracy module
* make council work again
* Remove unneeded cruft from democracy
* Fix up contract module
* Fix up rest of tests
* Fix minor TODOs
* Fix tests
* Remove superfluous code
* Move offline inherents to consensus module.
Fixes#630
* Version needs Decode.
* Move Decode back
* Fix nits
* Refactor to allow custom message
* more accurate consensus superseding logic
* mild revision to `can_build_on` logic
* fix a deadlock when spawning agreement as non-authority
* dropping BFT future before poll doesn't lead to service deadlock
* push cancel to BFTfuture rather than waiting for task
* Convert T in vm::Ext to a associated type
* WIP
* Fix BTreeMap
* Extract prepare module from vm.
* Move tests as well.
* Fix doc comment.
* macro for env defintion
* Fix prepare tests.
* Clean up
* Renamings
* Refactor scan_imports
* Improve docs
* Docs.
* Add some tests for sandbox module
* Clean up
* Use Error::Instantiate instead of ::Deserialize
* Add test for imports
* Add wrong sig import
* Clean up
* Rebuild binaries.
* Use "another_module" instead of obscure "vne"
Since "vne" looks like an actual typo
git grep -l 'This file is part of Polkadot' | xargs sed -i 's/This file is part of Polkadot/This file is part of Substrate/g'
git grep -l 'Polkadot is free software' | xargs sed -i 's/Polkadot is free software/Substrate is free software/g'
git grep -l 'Polkadot is distributed in the hope' | xargs sed -i 's/Polkadot is distributed in the hope/Substrate is distributed in the hope/g'
git grep -l 'along with Polkadot' | xargs sed -i 's/along with Polkadot/along with Substrate/g'
* Don't use --export-table anymore
Because it was turned on by default in the recent nightlies.
See https://github.com/rust-lang/rust/pull/53237
* use_extern_macros stabilization
With recent nightlies rustc produces a warning
```
the feature `use_extern_macros` has been stable since 1.30.0 and no longer requires an attribute to enable
```
* Allow replacing transactions.
* Clear old transactions and ban them temporarily.
* Move to a separate module and add some tests.
* Add bound to banned transactions.
* Remove unnecessary block and double PoolRotator.