From c658b46fe17901748a95bfaf50a72b7d81da0966 Mon Sep 17 00:00:00 2001 From: Afri Schoedon <5chdn@users.noreply.github.com> Date: Thu, 30 Aug 2018 19:57:27 +0200 Subject: [PATCH 1/9] Random small cleanups (#9423) * clean up toml files * update the parity ethereum toolchain docs * update contribution guide and issue templates * update desktop and service files * build clib examples with 8 threads * update header templates * replace parity technologies with parity ethereum logo --- .github/CONTRIBUTING.md | 8 +++--- .github/ISSUE_TEMPLATE.md | 14 +++++----- README.md | 10 ++++++++ chainspec/Cargo.toml | 2 +- docker/README.md | 2 -- ethash/Cargo.toml | 2 -- ethkey/README.md | 44 ++++++++++++++----------------- ethkey/cli/src/main.rs | 20 +++++++-------- ethstore/README.md | 37 +++++++++++--------------- ethstore/cli/src/main.rs | 6 ++--- evmbin/README.md | 50 ++++++++++++++++++++++++++++++++++++ evmbin/src/main.rs | 8 +++--- license_header | 8 +++--- parity/cli/usage_header.txt | 4 +-- parity/cli/version.txt | 4 +-- scripts/parity.service | 2 +- snap/gui/icon.png | Bin 10671 -> 5044 bytes snap/gui/parity.desktop | 4 +-- test.sh | 3 +-- util/macros/Cargo.toml | 2 -- util/mem/Cargo.toml | 2 -- util/stop-guard/Cargo.toml | 2 -- util/unexpected/Cargo.toml | 2 -- util/using_queue/Cargo.toml | 2 -- util/version/Cargo.toml | 2 +- whisper/README.md | 29 ++++++++++++++++++++- whisper/cli/src/main.rs | 4 +-- 27 files changed, 165 insertions(+), 108 deletions(-) create mode 100644 evmbin/README.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index fc187a534fd..b51cca8821e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -12,9 +12,9 @@ Do **not** open an issue on Github if you think your discovered bug could be a * Otherwise, just create a [new issue](https://github.com/paritytech/parity-ethereum/issues/new) in our repository and state: -- What's your Parity version? +- What's your Parity Ethereum version? - What's your operating system and version? -- How did you install parity? +- How did you install Parity Ethereum? - Is your node fully synchronized? - Did you try turning it off and on again? @@ -22,12 +22,12 @@ Also, try to include **steps to reproduce** the issue and expand on the **actual ## Contribute! -If you would like to contribute to Parity, please **fork it**, fix bugs or implement features, and [propose a pull request](https://github.com/paritytech/parity-ethereum/compare). +If you would like to contribute to Parity Ethereum, please **fork it**, fix bugs or implement features, and [propose a pull request](https://github.com/paritytech/parity-ethereum/compare). Please, refer to the [Coding Guide](https://wiki.parity.io/Coding-guide) in our wiki for more details about hacking on Parity. ## License. -By contributing to Parity, you agree that your contributions will be licensed under the [GPLv3 License](../LICENSE). +By contributing to Parity Ethereum, you agree that your contributions will be licensed under the [GPLv3 License](../LICENSE). Each contributor has to sign our Contributor License Agreement. The purpose of the CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen license. You can read and sign our full Contributor License Agreement at [cla.parity.io](https://cla.parity.io) before submitting a pull request. diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 15dc3fa1a23..fb059d428d6 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,13 +1,11 @@ _Before filing a new issue, please **provide the following information**._ -> I'm running: -> -> - **Which Parity version?**: 0.0.0 -> - **Which operating system?**: Windows / MacOS / Linux -> - **How installed?**: via installer / homebrew / binaries / from source -> - **Are you fully synchronized?**: no / yes -> - **Which network are you connected to?**: ethereum / ropsten / kovan / ... -> - **Did you try to restart the node?**: no / yes +- **Parity Ethereum version**: 0.0.0 +- **Operating system**: Windows / MacOS / Linux +- **Installation**: homebrew / one-line installer / built from source +- **Fully synchronized**: no / yes +- **Network**: ethereum / ropsten / kovan / ... +- **Restarted**: no / yes _Your issue description goes here below. Try to include **actual** vs. **expected behavior** and **steps to reproduce** the issue._ diff --git a/README.md b/README.md index 88138b78cb5..291b4b3746d 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,16 @@ To start Parity Ethereum as a regular user using `systemd` init: `systemd` user directory (usually `~/.config/systemd/user`). 2. To configure Parity Ethereum, write a `/etc/parity/config.toml` config file, see [Configuring Parity Ethereum](https://paritytech.github.io/wiki/Configuring-Parity) for details. +## Parity Ethereum toolchain + +In addition to the Parity Ethereum client, there are additional tools in this repository available: + +- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - EVM implementation for Parity Ethereum. +- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum function calls encoding. +- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/ethstore/) - Parity Ethereum key management. +- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/ethkey/) - Parity Ethereum keys generator. +- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Implementation of Whisper-v2 PoC. + ## Join the chat! Questions? Get in touch with us on Gitter: diff --git a/chainspec/Cargo.toml b/chainspec/Cargo.toml index 73daf795a9f..780fcdff446 100644 --- a/chainspec/Cargo.toml +++ b/chainspec/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "chainspec" version = "0.1.0" -authors = ["debris "] +authors = ["Marek Kotewicz "] [dependencies] ethjson = { path = "../json" } diff --git a/docker/README.md b/docker/README.md index b2f8374b59e..86b2fcb6aad 100644 --- a/docker/README.md +++ b/docker/README.md @@ -5,7 +5,6 @@ ## Usage - CentOS Builds a lightweight non-root Parity docker image: - ``` git clone https://github.com/paritytech/parity-ethereum.git cd parity-ethereum @@ -20,7 +19,6 @@ PARITY_RUNNER_IMAGE_TAG=centos-parity-experimental \ ./docker/centos/build.sh ``` - Default values: ``` # The image name diff --git a/ethash/Cargo.toml b/ethash/Cargo.toml index 772f12d4bb3..a494ef38e3a 100644 --- a/ethash/Cargo.toml +++ b/ethash/Cargo.toml @@ -3,8 +3,6 @@ name = "ethash" version = "1.12.0" authors = ["Parity Technologies "] -[lib] - [dependencies] crunchy = "0.1.0" either = "1.0.0" diff --git a/ethkey/README.md b/ethkey/README.md index 12161b3770d..a82da0a9cf7 100644 --- a/ethkey/README.md +++ b/ethkey/README.md @@ -1,19 +1,12 @@ -# ethkey +## ethkey-cli -[![Build Status][travis-image]][travis-url] - -[travis-image]: https://travis-ci.org/paritytech/ethkey.svg?branch=master -[travis-url]: https://travis-ci.org/paritytech/ethkey - -Ethereum keys generator. - -[Documentation](http://paritytech.github.io/ethkey/ethkey/index.html) +Parity Ethereum keys generator. ### Usage ``` -Ethereum keys generator. - Copyright 2016, 2017 Parity Technologies (UK) Ltd +Parity Ethereum keys generator. + Copyright 2015-2018 Parity Technologies (UK) Ltd. Usage: ethkey info [options] @@ -27,17 +20,17 @@ Usage: Options: -h, --help Display this message and exit. - -s, --secret Display only the secret. - -p, --public Display only the public. + -s, --secret Display only the secret key. + -p, --public Display only the public key. -a, --address Display only the address. - -b, --brain Use parity brain wallet algorithm. + -b, --brain Use parity brain wallet algorithm. Not recommended. Commands: - info Display public and address of the secret. - generate random Generates new random ethereum key. - generate prefix Random generation, but address must start with a prefix. - sign Sign message using secret. - verify Verify signer of the signature. + info Display public key and address of the secret. + generate random Generates new random Ethereum key. + generate prefix Random generation, but address must start with a prefix ("vanity address"). + sign Sign message using a secret key. + verify Verify signer of the signature by public key or address. recover Try to find brain phrase matching given address from partial phrase. ``` @@ -218,10 +211,11 @@ public: 4e19a5fdae82596e1485c69b687c9cc52b5078e5b0668ef3ce8543cd90e712cb00df822 address: 00cf3711cbd3a1512570639280758118ba0b2bcb ``` +## Parity Ethereum toolchain +_This project is a part of the Parity Ethereum toolchain._ -# Parity toolchain -*this project is a part of the parity toolchain* - -- [**ethkey**](https://github.com/paritytech/ethkey) - Ethereum keys generator and signer. -- [**ethstore**](https://github.com/paritytech/ethstore) - Ethereum key management. -- [**ethabi**](https://github.com/paritytech/ethabi) - Ethereum function calls encoding. +- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - EVM implementation for Parity Ethereum. +- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum function calls encoding. +- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/ethstore/) - Parity Ethereum key management. +- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/ethkey/) - Parity Ethereum keys generator. +- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Implementation of Whisper-v2 PoC. diff --git a/ethkey/cli/src/main.rs b/ethkey/cli/src/main.rs index 73273250444..e908baec32b 100644 --- a/ethkey/cli/src/main.rs +++ b/ethkey/cli/src/main.rs @@ -34,8 +34,8 @@ use ethkey::{KeyPair, Random, Brain, BrainPrefix, Prefix, Error as EthkeyError, use rustc_hex::{FromHex, FromHexError}; const USAGE: &'static str = r#" -Ethereum keys generator. - Copyright 2016, 2017 Parity Technologies (UK) Ltd +Parity Ethereum keys generator. + Copyright 2015-2018 Parity Technologies (UK) Ltd. Usage: ethkey info [options] @@ -49,17 +49,17 @@ Usage: Options: -h, --help Display this message and exit. - -s, --secret Display only the secret. - -p, --public Display only the public. + -s, --secret Display only the secret key. + -p, --public Display only the public key. -a, --address Display only the address. - -b, --brain Use parity brain wallet algorithm. + -b, --brain Use parity brain wallet algorithm. Not recommended. Commands: - info Display public and address of the secret. - generate random Generates new random ethereum key. - generate prefix Random generation, but address must start with a prefix. - sign Sign message using secret. - verify Verify signer of the signature. + info Display public key and address of the secret. + generate random Generates new random Ethereum key. + generate prefix Random generation, but address must start with a prefix ("vanity address"). + sign Sign message using a secret key. + verify Verify signer of the signature by public key or address. recover Try to find brain phrase matching given address from partial phrase. "#; diff --git a/ethstore/README.md b/ethstore/README.md index c56a24a9314..6099c413248 100644 --- a/ethstore/README.md +++ b/ethstore/README.md @@ -1,19 +1,12 @@ -# ethstore +## ethstore-cli -[![Build Status][travis-image]][travis-url] - -[travis-image]: https://travis-ci.org/paritytech/ethstore.svg?branch=master -[travis-url]: https://travis-ci.org/paritytech/ethstore - -Ethereum key management. - -[Documentation](http://paritytech.github.io/ethstore/ethstore/index.html) +Parity Ethereum key management. ### Usage ``` -Ethereum key management. - Copyright 2016, 2017 Parity Technologies (UK) Ltd +Parity Ethereum key management tool. + Copyright 2015-2018 Parity Technologies (UK) Ltd. Usage: ethstore insert [--dir DIR] [--vault VAULT] [--vault-pwd VAULTPWD] @@ -35,19 +28,19 @@ Usage: Options: -h, --help Display this message and exit. --dir DIR Specify the secret store directory. It may be either - parity, parity-test, geth, geth-test + parity, parity-(chain), geth, geth-test or a path [default: parity]. --vault VAULT Specify vault to use in this operation. --vault-pwd VAULTPWD Specify vault password to use in this operation. Please note that this option is required when vault option is set. Otherwise it is ignored. --src DIR Specify import source. It may be either - parity, parity-test, get, geth-test + parity, parity-(chain), geth, geth-test or a path [default: geth]. Commands: insert Save account with password. - change-pwd Change account password. + change-pwd Change password. list List accounts. import Import accounts from src. import-wallet Import presale wallet. @@ -59,7 +52,7 @@ Commands: create-vault Create new vault. change-vault-pwd Change vault password. move-to-vault Move account to vault from another vault/root directory. - move-from-vault Move account to root directory from given vault or root. + move-from-vault Move account to root directory from given vault. ``` ### Examples @@ -337,11 +330,11 @@ ethstore move-from-vault 00e63fdb87ceb815ec96ae185b8f7381a0b4a5ea vault1 vault1_ OK ``` --- - -# Parity toolchain -*this project is a part of the parity toolchain* +## Parity Ethereum toolchain +_This project is a part of the Parity Ethereum toolchain._ -- [**ethkey**](https://github.com/paritytech/ethkey) - Ethereum keys generator and signer. -- [**ethstore**](https://github.com/paritytech/ethstore) - Ethereum key management. -- [**ethabi**](https://github.com/paritytech/ethabi) - Ethereum function calls encoding. +- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - EVM implementation for Parity Ethereum. +- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum function calls encoding. +- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/ethstore/) - Parity Ethereum key management. +- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/ethkey/) - Parity Ethereum keys generator. +- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Implementation of Whisper-v2 PoC. diff --git a/ethstore/cli/src/main.rs b/ethstore/cli/src/main.rs index e542bd90899..6751f713c6e 100644 --- a/ethstore/cli/src/main.rs +++ b/ethstore/cli/src/main.rs @@ -38,8 +38,8 @@ use ethstore::{EthStore, SimpleSecretStore, SecretStore, import_accounts, Presal mod crack; pub const USAGE: &'static str = r#" -Ethereum key management. - Copyright 2016, 2017 Parity Technologies (UK) Ltd +Parity Ethereum key management tool. + Copyright 2015-2018 Parity Technologies (UK) Ltd. Usage: ethstore insert [--dir DIR] [--vault VAULT] [--vault-pwd VAULTPWD] @@ -68,7 +68,7 @@ Options: that this option is required when vault option is set. Otherwise it is ignored. --src DIR Specify import source. It may be either - parity, parity-(chain), get, geth-test + parity, parity-(chain), geth, geth-test or a path [default: geth]. Commands: diff --git a/evmbin/README.md b/evmbin/README.md new file mode 100644 index 00000000000..585be422840 --- /dev/null +++ b/evmbin/README.md @@ -0,0 +1,50 @@ +## evmbin + +EVM implementation for Parity. + +### Usage + +``` +EVM implementation for Parity. + Copyright 2015-2018 Parity Technologies (UK) Ltd. + +Usage: + parity-evm state-test [--json --std-json --only NAME --chain CHAIN] + parity-evm stats [options] + parity-evm stats-jsontests-vm + parity-evm [options] + parity-evm [-h | --help] + +Commands: + state-test Run a state test from a json file. + stats Execute EVM runtime code and return the statistics. + stats-jsontests-vm Execute standard json-tests format VMTests and return + timing statistics in tsv format. + +Transaction options: + --code CODE Contract code as hex (without 0x). + --to ADDRESS Recipient address (without 0x). + --from ADDRESS Sender address (without 0x). + --input DATA Input data as hex (without 0x). + --gas GAS Supplied gas as hex (without 0x). + --gas-price WEI Supplied gas price as hex (without 0x). + +State test options: + --only NAME Runs only a single test matching the name. + --chain CHAIN Run only tests from specific chain. + +General options: + --json Display verbose results in JSON. + --std-json Display results in standardized JSON format. + --chain CHAIN Chain spec file path. + -h, --help Display this message and exit. +``` + +## Parity Ethereum toolchain +_This project is a part of the Parity Ethereum toolchain._ + +- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - EVM implementation for Parity Ethereum. +- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum function calls encoding. +- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/ethstore/) - Parity Ethereum key management. +- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/ethkey/) - Parity Ethereum keys generator. +- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Implementation of Whisper-v2 PoC. diff --git a/evmbin/src/main.rs b/evmbin/src/main.rs index 78fc474880c..c0f5003478b 100644 --- a/evmbin/src/main.rs +++ b/evmbin/src/main.rs @@ -57,7 +57,7 @@ use info::Informant; const USAGE: &'static str = r#" EVM implementation for Parity. - Copyright 2016, 2017 Parity Technologies (UK) Ltd + Copyright 2015-2018 Parity Technologies (UK) Ltd. Usage: parity-evm state-test [--json --std-json --only NAME --chain CHAIN] @@ -69,8 +69,8 @@ Usage: Commands: state-test Run a state test from a json file. stats Execute EVM runtime code and return the statistics. - stats-jsontests-vm Execute standard jsontests format VMTests and return - timing statistcis in tsv format. + stats-jsontests-vm Execute standard json-tests format VMTests and return + timing statistics in tsv format. Transaction options: --code CODE Contract code as hex (without 0x). @@ -86,7 +86,7 @@ State test options: General options: --json Display verbose results in JSON. - --std-json Display results in standardized JSON format. + --std-json Display results in standardized JSON format. --chain CHAIN Chain spec file path. -h, --help Display this message and exit. "#; diff --git a/license_header b/license_header index 4738554f915..c83bb0d90a4 100644 --- a/license_header +++ b/license_header @@ -1,16 +1,16 @@ // Copyright 2015-2018 Parity Technologies (UK) Ltd. -// This file is part of Parity. +// This file is part of Parity Ethereum. -// Parity is free software: you can redistribute it and/or modify +// Parity Ethereum is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. -// Parity is distributed in the hope that it will be useful, +// Parity Ethereum is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License -// along with Parity. If not, see . +// along with Parity Ethereum. If not, see . diff --git a/parity/cli/usage_header.txt b/parity/cli/usage_header.txt index 0bcd776c4e0..82a6d58b245 100644 --- a/parity/cli/usage_header.txt +++ b/parity/cli/usage_header.txt @@ -1,3 +1,3 @@ -Parity. Ethereum Client. +Parity Ethereum Client. By Wood/Paronyan/Kotewicz/Drwięga/Volf et al. - Copyright 2015, 2016, 2017, 2018 Parity Technologies (UK) Ltd + Copyright 2015-2018 Parity Technologies (UK) Ltd. diff --git a/parity/cli/version.txt b/parity/cli/version.txt index ed0576e04d2..480fe5469ca 100644 --- a/parity/cli/version.txt +++ b/parity/cli/version.txt @@ -1,6 +1,6 @@ -Parity +Parity Ethereum version {} -Copyright 2015, 2016, 2017, 2018 Parity Technologies (UK) Ltd +Copyright 2015-2018 Parity Technologies (UK) Ltd. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. diff --git a/scripts/parity.service b/scripts/parity.service index 3d1f4a3da1e..24e14282bc4 100644 --- a/scripts/parity.service +++ b/scripts/parity.service @@ -1,5 +1,5 @@ [Unit] -Description=Parity Daemon +Description=Parity Ethereum Daemon After=network.target [Service] diff --git a/snap/gui/icon.png b/snap/gui/icon.png index 35238121adfd1fdb130497498b1a33f74bceff92..f0f22390f5629c9a746d7b54e359ca8a66fefd4b 100644 GIT binary patch literal 5044 zcmY*7c|6qH+h@jL?1QqUX2yCeTR+(|m?4x%itJpuieyQsCNngKvJHw#H-25$z9z&l zgc#|jM7HcBWjAG+4D){7Ki<##o`24Bp0hpY*`IUoti83Eu!1lEK+M+0@*Ds#2!sKo z0MvPe7ySWs@)1@SBb-A1h=}qH_Xif2LVowh*arIs_@DFly>v6I+y4Xr($2P)7U!c! z7XQ?YQnXfx@7ahmkA;c2Yh2aS2z~eBH-$P26Z~x%t2m2{Nu|-2R$<`>GFsX=#{m^^4r|Uq4037tS`*WCYyDIkG70c#>f$u+e)n~JRj5xgl z2%thyn{qhiXgK#GKS9aBdK-|ri9GS&Xf@ulSlSg`F|S? z!Fp?<7mrjzEC6%awOJ~*Au!Ylw|fq!_3Fr4Y%|ESv8baizJR-EAkVBEyEUho#m?t5*r7zO%M)(G3T}98B_PM0CR}#5=pZA(3LgCG>A65EzyOS+N4O9Qpm6%qF?04+Y8V9+yufH9TgIzk*Vvgs>mU({ zO*6tu0An|eKD=GwzU}Z?qDgJX8koOgWnbrpA9E;J3ksi|kUt6}0ZMC4*NW?u;$3>5 z!k88A6vMZ^>eepbW!&Xvu!3i9a=s|AXP})OXkkwHm8F5uNiS0uB%Z-)jhuXyXts}S zT6%29GdLP!!At<;)@}$>o8E+?)^VIm`GiE};h?^w*OJ8C%qzRI+j@x1r$M*4c8HyTRy`O@DOyT zb^|gWUDKEu^@naZ+R-d8P0j1V75_rLxQOD`%ZzgcvXGrm3#=iYK&($aq?tvOd9LG2-Bz%H)NFSzeVo>Ay6GLH;kRwo1T9 zL5OtugeS76=Z0PqWy7LwJ=sAD20q>HH5R%f!ub`dIofkRkLM%P+B;5C#s&AS>9K+c z6^g<$F^b?3Y*^ZTBD0bzzlpE3u{ltLCIdjoZ<5OWyds-5p`~lSYchMbY8wf3$n*?5 z7ud_1vmL!0W*h(h*b@ZIOn^MQ9BU>HC?@?ySuzV4SqjlH)|LD-G4~#S5~aj7L0OO^ z;DZDTtc9aeBmDC0g9ns&#kY93RS{$?2sP&xtHb1lIL00c`~EtLJ4gksht|6KB`z=A zODSg^xadZFcNPeOMH8FkjSD)_Lg+84WbUO7+ z0@3(%QvFk_Dn%r0Mv3>q*8D|Oi1U24B>Vf~(P#n&;(6p!-O4&&1)u9qA^??%W|!(k zB<*(q{58KhQcjCQfaqKR{V4uP&}v6NvjfP$^3*PlzVtk%m9`)!GB1b$t$AbOf7@Ih zaQ=5d9@Db)vBD4IlL63;%u)I;fF;tl9xII(%vd8i0FFA$sqE;g0edhFwPtWXnnFy8 ztTsf#5+83-i0$ndXQUe#Bf#z%53Z*5Vmt;VXztYO1(K5Fv-c(j z=ohLK*z1#Yp%%aYuuLvoyL=g$Ary#ogJJVLr?n5U&+N;us2f3YBFrJ?AgNqJbI!m+ zqV8hk0XrF?r2_(Du?lg9VC9}!KV4IbePw9LINaBa^@(2(5eCLHS}LR5RaiNf>$5ea zj8$wjj&{PLhZiP_d-n^C3B*z;?QM z^#rTtqSjUBjc=1DQEV)TUEeJXENfXeV!5~8_||&S{jg#i3bX&?$36QLKPV@{d4REX zB>s~O6UTfm^F7C$gSKL1sd${K4ZHDDEq3@=l&CmHjlDU%q(Wef^e?`=J_dT6ohyO3I|Tb9k69&EZWr&B3&Fv}bTTYb1ih|HmdFffjW z6wy|bX=(PbtjgSIl_b#lsurN?U61iph%OeKwG3a@rvjWLsVJ()%J3+sWa{3%>fMue z5}YTIyn{1$6v=6IROkYed|L0&(8OxrwC>xx%77th zRzT~$Xus!1^UZf3;Tg6@R>M?jRdUODQmKW75{m$uRCdp<=-)pfOX}O0-7I0;Zu9xJ3Z_9iI4GUlcVkhE)^fJNQn&D88m8st zwnG+^=PcQe;6#=DNgw$X9AE_5@>Tl5FQ;(pPd4$|tlNIwHzE0+G*+n-6>)|?dG+{Y zdO$&Z?S;(Bkv9gatQssRNL4%V$^P)AAVnb8_&B4YJHUt)6f_q(t@PL7r6wCwNGb&o zne_{9;+$m9PmfP0WlA9A;opXr@G4cFF7d?dw)a1ucSkOFH2s1-jDCs*G&9apV-|tY zJ@``1CTjZAyZFNi4}L~WiX`^FK9GvXEd`YzzBgCZG~G=1`yvTim=gi@LY#MmfGcay zdvYYnukJyvDzm8D#a(a`?w2i-Thgmm(@%vQlFAbpime&vxOD#cZ}&)n#bUDk5;hmX zK29z|kK=(iVAUL3Fy8@)NxsH{r112O?~VF8^G_hck322179W%T2N-uYKCK8kgrg8W z<6geu&tCvf=q-lP?I(yxPMMH89CdAl*xA+3pc3!48GZcQs@eb1Qfp6Iv31G?>$)IyB*#wVT)#VYSj;fk z?hJEqTmVgA7-^M?} zvEGH46iiGq7QGH*f?Hh~PH=t5bJ@o2yTZ(F8nXsJZ%y>1Z}g4QLhfU%8Z#v5X+Tar ze-k@F(eIF9`)*1C<*cUhZOT4&N-*In79EL(>1ZLszi{r(I|}nv)=NSiyu~Z!$Zl zbP2f9*)Jv|H_tI9f)vd!wa2P<9*%sk5Y&UHI*@N%q=)59x)2mRwHW66Tf{Sv7JGF45*xVrc#NhiI_dg|-Aw+Yy z`cZ3RNcz86m$^yffm(h;vd%qp_}--f&&|jwyWp%M*;S+=vv~&ZbYG2t8=l#rues?H zaD|bid_qRY4PU#c%ZH$HxLK7^gWyTab_cc2@X@6Lnd+WC}HFHUqK_l4N3pPBDa zSb68rduMiWqbl-UHo@0Y(M%6S8p zZsT>wzy54|W9MBMzNHTL`Fu?~CcLck*KT0?$9Bpl4FTn$%N}XP>h^cl>PIACawJ0Y zcR4fTmEk{Z;nn}n%)V^7*0a0?|k*=yW7+iVtZi6YzoK4x&O%)?Oh#UCR-ZJSp+ zXdyy$v(1j@dT*fFW6eEY6sPDK;nt4iOmYN)p}M&HMLJ2V;FS^rb4HS8I!{=14#T^y zsxHQ;ea*f2pzz!zLDr71j!YR!6YcomC0M{k0g`S4@aU9^oM2V60*Wg){E(CCoYL`f zl!%>X>cxdB%9z1Tjhk9Um}C%b!>!;qwZAnY8FVn~#dbleYVHZKwxazNXcYF5__k%Y2{;>~NXH8ksV z`Y}+{%UB-EIPv}o6yI!`quiTfTI1R=cpL(Ai@m~+&3&(9BiMjp)ucj&LEvKPrVUb6*unqu z4UbAg1hKMkU4~a-{QOoaJ&8TzzsuYCxk>88E_=~t0$YH=h4=tA_fdN8NB<3|~ zHVlC|$ChT-iu4H)1aIf5O|m=GSqrlHno&YRWBvn)-HQ|hcpi-z>5<1#lj3cUSFhHnRJpDe*3uzv~ znkdd8rqe3BVBgvzn1lMF(}vmzjPZ#G)O(Jv;(ema^vp0Y);Y+oJ$O1M+ik2v_4V<* z+kF?*`S!PkGY$H#rCDI#QHdE_IjNhjHJ70r+ZC}9$X#^bA#2IGcMpauIZ9VP{$UNs zH`!6cOE^}W7jy8)@#2BAmVg{Q4drrg!vj+0JSfC7CmyWSf0e#20hO6Qs9N-$va;sI zv6Y}+I+8Oo()Iui2cmmV;8}#P*F2OCm1N&=B{^?H9DXr&P5I_5!XuvO%@Qr!Q04<0 zOLYUL9O*(CfA`eK>~`3{M!zBZ?6XAPaXC297!Gz>=Zh$mIojl33!S?-6kHl_piUtM zyLRa1s>lPKpn4JCmKgKg1-T@>VyNDFR6AOiL=kUDt@e2-M&nPK>ir5Fd z!i2aTQ=wbIwQkL4O{-u2ns8TK2zk5NsLA8hv)2aRWoHsHgNJwH9MVOBTop@ZiSa#? zTr>;m8@a=(F=_j;Hi0RtV<-#W#j5NaV@b$T$Ueft|JK@hOD&2#p3am@@tCy$fUEQD zBhcsi;yw1#aLncD06ZyO0_)v@LD(g5`|8ZDWO!#hqe0JttL>g#|Mj@Da(~>OPFhIw zY*KzinX2$?iN+;ma4h6KQHGqTx64uK-p;Ia!La_@TOPxAn7OD&0?A2Rk3ak-<+j_z z#qSvfl1Uo)eeP()fJ8Lv!B;gt@H&&{k+M1JQ)}~^IUu8zFhPR-K^yzyRM4Vil+K~2 zhfB5Bu&ldWkUtBz@97e9fde0c$A2m;J$z&!$$Mvb*=yoLpUOht9Z6hBE#s69!xiWD zV;}K@;EsvJ-c1Q;k^pF6ZFFM~6bCBiyMJ!Iut`+htZXng1Sst_-H!~CdBx$O@ObE# zM4L1FB=$~Mz4mXs{brB&Z4P+q!B&P2CIa$tY&lOp8wLYcjLDiNg3wn8Z;MyL4IhpE zrFkH+5B`aKC8Nb{%tg>C#t_huF@ZNz!yqM5VZrD5Ew$X<#>XOBjmZ(!7vx)YS%R1| mvb5?h^#A=Q`WJrQ#^aX*`bNkwK_!aG9?I6r-m(Jk6Zb#JJX*H^ literal 10671 zcmY*~Ju{kS; zkW=VDMRTfQa)|Z2=l%Kq@q2i9nBDh%UH5feufy~8e7<5#jP>{Ni1C0xpnaDNbj&~? zFz^u!f^z|X?7j0{fj?Z%SM+s2|2RLCro2Spo4t1pYh^e6CEN0V*q^1hV7 zCccQO^U62+$0J`>*-WNBX>WVLJcEG5wZILr2?t67RDv--7HyQjs2wy^=D)xAXz3%) zX^)g8euiWMr%HEW+Kl^N7?Q0QPt6kf<^Yu3lD>)Eh zFC7}BoV3NRE3zzkT;#;%?7bJd)0tXPq4;GrBZ=7Cz78_Th<-G1&`X?MYX5?%$+_MN z75JKIi0_{|1+ArTMT$+o^sd{ku|FmS(iBPl`|byfcM-x+K_+;M>Rk9vrM~|CxnbSP zJ1GJL71WkVJfC#v=N*hPEiR?M;=0lPbtF;F>Jl6)&`}m99eO^oN|`VYu4XarNHCHx(wbi^)Ytp_0+4(K5WoN++7%6FQB1{k97m z)11arv-5LzLerOP!Y>j8&ntpPPl=}^H=iH2Sx!n0+x%enzxR<#Qa#1>3D)TfdcI(~ z1wQ0nSx#pL{C81D;mMn)F|YRoW-c(DTs=-$c29!N{Womza#vRsUx&ZY^w6oR{fT^o zN;zh8N_CgDK;-Bwg_Y13a68aRpPd41gwdw=Ci;imUNBrbT5)LZ>N&ovd(KVz1;)d_ z=0oh-JLQ2TND9TY2kV_&2*bP?V1)><`Om+<@y2X3cy~OwI$~UB%S}K7KIJ>Mtdeps z+4zaq=X$^6htGQ-y{3?ie?BP;2t&r>(_~dfV^Nw)4lyo~#oB}&?wYQ=m+hNWCtxU!mT}gvP?FP*Im~FL1_31FOc;(E61gtW^y7_ z7_@NiNd_D8PQ2`qG+?7wv}c|E@K`+5u=3&&Ev7iAja zE>jMJ%u3t3qM6N%SW$fNTu!nvR&58n@JOF{*LjwZgtC+xvbia72Uj{95-xxpc5)G(>%Si;PYP&={|7NtLCWQHX`$3o zcVKZ=sL@Vm-Ap=`Gv2GAxz*wzrzL6$e&UJS+7&c?YhKFX=hG`WGAXC`IF>9hCv`Sd zzb*e=+1iFdq)4}}ug#Af&kXr+DFCy&4^(I5fEEZm<29-A!9Z&tQFDQj^%*ZI0Exah zd!#n#AnDZt(^T4HpZ*W`KS)sEK0_5zxg0M|9d#*CxLEOF3A_WX_^%zk8X8vUYLj*) z=V{4u5%EqaYvX1KHR=vA91EA6zZD(A4+%_O*w7dy8Y8qhBMIQ3t2bI|h_bJ*02}C5 zmuZ;MuhY=H@pz$pPb=|N;5Ps2=JvlKKZO@JR?a{?qrhyk{h6KLDI1Pi_Uz1+XK=6% z-_KH8+Be3^%)g8SDy<_`UCsUD+4}%LIbQ!hCyG9GAl~L$hx5HmWufjHqb7YXxbE&H z;d?85{Bz8Lv@=lu9xpZLhOG(D^(2r2NT+`hmJ>+#u2z_Z32YJm%6pE3?|ivV$nyLWcJ&+qt_aAu>b?}}1b?DYzx4(E#O1^W+kte_uE z1(L>xvjkG+Ib4y0#)S)i>q~v!$s}e%Z;4ICvmrs=H=w9nhM?uk(zKXpI?up~QjMnW zsfE~@oxJ+@E`#`iiv$7YMR+3M+FpL?SLBii#JJ6HK5Ex5F{jJhFfGuY1P|#7agj+F zbE|{8susLFI5@ff>+@gvbgF*S&hcs0kY{kas}6N5U(|yC^v)5KJMe&|+^!}3QLdv` zgEFpnO_+SbZ_|O zx^gOByq3F2Xj9@mVbUt9DP!!$xXTmhv#{`Z& zW+>P2_EEyk7tR-Wmy!0(I*RGrFyQPC`q`!_#`OLcI6v9q8?{|238gI7zcBM39KvHi zn#(5tdtH-U5=Ez|6SmENG6sdx{iF51(WM-qeSi&zNvz~nK7_G(a~7r5GT0l__oH%S zCU#)*@rN6hBFAtSvhT5KU%Jy|+5|EY8T`2iWI}5FSOUawf#weqC+~MF%u9de1LZaFrOl#i zYi><`9rZIJ=;n366U(0UXgtrehBvDaB1~_g8{Wpd_(WUefw#YEu&rv~nu-$Lfj? z9K6sL^XOvhR6i|VJbspOR*D2~c~$w)Ue52dVy;s>osvd74<%|&GVYO5N_(s>|8vN2 zmI8gn6f9<^(MbosCJ0`A<2?C~vefZ=8eQ&2dly<&Rpxdf`Nj$) z4Lu5}dI^|q*z*oW(0l&`@vKb*Z?v&6Bzk{+q-g|jl%MfahNALGzjss26kFNd2hJud z#pvYfjq-sqZy#3Mbv)?^y>VSTly1HY(uhsIt`mr@qEnWOy6)flgKTVxYw+Dd)Z3&T zkQEF}e80O3n!vfmiE~o3<>YNLo#NwbdyWkRdAJj)TS0utK&$6l^C?eilnooQGZ=yiFGDg1!r(8`zJ+4GJe|h|RNn%bF znYaxbukeU3nc$NSQC%FQ7NkDH*vKXa>;?1Ad(-vDbq$8`$)XLq)*18YA+c2ul~}wZZi6mphj!LjEX9I?KsmpHd*CMT{si42jXT#&92rYXPCpg-V?7UfGf&t^P4%{g?^i&3ln8kE1{<+Yl{#d&imbIN>aBfaeL_PTIu*M2rulfJc13!LlSmuR-&8`a zrp1H^*2;G+($D+c9ha77RTNn2n5+>24iM>F`)v4A3Nz6v8!MHfn^GRB`rP5;M2|x4 z^>JMfvj)24{=Y|D-&7_Ev^_Mwe!XzKw#Q9Wuw3|Bro>9A3$oq|*hiL_+C*_*?j}M8 zNH>d^QcLcqpjV68ioiKC{vcVg#t2|bMm$WVK)?c32`E9m!M=&!UHmYulShjQ>A%~X z`e7c8$xro^-0Nu4tspD@RU{0h8_kAPQHLJXr+S*~#da&GWTC7mG!%}Ri2hiV+E?`UwX4S>Zok+jC`>wu5E=~g%s)7$kWY~d|0$hAJ!e#>{A5%EW!?GAeE(s@<($eqBhyE2%3Rz9u2q#Wte@`fcHlch zh{iYDP1~?~E6yrE_b6x~s43tLtu+^sp9Yoxq_ z{}y<^StRFyUrwto0vUDyf%=q-EZ1+MoFT{nqxs|m?joVyb2D!0}mcAaZ#RxUt7 z!$P6h@-Sa0O*Q{W^FV~@jjpPn1F}uubkQcFdRba%>qLVaZsq=5F~-+&koinxexbL@ zTRbKO>S#UQam=qnS;z$`*D7zJn^!P^FyBO&o7b%~k+;fR4;nxKe=4Qw=V5s8Z1OL= zter@!KXMIBH&6dL*x^4%tl2Cwi4D=U_@!53sehWF=T!4pLYDJT22~$OJLi>Wl;X5> z16|505#J`b%0_3mLit`Hhp9s~dupqV(9Bz&87Ag4cN~=_&w>UFwl5~`K<~ZYST%MM z(KR}rWSrMuBwr)pSCZ3qs$t5QO@49#q0WMIP1p1t+yAnlap?;BBlwP(+B`w?T{5n@ z{qP!@%-=-eVat(}nPI2yXz=?9rP({ zF}s+)*g8E4swHysmn@PGXtv6#-if@!fa!iEfCGjRvFa?c8?s3fU!%4F`+K71VeIk zL=0`i`c#I1P^gK{KOe4~%*huz4lJ_SiO2Nj{xGO0o2)midVex|bov^aQEA(xjz6I> zcNIOwFT5cS2CQ!h9sN^2r_1LZ>-U-R2FGN7Eqr%OlF=&-yizxQ3c7+k+b%K7H=T53 z`LEUhqUQdEO+?%vqV!Z?oNfQHMC2m3zhLA7ZTW`*bkirCUDggw5@y~o}^%UQm<5W~~94NEWlba2!a zPXI&AtBhm;(|w1>03*>VAL8t?S}xj@FG*|-A_ORlTFYS(qi)Lhzk+}PUzII%y(UPz z^YoxU5Wb|zfQ2h3>zJb%X9>K;I7btuNk<{(NZXdc}DeHoCgq~glRPc zb_GGjSfj0(NazqEM7N|U-_?EFd|cIe>yfR>ZO#S^JPdD&)!@-jFo-l|4IrM^NJwGF zBV*;(afFr-rL=X%+3bnxy@ZwlA*@J`!t71kpI1|@PH*oQ{CwI{!E18K$tT8?pow2U zvhmQ?%Cv8^4bRj*SF!I+aUWN)CAj@e%&@C;*y&rTBW4w^yax=WS1anTHkB+o2ccY$ z7WzPfKiQe-j0=(dL!3fX(A8wQg4;R|4gQ`n^Dkt|er4@|?AL`8Q z*nvMgNc)BdG4m^+18Lz`fRtzJB@^<%)E9i8De+uLPm_lQaRrh)xbPFQXuOt+n>s?5 zygN)#ep1U|w%k|L@ilf2)08b5sdG~yw(wn7BGKH(-V|;9SxyEQiyVp1ayHe$-< z^5JD6-2UQgVqafLtCl3=1h~DvxKADvWW&O?%dyR7hTG!?A;a7{ldUVZEud)b8@@dQURC zjF7IoKxpChVY<}_$FE)_I z1CYpMaU~A`lxqz!5!B0?bLD$U$4)cuUE_X& zu6C=jB!Wr5ZKh5nupvtQmyyKq%pEx3tA)V)pL;3ON!{;t!-4w^-K~}EFvRe0BlG*A z9}_4L4yTeWK_{D{RD{*r_lL7p2F>1vx|rNWtt2`Y_N4`nIk4hJt6XHn`pN0e1%AEb+Kl0$ zsVG{bBA=p5$liu7conPjK>a1Cr*v@kwN{=(RPqnBNtLa|H#9urKj>qp@8!z$JO$YG z_a0&rh!Pj^tQ6!O(>`uEnhAbe>m`H5+xd6D|K77k3hQ|=~1C1$2?Yl_Sv>PVK zvLT;~EOO*Y)DgF!&FEm**hhOag3TDrp0~`Nz}faoM-?Wnp4G+zbr*_FKCk}l-~Sc#@cJt#Qfm2{ROd5H$h0i#Rw8-GtsTIyA7)~BL`_6-1&o%b zm{?={Yu~NLtuUzYHY|Moi0sjy&87>T0@&*X1s2u|PW$&>sn8{P_o^p|J6TkHZjYM; z#nrNJJfk=357z^S@PRt|=qSj6F@t6ThdSG#(ua36Kt%?z$+IN`QUD);FX58|^O9}a zUu~1`7LK>$9a(OEl7RgL=2XtSiZJ!n0)nC>kStEvN{M|(WB!Y~YpxIG(b$_rO@K3O zeuas(KNF;$;yUkw+!ry6mK@-NMjJnzaPxEAOA*uqL;0yD%$$8j6-yWb3W%~j_^G^9 zBN#y^Z*Cols5yu1;OC6=w*d8{AU}WN)vD>hTHd(O| z570#6_=9mgMcOSiAHdPAvb;TLOzVW9;aJoZy7vAHFVNd1x6p9-LEaeS$tCNv1wNcS z;b?}6yv>GOYn3%z*@a7-Vj)DYL|!_}<#be7e?NT)4q-U&Kj79e3alnz7p@g`IuoIt zNhMT$gTdS3*`t3eY+ab5x(UbXvV^b!9m>$EXwBFXCnu3_XlA|bu||X5gFwlBolo4E zNxyekT>!64c%Ce3W8DN=RT1WjG#!39AUfH}m_GOEd|c}&Qg4un#B3;f?!ZT$6p(T5 ztDA<^h+faZ+W^(FHX>IgRb6g_EG6tMKUVQdJknNhmK%K+S zzOx1uOR0DPGvCw=#Dg0&F&^*_?>f_73*!4`8|cNW5&IrQm~NPQoJclggM~wD=VVtk zMxw>#l6x}5Zkk7!a&A^PZQ|Qs+4obc?Bs=+ANoyUN#+{}vx4Eb$AD*b)G-t zJ(J?sqkp|QupcVJD*$(RcVo6eNS zVq))TSZwVpGoMB?Xc8?8mW-G$gSW?mENI9za*lpUz(F-$yArv3ZF(6X4!Xva%g1G} zxo+*Hnq(vM^IZW@enU8Bjq*`}H1;}P90!b@J-TrH^VN$&&SP%MeWR|Y?tC;5CIJCn zn#)p1Z%~&L62A=Lr>Ln$FK`$yPd*@CWFb-e({uaw9lQiFdG%4w$x+lvq;!y~JzP(_ zcXthv!F9LOY>fjINj3R?Wp-J?b1*5ryxTr)dXGTQWNUUt5!-<83?hsLrl-S45ROZ{ z04_5@qqZ2;Zv{v^9hRbdir`d}A|$lPbs-N2qQIH1{RGW3K~l5$iDOoEY36Swmi*6n{m>;!L+8?mwubQe4_>oEEJzd`{8+k)1et?TCic%d5?Xc% zk52#q@|_T3k)IFl>8}u8%|i~m&042v`?v9(1+(NDWKSAZ98=kIp*^i<#;mTKl?LDp zM`W{S+Le=E3E{%l=zMy0`Wo5nT@-E#I)W&@ap$4!`cHJqzXI>SAxZ~nbFdDn5>7?K zsB&JgLgz=B-c7^ZZM19%^Y{PbCxI>zYa*qw$gg9VesS%;!2l`lvXZ9Y+Y(7Z4~{AyH_?LI0{BrB1^no}5_ zK}5(rOg($FDyCgmGIcL-+V&-4-_YfNS6E20lVJ@Z9nFBu(JD)rgB_}pdD!ty{Wsdv zcN?~rzjmAAfM$x(6h=ILSKFrl^Lv<5s+<8bH1iORG?m?3WHFEKTv4e_mY^&`5NP396kUg5g zK&PDi_@@fD2664B1j(}+aZ`g6#Q>WuM*Fppv$Q{5Zz`|Y*3IGO$Koh89{wz08gvE&) ze$+ZO;-T{~1wA=I9jc|$&hIx2g8$IDyXFghytQ@hN1G^CfjM`YB$F>Y z^v2zW5n6T}^b$^J5WsJP0>0Gz8+xky23+Q<_=WrNS2~@t@O1=Eb-Zhbg8k*C<_rA- zzg~cCULH@zf$rXIYM#atG>@o0s=JSy8p1b!&K~W_0K&j)EuSbi<;hF{%x20=$zKVw z6w|P6t2WBg5{FtM7$2!cl>UorA*SmDX7 zt%AxL;lnIQY?q2?NSrwEiQa0$h0kxYg7*h@UstjN z_)iUsU#0+gAP2#mjLUWp%<*cXXa^pHC#wHBVy{P8!s1!v&q}T4k9Xi#s+7n4{R_R< z#c1j$M?ADOK|CtStW%BN1q86Ia*1mxi1D8Fe5+%g}#h^U8A0zWuaPNmZkJ z!&@fiRk|4<)hMe%UaCM7_6cqvfpIp85Ps99Q27SXGJxUq0=QRIj<_}FuVu-A_O!{r z-cvhl($oyz*egm1&-Cs!JQH*RJGs|DUlYyv=|;nkcsw~uf^utW@MdKY3F#V@{PCv88a>i-gsFN3TH0lvLW ztb7k%1%tR}@gfUGcbDFi1FGK6^tQ0bdnMJ=E<3a>+VePi?GQmj9-j)n{Bptnjd0h1 z_zfT$fso~UPIUpiePg*K2U+rDV?R)8@O|ZSY+pMLd|I>lC+=#zXM^2ZClI=>CU2$w z!$tJ_1kdMO*U^R1q(6Dck^RCu}#=Smy*E$ysVJ7?C_h}Ty+Y4{MX% z`ZHoBKr0Po!OdqB{u`mNS;vdmLergO*OadIX`%_@;r~ss&b&-yLqttx&?aC}yR4+!r+Kzv-SCPkdb8DVy#VP%Pbdsv zCiD|Vy?Z+uS*Py#w*u5Iz|zDT80adc36S_U#?%Iej70YW@#00$^@^SeTxPL-iabzJ*v6%e)+kpJ<**iG`o8#>CbPwqb~x z1NnYZpv33f5_UE=T0}8jWe7c)6U-=uKzID#tTSd*srej=JWGImZjUm=)Gs$ zcByo|2-AFke*pu;AkeSj%34A4`k*3Du*osMOcwyS$WdV~0TghnEY~qrBS1rhOI}vJ zPxkH&ix-DW#bxKw4m8^2(Xkes-J|&BDs|#Hh&a|wIfoi`fU`Za4%*kYVLG-0Fnc0rWDCQ+v0q#w9pxuI4usl|0F7QcY@AM#DjCYQkRK&e8GbV zULGo@A1_c0h!ofXo@2miF!`KB5@C~Jmf!25Iqx=cPBCdq^1??KgYga*=mZ}i74ohl zZ^d)eEdfB?0;Fm|$_B!hW05-W7t6g-Z@t<2tB2ls2@W0xR5VkA z@yH6GAOpB}ti6J!qOo^8@@MfA!SzFP?apaDQW2)0Lj;s=+eGgtDOJy-VR$KCA~;|L z`K)>qaRVlB?}qT)SMKG|HhcfUwuy_woOMdoDF8*QUnLuU$EQc3{FWzsKMN?7%3OsZ z0xXz&SC>`4&FB$mefDN2gP)3dH{tPgw`t>$@aHyJKF2TbkZH^e$ zi>^aNaO*k}egih}4~b3=R_V9+7Zx@U<;Kb;1;M<9T8NkTEjwrwGNUz9;b_E87bg0<&3>(}|$AtBL!ro$ig4P8r$ zaW!Nj;eh1&NOKuEte=qCeVDVcT7-)`_j# z*q6uZeAkf!;&(l@v&_bi1Q`C;sdCwYx083z%{sm)GyjT#swiW%;QtzH-cqf`b>jk8 zL?_wYp6EB4yKOu_o?Mdo*9`G=nQAI+qeF)tNv$nmcZmRZ@?du- zs||9@ZkAYAWale#_X80V2#6Fxprr#aB8U;@9mh}vZbbl*hhyBroCR|UuP9EDgw{j) zGgbvq^jYWCu@`fr&N(b2gZ>O)zCoa$&PH45rdac_(zdK!bA*KU?9B9hTTYuK{6Uog zY8tR>P%)ruLSyg1SrTox0Sd%vHrm|2S9ck()@Z4u%S{@c+t{d#rq65d=}q2AzzYdB zqB&h>(qXkO!cSO>dm}*EalWddr87(gkc8i1SCWK8fhC=_QdB1XwCE@h-B9yt!76|< z*NlK>^iKXs09xLFCd2Cjed6wE>T8j6PB9t z(znz}>ZU(uexHl@dSZMgucy-es${e}P&HS2oLTdbd9nS{eqXr4HnD7BW$c^PHA$eg P5_Cz|Sf^CWk^KJvUAPuQ diff --git a/snap/gui/parity.desktop b/snap/gui/parity.desktop index c8f83be73d0..1833865deab 100644 --- a/snap/gui/parity.desktop +++ b/snap/gui/parity.desktop @@ -1,8 +1,8 @@ [Desktop Entry] Type=Application Encoding=UTF-8 -Name=parity -Comment=Fast, light, robust Ethereum implementation +Name=Parity Ethereum +Comment=The fastest and most advanced Ethereum client. Exec=parity Icon=/usr/share/pixmaps/icon.png Terminal=true diff --git a/test.sh b/test.sh index baa959f3cb4..83d07b78bc9 100755 --- a/test.sh +++ b/test.sh @@ -41,14 +41,13 @@ echo "________Validate chainspecs________" time ./scripts/validate_chainspecs.sh fi - # Running the C++ example echo "________Running the C++ example________" cd parity-clib-examples/cpp && \ mkdir -p build && \ cd build && \ cmake .. && \ - make && \ + make -j 8 && \ ./parity-example && \ cd .. && \ rm -rf build && \ diff --git a/util/macros/Cargo.toml b/util/macros/Cargo.toml index 01d85935c54..fd6a130f37a 100644 --- a/util/macros/Cargo.toml +++ b/util/macros/Cargo.toml @@ -2,5 +2,3 @@ name = "macros" version = "0.1.0" authors = ["Parity Technologies "] - -[dependencies] diff --git a/util/mem/Cargo.toml b/util/mem/Cargo.toml index 1cca222142e..29d1db923ee 100644 --- a/util/mem/Cargo.toml +++ b/util/mem/Cargo.toml @@ -2,5 +2,3 @@ name = "mem" version = "0.1.0" authors = ["Parity Technologies "] - -[dependencies] diff --git a/util/stop-guard/Cargo.toml b/util/stop-guard/Cargo.toml index bf870fb6158..f8fa5f12343 100644 --- a/util/stop-guard/Cargo.toml +++ b/util/stop-guard/Cargo.toml @@ -2,5 +2,3 @@ name = "stop-guard" version = "0.1.0" authors = ["Parity Technologies "] - -[dependencies] diff --git a/util/unexpected/Cargo.toml b/util/unexpected/Cargo.toml index 35ff1a535de..d5caeadeed8 100644 --- a/util/unexpected/Cargo.toml +++ b/util/unexpected/Cargo.toml @@ -2,5 +2,3 @@ name = "unexpected" version = "0.1.0" authors = ["Parity Technologies "] - -[dependencies] diff --git a/util/using_queue/Cargo.toml b/util/using_queue/Cargo.toml index 4030d0d8dfe..ac581a96dc6 100644 --- a/util/using_queue/Cargo.toml +++ b/util/using_queue/Cargo.toml @@ -2,5 +2,3 @@ name = "using_queue" version = "0.1.0" authors = ["Parity Technologies "] - -[dependencies] diff --git a/util/version/Cargo.toml b/util/version/Cargo.toml index fc4cdece6db..172170e82db 100644 --- a/util/version/Cargo.toml +++ b/util/version/Cargo.toml @@ -2,7 +2,7 @@ # Make sure to update the service if it's moved or the structure is changed. [package] name = "parity-version" -# NOTE: this value is used for Parity version string (via env CARGO_PKG_VERSION) +# NOTE: this value is used for Parity Ethereum version string (via env CARGO_PKG_VERSION) version = "2.1.0" authors = ["Parity Technologies "] build = "build.rs" diff --git a/whisper/README.md b/whisper/README.md index 34a68a1cb8f..a582843f805 100644 --- a/whisper/README.md +++ b/whisper/README.md @@ -1,3 +1,30 @@ -# Whisper +## Whisper Implementation of Whisper based on the Whisper-v2 PoC. + +### Usage + +``` +Parity Whisper-v2 CLI. + Copyright 2015-2018 Parity Technologies (UK) Ltd. + +Usage: + whisper [options] + whisper [-h | --help] + +Options: + --whisper-pool-size SIZE Specify Whisper pool size [default: 10]. + -p, --port PORT Specify which RPC port to use [default: 8545]. + -a, --address ADDRESS Specify which address to use [default: 127.0.0.1]. + -l, --log LEVEL Specify the logging level. Must conform to the same format as RUST_LOG [default: Error]. + -h, --help Display this message and exit. +``` + +## Parity Ethereum toolchain +_This project is a part of the Parity Ethereum toolchain._ + +- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - EVM implementation for Parity Ethereum. +- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum function calls encoding. +- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/ethstore/) - Parity Ethereum key management. +- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/ethkey/) - Parity Ethereum keys generator. +- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Implementation of Whisper-v2 PoC. diff --git a/whisper/cli/src/main.rs b/whisper/cli/src/main.rs index d09ff307cf4..76f852c762b 100644 --- a/whisper/cli/src/main.rs +++ b/whisper/cli/src/main.rs @@ -48,8 +48,8 @@ use jsonrpc_http_server::{AccessControlAllowOrigin, DomainsValidation}; const POOL_UNIT: usize = 1024 * 1024; const USAGE: &'static str = r#" -Whisper CLI. - Copyright 2018 Parity Technologies (UK) Ltd +Parity Whisper-v2 CLI. + Copyright 2015-2018 Parity Technologies (UK) Ltd. Usage: whisper [options] From 07d97d5b2608f7cacd2413ecc52096b1af031ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Thu, 30 Aug 2018 19:03:38 +0100 Subject: [PATCH 2/9] docker: install missing dependencies in arm target dockerfiles (#9436) --- docker/ubuntu-aarch64/Dockerfile | 2 +- docker/ubuntu-arm/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/ubuntu-aarch64/Dockerfile b/docker/ubuntu-aarch64/Dockerfile index 5eefe3dbdbf..cd8320530af 100644 --- a/docker/ubuntu-aarch64/Dockerfile +++ b/docker/ubuntu-aarch64/Dockerfile @@ -6,7 +6,7 @@ RUN apt-get -y update && \ apt-get install -y --force-yes --no-install-recommends \ curl git make g++ gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ libc6-arm64-cross libc6-dev-arm64-cross wget file ca-certificates \ - binutils-aarch64-linux-gnu cmake \ + binutils-aarch64-linux-gnu cmake3 libudev-dev \ && \ apt-get clean diff --git a/docker/ubuntu-arm/Dockerfile b/docker/ubuntu-arm/Dockerfile index d924a20f57e..bbdc280d51f 100644 --- a/docker/ubuntu-arm/Dockerfile +++ b/docker/ubuntu-arm/Dockerfile @@ -6,7 +6,7 @@ RUN apt-get -y update && \ apt-get install -y --force-yes --no-install-recommends \ curl git make g++ gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \ libc6-dev-armhf-cross wget file ca-certificates \ - binutils-arm-linux-gnueabihf cmake \ + binutils-arm-linux-gnueabihf cmake3 libudev-dev \ && \ apt-get clean From 644d1db5ef5e13fea3b4e7f7d3a9d196d7d969b1 Mon Sep 17 00:00:00 2001 From: Afri Schoedon <5chdn@users.noreply.github.com> Date: Thu, 30 Aug 2018 21:32:47 +0200 Subject: [PATCH 3/9] Add POA Networks: Core and Sokol (#9413) * ethcore: add poa network and sokol chainspecs * rpc: simplify chain spec docs * cli: rearrange networks by main/test and size/range * parity: don't blacklist 0x00a328 on sokol testnet * parity: add sokol and poanet to params and clean up a bit, add tests * ethcore: add the poa networks and clean up a bit * ethcore: fix path to poacore chain spec * parity: rename poa networks to poacore and poasokol * parity: fix configuration tests * parity: fix parameter tests * ethcore: rename POA Core and POA Sokol --- ethcore/res/ethereum/poacore.json | 117 +++++++++++++++++++++++++++ ethcore/res/ethereum/poasokol.json | 125 +++++++++++++++++++++++++++++ ethcore/src/ethereum/mod.rs | 46 ++++++----- parity/cli/mod.rs | 2 +- parity/params.rs | 84 ++++++++++++------- parity/run.rs | 2 +- rpc/src/v1/traits/parity.rs | 2 +- rpc/src/v1/traits/parity_set.rs | 2 +- 8 files changed, 330 insertions(+), 50 deletions(-) create mode 100644 ethcore/res/ethereum/poacore.json create mode 100644 ethcore/res/ethereum/poasokol.json diff --git a/ethcore/res/ethereum/poacore.json b/ethcore/res/ethereum/poacore.json new file mode 100644 index 00000000000..b80b3a113fd --- /dev/null +++ b/ethcore/res/ethereum/poacore.json @@ -0,0 +1,117 @@ +{ + "name": "POA Core", + "dataDir": "poacore", + "engine": { + "authorityRound": { + "params": { + "stepDuration": 5, + "blockReward": "0xDE0B6B3A7640000", + "maximumUncleCountTransition": 0, + "maximumUncleCount": 0, + "validators": { + "multi": { + "0": { + "safeContract": "0x8bf38d4764929064f2d4d3a56520a76ab3df415b" + }, + "772000": { + "safeContract": "0x83451c8bc04d4ee9745ccc58edfab88037bc48cc" + } + } + } + } + } + }, + "params": { + "gasLimitBoundDivisor": "0x400", + "maximumExtraDataSize": "0x20", + "minGasLimit": "0x1388", + "networkID": "0x63", + "eip140Transition": "0x0", + "eip211Transition": "0x0", + "eip214Transition": "0x0", + "eip658Transition": "0x0" + }, + "genesis": { + "seal": { + "authorityRound": { + "step": "0x0", + "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + "difficulty": "0x20000", + "gasLimit": "0x663BE0" + }, + "nodes": [ + "enode://6e3d1b39cbd2a9c4f053a27e68fd90d0bac83691dfdc4a13c59f2555078a71e63c5daaee5a82aa6db500512760a5456f86076bf8bbe8011c27c82ed7d6f5fb26@45.77.140.210:30303", + "enode://f4698ad485a027497e1cc992bb5f7cecee2b32a44c47202738d8d0eecfab719541988d0cbcbc5ea94c6c959e5cddeb85fc6ae75fb63dc3bf87cdbe9e6f615e9d@206.156.242.64:30303", + "enode://31dffed97f8fed1f34fe66453280a89cbeeda60cf28f6fbb212ebbefd7c7566a02c1c7d5c00bbbb49b9fa8a49f157e0f786f379ca9bcbf2fea24de70d70a22b6@206.156.242.61:30303", + "enode://efe1a701595b7bfc20cc71a70dcdf1d731a5ca618cbc1bd0059edc6658d5958a2b243cc88112c7ded48f3d331a26a6a76b4d3f4a51260b5fb5d13f798e5786f0@206.156.242.62:30303", + "enode://6bdc7553ab2e4914cb47774c1e6d8c8f47ac7c3981891f85f65d06f208ea1bc4d3bf982b330950e0a0cd127efd7145c4df7113159a1d4a06ed722e6c16d0ac6c@45.32.215.190:30303", + "enode://872d82a24144bc007658fb6fac0dcdfb9b63aeb05ef563a06d0186f2d1e5ffbfc5c4f1244891a8a86ef70682b9d24382e654b305224883698862e2df647a4d23@45.76.236.247:30303", + "enode://b11fbc6cde81c80be69508aca8ffea8460680a25a9c151b683293f8617282062b8e8e139bf91e88cedf60068a3cf927b0d48832fda5169b58a8f7ce442de6fb4@206.189.76.132:30303", + "enode://96678da10ac83769ab3f63114a41b57b700476c5ac02719b878fa89909a936551bb7609aa09b068bf89903206fa03f23e1b5b9117ca278de304c2570b87dcb27@18.208.191.114:30303", + "enode://47ee6bc6312210caa0087a5754221f7666e37ab2d5c10cfe386ecdf9e5f935fc55726b37d10f0eaf493f762a270445d3e6d569891c328759b8baeb39f6f6ed2d@34.224.215.151:30303" + ], + "accounts": { + "0000000000000000000000000000000000000005": { "builtin": { "name": "modexp", "activate_at": "0x0", "pricing": { "modexp": { "divisor": 20 } } } }, + "0000000000000000000000000000000000000006": { "builtin": { "name": "alt_bn128_add", "activate_at": "0x0", "pricing": { "linear": { "base": 500, "word": 0 } } } }, + "0000000000000000000000000000000000000007": { "builtin": { "name": "alt_bn128_mul", "activate_at": "0x0", "pricing": { "linear": { "base": 40000, "word": 0 } } } }, + "0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } }, + + "0x0000000000000000000000000000000000000001": { + "balance": "1", + "builtin": { + "name": "ecrecover", + "pricing": { + "linear": { + "base": 3000, + "word": 0 + } + } + } + }, + "0x0000000000000000000000000000000000000002": { + "balance": "1", + "builtin": { + "name": "sha256", + "pricing": { + "linear": { + "base": 60, + "word": 12 + } + } + } + }, + "0x0000000000000000000000000000000000000003": { + "balance": "1", + "builtin": { + "name": "ripemd160", + "pricing": { + "linear": { + "base": 600, + "word": 120 + } + } + } + }, + "0x0000000000000000000000000000000000000004": { + "balance": "1", + "builtin": { + "name": "identity", + "pricing": { + "linear": { + "base": 15, + "word": 3 + } + } + } + }, + "0xcf260ea317555637c55f70e55dba8d5ad8414cb0": { + "balance": "252460800000000000000000000" + }, + "0x8bf38d4764929064f2d4d3a56520a76ab3df415b": { + "balance":"1", + "constructor": "0x606060405260008060006101000a81548160ff02191690831515021790555060008060016101000a81548160ff02191690831515021790555073fffffffffffffffffffffffffffffffffffffffe600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034156200009957600080fd5b604051602080620018e68339810160405280805190602001909190505060008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620000f457600080fd5b81600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602060405190810160405280600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506002906001620001a5929190620002af565b50600090505b600280549050811015620002865760408051908101604052806001151581526020018281525060056000600284815481101515620001e557fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101559050508080600101915050620001ab565b60028054905060048190555060026003908054620002a69291906200033e565b505050620003db565b8280548282559060005260206000209081019282156200032b579160200282015b828111156200032a5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620002d0565b5b5090506200033a919062000395565b5090565b828054828255906000526020600020908101928215620003825760005260206000209182015b828111156200038157825482559160010191906001019062000364565b5b50905062000391919062000395565b5090565b620003d891905b80821115620003d457600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200039c565b5090565b90565b6114fb80620003eb6000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303aca7921461010c5780630eaba26a1461016f578063108552691461019857806340a141ff146101d157806340c9cdeb1461020a5780634110a4891461023357806345199e0a1461028b57806349285b58146102f55780634d238c8e1461034a5780637528621114610383578063900eb5a8146103985780639a573786146103fb578063a26a47d214610450578063ae4b1b5b1461047d578063b3f05b97146104d2578063b7ab4db5146104ff578063d3e848f114610569578063fa81b200146105be578063facd743b14610613575b600080fd5b341561011757600080fd5b61012d6004808035906020019091905050610664565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561017a57600080fd5b6101826106a3565b6040518082815260200191505060405180910390f35b34156101a357600080fd5b6101cf600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106ad565b005b34156101dc57600080fd5b610208600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610845565b005b341561021557600080fd5b61021d610bf4565b6040518082815260200191505060405180910390f35b341561023e57600080fd5b61026a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bfa565b60405180831515151581526020018281526020019250505060405180910390f35b341561029657600080fd5b61029e610c2b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102e15780820151818401526020810190506102c6565b505050509050019250505060405180910390f35b341561030057600080fd5b610308610cbf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561035557600080fd5b610381600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d6f565b005b341561038e57600080fd5b610396611008565b005b34156103a357600080fd5b6103b96004808035906020019091905050611136565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561040657600080fd5b61040e611175565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561045b57600080fd5b610463611225565b604051808215151515815260200191505060405180910390f35b341561048857600080fd5b610490611238565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104dd57600080fd5b6104e561125e565b604051808215151515815260200191505060405180910390f35b341561050a57600080fd5b610512611270565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055557808201518184015260208101905061053a565b505050509050019250505060405180910390f35b341561057457600080fd5b61057c611304565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105c957600080fd5b6105d161132a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061e57600080fd5b61064a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611350565b604051808215151515815260200191505060405180910390f35b60038181548110151561067357fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561070957600080fd5b600060019054906101000a900460ff1615151561072557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561076157600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600060016101000a81548160ff0219169083151502179055507f600bcf04a13e752d1e3670a5a9f1c21177ca2a93c6f5391d4f1298d098097c22600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000806000610852611175565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561088b57600080fd5b83600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615156108e757600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549350600160038054905003925060038381548110151561094657fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508160038581548110151561098457fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600383815481101515610a2357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600380549050111515610a6557600080fd5b6003805480919060019003610a7a91906113a9565b506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff02191690831515021790555060008060006101000a81548160ff0219169083151502179055506001430340600019167f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c89600360405180806020018281038252838181548152602001915080548015610bdf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b95575b50509250505060405180910390a25050505050565b60045481565b60056020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b610c336113d5565b6003805480602002602001604051908101604052809291908181526020018280548015610cb557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c6b575b5050505050905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349285b586000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610d4f57600080fd5b6102c65a03f11515610d6057600080fd5b50505060405180519050905090565b610d77611175565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db057600080fd5b80600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151515610e0d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e4957600080fd5b6040805190810160405280600115158152602001600380549050815250600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505060038054806001018281610ee691906113e9565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060006101000a81548160ff0219169083151502179055506001430340600019167f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c89600360405180806020018281038252838181548152602001915080548015610ff657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610fac575b50509250505060405180910390a25050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561107157506000809054906101000a900460ff16155b151561107c57600080fd5b60016000806101000a81548160ff021916908315150217905550600360029080546110a8929190611415565b506002805490506004819055507f8564cd629b15f47dc310d45bcbfc9bcf5420b0d51bf0659a16c67f91d27632536110de611270565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611121578082015181840152602081019050611106565b505050509050019250505060405180910390a1565b60028181548110151561114557fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a5737866000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561120557600080fd5b6102c65a03f1151561121657600080fd5b50505060405180519050905090565b600060019054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900460ff1681565b6112786113d5565b60028054806020026020016040519081016040528092919081815260200182805480156112fa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112b0575b5050505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b8154818355818115116113d0578183600052602060002091820191016113cf9190611467565b5b505050565b602060405190810160405280600081525090565b8154818355818115116114105781836000526020600020918201910161140f9190611467565b5b505050565b8280548282559060005260206000209081019282156114565760005260206000209182015b8281111561145557825482559160010191906001019061143a565b5b509050611463919061148c565b5090565b61148991905b8082111561148557600081600090555060010161146d565b5090565b90565b6114cc91905b808211156114c857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611492565b5090565b905600a165627a7a7230582080a711b0dc0a5a56450f524808731aaf3a29434af82763ff6d5afd93278f1d5e0029000000000000000000000000cf260ea317555637c55f70e55dba8d5ad8414cb0" + } + } +} diff --git a/ethcore/res/ethereum/poasokol.json b/ethcore/res/ethereum/poasokol.json new file mode 100644 index 00000000000..443ebbed0e4 --- /dev/null +++ b/ethcore/res/ethereum/poasokol.json @@ -0,0 +1,125 @@ +{ + "name": "POA Sokol", + "dataDir": "poasokol", + "engine": { + "authorityRound": { + "params": { + "stepDuration": 5, + "blockReward": "0xDE0B6B3A7640000", + "maximumUncleCountTransition": 0, + "maximumUncleCount": 0, + "validators": { + "multi": { + "0": { + "safeContract": "0x8bf38d4764929064f2d4d3a56520a76ab3df415b" + }, + "362296": { + "safeContract": "0xf5cE3f5D0366D6ec551C74CCb1F67e91c56F2e34" + }, + "509355": { + "safeContract": "0x03048F666359CFD3C74a1A5b9a97848BF71d5038" + } + } + } + } + } + }, + "params": { + "gasLimitBoundDivisor": "0x400", + "maximumExtraDataSize": "0x20", + "minGasLimit": "0x1388", + "networkID": "0x4D", + "eip140Transition": "0x0", + "eip211Transition": "0x0", + "eip214Transition": "0x0", + "eip658Transition": "0x0" + }, + "genesis": { + "seal": { + "authorityRound": { + "step": "0x0", + "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + }, + "difficulty": "0x20000", + "gasLimit": "0x663BE0" + }, + "nodes": [ + "enode://8e0af07c86ec36590bb6368e7ad0c45b6dc658f5fb66ec68889a614affddda5e021bd513bcf4fb2fae4a3bbe08cf0de84f037cd58478a89665dfce1ded2595c7@34.236.37.74:30303", + "enode://0171db265a569636372566e86cb7a69306fe5c15a8e2ed5bed4010012fa1d146ae4918a688cf1bd3fd98e8c2d5c3705d68ff941c88ab974ff52c7fc8606ce2f8@35.168.201.160:30303", + "enode://9a4a3788471af17a8346da7fc41057f037da692d4fad0ac5023fc0c88cf64666d74ee9f6396012eec98cd6bc772418b42dddd823a38e359bbfdc4fc93ba38de8@34.229.128.189:30303", + "enode://881e56dc71472376b65ddaad5e42ee73084c96eb368c1e219b4fbcd73ffa339703cca168b6620cb1eabb7b8dcfe72e563117670c7ce94298c20d04b709c65697@165.227.111.36:30303", + "enode://8e3733fe1606b17dd743e7d4fdb7ec1e0b909aab3c5289beabcb36e9d3175ca05bb36a52589090d4899c85a9219622ea4cbb9541057b722be65241db557b51a8@52.201.214.63:30303", + "enode://0d1e0372f63a3f0b82d66635ea101ecc0f6797788a078805cc933dd93e6a22f7c9fa51ab4e2d21da02d04480ef19f3bbb9a2b41dd1c262085d295a354bb8b0f9@18.217.47.209:30303", + "enode://ab083db73da15b3995ac9c68035cdb32901835a823cb848fccb672e43dd21f14428706118d6fe5b921d8e741f122f35aad0255bc86807b1d17bcfa1e86e40a14@165.227.37.104:30303", + "enode://a2a8545ccceaa1152721a213e6aca912c6d89a37bc6eea73999fdb08a95c6f07a79057f7f41c75c128f58ed77a13985e5c33c8c50d6a3d60b50c43f5f69c1fcd@52.170.16.34:30303", + "enode://8e0af07c86ec36590bb6368e7ad0c45b6dc658f5fb66ec68889a614affddda5e021bd513bcf4fb2fae4a3bbe08cf0de84f037cd58478a89665dfce1ded2595c7@34.236.37.74:30303", + "enode://182ee200ca134dc4d6390f3d5aadbcd80df0f7f24335830335d142573eacce4eeb919d30e82c5df588034e167e6ba6dd11187502ac9264a71005127f6b146a99@159.203.95.241:30303", + "enode://b022ff70b5fcaf9596ae5efed99a8198b4ae0578ee9d17b733609d803a75cef95d3a2a18e50dca9a7c3b26139f158c59eaf8b5fb8d1d331c9a46934a78acabe8@206.189.76.128:30303", + "enode://4a16c9a597dad00c000523fc2f4302bb8bb7f05949ec0ea4a516f0c6de9e191662f650ab55ea2a05f5af0f0eeee879800074f7263328f09181c7156059b7b6b7@18.221.62.190:30303", + "enode://6527003feb6b534a7fac297b92d2f368bdf679d8f489639006c78640bf3ead3cdbf88a88a7bec29e6e29510122f279adf094d1b1b6e9e5005c4584aeb482c4a0@35.172.215.190:30303", + "enode://99f335f9dffe978f7a925590f011909f2db1a2b28b05a0dc10da47e285e3d20b2d827caee258607c707c5261d9ba5f7f5b899dd025315c0afbfd5536a91ccf73@18.209.18.86:30303" + ], + "accounts": { + "0000000000000000000000000000000000000005": { "builtin": { "name": "modexp", "activate_at": "0x0", "pricing": { "modexp": { "divisor": 20 } } } }, + "0000000000000000000000000000000000000006": { "builtin": { "name": "alt_bn128_add", "activate_at": "0x0", "pricing": { "linear": { "base": 500, "word": 0 } } } }, + "0000000000000000000000000000000000000007": { "builtin": { "name": "alt_bn128_mul", "activate_at": "0x0", "pricing": { "linear": { "base": 40000, "word": 0 } } } }, + "0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } }, + + "0x0000000000000000000000000000000000000001": { + "balance": "1", + "builtin": { + "name": "ecrecover", + "pricing": { + "linear": { + "base": 3000, + "word": 0 + } + } + } + }, + "0x0000000000000000000000000000000000000002": { + "balance": "1", + "builtin": { + "name": "sha256", + "pricing": { + "linear": { + "base": 60, + "word": 12 + } + } + } + }, + "0x0000000000000000000000000000000000000003": { + "balance": "1", + "builtin": { + "name": "ripemd160", + "pricing": { + "linear": { + "base": 600, + "word": 120 + } + } + } + }, + "0x0000000000000000000000000000000000000004": { + "balance": "1", + "builtin": { + "name": "identity", + "pricing": { + "linear": { + "base": 15, + "word": 3 + } + } + } + }, + "0xe8ddc5c7a2d2f0d7a9798459c0104fdf5e987aca": { + "balance": "252460800000000000000000000" + }, + "0x8bf38d4764929064f2d4d3a56520a76ab3df415b": { + "balance":"1", + "constructor": "0x606060405260008060006101000a81548160ff0219169083151502179055506000600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff02191690831515021790555073fffffffffffffffffffffffffffffffffffffffe600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503415620000b557600080fd5b604051602080620018c98339810160405280805190602001909190505060008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200011057600080fd5b81600460026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602060405190810160405280600460029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506006906001620001c1929190620002cb565b50600090505b600680549050811015620002a257604080519081016040528060011515815260200182815250600960006006848154811015156200020157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101559050508080600101915050620001c7565b60068054905060088190555060066007908054620002c29291906200035a565b505050620003f7565b82805482825590600052602060002090810192821562000347579160200282015b82811115620003465782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620002ec565b5b509050620003569190620003b1565b5090565b8280548282559060005260206000209081019282156200039e5760005260206000209182015b828111156200039d57825482559160010191906001019062000380565b5b509050620003ad9190620003b1565b5090565b620003f491905b80821115620003f057600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620003b8565b5090565b90565b6114c280620004076000396000f3006060604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303aca79214610101578063108552691461016457806340a141ff1461019d57806340c9cdeb146101d65780634110a489146101ff57806345199e0a1461025757806349285b58146102c15780634d238c8e14610316578063752862111461034f578063900eb5a8146103645780639a573786146103c7578063a26a47d21461041c578063ae4b1b5b14610449578063b3f05b971461049e578063b7ab4db5146104cb578063d3e848f114610535578063fa81b2001461058a578063facd743b146105df575b600080fd5b341561010c57600080fd5b6101226004808035906020019091905050610630565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561016f57600080fd5b61019b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061066f565b005b34156101a857600080fd5b6101d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610807565b005b34156101e157600080fd5b6101e9610bb7565b6040518082815260200191505060405180910390f35b341561020a57600080fd5b610236600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610bbd565b60405180831515151581526020018281526020019250505060405180910390f35b341561026257600080fd5b61026a610bee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102ad578082015181840152602081019050610292565b505050509050019250505060405180910390f35b34156102cc57600080fd5b6102d4610c82565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561032157600080fd5b61034d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d32565b005b341561035a57600080fd5b610362610fcc565b005b341561036f57600080fd5b61038560048080359060200190919050506110fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d257600080fd5b6103da61113b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561042757600080fd5b61042f6111eb565b604051808215151515815260200191505060405180910390f35b341561045457600080fd5b61045c6111fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104a957600080fd5b6104b1611224565b604051808215151515815260200191505060405180910390f35b34156104d657600080fd5b6104de611237565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610521578082015181840152602081019050610506565b505050509050019250505060405180910390f35b341561054057600080fd5b6105486112cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059557600080fd5b61059d6112f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105ea57600080fd5b610616600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611317565b604051808215151515815260200191505060405180910390f35b60078181548110151561063f57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106cb57600080fd5b600460019054906101000a900460ff161515156106e757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561072357600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460016101000a81548160ff0219169083151502179055507f600bcf04a13e752d1e3670a5a9f1c21177ca2a93c6f5391d4f1298d098097c22600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600080600061081461113b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561084d57600080fd5b83600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615156108a957600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549350600160078054905003925060078381548110151561090857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508160078581548110151561094657fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506007838154811015156109e557fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600780549050111515610a2757600080fd5b6007805480919060019003610a3c9190611370565b506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055506000600460006101000a81548160ff0219169083151502179055506001430340600019167f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c89600760405180806020018281038252838181548152602001915080548015610ba257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b58575b50509250505060405180910390a25050505050565b60085481565b60096020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b610bf661139c565b6007805480602002602001604051908101604052809291908181526020018280548015610c7857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610c2e575b5050505050905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349285b586000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610d1257600080fd5b6102c65a03f11515610d2357600080fd5b50505060405180519050905090565b610d3a61113b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d7357600080fd5b80600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151515610dd057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e0c57600080fd5b6040805190810160405280600115158152602001600780549050815250600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505060078054806001018281610ea991906113b0565b9160005260206000209001600084909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600460006101000a81548160ff0219169083151502179055506001430340600019167f55252fa6eee4741b4e24a74a70e9c11fd2c2281df8d6ea13126ff845f7825c89600760405180806020018281038252838181548152602001915080548015610fba57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f70575b50509250505060405180910390a25050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156110365750600460009054906101000a900460ff16155b151561104157600080fd5b6001600460006101000a81548160ff0219169083151502179055506007600690805461106e9291906113dc565b506006805490506008819055507f8564cd629b15f47dc310d45bcbfc9bcf5420b0d51bf0659a16c67f91d27632536110a4611237565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156110e75780820151818401526020810190506110cc565b505050509050019250505060405180910390a1565b60068181548110151561110b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a5737866000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156111cb57600080fd5b6102c65a03f115156111dc57600080fd5b50505060405180519050905090565b600460019054906101000a900460ff1681565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff1681565b61123f61139c565b60068054806020026020016040519081016040528092919081815260200182805480156112c157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611277575b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b81548183558181151161139757818360005260206000209182019101611396919061142e565b5b505050565b602060405190810160405280600081525090565b8154818355818115116113d7578183600052602060002091820191016113d6919061142e565b5b505050565b82805482825590600052602060002090810192821561141d5760005260206000209182015b8281111561141c578254825591600101919060010190611401565b5b50905061142a9190611453565b5090565b61145091905b8082111561144c576000816000905550600101611434565b5090565b90565b61149391905b8082111561148f57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611459565b5090565b905600a165627a7a7230582036ea35935c8246b68074adece2eab70c40e69a0193c08a6277ce06e5b25188510029000000000000000000000000e8ddc5c7a2d2f0d7a9798459c0104fdf5e987aca" + } + } +} diff --git a/ethcore/src/ethereum/mod.rs b/ethcore/src/ethereum/mod.rs index a31f9ed50d4..6d33e6d2d03 100644 --- a/ethcore/src/ethereum/mod.rs +++ b/ethcore/src/ethereum/mod.rs @@ -42,31 +42,31 @@ fn load_machine(b: &[u8]) -> EthereumMachine { Spec::load_machine(b).expect("chain spec is invalid") } -/// Create a new Foundation Olympic chain spec. -pub fn new_olympic<'a, T: Into>>(params: T) -> Spec { - load(params.into(), include_bytes!("../../res/ethereum/olympic.json")) -} - -/// Create a new Foundation Mainnet chain spec. +/// Create a new Foundation mainnet chain spec. pub fn new_foundation<'a, T: Into>>(params: T) -> Spec { load(params.into(), include_bytes!("../../res/ethereum/foundation.json")) } -/// Create a new Classic Mainnet chain spec without the DAO hardfork. +/// Create a new Classic mainnet chain spec without the DAO hardfork. pub fn new_classic<'a, T: Into>>(params: T) -> Spec { load(params.into(), include_bytes!("../../res/ethereum/classic.json")) } -/// Create a new Expanse mainnet chain spec. -pub fn new_expanse<'a, T: Into>>(params: T) -> Spec { - load(params.into(), include_bytes!("../../res/ethereum/expanse.json")) +/// Create a new POA Network mainnet chain spec. +pub fn new_poanet<'a, T: Into>>(params: T) -> Spec { + load(params.into(), include_bytes!("../../res/ethereum/poacore.json")) } -/// Create a new Tobalaba chain spec. +/// Create a new Tobalaba mainnet chain spec. pub fn new_tobalaba<'a, T: Into>>(params: T) -> Spec { load(params.into(), include_bytes!("../../res/ethereum/tobalaba.json")) } +/// Create a new Expanse mainnet chain spec. +pub fn new_expanse<'a, T: Into>>(params: T) -> Spec { + load(params.into(), include_bytes!("../../res/ethereum/expanse.json")) +} + /// Create a new Musicoin mainnet chain spec. pub fn new_musicoin<'a, T: Into>>(params: T) -> Spec { load(params.into(), include_bytes!("../../res/ethereum/musicoin.json")) @@ -87,19 +87,29 @@ pub fn new_social<'a, T: Into>>(params: T) -> Spec { load(params.into(), include_bytes!("../../res/ethereum/social.json")) } -/// Create a new Kovan testnet chain spec. -pub fn new_kovan<'a, T: Into>>(params: T) -> Spec { - load(params.into(), include_bytes!("../../res/ethereum/kovan.json")) +/// Create a new Olympic testnet chain spec. +pub fn new_olympic<'a, T: Into>>(params: T) -> Spec { + load(params.into(), include_bytes!("../../res/ethereum/olympic.json")) +} + +/// Create a new Morden testnet chain spec. +pub fn new_morden<'a, T: Into>>(params: T) -> Spec { + load(params.into(), include_bytes!("../../res/ethereum/morden.json")) } -/// Create a new Foundation Ropsten chain spec. +/// Create a new Ropsten testnet chain spec. pub fn new_ropsten<'a, T: Into>>(params: T) -> Spec { load(params.into(), include_bytes!("../../res/ethereum/ropsten.json")) } -/// Create a new Morden chain spec. -pub fn new_morden<'a, T: Into>>(params: T) -> Spec { - load(params.into(), include_bytes!("../../res/ethereum/morden.json")) +/// Create a new Kovan testnet chain spec. +pub fn new_kovan<'a, T: Into>>(params: T) -> Spec { + load(params.into(), include_bytes!("../../res/ethereum/kovan.json")) +} + +/// Create a new POA Sokol testnet chain spec. +pub fn new_sokol<'a, T: Into>>(params: T) -> Spec { + load(params.into(), include_bytes!("../../res/ethereum/poasokol.json")) } // For tests diff --git a/parity/cli/mod.rs b/parity/cli/mod.rs index 5ca5feb6797..594bd9a9bf4 100644 --- a/parity/cli/mod.rs +++ b/parity/cli/mod.rs @@ -288,7 +288,7 @@ usage! { ARG arg_chain: (String) = "foundation", or |c: &Config| c.parity.as_ref()?.chain.clone(), "--chain=[CHAIN]", - "Specify the blockchain type. CHAIN may be either a JSON chain specification file or olympic, frontier, homestead, mainnet, morden, ropsten, classic, expanse, tobalaba, musicoin, ellaism, easthub, social, testnet, kovan or dev.", + "Specify the blockchain type. CHAIN may be either a JSON chain specification file or ethereum, classic, poacore, tobalaba, expanse, musicoin, ellaism, easthub, social, olympic, morden, ropsten, kovan, poasokol, testnet, or dev.", ARG arg_keys_path: (String) = "$BASE/keys", or |c: &Config| c.parity.as_ref()?.keys_path.clone(), "--keys-path=[PATH]", diff --git a/parity/params.rs b/parity/params.rs index 2d1514a02d4..df924aee39e 100644 --- a/parity/params.rs +++ b/parity/params.rs @@ -32,17 +32,19 @@ use user_defaults::UserDefaults; #[derive(Debug, PartialEq)] pub enum SpecType { Foundation, - Morden, - Ropsten, - Tobalaba, - Kovan, - Olympic, Classic, + Poanet, + Tobalaba, Expanse, Musicoin, Ellaism, Easthub, Social, + Olympic, + Morden, + Ropsten, + Kovan, + Sokol, Dev, Custom(String), } @@ -58,18 +60,20 @@ impl str::FromStr for SpecType { fn from_str(s: &str) -> Result { let spec = match s { - "foundation" | "frontier" | "homestead" | "mainnet" => SpecType::Foundation, - "frontier-dogmatic" | "homestead-dogmatic" | "classic" => SpecType::Classic, - "morden" | "classic-testnet" => SpecType::Morden, - "ropsten" => SpecType::Ropsten, - "kovan" | "testnet" => SpecType::Kovan, + "ethereum" | "frontier" | "homestead" | "byzantium" | "foundation" | "mainnet" => SpecType::Foundation, + "classic" | "frontier-dogmatic" | "homestead-dogmatic" => SpecType::Classic, + "poanet" | "poacore" => SpecType::Poanet, "tobalaba" => SpecType::Tobalaba, - "olympic" => SpecType::Olympic, "expanse" => SpecType::Expanse, "musicoin" => SpecType::Musicoin, "ellaism" => SpecType::Ellaism, "easthub" => SpecType::Easthub, "social" => SpecType::Social, + "olympic" => SpecType::Olympic, + "morden" | "classic-testnet" => SpecType::Morden, + "ropsten" => SpecType::Ropsten, + "kovan" | "testnet" => SpecType::Kovan, + "sokol" | "poasokol" => SpecType::Sokol, "dev" => SpecType::Dev, other => SpecType::Custom(other.into()), }; @@ -81,17 +85,19 @@ impl fmt::Display for SpecType { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.write_str(match *self { SpecType::Foundation => "foundation", - SpecType::Morden => "morden", - SpecType::Ropsten => "ropsten", - SpecType::Olympic => "olympic", SpecType::Classic => "classic", + SpecType::Poanet => "poanet", + SpecType::Tobalaba => "tobalaba", SpecType::Expanse => "expanse", SpecType::Musicoin => "musicoin", SpecType::Ellaism => "ellaism", SpecType::Easthub => "easthub", SpecType::Social => "social", + SpecType::Olympic => "olympic", + SpecType::Morden => "morden", + SpecType::Ropsten => "ropsten", SpecType::Kovan => "kovan", - SpecType::Tobalaba => "tobalaba", + SpecType::Sokol => "sokol", SpecType::Dev => "dev", SpecType::Custom(ref custom) => custom, }) @@ -103,17 +109,19 @@ impl SpecType { let params = params.into(); match *self { SpecType::Foundation => Ok(ethereum::new_foundation(params)), - SpecType::Morden => Ok(ethereum::new_morden(params)), - SpecType::Ropsten => Ok(ethereum::new_ropsten(params)), - SpecType::Olympic => Ok(ethereum::new_olympic(params)), SpecType::Classic => Ok(ethereum::new_classic(params)), + SpecType::Poanet => Ok(ethereum::new_poanet(params)), + SpecType::Tobalaba => Ok(ethereum::new_tobalaba(params)), SpecType::Expanse => Ok(ethereum::new_expanse(params)), SpecType::Musicoin => Ok(ethereum::new_musicoin(params)), SpecType::Ellaism => Ok(ethereum::new_ellaism(params)), SpecType::Easthub => Ok(ethereum::new_easthub(params)), SpecType::Social => Ok(ethereum::new_social(params)), - SpecType::Tobalaba => Ok(ethereum::new_tobalaba(params)), + SpecType::Olympic => Ok(ethereum::new_olympic(params)), + SpecType::Morden => Ok(ethereum::new_morden(params)), + SpecType::Ropsten => Ok(ethereum::new_ropsten(params)), SpecType::Kovan => Ok(ethereum::new_kovan(params)), + SpecType::Sokol => Ok(ethereum::new_sokol(params)), SpecType::Dev => Ok(Spec::new_instant()), SpecType::Custom(ref filename) => { let file = fs::File::open(filename).map_err(|e| format!("Could not load specification file at {}: {}", filename, e))?; @@ -345,17 +353,31 @@ mod tests { #[test] fn test_spec_type_parsing() { + assert_eq!(SpecType::Foundation, "foundation".parse().unwrap()); assert_eq!(SpecType::Foundation, "frontier".parse().unwrap()); assert_eq!(SpecType::Foundation, "homestead".parse().unwrap()); + assert_eq!(SpecType::Foundation, "byzantium".parse().unwrap()); assert_eq!(SpecType::Foundation, "mainnet".parse().unwrap()); - assert_eq!(SpecType::Foundation, "foundation".parse().unwrap()); - assert_eq!(SpecType::Kovan, "testnet".parse().unwrap()); - assert_eq!(SpecType::Kovan, "kovan".parse().unwrap()); - assert_eq!(SpecType::Morden, "morden".parse().unwrap()); - assert_eq!(SpecType::Ropsten, "ropsten".parse().unwrap()); - assert_eq!(SpecType::Olympic, "olympic".parse().unwrap()); + assert_eq!(SpecType::Foundation, "ethereum".parse().unwrap()); assert_eq!(SpecType::Classic, "classic".parse().unwrap()); + assert_eq!(SpecType::Classic, "frontier-dogmatic".parse().unwrap()); + assert_eq!(SpecType::Classic, "homestead-dogmatic".parse().unwrap()); + assert_eq!(SpecType::Poanet, "poanet".parse().unwrap()); + assert_eq!(SpecType::Poanet, "poacore".parse().unwrap()); + assert_eq!(SpecType::Tobalaba, "tobalaba".parse().unwrap()); + assert_eq!(SpecType::Expanse, "expanse".parse().unwrap()); + assert_eq!(SpecType::Musicoin, "musicoin".parse().unwrap()); + assert_eq!(SpecType::Ellaism, "ellaism".parse().unwrap()); + assert_eq!(SpecType::Easthub, "easthub".parse().unwrap()); + assert_eq!(SpecType::Social, "social".parse().unwrap()); + assert_eq!(SpecType::Olympic, "olympic".parse().unwrap()); + assert_eq!(SpecType::Morden, "morden".parse().unwrap()); assert_eq!(SpecType::Morden, "classic-testnet".parse().unwrap()); + assert_eq!(SpecType::Ropsten, "ropsten".parse().unwrap()); + assert_eq!(SpecType::Kovan, "kovan".parse().unwrap()); + assert_eq!(SpecType::Kovan, "testnet".parse().unwrap()); + assert_eq!(SpecType::Sokol, "sokol".parse().unwrap()); + assert_eq!(SpecType::Sokol, "poasokol".parse().unwrap()); } #[test] @@ -366,13 +388,19 @@ mod tests { #[test] fn test_spec_type_display() { assert_eq!(format!("{}", SpecType::Foundation), "foundation"); - assert_eq!(format!("{}", SpecType::Ropsten), "ropsten"); - assert_eq!(format!("{}", SpecType::Morden), "morden"); - assert_eq!(format!("{}", SpecType::Olympic), "olympic"); assert_eq!(format!("{}", SpecType::Classic), "classic"); + assert_eq!(format!("{}", SpecType::Poanet), "poanet"); + assert_eq!(format!("{}", SpecType::Tobalaba), "tobalaba"); assert_eq!(format!("{}", SpecType::Expanse), "expanse"); assert_eq!(format!("{}", SpecType::Musicoin), "musicoin"); + assert_eq!(format!("{}", SpecType::Ellaism), "ellaism"); + assert_eq!(format!("{}", SpecType::Easthub), "easthub"); + assert_eq!(format!("{}", SpecType::Social), "social"); + assert_eq!(format!("{}", SpecType::Olympic), "olympic"); + assert_eq!(format!("{}", SpecType::Morden), "morden"); + assert_eq!(format!("{}", SpecType::Ropsten), "ropsten"); assert_eq!(format!("{}", SpecType::Kovan), "kovan"); + assert_eq!(format!("{}", SpecType::Sokol), "sokol"); assert_eq!(format!("{}", SpecType::Dev), "dev"); assert_eq!(format!("{}", SpecType::Custom("foo/bar".into())), "foo/bar"); } diff --git a/parity/run.rs b/parity/run.rs index f9ff9611112..f5f477379b0 100644 --- a/parity/run.rs +++ b/parity/run.rs @@ -944,7 +944,7 @@ fn prepare_account_provider(spec: &SpecType, dirs: &Directories, data_dir: &str, hardware_wallet_classic_key: spec == &SpecType::Classic, unlock_keep_secret: cfg.enable_fast_unlock, blacklisted_accounts: match *spec { - SpecType::Morden | SpecType::Ropsten | SpecType::Kovan | SpecType::Dev => vec![], + SpecType::Morden | SpecType::Ropsten | SpecType::Kovan | SpecType::Sokol | SpecType::Dev => vec![], _ => vec![ "00a329c0648769a73afac7f9381e08fb43dbea72".into() ], diff --git a/rpc/src/v1/traits/parity.rs b/rpc/src/v1/traits/parity.rs index 39e1892cc14..76df05bbc64 100644 --- a/rpc/src/v1/traits/parity.rs +++ b/rpc/src/v1/traits/parity.rs @@ -178,7 +178,7 @@ build_rpc_trait! { #[rpc(name = "parity_chainId")] fn chain_id(&self) -> Result>; - /// Get the chain name. Returns one of: "foundation", "kovan", &c. of a filename. + /// Get the chain name. Returns one of the pre-configured chain names or a filename. #[rpc(name = "parity_chain")] fn chain(&self) -> Result; diff --git a/rpc/src/v1/traits/parity_set.rs b/rpc/src/v1/traits/parity_set.rs index 707758920f6..9335ddc273c 100644 --- a/rpc/src/v1/traits/parity_set.rs +++ b/rpc/src/v1/traits/parity_set.rs @@ -87,7 +87,7 @@ build_rpc_trait! { #[rpc(name = "parity_setMode")] fn set_mode(&self, String) -> Result; - /// Set the network spec. Argument must be one of: "foundation", "ropsten", "morden", "kovan", "olympic", "classic", "dev", "expanse", "musicoin" or a filename. + /// Set the network spec. Argument must be one of pre-configured chains or a filename. #[rpc(name = "parity_setChain")] fn set_spec_name(&self, String) -> Result; From 3dbea1a7a185de0c6d1a725898f91da6fee4648e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Fri, 31 Aug 2018 00:21:57 +0100 Subject: [PATCH 4/9] ci: only include local paths in coverage script (except target) (#9437) --- scripts/gitlab/coverage.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/gitlab/coverage.sh b/scripts/gitlab/coverage.sh index 1ddf340a180..38d01cb1faf 100755 --- a/scripts/gitlab/coverage.sh +++ b/scripts/gitlab/coverage.sh @@ -6,15 +6,15 @@ rm -rf target/* cargo test --all --exclude evmjit --no-run -- --test-threads 8|| exit $? KCOV_TARGET="target/cov" KCOV_FLAGS="--verify" -EXCLUDE="/usr/lib,/usr/include,$HOME/.cargo,$HOME/.multirust,rocksdb,secp256k1" mkdir -p $KCOV_TARGET echo "__________Cover RUST___________" -for FILE in `find target/debug/deps ! -name "*.*"` - do - timeout --signal=SIGKILL 5m kcov --exclude-pattern $EXCLUDE $KCOV_FLAGS $KCOV_TARGET $FILE - done -timeout --signal=SIGKILL 5m kcov --exclude-pattern $EXCLUDE $KCOV_FLAGS $KCOV_TARGET target/debug/parity-* -echo "Cover JS" -bash <(curl -s https://codecov.io/bash)&& -echo "Uploaded code coverage" +for FILE in `find target/debug/deps ! -name "*.*" -type f` +do + timeout --signal=SIGKILL 5m kcov --include-path=$(pwd) --exclude-path=$(pwd)/target $KCOV_FLAGS $KCOV_TARGET $FILE +done +timeout --signal=SIGKILL 5m kcov --include-path=$(pwd) --exclude-path=$(pwd)/target $KCOV_FLAGS $KCOV_TARGET target/debug/parity-* + +bash <(curl -s https://codecov.io/bash) && + echo "Uploaded code coverage" + exit 0 From bc53e78a046fa40ff5e85d0516a06c203d51114f Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Fri, 31 Aug 2018 12:13:01 +0100 Subject: [PATCH 5/9] Remove unused BlockStatus::Pending (#9447) Pending case never instantiated, and only ever matched together with Unknown --- ethcore/src/client/client.rs | 4 ++-- ethcore/sync/src/block_sync.rs | 2 +- ethcore/sync/src/chain/handler.rs | 2 +- ethcore/types/src/block_status.rs | 2 -- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ethcore/src/client/client.rs b/ethcore/src/client/client.rs index e8707d6eb7c..573fd1f93ee 100644 --- a/ethcore/src/client/client.rs +++ b/ethcore/src/client/client.rs @@ -1391,7 +1391,7 @@ impl ImportBlock for Client { bail!(BlockImportErrorKind::Import(ImportErrorKind::AlreadyInChain)); } let status = self.block_status(BlockId::Hash(unverified.parent_hash())); - if status == BlockStatus::Unknown || status == BlockStatus::Pending { + if status == BlockStatus::Unknown { bail!(BlockImportErrorKind::Block(BlockError::UnknownParent(unverified.parent_hash()))); } @@ -2082,7 +2082,7 @@ impl IoClient for Client { let is_parent_pending = self.queued_ancient_blocks.read().0.contains(&parent_hash); if !is_parent_pending { let status = self.block_status(BlockId::Hash(parent_hash)); - if status == BlockStatus::Unknown || status == BlockStatus::Pending { + if status == BlockStatus::Unknown { bail!(BlockImportErrorKind::Block(BlockError::UnknownParent(parent_hash))); } } diff --git a/ethcore/sync/src/block_sync.rs b/ethcore/sync/src/block_sync.rs index 5dd1bdac244..55b23cba4d1 100644 --- a/ethcore/sync/src/block_sync.rs +++ b/ethcore/sync/src/block_sync.rs @@ -266,7 +266,7 @@ impl BlockDownloader { BlockStatus::Bad => { return Err(BlockDownloaderImportError::Invalid); }, - BlockStatus::Unknown | BlockStatus::Pending => { + BlockStatus::Unknown => { headers.push(info); hashes.push(hash); } diff --git a/ethcore/sync/src/chain/handler.rs b/ethcore/sync/src/chain/handler.rs index c30c60a7cee..15f234fbbfe 100644 --- a/ethcore/sync/src/chain/handler.rs +++ b/ethcore/sync/src/chain/handler.rs @@ -261,7 +261,7 @@ impl SyncHandler { BlockStatus::Queued => { trace!(target: "sync", "New hash block already queued {:?}", hash); }, - BlockStatus::Unknown | BlockStatus::Pending => { + BlockStatus::Unknown => { new_hashes.push(hash.clone()); if number > max_height { trace!(target: "sync", "New unknown block hash {:?}", hash); diff --git a/ethcore/types/src/block_status.rs b/ethcore/types/src/block_status.rs index 5455f1d40f2..460fdc29772 100644 --- a/ethcore/types/src/block_status.rs +++ b/ethcore/types/src/block_status.rs @@ -23,8 +23,6 @@ pub enum BlockStatus { Queued, /// Known as bad. Bad, - /// Pending block. - Pending, /// Unknown. Unknown, } From f9294196762105d48f840a30597af974e6e6c9e2 Mon Sep 17 00:00:00 2001 From: gabriel klawitter Date: Fri, 31 Aug 2018 16:41:21 +0200 Subject: [PATCH 6/9] add tags for runner selection of build-linux jobs (#9451) --- .gitlab-ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 856cdafc926..51ecec41a97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -111,24 +111,32 @@ build-linux-ubuntu-i386: image: parity/rust-i686:gitlab-ci variables: CARGO_TARGET: i686-unknown-linux-gnu + tags: + - rust-i686 build-linux-ubuntu-arm64: <<: *build image: parity/rust-arm64:gitlab-ci variables: CARGO_TARGET: aarch64-unknown-linux-gnu + tags: + - rust-arm build-linux-ubuntu-armhf: <<: *build image: parity/rust-armv7:gitlab-ci variables: CARGO_TARGET: armv7-unknown-linux-gnueabihf + tags: + - rust-arm build-linux-android-armhf: <<: *build image: parity/rust-android:gitlab-ci variables: CARGO_TARGET: armv7-linux-androideabi + tags: + - rust-arm build-darwin-macos-x86_64: <<: *build From caca3a8048e61178d86a6c455e6193e3906abafc Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 31 Aug 2018 23:43:51 +0800 Subject: [PATCH 7/9] Add EIP-1014 transition config flag (#9268) * Add EIP-1014 transition config flag * Remove EIP-86 configs * Change CREATE2 opcode index to 0xf5 * Move salt to the last item in the stack * Change sendersaltandaddress scheme to comply with current EIP-1014 * Fix json configs * Fix create2 test * Fix deprecated comments --- ethcore/evm/src/instructions.rs | 2 +- ethcore/evm/src/interpreter/mod.rs | 4 ++-- ethcore/light/src/client/mod.rs | 7 ------- ethcore/res/ethereum/classic.json | 3 +-- ethcore/res/ethereum/easthub.json | 3 +-- ethcore/res/ethereum/eip150_test.json | 1 - ethcore/res/ethereum/eip161_test.json | 1 - ethcore/res/ethereum/ellaism.json | 1 - ethcore/res/ethereum/expanse.json | 1 - ethcore/res/ethereum/foundation.json | 1 - ethcore/res/ethereum/frontier_like_test.json | 1 - ethcore/res/ethereum/frontier_test.json | 1 - ethcore/res/ethereum/homestead_test.json | 1 - ethcore/res/ethereum/mcip3_test.json | 1 - ethcore/res/ethereum/mcip6_byz.json | 1 - ethcore/res/ethereum/morden.json | 3 +-- ethcore/res/ethereum/musicoin.json | 1 - ethcore/res/ethereum/olympic.json | 1 - ethcore/res/ethereum/ropsten.json | 1 - ethcore/res/ethereum/social.json | 3 +-- ethcore/res/instant_seal.json | 1 - ethcore/res/null.json | 1 - ethcore/src/client/client.rs | 4 ---- ethcore/src/client/evm_test_client.rs | 2 +- ethcore/src/client/test_client.rs | 2 -- ethcore/src/client/traits.rs | 3 --- ethcore/src/executive.rs | 11 ++++++----- ethcore/src/externalities.rs | 4 ++-- ethcore/src/spec/spec.rs | 14 +++++++------- ethcore/vm/src/ext.rs | 4 ++-- ethcore/vm/src/schedule.rs | 8 ++++---- json/src/spec/params.rs | 6 +++--- 32 files changed, 32 insertions(+), 66 deletions(-) diff --git a/ethcore/evm/src/instructions.rs b/ethcore/evm/src/instructions.rs index 67d390d4dff..e1d31b13a79 100644 --- a/ethcore/evm/src/instructions.rs +++ b/ethcore/evm/src/instructions.rs @@ -328,7 +328,7 @@ enum_with_from_u8! { #[doc = "like CALLCODE but keeps caller's value and sender"] DELEGATECALL = 0xf4, #[doc = "create a new account and set creation address to sha3(sender + sha3(init code)) % 2**160"] - CREATE2 = 0xfb, + CREATE2 = 0xf5, #[doc = "stop execution and revert state changes. Return output data."] REVERT = 0xfd, #[doc = "like CALL but it does not take value, nor modify the state"] diff --git a/ethcore/evm/src/interpreter/mod.rs b/ethcore/evm/src/interpreter/mod.rs index b535b0833bf..b20bab24d23 100644 --- a/ethcore/evm/src/interpreter/mod.rs +++ b/ethcore/evm/src/interpreter/mod.rs @@ -426,13 +426,13 @@ impl Interpreter { }, instructions::CREATE | instructions::CREATE2 => { let endowment = self.stack.pop_back(); + let init_off = self.stack.pop_back(); + let init_size = self.stack.pop_back(); let address_scheme = match instruction { instructions::CREATE => CreateContractAddress::FromSenderAndNonce, instructions::CREATE2 => CreateContractAddress::FromSenderSaltAndCodeHash(self.stack.pop_back().into()), _ => unreachable!("instruction can only be CREATE/CREATE2 checked above; qed"), }; - let init_off = self.stack.pop_back(); - let init_size = self.stack.pop_back(); let create_gas = provided.expect("`provided` comes through Self::exec from `Gasometer::get_gas_cost_mem`; `gas_gas_mem_cost` guarantees `Some` when instruction is `CALL`/`CALLCODE`/`DELEGATECALL`/`CREATE`; this is `CREATE`; qed"); diff --git a/ethcore/light/src/client/mod.rs b/ethcore/light/src/client/mod.rs index a1625b0e8f3..af557c02411 100644 --- a/ethcore/light/src/client/mod.rs +++ b/ethcore/light/src/client/mod.rs @@ -127,9 +127,6 @@ pub trait LightChainClient: Send + Sync { /// Get the `i`th CHT root. fn cht_root(&self, i: usize) -> Option; - /// Get the EIP-86 transition block number. - fn eip86_transition(&self) -> BlockNumber; - /// Get a report of import activity since the last call. fn report(&self) -> ClientReport; } @@ -585,10 +582,6 @@ impl LightChainClient for Client { Client::cht_root(self, i) } - fn eip86_transition(&self) -> BlockNumber { - self.engine().params().eip86_transition - } - fn report(&self) -> ClientReport { Client::report(self) } diff --git a/ethcore/res/ethereum/classic.json b/ethcore/res/ethereum/classic.json index 17cdfd300d1..b4d15c6186d 100644 --- a/ethcore/res/ethereum/classic.json +++ b/ethcore/res/ethereum/classic.json @@ -31,8 +31,7 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": 3000000, - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/ethereum/easthub.json b/ethcore/res/ethereum/easthub.json index e7e1a6e708e..bcc34a78273 100644 --- a/ethcore/res/ethereum/easthub.json +++ b/ethcore/res/ethereum/easthub.json @@ -27,8 +27,7 @@ "eip155Transition": "0x0", "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/ethereum/eip150_test.json b/ethcore/res/ethereum/eip150_test.json index baf9c1b7bfc..32f6401ff87 100644 --- a/ethcore/res/ethereum/eip150_test.json +++ b/ethcore/res/ethereum/eip150_test.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffffff", - "eip86Transition": "0x7fffffffffffffff", "eip155Transition": "0x7fffffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": "0x7fffffffffffffff" diff --git a/ethcore/res/ethereum/eip161_test.json b/ethcore/res/ethereum/eip161_test.json index 079ce7d55a2..72288115883 100644 --- a/ethcore/res/ethereum/eip161_test.json +++ b/ethcore/res/ethereum/eip161_test.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x0", "eip161dTransition": "0x0", "eip98Transition": "0x7fffffffffffffff", - "eip86Transition": "0x7fffffffffffffff", "eip155Transition": "0x7fffffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": "0x0" diff --git a/ethcore/res/ethereum/ellaism.json b/ethcore/res/ethereum/ellaism.json index 41f08e75572..7b3c8dd5ca2 100644 --- a/ethcore/res/ethereum/ellaism.json +++ b/ethcore/res/ethereum/ellaism.json @@ -29,7 +29,6 @@ "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": "0x0", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "wasmActivationTransition": 2000000, "eip140Transition": 2000000, "eip211Transition": 2000000, diff --git a/ethcore/res/ethereum/expanse.json b/ethcore/res/ethereum/expanse.json index 99a3ab5d780..76ce0b0c5e7 100644 --- a/ethcore/res/ethereum/expanse.json +++ b/ethcore/res/ethereum/expanse.json @@ -38,7 +38,6 @@ "eip161abcTransition": "0x927C0", "eip161dTransition": "0x927C0", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x927C0", "eip140Transition": "0xC3500", "eip211Transition": "0xC3500", diff --git a/ethcore/res/ethereum/foundation.json b/ethcore/res/ethereum/foundation.json index 3332ad6f971..59e8daa8cbd 100644 --- a/ethcore/res/ethereum/foundation.json +++ b/ethcore/res/ethereum/foundation.json @@ -150,7 +150,6 @@ "eip161dTransition": 2675000, "eip155Transition": 2675000, "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": 2675000, "eip140Transition": 4370000, diff --git a/ethcore/res/ethereum/frontier_like_test.json b/ethcore/res/ethereum/frontier_like_test.json index 7eac5acbd0a..3596217cb99 100644 --- a/ethcore/res/ethereum/frontier_like_test.json +++ b/ethcore/res/ethereum/frontier_like_test.json @@ -143,7 +143,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff" }, "genesis": { diff --git a/ethcore/res/ethereum/frontier_test.json b/ethcore/res/ethereum/frontier_test.json index 7e52f6ecf97..b01ae9ef010 100644 --- a/ethcore/res/ethereum/frontier_test.json +++ b/ethcore/res/ethereum/frontier_test.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff" }, "genesis": { diff --git a/ethcore/res/ethereum/homestead_test.json b/ethcore/res/ethereum/homestead_test.json index 817bf5ff57f..2dc521b9af6 100644 --- a/ethcore/res/ethereum/homestead_test.json +++ b/ethcore/res/ethereum/homestead_test.json @@ -19,7 +19,6 @@ "minGasLimit": "0x1388", "networkID" : "0x1", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff", "eip150Transition": "0x7fffffffffffffff", "eip160Transition": "0x7fffffffffffffff", diff --git a/ethcore/res/ethereum/mcip3_test.json b/ethcore/res/ethereum/mcip3_test.json index 391a625730a..d24164dcf0e 100644 --- a/ethcore/res/ethereum/mcip3_test.json +++ b/ethcore/res/ethereum/mcip3_test.json @@ -33,7 +33,6 @@ "eip160Transition":"0x7fffffffffffff", "eip161abcTransition":"0x7fffffffffffff", "eip161dTransition":"0x7fffffffffffff", - "eip86Transition":"0x7fffffffffffff", "eip98Transition":"0x7fffffffffffff", "eip140Transition":"0x7fffffffffffff", "eip155Transition":"0x7fffffffffffff", diff --git a/ethcore/res/ethereum/mcip6_byz.json b/ethcore/res/ethereum/mcip6_byz.json index a12df7c7115..45aef8b4b7c 100644 --- a/ethcore/res/ethereum/mcip6_byz.json +++ b/ethcore/res/ethereum/mcip6_byz.json @@ -33,7 +33,6 @@ "eip160Transition":"0x7fffffffffffff", "eip161abcTransition":"0x7fffffffffffff", "eip161dTransition":"0x7fffffffffffff", - "eip86Transition":"0x7fffffffffffff", "eip98Transition":"0x7fffffffffffff", "eip140Transition":"0x2a", "eip155Transition":"0x2a", diff --git a/ethcore/res/ethereum/morden.json b/ethcore/res/ethereum/morden.json index 3664c3e9c29..5617335554d 100644 --- a/ethcore/res/ethereum/morden.json +++ b/ethcore/res/ethereum/morden.json @@ -31,8 +31,7 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": 1915000, - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/ethereum/musicoin.json b/ethcore/res/ethereum/musicoin.json index f9c4e046d6d..fca6a8962f2 100644 --- a/ethcore/res/ethereum/musicoin.json +++ b/ethcore/res/ethereum/musicoin.json @@ -33,7 +33,6 @@ "eip160Transition":"0x21e88e", "eip161abcTransition":"0x21e88e", "eip161dTransition":"0x21e88e", - "eip86Transition":"0x7fffffffffffff", "eip98Transition":"0x7fffffffffffff", "eip140Transition":"0x21e88e", "eip155Transition":"0x21e88e", diff --git a/ethcore/res/ethereum/olympic.json b/ethcore/res/ethereum/olympic.json index 3ae9baddf2b..274e8c23a3a 100644 --- a/ethcore/res/ethereum/olympic.json +++ b/ethcore/res/ethereum/olympic.json @@ -23,7 +23,6 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip155Transition": "0x7fffffffffffffff" }, "genesis": { diff --git a/ethcore/res/ethereum/ropsten.json b/ethcore/res/ethereum/ropsten.json index bdf44fe83bc..fd24bbe6d54 100644 --- a/ethcore/res/ethereum/ropsten.json +++ b/ethcore/res/ethereum/ropsten.json @@ -32,7 +32,6 @@ "eip161dTransition": 10, "eip155Transition": 10, "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "eip140Transition": 1700000, "eip211Transition": 1700000, "eip214Transition": 1700000, diff --git a/ethcore/res/ethereum/social.json b/ethcore/res/ethereum/social.json index 2ad8fec8b06..bbc77359bd6 100644 --- a/ethcore/res/ethereum/social.json +++ b/ethcore/res/ethereum/social.json @@ -27,8 +27,7 @@ "eip161abcTransition": "0x7fffffffffffffff", "eip161dTransition": "0x7fffffffffffffff", "eip155Transition": "0x0", - "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff" + "eip98Transition": "0x7fffffffffffff" }, "genesis": { "seal": { diff --git a/ethcore/res/instant_seal.json b/ethcore/res/instant_seal.json index 36832e698e6..00534243774 100644 --- a/ethcore/res/instant_seal.json +++ b/ethcore/res/instant_seal.json @@ -16,7 +16,6 @@ "eip161dTransition": "0x0", "eip155Transition": "0x0", "eip98Transition": "0x7fffffffffffff", - "eip86Transition": "0x7fffffffffffff", "maxCodeSize": 24576, "maxCodeSizeTransition": "0x0", "eip140Transition": "0x0", diff --git a/ethcore/res/null.json b/ethcore/res/null.json index 345bb02b276..7fa41a8def5 100644 --- a/ethcore/res/null.json +++ b/ethcore/res/null.json @@ -11,7 +11,6 @@ "maximumExtraDataSize": "0x20", "minGasLimit": "0x1388", "networkID" : "0x2", - "eip86Transition": "0x7fffffffffffff", "eip140Transition": "0x0", "eip211Transition": "0x0", "eip214Transition": "0x0", diff --git a/ethcore/src/client/client.rs b/ethcore/src/client/client.rs index 573fd1f93ee..acfc5e7e0ec 100644 --- a/ethcore/src/client/client.rs +++ b/ethcore/src/client/client.rs @@ -2039,10 +2039,6 @@ impl BlockChainClient for Client { fn registrar_address(&self) -> Option
{ self.registrar_address.clone() } - - fn eip86_transition(&self) -> u64 { - self.engine().params().eip86_transition - } } impl IoClient for Client { diff --git a/ethcore/src/client/evm_test_client.rs b/ethcore/src/client/evm_test_client.rs index c54dc2a98e5..7767c99225b 100644 --- a/ethcore/src/client/evm_test_client.rs +++ b/ethcore/src/client/evm_test_client.rs @@ -205,7 +205,7 @@ impl<'a> EvmTestClient<'a> { ) -> TransactResult { let initial_gas = transaction.gas; // Verify transaction - let is_ok = transaction.verify_basic(true, None, env_info.number >= self.spec.engine.params().eip86_transition); + let is_ok = transaction.verify_basic(true, None, false); if let Err(error) = is_ok { return TransactResult::Err { state_root: *self.state.root(), diff --git a/ethcore/src/client/test_client.rs b/ethcore/src/client/test_client.rs index 9981f8d2cb7..642b567181d 100644 --- a/ethcore/src/client/test_client.rs +++ b/ethcore/src/client/test_client.rs @@ -860,8 +860,6 @@ impl BlockChainClient for TestBlockChainClient { } fn registrar_address(&self) -> Option
{ None } - - fn eip86_transition(&self) -> u64 { u64::max_value() } } impl IoClient for TestBlockChainClient { diff --git a/ethcore/src/client/traits.rs b/ethcore/src/client/traits.rs index 189ca67f48b..fb18ba2846d 100644 --- a/ethcore/src/client/traits.rs +++ b/ethcore/src/client/traits.rs @@ -378,9 +378,6 @@ pub trait BlockChainClient : Sync + Send + AccountData + BlockChain + CallContra /// Get the address of the registry itself. fn registrar_address(&self) -> Option
; - - /// Get the EIP-86 transition block number. - fn eip86_transition(&self) -> u64; } /// Provides `reopen_block` method diff --git a/ethcore/src/executive.rs b/ethcore/src/executive.rs index 5be54f72428..ff5c54eff11 100644 --- a/ethcore/src/executive.rs +++ b/ethcore/src/executive.rs @@ -63,10 +63,11 @@ pub fn contract_address(address_scheme: CreateContractAddress, sender: &Address, }, CreateContractAddress::FromSenderSaltAndCodeHash(salt) => { let code_hash = keccak(code); - let mut buffer = [0u8; 20 + 32 + 32]; - &mut buffer[0..20].copy_from_slice(&sender[..]); - &mut buffer[20..(20+32)].copy_from_slice(&salt[..]); - &mut buffer[(20+32)..].copy_from_slice(&code_hash[..]); + let mut buffer = [0u8; 1 + 20 + 32 + 32]; + buffer[0] = 0xff; + &mut buffer[1..(1+20)].copy_from_slice(&sender[..]); + &mut buffer[(1+20)..(1+20+32)].copy_from_slice(&salt[..]); + &mut buffer[(1+20+32)..].copy_from_slice(&code_hash[..]); (From::from(keccak(&buffer[..])), Some(code_hash)) }, CreateContractAddress::FromSenderAndCodeHash => { @@ -290,7 +291,7 @@ impl<'a, B: 'a + StateBackend> Executive<'a, B> { let mut substate = Substate::new(); // NOTE: there can be no invalid transactions from this point. - if !schedule.eip86 || !t.is_unsigned() { + if !schedule.keep_unsigned_nonce || !t.is_unsigned() { self.state.inc_nonce(&sender)?; } self.state.sub_balance(&sender, &U256::from(gas_cost), &mut substate.to_cleanup_mode(&schedule))?; diff --git a/ethcore/src/externalities.rs b/ethcore/src/externalities.rs index 74fedd0fdbb..dad3987b963 100644 --- a/ethcore/src/externalities.rs +++ b/ethcore/src/externalities.rs @@ -230,7 +230,7 @@ impl<'a, T: 'a, V: 'a, B: 'a> Ext for Externalities<'a, T, V, B> }; if !self.static_flag { - if !self.schedule.eip86 || params.sender != UNSIGNED_SENDER { + if !self.schedule.keep_unsigned_nonce || params.sender != UNSIGNED_SENDER { if let Err(e) = self.state.inc_nonce(&self.origin_info.address) { debug!(target: "ext", "Database corruption encountered: {:?}", e); return ContractCreateResult::Failed @@ -611,6 +611,6 @@ mod tests { } }; - assert_eq!(address, Address::from_str("b7c227636666831278bacdb8d7f52933b8698ab9").unwrap()); + assert_eq!(address, Address::from_str("e33c0c7f7df4809055c3eba6c09cfe4baf1bd9e0").unwrap()); } } diff --git a/ethcore/src/spec/spec.rs b/ethcore/src/spec/spec.rs index 72019811455..5131adaf7ba 100644 --- a/ethcore/src/spec/spec.rs +++ b/ethcore/src/spec/spec.rs @@ -96,8 +96,6 @@ pub struct CommonParams { pub validate_receipts_transition: BlockNumber, /// Validate transaction chain id. pub validate_chain_id_transition: BlockNumber, - /// Number of first block where EIP-86 (Metropolis) rules begin. - pub eip86_transition: BlockNumber, /// Number of first block where EIP-140 (Metropolis: REVERT opcode) rules begin. pub eip140_transition: BlockNumber, /// Number of first block where EIP-210 (Metropolis: BLOCKHASH changes) rules begin. @@ -117,6 +115,8 @@ pub struct CommonParams { pub eip145_transition: BlockNumber, /// Number of first block where EIP-1052 rules begin. pub eip1052_transition: BlockNumber, + /// Number of first block where EIP-1014 rules begin. + pub eip1014_transition: BlockNumber, /// Number of first block where dust cleanup rules (EIP-168 and EIP169) begin. pub dust_protection_transition: BlockNumber, /// Nonce cap increase per block. Nonce cap is only checked if dust protection is enabled. @@ -177,7 +177,7 @@ impl CommonParams { /// Apply common spec config parameters to the schedule. pub fn update_schedule(&self, block_number: u64, schedule: &mut ::vm::Schedule) { - schedule.have_create2 = block_number >= self.eip86_transition; + schedule.have_create2 = block_number >= self.eip1014_transition; schedule.have_revert = block_number >= self.eip140_transition; schedule.have_static_call = block_number >= self.eip214_transition; schedule.have_return_data = block_number >= self.eip211_transition; @@ -248,10 +248,6 @@ impl From for CommonParams { eip155_transition: p.eip155_transition.map_or(0, Into::into), validate_receipts_transition: p.validate_receipts_transition.map_or(0, Into::into), validate_chain_id_transition: p.validate_chain_id_transition.map_or(0, Into::into), - eip86_transition: p.eip86_transition.map_or_else( - BlockNumber::max_value, - Into::into, - ), eip140_transition: p.eip140_transition.map_or_else( BlockNumber::max_value, Into::into, @@ -290,6 +286,10 @@ impl From for CommonParams { BlockNumber::max_value, Into::into, ), + eip1014_transition: p.eip1014_transition.map_or_else( + BlockNumber::max_value, + Into::into, + ), dust_protection_transition: p.dust_protection_transition.map_or_else( BlockNumber::max_value, Into::into, diff --git a/ethcore/vm/src/ext.rs b/ethcore/vm/src/ext.rs index 1eb696f9709..d95573c3c75 100644 --- a/ethcore/vm/src/ext.rs +++ b/ethcore/vm/src/ext.rs @@ -53,9 +53,9 @@ pub enum MessageCallResult { /// Specifies how an address is calculated for a new contract. #[derive(Copy, Clone, PartialEq, Eq, Debug, Hash)] pub enum CreateContractAddress { - /// Address is calculated from sender and nonce. Pre EIP-86 (Metropolis) + /// Address is calculated from sender and nonce. pWASM `create` scheme. FromSenderAndNonce, - /// Address is calculated from sender, salt and code hash. EIP-86 CREATE2 scheme. + /// Address is calculated from sender, salt and code hash. pWASM `create2` scheme and EIP-1014 CREATE2 scheme. FromSenderSaltAndCodeHash(H256), /// Address is calculated from code hash and sender. Used by pwasm create ext. FromSenderAndCodeHash, diff --git a/ethcore/vm/src/schedule.rs b/ethcore/vm/src/schedule.rs index 2d263b63efd..b3d71457ebe 100644 --- a/ethcore/vm/src/schedule.rs +++ b/ethcore/vm/src/schedule.rs @@ -117,8 +117,8 @@ pub struct Schedule { pub have_bitwise_shifting: bool, /// Kill basic accounts below this balance if touched. pub kill_dust: CleanDustMode, - /// Enable EIP-86 rules - pub eip86: bool, + /// VM execution does not increase null signed address nonce if this field is true. + pub keep_unsigned_nonce: bool, /// Wasm extra schedule settings, if wasm activated pub wasm: Option, } @@ -250,7 +250,7 @@ impl Schedule { blockhash_gas: 20, have_static_call: false, kill_dust: CleanDustMode::Off, - eip86: false, + keep_unsigned_nonce: false, wasm: None, } } @@ -323,7 +323,7 @@ impl Schedule { blockhash_gas: 20, have_static_call: false, kill_dust: CleanDustMode::Off, - eip86: false, + keep_unsigned_nonce: false, wasm: None, } } diff --git a/json/src/spec/params.rs b/json/src/spec/params.rs index d3319f7c49e..4210bbe4586 100644 --- a/json/src/spec/params.rs +++ b/json/src/spec/params.rs @@ -79,9 +79,6 @@ pub struct Params { #[serde(rename="validateReceiptsTransition")] pub validate_receipts_transition: Option, /// See `CommonParams` docs. - #[serde(rename="eip86Transition")] - pub eip86_transition: Option, - /// See `CommonParams` docs. #[serde(rename="eip140Transition")] pub eip140_transition: Option, /// See `CommonParams` docs. @@ -112,6 +109,9 @@ pub struct Params { #[serde(rename="eip1052Transition")] pub eip1052_transition: Option, /// See `CommonParams` docs. + #[serde(rename="eip1014Transition")] + pub eip1014_transition: Option, + /// See `CommonParams` docs. #[serde(rename="dustProtectionTransition")] pub dust_protection_transition: Option, /// See `CommonParams` docs. From c0eb30b6049034fca9e752e3423e56d2979f0aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Mon, 3 Sep 2018 17:40:11 +0100 Subject: [PATCH 8/9] use kvdb-* and parity-snappy crates from crates.io (#9441) * use kvdb-* and parity-snappy crates from crates.io * update rocksdb-sys and snappy-sys --- Cargo.lock | 163 +++++++++++++++--------------- Cargo.toml | 4 +- ethcore/Cargo.toml | 8 +- ethcore/light/Cargo.toml | 4 +- ethcore/node_filter/Cargo.toml | 2 +- ethcore/service/Cargo.toml | 4 +- ethcore/src/lib.rs | 2 +- ethcore/sync/Cargo.toml | 4 +- local-store/Cargo.toml | 4 +- rpc/Cargo.toml | 2 +- secret_store/Cargo.toml | 4 +- util/journaldb/Cargo.toml | 4 +- util/migration-rocksdb/Cargo.toml | 4 +- util/network-devp2p/Cargo.toml | 2 +- util/network-devp2p/src/lib.rs | 2 +- util/network/Cargo.toml | 2 +- util/network/src/lib.rs | 2 +- 17 files changed, 111 insertions(+), 106 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 88cebe3a866..1251f72a78b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -526,9 +526,9 @@ dependencies = [ "journaldb 0.2.0", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", "keccak-hasher 0.1.0", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-rocksdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-rocksdb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -540,6 +540,7 @@ dependencies = [ "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)", "parity-crypto 0.1.0 (git+https://github.com/paritytech/parity-common)", "parity-machine 0.1.0", + "parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "patricia-trie 0.2.1 (git+https://github.com/paritytech/parity-common)", "patricia-trie-ethereum 0.1.0", @@ -549,7 +550,6 @@ dependencies = [ "rlp_compress 0.1.0", "rlp_derive 0.1.0", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "snappy 0.1.0 (git+https://github.com/paritytech/rust-snappy)", "stats 0.1.0", "stop-guard 0.1.0", "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -606,8 +606,8 @@ dependencies = [ "itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", "keccak-hasher 0.1.0", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "memory-cache 0.1.0", "memorydb 0.2.1 (git+https://github.com/paritytech/parity-common)", @@ -683,8 +683,8 @@ dependencies = [ "ipnetwork 0.12.7 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", "parity-crypto 0.1.0 (git+https://github.com/paritytech/parity-common)", + "parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.2.1 (git+https://github.com/paritytech/parity-common)", - "snappy 0.1.0 (git+https://github.com/paritytech/rust-snappy)", ] [[package]] @@ -708,6 +708,7 @@ dependencies = [ "mio 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)", "parity-crypto 0.1.0 (git+https://github.com/paritytech/parity-common)", + "parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "path 0.1.1 (git+https://github.com/paritytech/parity-common)", "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -718,7 +719,6 @@ dependencies = [ "serde_derive 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "snappy 0.1.0 (git+https://github.com/paritytech/rust-snappy)", "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -779,8 +779,8 @@ dependencies = [ "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.11.24 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-rocksdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-rocksdb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)", @@ -811,8 +811,8 @@ dependencies = [ "ethcore-private-tx 1.0.0", "ethcore-sync 1.12.0", "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-rocksdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-rocksdb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "stop-guard 0.1.0", "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -857,8 +857,8 @@ dependencies = [ "ipnetwork 0.12.7 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", "keccak-hasher 0.1.0", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "macros 0.1.0", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)", @@ -1361,8 +1361,8 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", "keccak-hasher 0.1.0", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "memorydb 0.2.1 (git+https://github.com/paritytech/parity-common)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)", @@ -1497,36 +1497,35 @@ dependencies = [ [[package]] name = "kvdb" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common#0045887fecd2fec39e56c962a0b27e2caf3b9474" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)", + "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kvdb-memorydb" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common#0045887fecd2fec39e56c962a0b27e2caf3b9474" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kvdb-rocksdb" -version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common#0045887fecd2fec39e56c962a0b27e2caf3b9474" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "fs-swap 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-rocksdb 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "regex 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rocksdb 0.4.5 (git+https://github.com/paritytech/rust-rocksdb)", ] [[package]] @@ -1699,8 +1698,8 @@ dependencies = [ name = "migration-rocksdb" version = "0.1.0" dependencies = [ - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-rocksdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-rocksdb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "macros 0.1.0", "tempdir 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1829,7 +1828,7 @@ dependencies = [ "ethcore-network 1.12.0", "ethcore-network-devp2p 1.12.0", "ethereum-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1957,6 +1956,11 @@ name = "parity-bytes" version = "0.1.0" source = "git+https://github.com/paritytech/parity-common#0045887fecd2fec39e56c962a0b27e2caf3b9474" +[[package]] +name = "parity-bytes" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "parity-clib" version = "1.12.0" @@ -2011,8 +2015,8 @@ dependencies = [ "journaldb 0.2.0", "jsonrpc-core 8.0.1 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-1.11)", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-rocksdb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-rocksdb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "mem 0.1.0", "migration-rocksdb 0.1.0", @@ -2099,8 +2103,8 @@ dependencies = [ "ethcore-io 1.12.0", "ethcore-transaction 0.1.0", "ethkey 0.3.0", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "rlp 0.2.1 (git+https://github.com/paritytech/parity-common)", "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2123,6 +2127,27 @@ dependencies = [ "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parity-rocksdb" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", + "local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-rocksdb-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parity-rocksdb-sys" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", + "local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-snappy-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parity-rpc" version = "1.12.0" @@ -2159,7 +2184,7 @@ dependencies = [ "jsonrpc-pubsub 8.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-1.11)", "jsonrpc-ws-server 8.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-1.11)", "keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)", + "kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "macros 0.1.0", "multihash 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2205,6 +2230,24 @@ dependencies = [ "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parity-snappy" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-snappy-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parity-snappy-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parity-tokio-ipc" version = "0.1.5" @@ -2711,27 +2754,6 @@ dependencies = [ "syn 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rocksdb" -version = "0.4.5" -source = "git+https://github.com/paritytech/rust-rocksdb#86460c5e42d63c861b66172657531531de7f00b5" -dependencies = [ - "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", - "local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rocksdb-sys 0.3.0 (git+https://github.com/paritytech/rust-rocksdb)", -] - -[[package]] -name = "rocksdb-sys" -version = "0.3.0" -source = "git+https://github.com/paritytech/rust-rocksdb#86460c5e42d63c861b66172657531531de7f00b5" -dependencies = [ - "cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", - "local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "snappy-sys 0.1.0 (git+https://github.com/paritytech/rust-snappy)", -] - [[package]] name = "rpassword" version = "1.0.2" @@ -2948,24 +2970,6 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "snappy" -version = "0.1.0" -source = "git+https://github.com/paritytech/rust-snappy#798408ffef8f86dd51481673aca10f5348d7491b" -dependencies = [ - "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", - "snappy-sys 0.1.0 (git+https://github.com/paritytech/rust-snappy)", -] - -[[package]] -name = "snappy-sys" -version = "0.1.0" -source = "git+https://github.com/paritytech/rust-snappy#798408ffef8f86dd51481673aca10f5348d7491b" -dependencies = [ - "cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "socket2" version = "0.3.6" @@ -3784,9 +3788,9 @@ dependencies = [ "checksum jsonrpc-ws-server 8.0.0 (git+https://github.com/paritytech/jsonrpc.git?branch=parity-1.11)" = "" "checksum keccak-hash 0.1.2 (git+https://github.com/paritytech/parity-common)" = "" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common)" = "" -"checksum kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common)" = "" -"checksum kvdb-rocksdb 0.1.0 (git+https://github.com/paritytech/parity-common)" = "" +"checksum kvdb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "72ae89206cea31c32014b39d5a454b96135894221610dbfd19cf4d2d044fa546" +"checksum kvdb-memorydb 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "45bcdf5eb083602cff61a6f8438dce2a7900d714e893fc48781c39fb119d37aa" +"checksum kvdb-rocksdb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e731661c9e7409857d73ac574da418cef6f9605e967bed0aeb93182ef8d4b1c7" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c8f31047daa365f19be14b47c29df4f7c3b581832407daabe6ae77397619237d" @@ -3834,7 +3838,12 @@ dependencies = [ "checksum ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common)" = "" +"checksum parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa5168b4cf41f3835e4bc6ffb32f51bc9365dc50cb351904595b3931d917fd0c" "checksum parity-crypto 0.1.0 (git+https://github.com/paritytech/parity-common)" = "" +"checksum parity-rocksdb 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cd55d2d6d6000ec99f021cf52c9acc7d2a402e14f95ced4c5de230696fabe00b" +"checksum parity-rocksdb-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ae07d4bfb2759541957c19f471996b807fc09ef3a5bdce14409b57f038de49f" +"checksum parity-snappy 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2c5f9d149b13134b8b354d93a92830efcbee6fe5b73a2e6e540fe70d4dd8a63" +"checksum parity-snappy-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c2086caac40c79289cb70d7e1c64f5888e1c53f5d38399d3e95101493739f423" "checksum parity-tokio-ipc 0.1.5 (git+https://github.com/nikvolf/parity-tokio-ipc)" = "" "checksum parity-wasm 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1c91199d14bd5b78ecade323d4a891d094799749c1b9e82d9c590c2e2849a40" "checksum parity-wordlist 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d0dec124478845b142f68b446cbee953d14d4b41f1bc0425024417720dce693" @@ -3876,8 +3885,6 @@ dependencies = [ "checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a" "checksum ring 0.12.1 (git+https://github.com/paritytech/ring)" = "" "checksum rlp 0.2.1 (git+https://github.com/paritytech/parity-common)" = "" -"checksum rocksdb 0.4.5 (git+https://github.com/paritytech/rust-rocksdb)" = "" -"checksum rocksdb-sys 0.3.0 (git+https://github.com/paritytech/rust-rocksdb)" = "" "checksum rpassword 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b273c91bd242ca03ad6d71c143b6f17a48790e61f21a6c78568fa2b6774a24a4" "checksum rprompt 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1601f32bc5858aae3cbfa1c645c96c4d820cc5c16be0194f089560c00b6eb625" "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" @@ -3907,8 +3914,6 @@ dependencies = [ "checksum slab 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdeff4cd9ecff59ec7e3744cbca73dfe5ac35c2aedb2cfba8a1c715a18912e9d" "checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013" "checksum smallvec 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f90c5e5fe535e48807ab94fc611d323935f39d4660c52b26b96446a7b33aef10" -"checksum snappy 0.1.0 (git+https://github.com/paritytech/rust-snappy)" = "" -"checksum snappy-sys 0.1.0 (git+https://github.com/paritytech/rust-snappy)" = "" "checksum socket2 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "06dc9f86ee48652b7c80f3d254e3b9accb67a928c562c64d10d7b016d3d98dab" "checksum stable_deref_trait 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15132e0e364248108c5e2c02e3ab539be8d6f5d52a01ca9bbf27ed657316f02b" "checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694" diff --git a/Cargo.toml b/Cargo.toml index b4355a1fd54..d741a208024 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,8 +62,8 @@ dir = { path = "util/dir" } panic_hook = { path = "util/panic_hook" } keccak-hash = { git = "https://github.com/paritytech/parity-common" } migration-rocksdb = { path = "util/migration-rocksdb" } -kvdb = { git = "https://github.com/paritytech/parity-common" } -kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" +kvdb-rocksdb = "0.1.3" journaldb = { path = "util/journaldb" } mem = { path = "util/mem" } diff --git a/ethcore/Cargo.toml b/ethcore/Cargo.toml index 2c57e8b60a1..afb6272c297 100644 --- a/ethcore/Cargo.toml +++ b/ethcore/Cargo.toml @@ -50,9 +50,9 @@ rand = "0.4" rlp = { git = "https://github.com/paritytech/parity-common" } rlp_compress = { path = "../util/rlp_compress" } rlp_derive = { path = "../util/rlp_derive" } -kvdb = { git = "https://github.com/paritytech/parity-common" } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } -snappy = { git = "https://github.com/paritytech/rust-snappy" } +kvdb = "0.1.0" +kvdb-memorydb = "0.1.0" +parity-snappy = "0.1.0" stop-guard = { path = "../util/stop-guard" } macros = { path = "../util/macros" } rustc-hex = "1.0" @@ -66,7 +66,7 @@ triehash-ethereum = { version = "0.2", path = "../util/triehash-ethereum" } unexpected = { path = "../util/unexpected" } journaldb = { path = "../util/journaldb" } keccak-hasher = { path = "../util/keccak-hasher" } -kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common" } +kvdb-rocksdb = "0.1.3" tempdir = {version="0.3", optional = true} [target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows", target_os = "android"))'.dependencies] diff --git a/ethcore/light/Cargo.toml b/ethcore/light/Cargo.toml index 9224f07e95c..838b504bc2d 100644 --- a/ethcore/light/Cargo.toml +++ b/ethcore/light/Cargo.toml @@ -35,13 +35,13 @@ stats = { path = "../../util/stats" } keccak-hash = { git = "https://github.com/paritytech/parity-common" } keccak-hasher = { path = "../../util/keccak-hasher" } triehash-ethereum = { version = "0.2", path = "../../util/triehash-ethereum" } -kvdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" memory-cache = { path = "../../util/memory_cache" } error-chain = { version = "0.12", default-features = false } [dev-dependencies] ethcore = { path = "..", features = ["test-helpers"] } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } +kvdb-memorydb = "0.1.0" tempdir = "0.3" [features] diff --git a/ethcore/node_filter/Cargo.toml b/ethcore/node_filter/Cargo.toml index adba8ee09ef..7eb7cc2eb6b 100644 --- a/ethcore/node_filter/Cargo.toml +++ b/ethcore/node_filter/Cargo.toml @@ -20,6 +20,6 @@ lru-cache = "0.1" [dev-dependencies] ethcore = { path = "..", features = ["test-helpers"] } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } +kvdb-memorydb = "0.1.0" ethcore-io = { path = "../../util/io" } tempdir = "0.3" diff --git a/ethcore/service/Cargo.toml b/ethcore/service/Cargo.toml index ce445f6d9f8..fd6c9777ec9 100644 --- a/ethcore/service/Cargo.toml +++ b/ethcore/service/Cargo.toml @@ -11,7 +11,7 @@ ethcore-io = { path = "../../util/io" } ethcore-private-tx = { path = "../private-tx" } ethcore-sync = { path = "../sync" } ethereum-types = "0.3" -kvdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" log = "0.4" stop-guard = { path = "../../util/stop-guard" } trace-time = { path = "../../util/trace-time" } @@ -19,4 +19,4 @@ trace-time = { path = "../../util/trace-time" } [dev-dependencies] ethcore = { path = "..", features = ["test-helpers"] } tempdir = "0.3" -kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common" } +kvdb-rocksdb = "0.1.3" diff --git a/ethcore/src/lib.rs b/ethcore/src/lib.rs index db0aee3bcd9..7a746b74b44 100644 --- a/ethcore/src/lib.rs +++ b/ethcore/src/lib.rs @@ -100,7 +100,7 @@ extern crate patricia_trie_ethereum as ethtrie; extern crate triehash_ethereum as triehash; extern crate ansi_term; extern crate unexpected; -extern crate snappy; +extern crate parity_snappy as snappy; extern crate ethabi; extern crate rustc_hex; extern crate stats; diff --git a/ethcore/sync/Cargo.toml b/ethcore/sync/Cargo.toml index 7935eeca4b2..3168c98b83d 100644 --- a/ethcore/sync/Cargo.toml +++ b/ethcore/sync/Cargo.toml @@ -24,7 +24,7 @@ rustc-hex = "1.0" keccak-hash = { git = "https://github.com/paritytech/parity-common" } keccak-hasher = { path = "../../util/keccak-hasher" } triehash-ethereum = {version = "0.2", path = "../../util/triehash-ethereum" } -kvdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" macros = { path = "../../util/macros" } log = "0.4" env_logger = "0.5" @@ -39,6 +39,6 @@ ipnetwork = "0.12.6" [dev-dependencies] ethcore-io = { path = "../../util/io", features = ["mio"] } ethkey = { path = "../../ethkey" } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } +kvdb-memorydb = "0.1.0" ethcore-private-tx = { path = "../private-tx" } ethcore = { path = "..", features = ["test-helpers"] } diff --git a/local-store/Cargo.toml b/local-store/Cargo.toml index 9197aa4e7e2..905ecb9c1a4 100644 --- a/local-store/Cargo.toml +++ b/local-store/Cargo.toml @@ -8,7 +8,7 @@ authors = ["Parity Technologies "] ethcore = { path = "../ethcore" } ethcore-io = { path = "../util/io" } ethcore-transaction = { path = "../ethcore/transaction" } -kvdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" log = "0.4" rlp = { git = "https://github.com/paritytech/parity-common" } serde = "1.0" @@ -18,4 +18,4 @@ serde_json = "1.0" [dev-dependencies] ethcore = { path = "../ethcore", features = ["test-helpers"] } ethkey = { path = "../ethkey" } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } +kvdb-memorydb = "0.1.0" diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 3122c5e30b3..f0faece88ed 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -73,7 +73,7 @@ fake-hardware-wallet = { path = "../util/fake-hardware-wallet" } ethcore = { path = "../ethcore", features = ["test-helpers"] } ethcore-network = { path = "../util/network" } fake-fetch = { path = "../util/fake-fetch" } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } +kvdb-memorydb = "0.1.0" macros = { path = "../util/macros" } pretty_assertions = "0.1" transaction-pool = { path = "../transaction-pool" } diff --git a/secret_store/Cargo.toml b/secret_store/Cargo.toml index 0c8c277c586..b35b20904ed 100644 --- a/secret_store/Cargo.toml +++ b/secret_store/Cargo.toml @@ -30,7 +30,7 @@ ethcore-logger = { path = "../logger" } ethcore-sync = { path = "../ethcore/sync" } ethcore-transaction = { path = "../ethcore/transaction" } ethereum-types = "0.3" -kvdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" keccak-hash = { git = "https://github.com/paritytech/parity-common" } ethkey = { path = "../ethkey" } lazy_static = "1.0" @@ -41,4 +41,4 @@ ethabi-contract = "5.0" [dev-dependencies] ethcore = { path = "../ethcore", features = ["test-helpers"] } tempdir = "0.3" -kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common" } +kvdb-rocksdb = "0.1.3" diff --git a/util/journaldb/Cargo.toml b/util/journaldb/Cargo.toml index ce495e6dc5e..98cfddb10e7 100644 --- a/util/journaldb/Cargo.toml +++ b/util/journaldb/Cargo.toml @@ -11,7 +11,7 @@ ethereum-types = "0.3" hashdb = { git = "https://github.com/paritytech/parity-common" } heapsize = "0.4" keccak-hasher = { path = "../keccak-hasher" } -kvdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" log = "0.4" memorydb = { git = "https://github.com/paritytech/parity-common" } parking_lot = "0.6" @@ -21,4 +21,4 @@ rlp = { git = "https://github.com/paritytech/parity-common" } [dev-dependencies] ethcore-logger = { path = "../../logger" } keccak-hash = { git = "https://github.com/paritytech/parity-common" } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common" } +kvdb-memorydb = "0.1.0" diff --git a/util/migration-rocksdb/Cargo.toml b/util/migration-rocksdb/Cargo.toml index 5d4c450a66f..a4051eb79eb 100644 --- a/util/migration-rocksdb/Cargo.toml +++ b/util/migration-rocksdb/Cargo.toml @@ -6,8 +6,8 @@ authors = ["Parity Technologies "] [dependencies] log = "0.4" macros = { path = "../macros" } -kvdb = { git = "https://github.com/paritytech/parity-common" } -kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common" } +kvdb = "0.1.0" +kvdb-rocksdb = "0.1.3" [dev-dependencies] tempdir = "0.3" diff --git a/util/network-devp2p/Cargo.toml b/util/network-devp2p/Cargo.toml index e7e4a3ae101..c7360251131 100644 --- a/util/network-devp2p/Cargo.toml +++ b/util/network-devp2p/Cargo.toml @@ -30,7 +30,7 @@ rlp = { git = "https://github.com/paritytech/parity-common" } path = { git = "https://github.com/paritytech/parity-common" } ipnetwork = "0.12.6" keccak-hash = { git = "https://github.com/paritytech/parity-common" } -snappy = { git = "https://github.com/paritytech/rust-snappy" } +parity-snappy = "0.1.0" serde = "1.0" serde_json = "1.0" serde_derive = "1.0" diff --git a/util/network-devp2p/src/lib.rs b/util/network-devp2p/src/lib.rs index 0df17c070af..7956af82ed7 100644 --- a/util/network-devp2p/src/lib.rs +++ b/util/network-devp2p/src/lib.rs @@ -84,7 +84,7 @@ extern crate ipnetwork; extern crate keccak_hash as hash; extern crate serde; extern crate serde_json; -extern crate snappy; +extern crate parity_snappy as snappy; #[macro_use] extern crate error_chain; diff --git a/util/network/Cargo.toml b/util/network/Cargo.toml index 53eb58a37ad..dc8b8febb40 100644 --- a/util/network/Cargo.toml +++ b/util/network/Cargo.toml @@ -15,7 +15,7 @@ ethkey = { path = "../../ethkey" } ipnetwork = "0.12.6" rlp = { git = "https://github.com/paritytech/parity-common" } libc = "0.2" -snappy = { git = "https://github.com/paritytech/rust-snappy" } +parity-snappy = "0.1.0" [dev-dependencies] diff --git a/util/network/src/lib.rs b/util/network/src/lib.rs index 88bd4e6869a..f29df4e5bfc 100644 --- a/util/network/src/lib.rs +++ b/util/network/src/lib.rs @@ -22,7 +22,7 @@ extern crate ethereum_types; extern crate ethkey; extern crate rlp; extern crate ipnetwork; -extern crate snappy; +extern crate parity_snappy as snappy; extern crate libc; #[cfg(test)] #[macro_use] From 1f2426226b99a318da03c2bc261ac7d91e362d0c Mon Sep 17 00:00:00 2001 From: Andronik Ordian Date: Tue, 4 Sep 2018 09:28:49 +0300 Subject: [PATCH 9/9] evmbin: escape newlines in json errors (#9458) --- evmbin/src/display/json.rs | 2 +- evmbin/src/display/mod.rs | 4 ++++ evmbin/src/display/std_json.rs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/evmbin/src/display/json.rs b/evmbin/src/display/json.rs index 613be1d2243..ea27c285482 100644 --- a/evmbin/src/display/json.rs +++ b/evmbin/src/display/json.rs @@ -95,7 +95,7 @@ impl vm::Informant for Informant { println!( "{{\"error\":\"{error}\",\"gasUsed\":\"{gas:x}\",\"time\":{time}}}", - error = failure.error, + error = display::escape_newlines(&failure.error), gas = failure.gas_used, time = display::as_micros(&failure.time), ) diff --git a/evmbin/src/display/mod.rs b/evmbin/src/display/mod.rs index a8eb20d9e6c..092316c03bf 100644 --- a/evmbin/src/display/mod.rs +++ b/evmbin/src/display/mod.rs @@ -31,3 +31,7 @@ pub fn format_time(time: &Duration) -> String { pub fn as_micros(time: &Duration) -> u64 { time.as_secs() * 1_000_000 + time.subsec_nanos() as u64 / 1_000 } + +fn escape_newlines(s: D) -> String { + format!("{}", s).replace("\r\n", "\n").replace('\n', "\\n") +} diff --git a/evmbin/src/display/std_json.rs b/evmbin/src/display/std_json.rs index 6bbace4a6cd..57b14128bcb 100644 --- a/evmbin/src/display/std_json.rs +++ b/evmbin/src/display/std_json.rs @@ -129,7 +129,7 @@ impl vm::Informant for Informant { writeln!( &mut out_sink, "{{\"error\":\"{error}\",\"gasUsed\":\"0x{gas:x}\",\"time\":{time}}}", - error = failure.error, + error = display::escape_newlines(&failure.error), gas = failure.gas_used, time = display::as_micros(&failure.time), ).expect("The sink must be writeable.");