* Introduce `impl_event!` for declaring the Event/RawEvent for a module
* Implements a function for generating the event json metadata
* Update runtime `json_metadata` to include the new event json metadata
* Switch to `impl_event!` for new modules
* Remove unused module declaration in `impl_event!`
* Rename `impl_event!` to `decl_event!`
* Fixes some style nits
* Improve doc
- convert some md to adoc
- include contrib docs to the main readme
- add readme for some packages and include them
* Bring changes from 46c9333fff into the replacing adoc file
* Minor fixes
* Remove files irrelevant for substrate
* Remove old polkadot related doc
* Introduce data and salt into ContractAddressFor
* Accept salt arg in ext_create.
* Integrate contracts into the demo runtime
* Make libcontract compile to wasm
* Remove salt parameter.
This now is concern of userspace.
* Rebuild binaries.
* Adds `impl_json_metadata!` for generating all metadata of a runtime
* Adds `json_metadata` RPC call
* Adds simple test for the `json_metadata` RPC call
* Implements json metadata in the demo runtime
* Fix indent
* Adds missing copyright headers
* Dispatch json metadata renamings and improvements
* Replaces `format!` & `String` with `Vec<JSONMetadata`
* Implements `Encode` and `Decode` for JSONMetadata
* Make `impl_json_metadata!` compileable on `no_std`
* Adapt the client to decode the correct type for `json_metadata`
* Fixes compile error and warning
* Whitespace
* Treasury in runtime, generic approve/reject
* Add logic for council origin
* Add tests.
* Configurable number of members in EnsureMembers
* Fix grumbles
* Fix spelling
* Comment
* LocalCallExecutor and RemoteCallRequest generic over Hasher and NodeCodec
* Fix client/db
* Use new triehash
* Use new triehash
Don't use ethereum-types from rlp
* New triehash
* Use new triehash
* fixes and rlp without ethereum-types
* Lockfile
* lockfile
* Rename enumerated_trie_root to keccak_rlp_enumerated_trie_root
* Rename ordered_trie_root -> keccak_rlp_ordered_trie_root
Rename trie_root -> keccak_rlp_trie_root
* Fix panic message
* Kick the ball one step up the ladder
* Normalize function signatures between wasm and native
* Sort out compilation and test errors
* Cleanup
* Constrain the wasm-version using an ExternTrieCrypto trait that is implemented only for KeccakHasher
* hashdb is not optional
* lockfile
* Runtimes
* Missing bounds
* wasm binaries
* lockfiles
* binaries
* LocalCallExecutor uses concrete hasher/codec
* Use binaries from master
* Externalities is concrete
RuntimeInfo is not generic
* whitespace grumble
* lockfile
* lockfile and binaries
* runtime-storage: add 'mutate' api
* support mutate for StorageValue
* try adding 'mutate' for map
* dispatch on Option<> type
* add check for prev_some
* consolidate the wrap type
* unify wrap type handling
* add sample for StorageValue
* System and Balances switched to new call model
* Fixed up executive for new pardigm
* Consensus works with Origin
* Timestamp ported over
* Session now compatible
* Ported staking
* Treasury compatible
* Expunge MaybeEmpty
* Make democracy work
* Council compatible
* Remove some aux-dispatch stuff and fix balances
* Rename aux -> origin, fix contracts
* Fix test
* Fix example
* Update macro to remove superfluous cruft
* Make work with new macro
* Tests
* Fix some tests
* Tests
* Fix grumbles
* Final grumble
* `decl_storage!` exposes json metadata about the storage
The metadata can be accessed by calling `store_json_metadata()`.
* Hide internal macros in the documentation
* Include the function documentation in the store json metadata
* Adapt the storage declarations to use doc comments
* Include function comments into modules `json_metadata`
All doc comments (with `///`) are included in the description field of
the function.
Progress on #535
* Replace spaces with tabs
* 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