* Adds first version of traits for generating the host functions
* First steps of the procedural macro
* Implements generation of the host extern functions
* Prefix ext host function with snake case trait name
* Implement host functions implementation on the host
* Change `HostFunctions` interface
* Implement `HostFunctions` for tuples
* Make `WasmExecutor` generic over the host functions
* Begin to add a test and make it compile
* Make the test succeed
* Add test to ensure that host functions are not found
* It's alive! Make the `set_storage` test work
* Add test for mutable references
* Code cleanup and documentation etc
* Add marker trait for types that should be passed as SCALE encoded
* Inherit the visibility from the trait and more improvements
* More impls and move them into their own file
* Code simplification by dropping one trait
* Give it a better name
* Implement traits for arrays
* Refactor code to support pass by codec/inner
* Docs
* Implement pass by inner for some crypto types and add a test
* Implement exchangeable function support
* Rewrite sr-io with as runtime interface
* Start reworking after master merge
* Adds `PassByCodec` derive
* Adds `PassByInner` derive
* Fix compilation errors
* More implementations
* Implement runtime interface traits for `str`
* Make `sr-io` compile again
* Fix more compilation errors
* More progress on getting stuff back to compile
* More compilation fixes
* Fix warnings
* Remove le conversions
* Add support for `wasm_only` interfaces
* Implement `Allocator` interface
* Improve error message
* Move `WasmAllocator` to `sr-io` and more clean ups
* Use correct function signature for wasm functions
* Store the host functions with the Wasm runtime
* Docs update
* Fix compilation after master merge
* Remove `sr-io/without_std`
* Make `srml-support` tests run again
* More compilation error fixes
* Use correct doc syntax
* Fix test-runtime
* Fix compilation
* Catch native panics when executing the wasm runtime
As with the native runtime, we now catch all native panics when we
execute the wasm runtime. The panics inside the wasm runtime were
already catched before by the wasm executor automatically, but any panic
in the host functions could bring down the node. The recent switch to
execute the native counterpart of the host function in `sr-io`, makes
this change required. The native `sr-io` functions just `panic` when
something is not provided or any other error occured.
* Fix compilation
* Don't panic in a panic
* Move `sr-sandbox` to new runtime interface
* Fixes tests after sandbox changes
* Make sure we detect invalid utf8
* Fixes after master merge
* Adds pass by enum strategy
* Fix wasmtime integration
* Some macro structure clean up
* Rework and test exchangebale host functions
* PassBy derive macros documentation
* Docs for `runtime_interface` macro
* Support wild card argument names
* Adds ui tests
* Make sure that we are backwards compatible to the old runtime interfaces
* Documentation
* Fixes after latest master merge
* Make `wasmtime` happy
* Make `full_crypto` work
* Make the new interface versionable
* Rename `Sanboxing` to `Sandbox`
* Don't finalize in test while importing
* Fix Performance regression
* Fix test
* grandpa: Write Grandpa authorities to well known key.
Instead of requiring execution proofs for Grandpa authorities, this
enables much simpler storage proofs.
* grandpa: Introduce named AuthorityList type.
* grandpa: Storage migration for srml-grandpa module.
* Remove no-longer-used GrandpaApi runtime API.
* grandpa: Write AuthorityList to storage with encoding version.
We expect the AuthorityList type may change (eg. key changes). To make
upgrades smoother, include a version in the stored value.
* Bump node runtime spec version.
* Update srml/grandpa/src/lib.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Introduce new option "always force new era".
* Take appropriate action, even for small offences.
- Deselect the offender in all circumstances
- Ensure that deselection forces a new era
- Ensure that forcing a new era works with the always-forcing.
* Bump runtime
* Remove footgun around session keys/handlers
- `OpaqueKeys` now has an associated type `KeyTypeIdProviders`. This can
be used in the runtime as input for `SessionHandler` from the session
trait.
- `impl_opaque_keys` now works with modules and extracts the `KeyTypeId`
from the module directly.
- Added some checks to the `session` storage initialization that checks
that the `SessionHandler` and `Keys` use the same number of keys and
that the order is equal.
* Update core/sr-primitives/src/traits.rs
* initial version for testing
* New version that compiles
* optional at block parameter
* Fix some more view grumbles.
* Update srml/transaction-payment/src/lib.rs
The authority discovery module enables authorities to be discoverable
and discover other authorities to improve interconnection among them. In
order to achieve this the module needs to know when the authority set
changes, thus when a session changes.
One has to register a module as a *session handler* in order for it to
be notified of changing sessions. The order and number of these *session
handlers* **MUST** correspond to the order and number of the *session
keys*.
Commit 027d887 added the authority discovery to the `SessionHandlers`.
Given that the authority discovery module piggybacks on the Babe session
keys the commit violated the above constraint.
This commit reverts most of 027d887, leaving `core/authority-discovery`
and `srml/authority-discovery` untouched.
* support: BuildStorage methods to take self reference.
There is no reason to consume the GenesisConfig when using it to
initialize a new storage backend. Instead, build_storage and
assimilate_storage now operator on self references.
* Bump node runtime impl_version.
* Now construct_runtime must include treasury config so account is created at genesis.
* if it doesn't though it is ok, account will be created when the amount put is more than existential deposit.
* Add SECP256k1/ECDSA support for transaction signing.
* Refactoring and fixes
* Fix for contracts
* Avoid breaking runtime host function
* Build fixes, make subkey work more generaically.
* Fix tests
* Dedpulicate a bit of code, remove unneeded code, docs
* Bump runtime version
* Fix a test and clean up some code.
* Derivation can derive seed.
* Whitespace
* Bump runtime again.
* Update core/primitives/src/crypto.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Update core/primitives/src/ecdsa.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Fix AppVerify
* Add RentPayment trait to runtime
* clarify check
* improve proof
* Clarify further
* Simplify RentPayment::on_unbalance calling and get rid of NonZeroRentHook
* Wasm-builder-runner unset `CARGO_TARGET_DIR` and release 1.0.4
`CARGO_TARGET_DIR` needs to be unset or otherwise cargo deadlocks,
because cargo always holds an exclusive lock on target dir.
* Commit missing version up
* Lock file
* Split up sr_arithmetic.rs
* Add some basic fuzzing
* Add more tests
* Add printing to fuzzing
* Clean things up
* Remove arbitrary
* Remove comments
* More cleaning, fix small error that was causing a panic
* Add rational128
* Remove old random tests
* introduce panic
* fuzzing should panic properly
* Bit of cleanup
* Add a test uncovered via fuzzing that fails!
* Few small changes
* Move sr-arithmetic to its own crate
* Fix fuzzing
* Got rid of fuzzer Cargo.lock
* Added no_std
* re-export assert_eq_error_rate
* bump impl and spec version
* re add convert into
* Add an ignore to the test
* Enabled benchmarking
* Reindent
* Clean up biguint fuzzer
* Clean up biguint more
* shuffle sr-primitives/traits about
* Remove unused dependencies
* Apply clippy suggestions
* upgrade primitive-types versions
* Run tests against num-bigint
* Get rid of allocation in assert_biguints_eq
* Add an optimisation to multiply_by_rational
* rename parts_per_x -> per_things
* Change fuzzer cargo.toml
* Remove allocation from BigUint PartialEq impl
* Remove accidental indentation
* Renmove Lazy and Convert traits
* Copy assert_eq_error_rate macro back to sr-primitives
* Add documentation to fuzzers
* fix sr-primitives assert_eq_error_rate
* add cfg(test)
* Update core/sr-arithmetic/src/traits.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Update core/sr-arithmetic/src/traits.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Update core/sr-arithmetic/fuzzer/src/biguint.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Allow rounding up in rational128
* Make changes to biguint.rs
* Update core/sr-arithmetic/src/traits.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Final touches
* Convert to num_bigint::BigUint to compare
* remove unused mut
* more small changes
* shuffle sr-primitives trait imports
* more code review
* move assert_eq_error_rate to lib.rs
* Update core/sr-arithmetic/fuzzer/src/biguint.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Get rid of S
* Simplify rational128 honggfuzz link
* Insignificantly change rational128 fuzzing code
* Slightly tidy up some of the arithmetic logic
* Get rid of sr_arithmetic again(?) and fix sr-primitives/weights
* Apply updates to sr_arithmetic.rs to crate
* Initial draft that compiles
* Extract payment stuff from balances
* Extract multiplier update stuff from system
* Some fixes.
* Update len-fee as well
* some review comments.
* Remove todo
* bump
* split implementation in multiple files:
* transformation -> genesis_config/ getters.rs instance_trait.rs metadata.rs mod.rs store_trait.rs
* mod.rs -> parser.rs
* impl.rs -> storage_struct.rs
* parser is isolated into parse module, it could be improved as well but this can be done in another PR
* modules contains a defintion of decl_storage input which must be ok to work with.
* implementation change:
* T: Trait might be more often bound to 'static (anyway we only use static one and it is needed for metadata current implementation).
* GenesisConfig no longer requires its fields to be Clone (possible since to EncodeLike feature)
* builder for map storages must return precise type Vec<(key, value)>
* Fix#1536: do not require to construct a block for encoding it
* Bump `impl_version`
* Improve `Block::encode_from` signature and rustdoc (from review by @bkchr)
* First working version of all operations.
* New and improved version of everything.
* Minor cleanup.
* Fix build
* Finalize nignum
* Some final works on refactors and tests.
* fix build
* Some review comments
* Bench, better try into and nits
* mutify the API
* rename to big_uint
* unmutify.
* Remove resize
* Apply suggestions from code review
* Update core/sr-primitives/src/sr_arithmetic.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* BEtter proof
* Fix panic doc.
* Bump.