Commit Graph

87 Commits

Author SHA1 Message Date
thiolliere d380db706b actually update deduct_block when paying rent (#2490)
* actually update deduct_block when paying rent

* add test

* remove println

* same block call test

* bump version
2019-05-07 14:13:56 +02:00
Andrew Jones 9fdd7df582 Default rent allowance to max_value (#2461)
* Default rent allowance to max_value

* Bump spec version

* Fix exec test

* Address grumbles

* Make test comment less specific

* Default rent_allowance to max_value in exec

* Check default balance on creation

* Check default balance in deploy

* Use hex constant

Co-Authored-By: ascjones <ascjones@gmail.com>

* More specific code const

Co-Authored-By: ascjones <ascjones@gmail.com>

* Update srml/contract/src/tests.rs

Co-Authored-By: ascjones <ascjones@gmail.com>

* Update srml/contract/src/tests.rs

Co-Authored-By: ascjones <ascjones@gmail.com>

* Update srml/contract/src/tests.rs

Co-Authored-By: ascjones <ascjones@gmail.com>
2019-05-04 13:59:14 +02:00
Sergei Pepyakin 79e4c6f870 Change terminology referring balance units in contract docs (#2450) 2019-05-02 18:09:17 +02:00
Shawn Tabrizi 407511100c Add pub to functions in Contract module (#2399)
* Add `pub` to functions in Contract module

This is to support a wrapper module which will add an access control layer to the SRML Contract module.

* Remove `pub` from `on_finalize`
2019-04-30 15:53:31 +02:00
thiolliere c7d9ca379d Contract accounting removal (#2230)
* first partial implementation

* update rent allowance

* fmt

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* remove comments

* reward surcharge claims

* remove rent allowance in param + code_hash changed

* Fix bug

* fix tests

* fmt

* impl getter setter rent allowance

* fmt

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* comments

* doc + be->le

* doc

* doc

* fix improve fast return

* renamings

* rename + COMPLEXITY

* COMPLEXITY

* add test

* etrinsic claim surcharge delay configurable

* comment addressed

* move and rewrite of pay_rent

* remove child trie

* fmt

* use derive

* arithmetic operation

* fix

* fix storage root + checked_mul + test

* WIP: test

* WIP

* add tests and fix

* fmt

* typo and doc suggestions

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* WIP

* address some comments

divide tests + some docs

* use br_table

* remove unused function

* Bump the runtime version

* insert_with

* Add some comments.

* Refactor

* Shuffle and fix comments

* More comment fixes.

* dues limited

* Add comment

* Handicap

* Docs.

* Apply suggestions from code review

Co-Authored-By: pepyakin <s.pepyakin@gmail.com>

* Coalesce block_passed in a block

* Fix build

* Paid → Ok

* match → if

* Imrpove handicap description
2019-04-30 09:41:33 +02:00
thiolliere bb9746c798 store contract keys with blake2_256 (#2414)
* store contract keys with blake2_256

* bump version
2019-04-29 16:13:45 +02:00
Michael Müller a0e0d9b03d Fix typos and markdown (#2388)
* Fix typos

* Align properly

* Update core/consensus/slots/src/lib.rs

Co-Authored-By: cmichi <mich@elmueller.net>

* Update core/network/src/test/mod.rs

Co-Authored-By: cmichi <mich@elmueller.net>

* Update core/finality-grandpa/src/communication/mod.rs

Co-Authored-By: cmichi <mich@elmueller.net>

* Update core/consensus/common/src/import_queue.rs

Co-Authored-By: cmichi <mich@elmueller.net>
2019-04-26 14:09:13 +02:00
Stanislav Tkach 0f02bed702 Update hex-literal version, simplify imports and remove unused dependencies (#2371) 2019-04-25 11:17:40 +02:00
Sergei Pepyakin e2bb429711 Use serde derive feature. (#2351)
* core/primitives

* sr-primitives

* sr-primitives

* srml-treasury

* substrate-executor

* substrate-keystore

* network-libp2p

* substrate-service

* srml-system

* substrate-rpc

* sr-version

* substrate-telemetry

* substrate-test-runtime

* substrate-transaction-pool

* node-template-runtime

* node-primitives

* srml-consensus

* srml-contract

* srml-democracy

* srml-finality-tracker

* srml-grandpa

* srml-metadata

* srml-support

* Clean

* Update locks
2019-04-23 18:42:42 +02:00
Sergei Pepyakin 517746bd62 Check storage_key for validity (#2316)
* Intro `ChildStorageKey` for checked child keys

* Get rid of Into in Externalities trait

* Use Cow in ChildStorageKey

* Fix tests for state-machine.

* Clean

* child_storage_root always return a value

* Don't return Option from Ext::child_storage_root

* Return 42 in child_storage_root

* Return CHILD_STORAGE_KEY_PREFIX from trie id gen

* Bump spec and impl version.

* Require `:default:` in `is_child_trie_key_valid`

* Add `default:` prefix.

* Introduce `into_owned` for `ChildStorageKey`.

* Add documentation.

* Fix state-machine tests

* Remove outdated TODO

I check out with Emeric and he is ok with that

* child_storage_root is infailable

* Nit

* Move assert after check.

* Apply suggestions from @DemiMarie-parity

Co-Authored-By: pepyakin <s.pepyakin@gmail.com>

* Formatting nit in core/executor/src/wasm_executor.rs

Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* Formatting nits from @thiolliere
2019-04-23 18:14:45 +02:00
Sergei Pepyakin 07268022cc contracts: Validate code before deployment (#2330)
* Validate module before storing it in code_cache.

* Bump version.
2019-04-19 13:35:11 -04:00
joe petrowski 129803efd2 Make existing docs more consistent (#2307)
* opening and closing links

* sudo example compiles

* add Aura after it was merged to master

* remove extern crate line
2019-04-17 13:40:13 +02:00
thiolliere 450c03d03e Fix contract child usage (#2299)
* Fix contract child usage

* bump implementation version
2019-04-16 18:09:34 +02:00
thiolliere f7fc02fdf2 Use correct prefix needed by child trie in contract (#2292)
* resolve child trie usage

* update locks

* increase version

* fix test

* Revert "update locks"

This reverts commit 6f537458b39df4a3bf05a311253986f29289f391.
2019-04-16 15:38:12 +02:00
joe petrowski fc0b348de4 Update Documentation (#2172)
* timestamp

* balances

* balances-remove-short-example

* system

* sudo (+missing period in balances)

* contract

* staking

* fix unclear definition in balances

* update after review

* update genesis-config-sudo link

Co-Authored-By: joepetrowski <25483142+joepetrowski@users.noreply.github.com>

* genesis
2019-04-16 15:35:21 +02:00
Andrew Jones 1e0c1d8850 Introduce ext_println to contract runtime (#2239)
* Implement `ext_println` in contract runtime

* Only allow contracts to import `ext_println` on dev chains

* Configure dev chain to allow contracts with `ext_println`

* Increment spec version

* Docs

* Rename config to the more specific enable_println
2019-04-11 15:49:17 +02:00
Andrew Jones 03f3fb1442 Contract import/export validation (#2203)
* Reject validation of contract with unknown exports

* Validate imports eagerly

* Increment spec version
2019-04-06 13:23:56 +02:00
Andrew Jones b3931d3e2a Remove redundant Ok(()) and explicitly specify StorageKey buffer type (#2188) 2019-04-03 11:59:03 +02:00
Andrew Jones 4c115e3f2d Replace Vec<u8> with [u8; 32] for contract storage key (#2184)
* Replace Vec<u8> with [u8; 32] for contract storage key

* Read storage keys from sandbox memory into fixed size buffer

* Increment `impl_version`
2019-04-03 10:12:54 +02:00
thiolliere c98db99d80 implement contract events (#2161)
* implement contract events

* update runtime

* renaming

* update test code hash

* improve complexity details

* add deposit event base cost

* add test

* Revert "add deposit event base cost"

This reverts commit 58ec010c0f4f4f0e16935ad41da32aedd17a8c57.

* update test

* Revert "update test"

This reverts commit 6fe61a593ccf0d41f09a0b97472b28ed8751a999.

* Revert "Revert "add deposit event base cost""

This reverts commit 145e8a9bac15313a4c380aa66b94fd4d36fa3f6d.

* Fix format a bit
2019-04-03 08:20:01 +02:00
thiolliere a0e6d96de0 keep track storage bytes (#2154)
* refactor

* fix accountinfo creation + impl mem_stored

* add comment

* improve syntax

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* rename current_mem_stored -> storage_size

* more explaination + more readable code

* bump impl version of node + builds

* delete builds
2019-04-01 19:14:55 +02:00
joe petrowski 0ddcbf747f Convert all UK spelling to US (#2138)
* all the ise

* forgot a misspelling

* a few more replacements

* bump impl

* rollback and fixes

* bump impl again

* Add aliases for RPC

* Update on_demand.rs
2019-03-29 14:11:45 +01:00
Nicole Zhu 665a0ac26a Documentation for Contract Module (#2045)
* Add: documentation for srml_contract, per @sergeis comments. TODO: make concise and add usage example

* Fix: minor spelling and grammar

* Add: Revisions to the doc clarification from @Sergei on trx revert behavior

* Edit: added spacing btw function list for better readability

* Remove: usage create contract example todo later

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicolezhuis@gmail.com>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicolezhuis@gmail.com>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicolezhuis@gmail.com>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicolezhuis@gmail.com>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicolezhuis@gmail.com>

* Edit: explained max gas limit revert behavior in greater detail

* Edit: incorporated first round of PRs, mostly syntax/styling

* Edit: incorporated Sergeis mental model, terms, and added usage examples

* Fix: staking module is no longer closely related to contract. Balances now manages the reaping of accounts

* Minor cleanup of links/text that are not ready to be shown

* Update srml/contract/src/lib.rs

made more concise

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Minor edits from PR

* Explained contract creation in more detail, fixed PR suggestions

* Linted according to contri guidelines

* Created a notable scenarios section, unlisted public functions in lieu of a direct link to the module

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/tests.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* Update srml/contract/src/lib.rs

Co-Authored-By: nczhu <nicole@parity.io>

* minor commit after pr feedback

* s/codehash/code_hash for consistency
2019-03-29 12:22:04 +01:00
thiolliere 29001cb469 Decouple contract from balances (#2081)
* decouple contract from balance

* update impls and builds

* set fees in contract module

* builds
2019-03-28 13:46:30 +01:00
joe petrowski 2ca08a95ba Documentation for balances module (#1943)
* comment updates

* added rustdoc and readme

* clarified LockableCurrency trait

* Currency trait rustdocs

* fixed typo

* fixed suggestions round 1

* UpdateBalanceOutcome docs (open for discussion)

* rm description of enum, consolidation, rm ReclaimRebate

* type clarification, examples overhaul, adoc formatting

* adoc to md

* format change for rustdoc

* update links and fix typos

* typos and links

* updates according to comments

* new example

* small clarifications

* trait implementation section

* missing ```

* small changes, ready for review

* line width update

* small tweaks

* Update srml/balances/src/lib.rs

Co-Authored-By: joepetrowski <25483142+joepetrowski@users.noreply.github.com>

* Update srml/balances/src/lib.rs

Co-Authored-By: joepetrowski <25483142+joepetrowski@users.noreply.github.com>

* Update srml/balances/src/lib.rs

Co-Authored-By: joepetrowski <25483142+joepetrowski@users.noreply.github.com>

* Update srml/balances/src/lib.rs

Co-Authored-By: joepetrowski <25483142+joepetrowski@users.noreply.github.com>

* Update lib.rs

* address review by thiolliere

* remove common warning

* Update docs

* updated srml example
2019-03-26 17:00:29 +01:00
Gav Wood 91c7c7188d Rename ensure_free_balance_is to make_free_balance_be (#2092) 2019-03-23 11:18:14 +01:00
cheme dd47be51c3 Switch contract storage to child trie (#2002) 2019-03-22 18:01:06 +01:00
Gav Wood dcd77a147c Introduce safe types for handling imbalances (#2048)
* Be a little safer with total issuance.

* PairT instead of _Pair

* Remove rev causing upset

* Remove fees stuff.

* Fix build (including tests)

* Update runtime, bump version

* Fix

* Handle gas refunds properly.

* Rename identifier

ala #2025

* Address grumbles

* New not-quite-linear-typing API

* Slimmer API

* More linear-type test fixes

* Fix tests

* Tidy

* Fix some grumbles

* Keep unchecked functions private

* Remove another less-than-safe currency function and ensure that
contracts module can never create cash.

* Address a few grumbles and fix tests
2019-03-20 14:07:28 +01:00
Gav Wood d7fcf5dc9d Overhaul crypto (Schnorr/Ristretto, HDKD, BIP39) (#1795)
* Rijig to Ristretto

* Rebuild wasm

* adds compatibility test with the wasm module

* Add Ed25519-BIP39 support

* Bump subkey version

* Update CLI output

* New keys.

* Standard phrase/password/path keys.

* Subkey uses S-URI for secrets

* Move everything to use new HDKD crypto.

* Test fixes

* Ignore old test vector.

* fix the ^^ old test vector.

* Fix tests

* Test fixes

* Cleanups

* Fix broken key conversion logic in grandpa

CC @rphmeier

* Remove legacy Keyring usage

* Traitify `Pair`

* Replace Ed25519AuthorityId with ed25519::Public

* Expunge Ed25519AuthorityId type!

* Replace Sr25519AuthorityId with sr25519::Public

* Remove dodgy crypto type-punning conversions

* Fix some tests

* Avoid trait

* Deduplicate DeriveJunction string decode

* Remove cruft code

* Fix test

* Minor removals

* Build fix

* Subkey supports sign and verify

* Inspect works for public key URIs

* Remove more crypto type-punning

* Fix typo

* Fix tests
2019-03-13 14:08:31 +01:00
Bastian Köcher 7927054f86 Update copyrights to 2019 (#1932) 2019-03-06 15:04:28 +01:00
Gav Wood ccc11974ee Aggregate all liquidity restrictions in a single place (#1921)
* Clean up session key rotation

* Fix build

* Bump version

* Introduce feature to balances.

* Move staking locking logic over to central point

* ^^^ rest

* First part of assimilation

* More assimilation

* More assimilation

* Fix most tests

* Fix build

* Move Balances to new locking system

* :q!

* Bump runtime version

* Build runtime

* Convenience function

* Test fix.

* Whitespace

* Improve type legibility.

* Fix comment.

* More tests.

* More tests.

* Bump version

* Caps

* Whitespace

* Whitespace

* Remove unneeded function.
2019-03-06 12:46:17 +01:00
Hero Bird 128d164f2b Make use of parity-codec "derive" crate feature (#1919)
* Make use of parity-codec "derive" crate feature

* Bump impl_version

* Update wasm files and Cargo.lock files

* Transferred to parity_codec derive feature for the rest of the crates

* Update wasm binaries and lock files

* Update core and node wasm binaries
2019-03-05 09:00:37 +01:00
thiolliere 72a8927ea3 replace some encode by using_encoded (#1863)
* replace some encode by using_encoded

* update runtime

* improve readibility
2019-02-26 09:26:11 +01:00
Jordan Beauchamp f5ab24804f Let StorageDoubleMap use borrowed key types (#1804)
* Let StorageDoubleMap use borrowed key types

* Bump impl version
2019-02-21 19:26:31 +01:00
thiolliere 8065116ba5 Improve fees module (#1821)
* remove amount associated
* make a new trait to bound some arithmetics to balances or assets:
  It also remove arithmetic bounds of srml-support::traits::Currency.

  To update your code then use srml_support::traits::ArithmeticType like:
  `type Currency: ArithmeticType + Currency<Self::AccountId, Balance=BalanceOf<Self>>; ` 
  with `type BalanceOf<T> = <<T as Trait>::Currency as ArithmeticType>::Type; `

* improve decl_storage when it explicit serde bound: basically don't try to be smarter than rust and just use where clause.
2019-02-19 17:13:59 +01:00
Xiliang Chen fafffdb771 Transaction Fee Module (#1648)
* wip

* Split bytes fee charging and charging by amount into different traits.

* Move to edition 2018.

* Implemented charge fee traits for fees module.

* Implemented 'on_finalise' for fee module.

* Updated fees finalize impl.

* Renaming and documentation update.

* Added overflow & underflow check for fee calculation.

* Added mock and unit tests for fee module.

* More unit tests for fees module.

* Fixed srml-executive unit tests.

* Remove transaction base/bytes fee from balances module, fix unit tests.

* fix compile error

* Fixed unit test.

* Minor fixes.

* Bump spec version.

* Bump spec version.

* Updated fees module and runtime wasm.

* Fees module code style improvement; updated runtime wasm.

* Bump spec and impl version.
2019-02-15 11:21:38 +01:00
Gav Wood e5ac7f0957 Vesting schedules. (#1726)
* Vesting.

* Vesting stuff.

* Add new wasm blobs

* Bump runtime version

* Update lock

* Fix tests

* Bump version
2019-02-10 11:15:16 +01:00
Stanislav Tkach ca69ad4c30 Migrate smrl-treasury and srml-upgrade-key to the 2018 edition (#1725) 2019-02-09 18:06:20 +01:00
thiolliere e5dbcf6890 decouple balances from some modules (#1641)
* decouple balances from some module by creating a new traits in support/traits
* improve decl_event
2019-02-08 17:43:12 +01:00
Tomasz Drwięga 83f9e1e720 Allow modules to indicate full block. (#1687)
* Add transaction skipping.

* Update runtime.
2019-02-08 15:35:48 +01:00
Jordan Beauchamp fb0f4dfb03 Expose block random seed and timestamp to contract ABI (#1630)
* Expose block random seed and timestamp to contract ABI

* Add tests

* Bump spec version
2019-02-07 10:58:02 +01:00
Benjamin Kampmann 15ae7cfef6 Document more TODOs as tickets (#1418)
Went through the TODOs, removed a bunch, which are outdated or nothing more than a regular comment, documented a bunch more as actual tickets and made them FIXMEs and unified their structure (`FIXME #TICKETNO DESC` for local tickets, `FIXME: DESC LINK` for external tickets) for easier in-editor support. Further more remove unnecessary remarks and related old code that I noticed in that instance.
2019-01-30 10:29:48 +01:00
Gav Wood c132e84572 Additional externs for ecdsa recovery and keccak (#1583)
* Additional externs for ecdsa recovery and keccak

* Update core/executor/src/wasm_executor.rs

Co-Authored-By: gavofyork <github@gavwood.com>

* Update core/executor/src/wasm_executor.rs

Co-Authored-By: gavofyork <github@gavwood.com>

* Fix grumble

* Grumble.
2019-01-25 19:07:02 +00:00
Sergei Pepyakin a5cafa68b1 Update srml-contract to Rust 2018. (#1510)
* Fix imports.

* Remove redundant binding

* Clean extern crates.

* Add comment

* Re-export macros from prelude

* Build fixes

* Update core/sr-std/src/lib.rs

Co-Authored-By: pepyakin <s.pepyakin@gmail.com>
2019-01-24 16:26:53 +01:00
thiolliere c0568ba3c6 update primitive-types and solve break changes (#1535) 2019-01-23 18:26:44 +01:00
thiolliere 2492931944 compact param in calls (#1499)
* impl #[codec(compact)] for param

* update modules

* test all and build runtime

* Update srml/support/src/dispatch.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* Update srml/support/src/dispatch.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* delete wip comment

* update param to use #[compact] instead of Cmpact<>

* fmt

* impl metadata

* test metadata

* add compact attr test

* script buid

* update test
2019-01-22 14:42:13 +01:00
Sergei Pepyakin 58cd6530be Dispatch Calls to other modules (#1473)
* WIP

* Use system::Origin::Signed as an origin

* Add a vm test for ext_dispatch_call

* Take fee for dispatching a Call

# Conflicts:
#	node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm

* Clean & Rebuild

# Conflicts:
#	node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm

* Dispatch call test.

* Rebuild the runtime.

* Fix the length of the buffer.

* Rebuild binaries.
2019-01-22 13:10:14 +01:00
Sergei Pepyakin 603392a9b9 Remove gas function from the public API (#1503)
* Disallow importing `gas` function

* Update srml/contract/src/wasm/prepare.rs

Co-Authored-By: pepyakin <s.pepyakin@gmail.com>
2019-01-21 16:21:32 +01:00
Sergei Pepyakin f0dbcf5401 Verify that contracts cannot use float operations (#1504) 2019-01-21 14:04:58 +01:00
Sergei Pepyakin 0ad2a5fb96 Some trivial externalities added (#1450)
* Add gas_left, gas_price and balance externalities

* Add a value_transferred externality
2019-01-19 12:33:28 +01:00