Compare commits

...

5557 Commits

Author SHA1 Message Date
arkpar
c39622952d js-precompiled 20170608-105446 2017-06-08 13:52:25 +02:00
Arkadiy Paronyan
b8b5a23b12 Backporting to beta (#5791)
* v1.6.8

* Update expanse json with fork at block 600000 (#5351)

* Update expanse json with fork at block 600000

* update exp chainID to 2

* Bumped mio

* Fixed default UI port for mac installer (#5782)

* Blacklist empty phrase account.

* Update Cid/multihash/ring/tinykeccak (#5785)

* Updating ring,multihash,tiny-keccak

* Updating CID in ipfs.

* Disable compression for RLP strings
2017-06-07 22:09:16 +02:00
Jaco Greeff
fb82c6c415 [beta] Backports (#5789)
* Merge #5716

* Merge #5784

* Merge #5698
2017-06-07 22:08:25 +02:00
Denis S. Soldatov aka General-Beck
4a9bd0af64 fix snap build paths
[ci skip]
2017-06-07 21:51:06 +03:00
Denis S. Soldatov aka General-Beck
d20475d9ad small fix snap build
[ci skip]
2017-06-07 20:14:01 +03:00
Denis S. Soldatov aka General-Beck
f1cd03bf1f add snap package 2017-06-07 19:41:45 +03:00
Arkadiy Paronyan
e128418147 Backporting to beta (#5657)
* Add CHANGELOG.md (#5513)

* Add CHANGELOG.md

* Add some more verbose CHANGELOG information for beta and stable releases

* Add dates to releases

* reorg into blocks before minimum history (#5558)

* v1.6.7
2017-05-18 16:10:34 +02:00
GitLab Build Bot
314e2764ae [ci skip] js-precompiled 20170518-135504 2017-05-18 13:58:06 +00:00
Tomasz Drwięga
1aea9caf6d [beta] Cancel Transaction (#5656)
* option to disable persistent txqueue (#5544)

* option to disable persistent txqueue

* New option goes with kin

* Remove transaction RPC (#4949)

* Cancel tx JS (#4958)

* Remove transaction RPC

* Bumping multihash and libc

* Updating nanomsg

* bump nanomsg

* cancel tx

* cancel-tx-js

* cancel-tx-js

* cancel-tx-js

* cancel-tx-hs

* cancel-tx-js

* cancel-tx-js

* cancel-tx-js

* small fixes

* edit & time till submit

* edit & time till submit

* updates

* updates

* udpates

* udpates

* grumbles

* step 1

* Wonderful updates

* ready

* small refact

* small refact

* grumbles 1

* ffx2

* good ol' fashioned updates

* latest and greatest

* removeHash

* removeHash

* spec

* fix 1

* fix 1

* fix 2

* fix 2

* ff

* ff

* ff

* updates

* Updating documentation for RPCs (#5392)

* Removing minBlocks occurrencies

* Docs for new RPCs.

* Fixing linting issues, updating *withToken documentatiojn.

* Adding missing RPCs. Fixing tests.

* Fixing lint issues.
2017-05-18 15:19:29 +02:00
Tomasz Drwięga
8dfc10ede9 [beta] Fix ethsign (#5600)
* Fix ethsign in beta.

* Fix tests.

* Fix compilation.

* CI fix

remove kcov
2017-05-18 13:50:17 +01:00
GitLab Build Bot
4d9f13196f [ci skip] js-precompiled 20170518-105555 2017-05-18 10:59:00 +00:00
Jaco Greeff
4b857bf4b0 [beta] Backport #5645 (Recover button) (#5654)
* Backport #5645

* Update property
2017-05-18 12:44:40 +02:00
keorn
0a5c6a9ac7 add monotonic transition to kovan (#5587) (#5630) 2017-05-16 12:06:12 +02:00
Denis S. Soldatov aka General-Beck
6cce5c8c9e fix snap build 2017-05-03 18:13:15 +03:00
Denis S. Soldatov aka General-Beck
ab065ecbd0 backports from master
add docker build for hub.docker.com/r/parity
add snap build
2017-05-03 18:04:35 +03:00
GitLab Build Bot
36015c960a [ci skip] js-precompiled 20170418-102604 2017-04-18 10:28:44 +00:00
Afri
8c4938d9c6 [beta] registry backports (#5445)
* Fixes to the Registry dapp (#4984)

* Don't show fee warning when there is none

* Hide Warning in Registry onclick

* Use the default account in the Registry

* Fix Etherscan links in Regsitry

* Fix references to api outside of `parity.js` (#4981)
2017-04-18 12:18:30 +02:00
Denis S. Soldatov aka General-Beck
2f3cddeea8 update URLs for docker 2017-04-11 18:15:29 +03:00
GitLab Build Bot
8c6e3f314a js-precompiled 20170411-114812 2017-04-11 14:28:38 +02:00
Arkadiy Paronyan
96cbfba916 Fixed repo URLs 2017-04-11 13:37:33 +02:00
Tomasz Drwięga
18b8d6aca6 Fix signerstore 2017-04-11 10:29:19 +02:00
Arkadiy Paronyan
6a44a0cf95 [beta] Backports (#5434)
* v1.6.6

* Strict validation transitions (#4988)

* ability to make validation stricter

* fix consensus

* remove logger

* Fix eth_sign showing as wallet account (#5309)

* defaultProps for account

* Pass signing account

* Update tests for Connect(...)

* Add new seed nodes (#5345)

* Kovan warp sync fixed
2017-04-10 13:35:57 +02:00
Denis S. Soldatov aka General-Beck
b7860e4a3f Update .gitlab-ci.yml
remove EXPERIMENTAL from darwin installer
2017-04-04 21:45:11 +03:00
keorn
4a910a762d [Beta] Aura eip155 validation transition (#5363)
* add eip155 validation

* add transition block
2017-04-01 13:21:29 +02:00
keorn
1626c78ae2 add eip155 validation (#5350) 2017-03-30 20:45:22 +02:00
Nikolay Volf
7f4e700013 Backport syntex update (#5316) 2017-03-29 10:43:13 +02:00
GitLab Build Bot
987390fb7d js-precompiled 20170328-003032 2017-03-28 09:30:58 +02:00
Arkadiy Paronyan
797f23f30b [beta] Backports (#5299)
* Fix FireFox overflows (#5000)

* Max width for container

* Set min-width

* Switching ValidatorSet (#4961)

* add multi validator set

* nicer comment

* validate in constructor

* reporting

* Avoid clogging up tmp when updater dir has bad permissions. (#5024)

* force earliest era set in snapshot restore (#5021)

* v1.6.5

* Fine grained snapshot chunking

* Ropsten revival
2017-03-28 01:45:56 +02:00
keorn
c1da49bbc4 Fix validator contract syncing (#4789) (#5011)
* make validator set aware of various states

* fix updater build

* clean up contract call

* failing sync test

* adjust tests

* nicer indent [ci skip]

* revert bound divisor
2017-03-23 20:39:51 +01:00
Arkadiy Paronyan
1164193019 Backporting to beta (#4995)
* v1.6.4

* ensure sealing work enabled if notifier registed

* fix condition check

* Always send full chunks (#4960)

* Bump nanomsg (#4965)

* Renaming evm binary to avoid conflicts. (#4899)
2017-03-22 13:46:32 +01:00
Jaco Greeff
1c217cbf2b [beta] UI backports (#4993)
* [ci skip] js-precompiled 20170314-121823

* Attach hardware wallets already in addressbook (#4912)

* Attach hardware wallets already in addressbook

* Only set values changed

* Add Vaults logic to First Run (#4894) (#4914)

* Add ability to configure Secure API (for #4885) (#4922)

* Add z-index to small modals as well (#4923)

* eth_sign where account === undefined (#4964)

* Update for case where account === undefined

* Update tests to not mask account === undefined

* default account = {} where undefined (thanks @tomusdrw)

* Fix Password Dialog forms style issue (#4968)
2017-03-22 12:45:55 +01:00
Tomasz Drwięga
d24f71f150 Bump multihash, libc and nanomsg (#4957) 2017-03-18 22:36:03 +01:00
Denis S. Soldatov aka General-Beck
4c66a021ec fix docker-build
[ci skip]
2017-03-14 20:22:36 +03:00
GitLab Build Bot
ccc57328e2 js-precompiled 20170314-121823 2017-03-14 13:32:08 +01:00
arkpar
77240b6e5a Merge branch 'beta' of github.com:ethcore/parity into beta 2017-03-14 13:06:37 +01:00
Jaco Greeff
2e428ddd58 [beta] Safari fixes (#4902)
* Add intitial max-width to sections

* Move background z-index to -1
2017-03-14 13:04:08 +01:00
arkpar
cd4081c149 Additional kovan params 2017-03-14 12:04:18 +01:00
arkpar
428342d69d v1.6.3 2017-03-13 17:54:27 +01:00
arkpar
8ee9b262f9 Recalculate receipt roots in close_and_lock 2017-03-13 17:51:34 +01:00
arkpar
e2bc251ff4 v 1.6.2 2017-03-13 11:57:42 +01:00
Gav Wood
d15372c8a6 Fix auto-updater. (#4868) 2017-03-11 14:46:17 +01:00
arkpar
bcf2245110 Removed libudev-dev dep 2017-03-10 18:18:09 +01:00
Arkadiy Paronyan
36f74fdf0d Supress USB error message (#4839) 2017-03-10 15:00:02 +01:00
GitLab Build Bot
45402544d3 [ci skip] js-precompiled 20170310-131332 2017-03-10 13:19:56 +00:00
Jaco Greeff
ab236690df [beta] UI backports (#4855)
* Added React Hot Reload to dapps + TokenDeplpoy fix (#4846)

* Fix method decoding (#4845)

* Fix contract deployment method decoding in Signer

* Linting

* Fix TxViewer when no `to` (contract deployment) (#4847)

* Added React Hot Reload to dapps + TokenDeplpoy fix

* Fixes to the LocalTx dapp

* Don't send the nonce for mined transactions

* Don't encode empty to values for options

* Pull steps from actual available steps (#4848)

* Wait for the value to have changed in the input (#4844)

* Backport Regsirty changes from #4589

* Test fixes for #4589
2017-03-10 14:03:10 +01:00
keorn
34e81101d7 [beta] Simple score (#4852)
* simple score

* ignore part of a test
2017-03-10 13:38:16 +01:00
GitLab Build Bot
07d4b9bbc9 [ci skip] js-precompiled 20170310-094757 2017-03-10 09:57:26 +00:00
Arkadiy Paronyan
d25a20b274 Backporting to beta (#4840)
* Fixes to the Registry dapp (#4838)

* Fix wrong ABI methods

* Fix

* v1.6.1
2017-03-10 10:08:04 +01:00
arkpar
70d17ce1d8 Reverted build order changes 2017-03-08 23:33:59 +01:00
GitLab Build Bot
3b14bcf29a js-precompiled 20170308-175401 2017-03-08 20:02:33 +01:00
Jaco Greeff
4fc69e11d6 Show token icons on list summary pages (#4826) (#4827)
* Adjust balance overlay margins (no jumps)

* Img only balances, small verifications

* Invalid tests removed

* Always wrap display (Thanks @ngotchac)

* Update tests to reflect reality
2017-03-08 18:35:00 +01:00
GitLab Build Bot
8e4df824b0 [ci skip] js-precompiled 20170308-160101 2017-03-08 16:08:54 +00:00
arkpar
e1f2e840cb Force js update 2017-03-08 16:28:56 +01:00
keorn
2a36a89c36 [beta] Engine backports (#4806)
* calibrate before rejection

* change flag name

* add eip155

* make network_id default
2017-03-08 15:26:26 +01:00
Arkadiy Paronyan
b643f4011d Better windows icon (#4804) 2017-03-08 14:53:25 +01:00
Jaco Greeff
814304bdd7 Better logic for contract deployments (#4821) (#4823) 2017-03-08 14:44:21 +01:00
GitLab Build Bot
f90607302d [ci skip] js-precompiled 20170308-122022 2017-03-08 12:25:16 +00:00
Jaco Greeff
af826f877e [beta] UI backports (#4818)
* Update the key (#4817)

* Adjust selection colours/display (#4811)

* Adjust selection colours to match with mui

* allow -> disable (simplify selections)

* Only use top-border

* Overlay selection line

* Slightly more muted unselected

* Restore address icon

* Fix default values for contract queries
2017-03-08 12:50:44 +01:00
GitLab Build Bot
f9a0aa0022 [ci skip] js-precompiled 20170308-095118 2017-03-08 09:58:51 +00:00
Jaco Greeff
c4196a5de3 [beta] UI backports (#4809)
* Update Wallet to new Wallet Code (#4805)

* Update Wallet Version

* Update Wallet Library

* Update Wallets Bytecodes

* Typo

* Separate Deploy in Contract API

* Use the new Wallet ABI // Update wallet code

* WIP .// Deploy from Wallet

* Update Wallet contract

* Contract Deployment for Wallet

* Working deployments for Single Owned Wallet contracts

* Linting

* Create a Wallet from a Wallet

* Linting

* Fix Signer transactions // Add Gas Used for transactions

* Deploy wallet contract fix

* Fix too high gas estimate for Wallet Contract Deploys

* Final piece ; deploying from Wallet owned by wallet

* Update Wallet Code

* Updated the Wallet Codes

* Fixing Wallet Deployments

* Add Support for older wallets

* Linting

* SMS Faucet (#4774)

* Faucet

* Remove flakey button-index testing

* Only display faucet when sms verified (mainnet)

* simplify availability checks

* WIP

* Resuest from verified -> verified

* Update endpoint, display response text

* Error icon on errors

* Parse hash text response

* Use /api/:address endpoint

* hash -> data

* Adjust sms-certified message

* Fix SectionList hovering issue (#4749)

* Fix SectionList Items hover when <3 items

* Even easier...

* lint (new)
2017-03-08 10:43:59 +01:00
arkpar
3b56e8eded Switch js branch to beta 2017-03-07 17:50:12 +01:00
Tomasz Drwięga
b3ccbbe913 Allow specifying extra cors headers for dapps (#4710) 2017-03-07 17:37:26 +01:00
arkpar
fe0f037f23 beta channel 2017-03-07 17:26:57 +01:00
Igor Artamonov
63bc942e41 update ETC bootnodes (#4794) 2017-03-07 05:34:48 +01:00
Denis S. Soldatov aka General-Beck
2f7f95d519 update gitlab-ci
add `kcov` cmd
2017-03-07 03:21:11 +04:00
Denis S. Soldatov aka General-Beck
4e1816cd00 test coverage 2017-03-07 03:16:32 +04:00
Denis S. Soldatov aka General-Beck
374d7c879e push-release after build 2017-03-07 01:56:19 +04:00
Gav Wood
cec37207be Update comments and reg ABI (#4787)
* Update comments.

* Fix up new ABI.
2017-03-06 21:37:38 +01:00
Denis S. Soldatov aka General-Beck
344b5b120f update Dockerfile for hub
add BUILD_TAG ARG
[ci skip]
2017-03-06 22:46:35 +04:00
Denis S. Soldatov aka General-Beck
38884cdf82 update docker-build
add arg
[ci skip]
2017-03-06 22:44:41 +04:00
GitLab Build Bot
24aac8fa89 [ci skip] js-precompiled 20170306-142052 2017-03-06 14:26:42 +00:00
Tomasz Drwięga
4f934cf2c2 Optimize signature for fallback function. (#4780) 2017-03-06 15:11:39 +01:00
GitLab Build Bot
0de8771007 [ci skip] js-precompiled 20170306-093959 2017-03-06 09:45:14 +00:00
Tomasz Drwięga
4d203d563c Rephrasing token generation screen. (#4777) 2017-03-06 10:32:41 +01:00
GitLab Build Bot
a02063f348 [ci skip] js-precompiled 20170306-080251 2017-03-06 08:08:05 +00:00
Jaco Greeff
0b24a3d7f6 Etherscan links based on netVersion identifier (#4772)
* Use netVersion to determine external links

* Update additional isTest references
2017-03-06 08:54:59 +01:00
Jerome de Tychey
944dcdc010 Update README.md (#4762)
Fix for cargo fail when building from source
2017-03-06 08:49:52 +01:00
GitLab Build Bot
cabf251280 [ci skip] js-precompiled 20170305-093606 2017-03-05 09:41:41 +00:00
Jaco Greeff
5a7cbb3e5b Fix invalid props (#4766) 2017-03-05 10:27:18 +01:00
keorn
d68ea777a2 Extend authority round consensus test (#4756)
* add auth round test case

* correct fork assertion
2017-03-03 22:32:22 +01:00
GitLab Build Bot
2e0d005487 [ci skip] js-precompiled 20170303-190450 2017-03-03 19:10:54 +00:00
Tomasz Drwięga
edecd951ba Revert last hyper "fix" (#4752) 2017-03-03 19:52:08 +01:00
Jaco Greeff
1548201551 Vault Management UI (round 3) (#4652)
* Render Dapps via SectionList

* Initial rendering of accounts via SectionList

* Width vars

* Allow classNames in certifications & tags

* Overlay of info on hover

* Adjust hover balances

* Large owner icons (align with vaults)

* Consistent block mined at message

* Attach ParityBackground to html

* Adjust page padding to align

* Lint fixes

* Link to different types of addresses

* Make content parts clickable only (a within a)

* Force Chrome hardware acceleration

* Trust the vendors... don't go crazy with transform :)

* Use faster & default transitions

* Add VaultMeta edit dialog

* Updated (WIP)

* Meta & password edit completed

* Added SelectionList component for selections

* Use SelectionList in DappPermisions

* AddDapps uses SelectionList

* Fix AccountCard to consistent height

* Display type icons in creation dialog

* Complimentary colours

* Convert Signer defaults to SelectionList

* Fix Geth import - actually pass addresses through

* Work from addresses returned via RPC

* Display actual addresses imported (not selected)

* Update tests to cover bug fixed

* Prettyfy Geth import

* Description on selection actions

* SelectionList as entry point

* Update failing tests

* Subtle selection border

* Styling updates for account details

* Add ModalBox summary

* AddAddress updated

* Display account vault information

* Allow invalid addresses to display icons (e.g. vaults)

* Display vault on edit meta

* Convert VaultAccounts to SelectionList

* Allow editing of Vault in meta

* Add tests for SectionList component

* Add tests for ModalBox component

* Add tests for VaultSelector component

* Add vaultsOpened in store

* Add ~/ui/Form/VaultSelect

* WIP

* Fix failing tests

* Move account to vault when selected

* Fix circular build deps

* EditMeta uses Form/VaultSelect

* Vault move into meta store (alignment)

* Re-apply stretch fix

* Display vault in account summary

* Add busy indicators to relevant modals

* Auto-focus description field (aligns with #4657)

* Remove extra container (double scrolling)

* Remove unused container style

* Apply scroll fixes from lates commit in #4621

* Remove unneeded logs

* Remove extra div, fixing ParityBar overflow

* Make dapp iframe background white

* Stop event propgation on tag click

* ChangeVault component (re-usable)

* Use ChangeVault component

* Pass vaultStores in

* Icon highlight colour

* Tag-ify vault name display

* ChangeVault location

* Bothced merge, selector rendering twice

* Value can be undefined (no vault)

* Close selector on Select bug

* Fix toggle botched merge

* Update tests

* Add Vault Tags to Account Header
2017-03-03 19:50:54 +01:00
Jaco Greeff
cb118f1936 Update SelectionList indicators (#4736)
* Move selector indicators to the left

* Only display default account selection icon
2017-03-03 19:50:25 +01:00
Jaco Greeff
9b6170a37b Update testnet detection (#4746) 2017-03-03 19:49:46 +01:00
Nicolas Gotchac
ec0e8f9dd6 Add StackEventListener (#4745) 2017-03-03 19:49:36 +01:00
GitLab Build Bot
ead40a8b97 [ci skip] js-precompiled 20170303-140210 2017-03-03 14:07:22 +00:00
Maciej Hirsz
d297ddbfe5 Update wiki (#4743)
- Added missing `creates` field.
- Removed deprecated methods.
2017-03-03 14:55:04 +01:00
GitLab Build Bot
4024100e74 [ci skip] js-precompiled 20170303-134752 2017-03-03 13:53:17 +00:00
Jaco Greeff
6760ae0e84 Account selector close operations (#4728)
* Close when clicking anywhere on body pane

* Allow click to propagate on address click

* Rename noCopy -> allowAddressClick

* Handle i18n strings in input

* Close on pasted addresses (valid entry)

* allowAddressClick default

* Don't do onClick on AccountCard if text is selected

* Reset filter value on close for address selection

* Better close on click for AccountSelection
2017-03-03 14:38:40 +01:00
Nicolas Gotchac
5559374676 Fix Account Selection in Signer (#4744)
* Can pass FormattedMessage to Input (eg. Status // RPC Enabled)

* Simple fixed-width fix for Accoutn Selection in Parity Signer
2017-03-03 14:32:52 +01:00
GitLab Build Bot
fd19f6f449 [ci skip] js-precompiled 20170303-130222 2017-03-03 13:07:34 +00:00
Jaco Greeff
495e5790e9 Support both V1 & V2 DataChanged events in registry (#4734)
* Add info on forks.

* Add new registry ABI

* Import registry2 & fix exports

* Select ABI based on code hash

* Render new event types (owner not available)

* New registry.

* Rename old chain.

* Fix test.

* Another fix.

* Finish rename.
2017-03-03 13:33:49 +01:00
Gav Wood
3a0c4b6539 Add info on forks. (#4733) 2017-03-03 08:20:25 +01:00
keorn
810c71dd66 Merge pull request #4732 from ethcore/new-chains
Add registry addr
2017-03-03 00:16:47 +01:00
GitLab Build Bot
0432b8410c [ci skip] js-precompiled 20170302-230110 2017-03-02 23:07:35 +00:00
Jaco Greeff
b11caaf071 UI support for hardware wallets (#4539)
* Add parity_hardwareAccountsInfo

* Ledger Promise interface wrapper

* Initial hardwarestore

* Move ~/views/historyStore to ~/mobx

* split scanLedger

* test createEntry

* Also scan via parity_hardwareAccountsInfo

* Explanation for scanning options

* react-intl-inify tooltips

* add hwstore

* Listen for hw walet updates

* Return arrays from scanning

* Readability

* add u2f-api polyfill

* check response.errorCode

* Support hardware types in state.personal

* Tooltips (to be split into sep. PR)

* Tooltips support intl strings

* FormattedMessage for strings to Tooltip

* Fix TabBar tooltip display

* signLedger

* Use wallets as an object map

* PendingForm -> FormattedMessage

* Pending form doesn't render password for hardware

* Groundwork for JS API signing

* Show hardware accounts in list

* Cleanup rendering conditions

* Update RequestPending rendering tests (verification)

* Tests for extended signer middleware

* sign properly & handle response, error

* Align outputs between Parity & Ledger u2f

* Ledger returns checksummed addresses

* Update ethereum-tx for EIP155 support

* Update construction of tx

* Updates after sanity checks (thanks @tomusdrw)

* Allow display for disabled IdentityIcon

* Disabled accounts

* Disabled auto-disabling

* Password button ebaled for hardware

* Don't display password hint for hardware

* Disable non-applicable options when not connected

* Fix failing test

* Confirmation via ledger (u2f)

* Confirm on device message

* Cleanups & support checks

* Mark u2f as unsupported (until https)

* rewording

* Pass account & disabled flags

* Render attach device message

* Use isConnected for checking availability

* Show hardware accounts in defaults list

* Pass signerstore

* Update u2f to correct version

* remove debug u2f lib

* Update test (prop name change)

* Add ETC path (future work)

* new Buffer -> Buffer.from (thanks @derhuerst)
2017-03-02 23:51:56 +01:00
Gav
40526c5270 Merge remote-tracking branch 'origin/master' into new-chains 2017-03-02 23:49:24 +01:00
Gav
71d3fa8707 Add registry. 2017-03-02 23:47:56 +01:00
GitLab Build Bot
96d74543fc [ci skip] js-precompiled 20170302-204757 2017-03-02 20:52:50 +00:00
Jaco Greeff
036ef77373 s/delete/forget/ for wallets (#4729) 2017-03-02 21:40:29 +01:00
Gav Wood
2862b3c21a New chains (#4720)
* Add Kovan chain.

* Fix up --testnet.

* Fix tests.

* Fix test.

* fix test

* Fix test.
2017-03-02 20:24:27 +01:00
Arkadiy Paronyan
591eb76a93 Enable --warp by default (#4719)
* Enable --warp by default

* Disable warp if non-standard chain options are selected

* Add warnings if warp is specified

* Fixed tests
2017-03-02 20:04:17 +01:00
Gav
9c38ff3907 Merge branch 'new-chains' of github.com:ethcore/parity into new-chains 2017-03-02 19:58:10 +01:00
Gav
8ad6107f13 Fix test. 2017-03-02 19:53:15 +01:00
keorn
9ff6195f50 fix test 2017-03-02 17:46:47 +00:00
Gav
89910c0174 Fix test. 2017-03-02 16:09:30 +01:00
Gav
90562c1331 Fix tests. 2017-03-02 15:43:11 +01:00
Gav
bb3b2311bf Merge remote-tracking branch 'origin/master' into new-chains 2017-03-02 15:42:03 +01:00
GitLab Build Bot
eb37d26154 [ci skip] js-precompiled 20170302-143357 2017-03-02 14:38:43 +00:00
Jaco Greeff
7653cfd88e Fix to UglifyJS 2.8.2 to fix app build issues (#4723) 2017-03-02 15:26:07 +01:00
Gav
52cf44d71a Fix up --testnet. 2017-03-02 14:46:35 +01:00
Gav
c662d1cb0a Add Kovan chain. 2017-03-02 14:33:59 +01:00
GitLab Build Bot
5fef950503 [ci skip] js-precompiled 20170302-123938 2017-03-02 12:44:34 +00:00
Jaco Greeff
5f51fa23ea Extract i18n strings in modals/* (#4706)
* DeployContract formatting

* PasswordManager i18n

* SaveContract i18n

* Transfer i18n

* Verification i18n

* Fix spacing on label
2017-03-02 13:29:32 +01:00
Robert Habermeier
31302e057f provide uncle size where available (#4713) 2017-03-02 12:29:18 +01:00
Svyatoslav Nikolsky
cb168828a2 EC math functions (#4696)
* EC math functions

* moved math funs -> Secret methods
2017-03-02 12:27:41 +01:00
keorn
ade5a13f5b Add registrar fields (#4716)
* add registrar field

* use constructor for dev registrar

* fix test
2017-03-02 12:25:55 +01:00
Jaco Greeff
5dd406a19a Extract i18n strings in views/* (#4695)
* i18n for writecontract

* i18n for writecontract store

* wallet i18n

* wallet confirmations i18n

* wallet details i18n

* wallet transactions i18n

* status i18n

* status calls i18n

* status callstoolbar i18n

* status debug i18n

* status editableValue i18n

* status miningSettings i18n

* status rpcCalls i18n

* status rpcDocs i18n

* status status i18n

* signer i18n

* signer origin i18n

* signer signRequest i18n

* signer transactionMainDetails i18n

* sign transactionPending i18n

* signer transactionPending i18n

* Fix duplicate ids

* Typo

* Adapt tests for i18n

* Actionbar i18n

* contracts i18n

* contract i18n

* contract/queries i18n

* contract/events i18n

* application/frameError i18n

* Actionbar key naming

* addresses i18n

* address i18n

* accounts i18n (tooltip)

* Plural strings for owner numbers

* IdentityIcon placement

* Re-apply s/actiobar/actionbar/ after merge
2017-03-02 12:24:54 +01:00
Tomasz Drwięga
36468f3fc7 Removing network=disable from config files (#4715) 2017-03-02 12:23:54 +01:00
Denis S. Soldatov aka General-Beck
d436f62eb8 update gitlab-ci
docker build beta-release->latest
[ci skip]
2017-03-01 15:57:06 +04:00
Robert Habermeier
655c7ae7ae Merge pull request #4687 from ethcore/fast-migrate
Fast in-place migration for adding and removing column families
2017-02-28 17:18:36 +01:00
GitLab Build Bot
54aee9db9b [ci skip] js-precompiled 20170228-153914 2017-02-28 15:44:30 +00:00
Jaco Greeff
4534590f39 Display badges on summary view (#4689) 2017-02-28 16:31:22 +01:00
GitLab Build Bot
ea877cb91e [ci skip] js-precompiled 20170228-132909 2017-02-28 13:35:38 +00:00
Jaco Greeff
190ed76e30 Consistent file uploads (#4699)
* FileSelect component

* Use FileSelect component in Actionbar

* Convert CreateAccount/Import to FileSelect
2017-02-28 14:24:12 +01:00
Jaco Greeff
88449671a1 Rename https://mkr.market -> https://oasisdex.com (#4701) 2017-02-28 14:21:19 +01:00
Jaco Greeff
ab98ec3bf7 Stop onClick propagation after click (#4700) 2017-02-28 14:20:43 +01:00
Jaco Greeff
1b8a47fa4a Display ... for address summary overflows (#4691) 2017-02-28 14:15:48 +01:00
GitLab Build Bot
689fe9c689 [ci skip] js-precompiled 20170227-213540 2017-02-27 21:40:33 +00:00
Jaco Greeff
5e480e9fc0 Less agressive grayscale/opacity (#4688) 2017-02-27 22:28:21 +01:00
Robert Habermeier
b487f00173 address rightward drift 2017-02-27 19:05:02 +01:00
Robert Habermeier
da3c13f0a2 split adding and dropping columns tests 2017-02-27 18:57:22 +01:00
Denis S. Soldatov aka General-Beck
b13a446d82 update docker-build
fix path
2017-02-27 01:14:23 +04:00
Denis S. Soldatov aka General-Beck
2f15c75fa2 update gitlab-ci
fix path to Dockerfile
[ci skip]
2017-02-27 01:13:27 +04:00
Robert Habermeier
868624c6a9 return correct path for in-place migration 2017-02-26 19:30:54 +01:00
Robert Habermeier
ac82a838b8 test case and handle in-place migration correctly 2017-02-26 19:22:51 +01:00
Robert Habermeier
ed0a2567d8 docs 2017-02-26 19:11:19 +01:00
Robert Habermeier
c2c699abb9 change migration to v11 to be faster 2017-02-26 18:41:40 +01:00
Robert Habermeier
3cc007b4d6 add and remove column families dynamically 2017-02-26 18:29:35 +01:00
Robert Habermeier
1bf2b27708 Propagate trie errors upwards from State (#4655)
* state backend trait mirroring state_db API

* minimal state backend trait

make state module public

* fix json tests

* return errors on database corruption

* fix tests, json tests

* fix remainder of build

* add Backend bound on state
2017-02-26 13:10:50 +01:00
Robert Habermeier
eb9ee35d6c Merge pull request #4632 from ethcore/state-backend
Generic state backend
2017-02-25 16:22:42 +01:00
Robert Habermeier
7863d1e978 add Backend bound on state 2017-02-25 14:28:26 +01:00
Denis S. Soldatov aka General-Beck
714b46dfef update gitlab-ci
add triggers to docker-build
2017-02-24 23:54:41 +04:00
Denis S. Soldatov aka General-Beck
bef33a0958 update gitlab-ci
[ci skip] fix `docker-build`
2017-02-24 22:00:08 +04:00
GitLab Build Bot
8bee714452 [ci skip] js-precompiled 20170224-171258 2017-02-24 17:18:20 +00:00
Jaco Greeff
609e24ef04 Enhance dialog layouts (round 1) (#4637)
* Added SelectionList component for selections

* Use SelectionList in DappPermisions

* AddDapps uses SelectionList

* Fix AccountCard to consistent height

* Display type icons in creation dialog

* Complimentary colours

* Convert Signer defaults to SelectionList

* Fix Geth import - actually pass addresses through

* Work from addresses returned via RPC

* Display actual addresses imported (not selected)

* Update tests to cover bug fixed

* Prettyfy Geth import

* Description on selection actions

* SelectionList as entry point

* Update failing tests

* Subtle selection border

* Styling updates for account details

* Add ModalBox summary

* AddAddress updated

* Convert VaultAccounts to SelectionList

* Add tests for SectionList component

* Add tests for ModalBox component

* Re-apply stretch fix

* Apply scroll fixes from lates commit in #4621

* Clear name on switch (test in #4652, not pulling in)

* Remove refs (cleanup)
2017-02-24 18:05:39 +01:00
Jaco Greeff
570e6f32b0 Vault Management UI (round 2) (#4631)
* Add VaultMeta edit dialog

* Updated (WIP)

* Meta & password edit completed

* Added SelectionList component for selections

* Use SelectionList in DappPermisions

* AddDapps uses SelectionList

* Fix AccountCard to consistent height

* Convert Signer defaults to SelectionList

* Subtle selection border

* Display account vault information

* Allow invalid addresses to display icons (e.g. vaults)

* Display vault on edit meta

* Convert VaultAccounts to SelectionList

* Allow editing of Vault in meta

* Add tests for SectionList component

* Add tests for VaultSelector component

* Auto-focus description field (aligns with #4657)

* Apply scroll fixes from lates commit in #4621

* Remove unneeded logs

* Remove extra div, fixing ParityBar overflow

* Disable save if password don't match

* s/disabled/readOnly/

* string -> bool
2017-02-24 18:05:04 +01:00
Nicolas Gotchac
9ff427caaf Fix Portal broad event stopper (#4674) 2017-02-24 18:04:26 +01:00
keorn
7a773b42bf custom dev presets (#4671) 2017-02-24 17:36:52 +01:00
Arkadiy Paronyan
ef7998f473 Max gas limit and min gas price (#4661)
* Max gas limit and min gas price

* Tests

* Limit gas limit ceiling
2017-02-24 17:34:32 +01:00
GitLab Build Bot
af45d05aee [ci skip] js-precompiled 20170224-142855 2017-02-24 14:33:38 +00:00
Jaco Greeff
f670b180d7 Align list displays with SectionList (UI consistency) (#4621)
* Render Dapps via SectionList

* Initial rendering of accounts via SectionList

* Width vars

* Allow classNames in certifications & tags

* Overlay of info on hover

* Adjust hover balances

* Large owner icons (align with vaults)

* Consistent block mined at message

* Attach ParityBackground to html

* Adjust page padding to align

* Lint fixes

* Link to different types of addresses

* Make content parts clickable only (a within a)

* Force Chrome hardware acceleration

* Trust the vendors... don't go crazy with transform :)

* Use faster & default transitions

* Remove extra container (double scrolling)

* Remove unused container style

* Make dapp iframe background white

* Stop event propgation on tag click
2017-02-24 15:21:36 +01:00
GitLab Build Bot
afecf5b148 [ci skip] js-precompiled 20170224-134503 2017-02-24 13:50:10 +00:00
Jaco Greeff
a6ed3dc5dc Add SelectionList component to DRY up (#4639)
* Added SelectionList component for selections

* Use SelectionList in DappPermisions

* AddDapps uses SelectionList

* Fix AccountCard to consistent height

* Convert Signer defaults to SelectionList

* Subtle selection border

* Convert VaultAccounts to SelectionList

* Add tests for SectionList component

* Apply scroll fixes from lates commit in #4621

* Remove unneeded logs

* Remove extra div, fixing ParityBar overflow
2017-02-24 14:37:56 +01:00
GitLab Build Bot
5817cfdf41 [ci skip] js-precompiled 20170224-115159 2017-02-24 11:58:15 +00:00
Jaco Greeff
38cf7d2639 Linting updates (#4662) 2017-02-24 12:44:38 +01:00
Jaco Greeff
0b214450e3 Misc. small UI fixes (#4657)
* Shorten menu items (accounts)

* Shorten menu items (addresses)

* Shorten menu items (contracts)

* Shorten menu items (account)

* Shorten menu items (address)

* Shorten menu items (contract)

* Auto-focus & perform default action

* Auto-focus & default action

* Auto focus for first fields (create account)

* Clear phrase & auto-focus field

* Auto-focus name fields

* Add autoFocus (Add Address)

* autoFocus address (Add Contract)

* Auto focus name field

* Auto-focus name field for EditMeta

* Auto-focus modifications (WalletSettings)

* Verification auto focus

* typo

* Double-up on keys
2017-02-24 12:26:30 +01:00
Maciej Hirsz
f97e775498 More CLI settings for IPFS API (#4608)
* TEMP: Bind to 0.0.0.0, don't check Origin

* More CLI options for IPFS

* CORS and Hosts filtering

* Allow current interface as origin

* Correctly handle CORS settings

* fix grumbles
2017-02-24 10:32:42 +01:00
keorn
9b5bcb81fd Fix Tendermint deadlock (#4654)
* scope read

* consistent step
2017-02-24 10:26:56 +01:00
Bas
56d0ad869a nl translations (#4649)
* translation stings copied from _default to nl

* First batch of nl translations

* Second batch of nl translations

* Syntax fix

* include new nl translation files to index
2017-02-24 10:25:28 +01:00
GitLab Build Bot
c7b3b9a565 [ci skip] js-precompiled 20170224-084932 2017-02-24 08:54:34 +00:00
Jaco Greeff
92fa4249d3 Update condition documentation (Thanks @arkpar) (#4659) 2017-02-24 09:40:38 +01:00
Tomasz Drwięga
daf36739ce Bump hyper versions (#4645) 2017-02-24 09:22:29 +01:00
Gav Wood
76ade2fc2d Sane updater (#4658)
* Make updater avoid downloading earlier versions.

* Disable if files can't be moved.
2017-02-24 01:06:35 +01:00
Robert Habermeier
3f78c945d7 Merge pull request #4594 from ethcore/lightrpc
Remainder of RPC APIs implemented for the light client
2017-02-23 19:58:27 +01:00
Svyatoslav Nikolsky
88cdc92ed4 preserve vault meta when changing pwd (#4650) 2017-02-23 19:01:12 +01:00
GitLab Build Bot
496a6dcfa0 [ci skip] js-precompiled 20170223-141355 2017-02-23 14:21:06 +00:00
Jaco Greeff
3651095651 Fix Geth account import (#4641)
* Fix Geth import - actually pass addresses through

* Work from addresses returned via RPC

* Display actual addresses imported (not selected)

* Update tests to cover bug fixed
2017-02-23 15:04:58 +01:00
Denis S. Soldatov aka General-Beck
e60fa751eb [ci skip] 2017-02-23 03:36:03 +04:00
Denis S. Soldatov aka General-Beck
5c57b42259 [ci skip] 2017-02-23 03:31:43 +04:00
Gav Wood
3182540d9f Tweak some checks. (#4633)
* Tweak some checks.

* Fixed build and added a difficulty test
2017-02-22 18:24:22 +01:00
GitLab Build Bot
f3b5e2074b [ci skip] js-precompiled 20170222-165052 2017-02-22 16:55:55 +00:00
Jannis Redmann
94fa2db986 attempt to fix subscribeToEvents test (#4638) 2017-02-22 17:44:11 +01:00
GitLab Build Bot
cb3c6b1bec [ci skip] js-precompiled 20170222-150433 2017-02-22 15:09:15 +00:00
Jaco Greeff
e66d54910a Fix selection value from RadioButtons (#4636)
* Fix selection value from RadioButtons

* Fix outdated test
2017-02-22 15:57:21 +01:00
GitLab Build Bot
3df1adc3f5 [ci skip] js-precompiled 20170222-143551 2017-02-22 14:40:40 +00:00
Jaco Greeff
6938a7a202 Convert all remaining Modals to use Portal (UI consistency) (#4625)
* FirstRun dialog -> Portal

* CreateAccount Modal -> Portal

* CreateWallet dialog -> Portal

* Transfer dialog -> Portal

* Fix failing tests

* ShapeShift dialog -> Portal

* Verification dialog -> Portal

* EditMeta dialog -> Portal

* PasswordManager dialog -> Portal

* WalletSettings dialog -> Portal

* AddAddress dialog -> Portal

* s/delete address/forget address/

* AddContract dialog -> Portal

* DeployContract dialog -> Portal

* ExceuteContract dialog -> Portal

* LoadContract dialog -> Portal

* SaveContract dialog -> Portal

* UpgradeParity dialog -> Portal

* Convert inline modals (tsk, tsk)

* Remove ui/Modal

* Import dialog i18n

* Button array returns (thanks @derhuerst)

* Unneeded debug

* Typo

* Readability formatting
2017-02-22 15:26:58 +01:00
GitLab Build Bot
49675483c3 [ci skip] js-precompiled 20170222-095134 2017-02-22 09:56:05 +00:00
Robert Habermeier
636b2deb2e fix json tests 2017-02-22 10:52:58 +01:00
Jaco Greeff
5337bf6413 Default account selection update (#4609)
* Default accounts setting - account provider

* RPC support for default accounts

* Updating JS code

* Rename whitelist to addresses

* Set the defaults using default, allowing for null/full lists

* Update failing tests (after merge)

* Fix merge with wrong rpc call names

* One account needs to be selected
2017-02-22 10:43:02 +01:00
Jaco Greeff
0a85fc7a3e Display ETH balance in overlay account selector (#4588)
* Add account balance display from ParityBar

* Ellipsis with title

* Balance display in Dapp permissions

* Add balance to vault account selector

* Add key prop to accounts in Vault

* Fix failing test (missing redux prop)
2017-02-22 10:42:42 +01:00
Robert Habermeier
fba4bda0ff Merge pull request #4627 from raingloom/patch-1
fixed minor grammar mistake in readme
2017-02-22 08:56:14 +01:00
Rain Gloom
df414c8186 fixed minor grammar mistake in readme 2017-02-21 18:08:47 +01:00
Denis S. Soldatov aka General-Beck
502af0e29b [ci skip] update gitlab-ci
fix path to `tools`
add `tools` in `linux-stable-debian`
2017-02-21 16:42:18 +04:00
GitLab Build Bot
80155ef93a [ci skip] js-precompiled 20170221-120741 2017-02-21 12:12:14 +00:00
Jaco Greeff
61e3d036d9 Extract new available i18n strings (#4623) 2017-02-21 12:59:36 +01:00
Robert Habermeier
1fba73c15e minimal state backend trait
make state module public
2017-02-21 12:35:21 +01:00
Robert Habermeier
ac9716a5ce state backend trait mirroring state_db API 2017-02-21 11:13:02 +01:00
Robert Habermeier
d8b1cfe082 Merge branch 'master' into lightrpc 2017-02-20 18:01:29 +01:00
Robert Habermeier
62b340f2b9 Save pending local transactions in the database (#4566)
* Create new column family for local node info

* remove DBTransaction::new reliance on DB

* KeyValueDB trait

* InMemory KeyValueDB implementation

* journaldb generic over KVDB

* make most of `ethcore` generic over KVDB

* fix json tests compilation

* get all tests compiling

* implement local store (just for transactions)

* finish local store API, test

* put everything into place

* better test for skipping bad transactions

* fix warning

* update local store every 15 minutes

* remove superfluous `{}`s
2017-02-20 17:21:55 +01:00
GitLab Build Bot
00351374e4 [ci skip] js-precompiled 20170220-160616 2017-02-20 16:12:01 +00:00
Maciej Hirsz
0af2fb2a48 Merge pull request #4614 from ethcore/mh-bump-cid
Bump CID version to allow compilation on all platforms
2017-02-20 16:44:11 +01:00
maciejhirsz
649cedd818 Updated Cargo.lock 2017-02-20 16:42:09 +01:00
Jaco Greeff
9e210e5eda Vault Management UI (first round) (#4446)
* Add RPCs for parity_vault (create, open, list, etc.)

* WIP

* WIP

* WIP

* WIP (create should create)

* Create & close working

* WIP

* WIP

* WIP

* Open & Close now working

* WIP

* WIP

* Merge relevant changes from js-home

* Hover actions

* WIP (start of account assignment)

* Open, Close & Account assignment works

* Fix margins

* UI updates

* Update tests

* Add the parity_{get|set}VaultMeta calls

* Handle metadata

* Adjust padding in Open/Close modals

* moveAccounts take both in and out

* Adjust padding

* Fix stretch

* Optimize hover stretch

* pre-merge

* Cleanup variable naming (duplication)

* Rename Vault{Close,Open} -> Vault{Lock,Unlock}

* clearVaultFields uses setters

* TODO for small Portal sizes

* Vaults rendering tests

* .only

* libusb compile

* VaultCard rendering tests

* Update message keys (rename gone rouge)

* Display passwordHint op vault unlock

* Update failing tests

* Manually dispatch allAccountsInfo when move completed

* Open/Close always shows vault image in colour

* Password submit submits modal (PR comment)

* Add link to account
2017-02-20 16:40:01 +01:00
keorn
ac6180a6fe seals_internally (#4613) 2017-02-20 16:35:53 +01:00
Jaco Greeff
44769fcd4a Show only known accounts/wallets/addresses on Home (#4612)
* Don't render unknown entries

* Only render non-null items

* Remove (now) invalid failing test
2017-02-20 16:34:38 +01:00
maciejhirsz
348559491a Bump CID version to allow compilation on all platforms 2017-02-20 16:34:16 +01:00
Tomasz Drwięga
72998d3ce3 Proper default accounts RPCs (#4580)
* Default accounts setting - account provider

* RPC support for default accounts

* Updating JS code

* Rename whitelist to addresses
2017-02-20 16:33:12 +01:00
Tomasz Drwięga
1949d44d0c Hash-fetch errors in case upstream returns non-200 (#4599) 2017-02-20 16:30:14 +01:00
Arkadiy Paronyan
0aad8a87ae Added pending transaction info to eth_getTransactionByHash (#4570)
* Return condition info for pending transactions

* Fixed warnings
2017-02-20 16:19:43 +01:00
Svyatoslav Nikolsky
b9665c7cfe Secret store - initial version (#4567)
* initial secret store commit

* various fixes

* license

* (sstore, secstore) -> secretstore

* marked KeyServer trait as IPC-ready

* fixed style

* ignore requests with Origin header

* fixed tests

* fixed Origin header check
2017-02-20 16:13:21 +01:00
Denis S. Soldatov aka General-Beck
68a25d9e14 fix path to tools 2017-02-20 17:16:11 +04:00
GitLab Build Bot
31f5a1d205 [ci skip] js-precompiled 20170220-124210 2017-02-20 12:48:32 +00:00
Jaco Greeff
3fc29b9ae4 Handle invalid ABI retrieved from address_book gracefully (#4606)
* Handle invalid ABI gracefully

* Also include failed abi in log
2017-02-20 13:34:33 +01:00
Denis S. Soldatov aka General-Beck
e86837b878 target evmbin -> evm 2017-02-20 15:25:53 +04:00
Robert Habermeier
998cb0d209 Merge pull request #4583 from ethcore/sstore-opt
Optimize key directory reloads
2017-02-17 22:27:07 +01:00
Robert Habermeier
4de208786d trace API stubs 2017-02-17 22:21:43 +01:00
Robert Habermeier
9e761ba2ea ParitySet stubs 2017-02-17 21:45:06 +01:00
Robert Habermeier
9316eb4ad3 (most of) parity RPC for light client 2017-02-17 21:38:43 +01:00
Denis S. Soldatov aka General-Beck
32023f1ea0 fix build path to tools 2017-02-17 23:33:14 +04:00
Denis S. Soldatov aka General-Beck
163e2af568 update Dockerfile for hub
nightly->latest
2017-02-17 22:11:35 +04:00
GitLab Build Bot
8c9c6744fc [ci skip] js-precompiled 20170217-171830 2017-02-17 17:24:47 +00:00
Nicolas Gotchac
04f3ee90d8 Revert Double Click (#4590) 2017-02-17 18:11:10 +01:00
Robert Habermeier
39237e9d15 Merge pull request #4545 from ethcore/mh-ipfs
IPFS MVP
2017-02-17 17:19:56 +01:00
Robert Habermeier
3b023c82b7 fetch gas price corpus from network when needed 2017-02-17 17:08:46 +01:00
Robert Habermeier
7a857a24ae use new histogram/corpus 2017-02-17 16:18:31 +01:00
Denis S. Soldatov aka General-Beck
a3bbdce613 update Dockerfile for hub
refactoring + small fix
2017-02-17 19:03:40 +04:00
Robert Habermeier
59315b0cb7 stats utility in its own crate 2017-02-17 15:16:28 +01:00
Denis S. Soldatov aka General-Beck
b35e852cb6 cargo fix 2017-02-17 15:46:43 +04:00
Arkadiy Paronyan
c2540dc215 Check for matching session before deregistering (#4563) 2017-02-17 12:20:25 +01:00
Robert Habermeier
54c48d14ec Deprecate eth_compile* RPCs (#4577)
* Deprecate eth_compile* RPCs

* Add deprecation doc comments
2017-02-17 12:00:33 +01:00
Denis S. Soldatov aka General-Beck
aca808b021 update Dockerfile
ENTRYPOINT ["/parity/parity"]
2017-02-17 13:48:37 +04:00
Denis S. Soldatov aka General-Beck
164f1cef81 remove git pul from hub Docker
[ci-skip]
2017-02-17 03:56:09 +04:00
NikVolf
92d8edc1a6 unique_repr, no default impl 2017-02-16 23:04:39 +03:00
NikVolf
444065e294 refactor hashing 2017-02-16 22:53:58 +03:00
Robert Habermeier
48cf591e66 integrate cache in on-demand 2017-02-16 20:46:59 +01:00
NikVolf
513cc6261a plug to store 2017-02-16 22:10:29 +03:00
Denis S. Soldatov aka General-Beck
a9cc9ce140 docker build no-cache
[ci-skip]
2017-02-16 22:58:41 +04:00
maciejhirsz
da696e4a1f Added support for contract code by hash.
This is done by requests sending CID with raw binary codec (0x55).
Note: this functionality is exactly the same as fetching state-trie
due to how db internals work in Parity atm.
2017-02-16 18:39:13 +01:00
Robert Habermeier
3b9741e9d8 Implement the basic data cache 2017-02-16 18:07:28 +01:00
GitLab Build Bot
062c55d51b [ci skip] js-precompiled 20170216-165434 2017-02-16 17:06:15 +00:00
Arkadiy Paronyan
301a707eaa Ledger signing fixed (#4578) 2017-02-16 17:45:12 +01:00
Jannis Redmann
7d890c0687 remove vertx from Webpack config (#4576) 2017-02-16 17:43:27 +01:00
Nicolas Gotchac
b825c8e074 Better display of tags (#4564)
* WIP

* Update accounts on whitelist change in Parity Bar

* Fix AccountCard width in Parity Bar (Signer)

* Added AccountCard Example

* Use horizontal tags

* Better Tags display

* Scrollable tags

* Update PR Grumbles

* Fix tests (add tags)

* PR Grumble
2017-02-16 17:42:19 +01:00
Svyatoslav Nikolsky
00c843afea Added vaults support to ethstore-cli (#4532)
* added vaults support to ethstore-cli

* improved error message
2017-02-16 17:42:01 +01:00
Denis S. Soldatov aka General-Beck
aa83603af8 typo fix in Dockerfile 2017-02-16 20:04:28 +04:00
Denis S. Soldatov aka General-Beck
4cd4572417 add tag ENV in Dockerfile 2017-02-16 20:03:13 +04:00
GitLab Build Bot
5bd1cf352b [ci skip] js-precompiled 20170216-154550 2017-02-16 15:50:43 +00:00
NikVolf
43ce5bef7e file list hash and test 2017-02-16 18:47:58 +03:00
Arkadiy Paronyan
f2027c02ef Fixed fonts URLs (#4579) 2017-02-16 16:37:40 +01:00
NikVolf
d4149b965e files list separate fn, sha3 of the list 2017-02-16 18:20:24 +03:00
Robert Habermeier
2b91c922c1 get signing network ID for light client 2017-02-16 16:08:58 +01:00
maciejhirsz
8d6275bf07 Only allow requests from Origin 127.0.0.1 2017-02-16 16:08:54 +01:00
maciejhirsz
c4b4a22203 Rename parity-ipfs to parity-ipfs-api 2017-02-16 14:51:33 +01:00
maciejhirsz
ad8e3f0230 Added CLI flags 2017-02-16 14:41:33 +01:00
GitLab Build Bot
39d4e46073 [ci skip] js-precompiled 20170216-125519 2017-02-16 12:59:57 +00:00
Jaco Greeff
c14ecefa1d Explicitly set seconds to 0 from selector (#4559)
* Explicitly set seconds/milli to 0

* Use condition time & block setters consistently

* Fix failing test

* test for 0 ms & sec

* It cannot hurt, clone date before setting

* Prettier date test constants (OCD)
2017-02-16 13:47:51 +01:00
maciejhirsz
451cf42452 Adding CLI flags for IPFS 2017-02-15 20:29:29 +01:00
maciejhirsz
9cfa27830c Write output as chunks 2017-02-15 19:25:57 +01:00
Denis S. Soldatov aka General-Beck
c808954413 clean Docker
[ci-skip]
2017-02-15 21:40:23 +04:00
Denis S. Soldatov aka General-Beck
34d8498a2c clean Docker
remove RUST tools from Docker
[ci-ckip]
2017-02-15 21:37:23 +04:00
maciejhirsz
d005410e1a No .expect on mime types 2017-02-15 18:26:35 +01:00
Denis S. Soldatov aka General-Beck
ff2c4d1178 add tools
add `evmbin`, `ethstore`, `ethkey` to the CI
2017-02-15 21:14:07 +04:00
maciejhirsz
eb327338e8 Tests and grumbles 2017-02-15 18:07:30 +01:00
Denis S. Soldatov aka General-Beck
06937be74b add libudev-dev in deb
[ci-skip]
2017-02-15 20:09:47 +04:00
Tomasz Drwięga
efb95a59be Fixing evmbin compilation and added standard build. (#4561) 2017-02-15 16:58:42 +01:00
Tomasz Drwięga
895298fc49 Alias for personal_sendTransaction (#4554) 2017-02-15 16:57:27 +01:00
Nikolay Volf
494a0de1e2 Key derivation in ethstore & rpc (#4515)
* initial in secret store

* generation

* test

* refactor of the derivation

* signing

* account provider

* tests for account provider

* rpc types

* rpc types converts

* rpc tests

* fix warnings

* some extra docs

* derivate -> derive

* secret() -> as_raw()

* secret() -> as_raw() in rpc

* fix merge bug

* align with new serde changes
2017-02-15 16:56:15 +01:00
GitLab Build Bot
4889cff310 [ci skip] js-precompiled 20170215-135145 2017-02-15 13:56:12 +00:00
Nicolas Gotchac
0d289c7732 Skip OOG check for simple transfers (#4550) (#4558) 2017-02-15 14:44:14 +01:00
Robert Habermeier
36ea5550ba Merge pull request #4501 from ethcore/light-txq
Light Client transaction queue, initial LightDispatcher
2017-02-15 14:06:31 +01:00
GitLab Build Bot
b38a874b18 [ci skip] js-precompiled 20170215-124941 2017-02-15 12:54:04 +00:00
Nicolas Gotchac
4bae2c751c Fixes BadgeReg Middleware (#4547) (#4556) 2017-02-15 13:42:55 +01:00
Nicolas Gotchac
8aaa18d75d Fix pasting of value in Input fields (#4555)
* Fix logging and logger issues

* onPaste submit value + pasted text (#4553)
2017-02-15 13:37:58 +01:00
GitLab Build Bot
3218c365e9 [ci skip] js-precompiled 20170215-110429 2017-02-15 11:08:57 +00:00
Jaco Greeff
efe76d7004 Tooltips with react-intl (#4549)
* Tooltips support intl strings

* FormattedMessage for strings to Tooltip

* Fix TabBar tooltip display

* r after o (PR comment)
2017-02-15 11:56:51 +01:00
GitLab Build Bot
812017f9b3 [ci skip] js-precompiled 20170214-215513 2017-02-14 22:00:39 +00:00
Nicolas Gotchac
ac27806a43 Close on double-click for Signer Account selection (#4540)
* Close on double-click + Optimistic UX (#4525)

* PR Gumble + Tests
2017-02-14 22:47:34 +01:00
Tomasz Drwięga
5369a129ae Signer provenance (#4477)
* Signer - Tracking Request Provenance

* Basic UI

* Changing messages

* VecDeque::from

* Fix dapps tests

* Addressing UI grumbles
2017-02-14 22:45:43 +01:00
Tomasz Drwięga
d925cc05da Fix console dapp (#4544)
* Fixing linting issues. Better support for console as secure app

* Fixing linting issues
2017-02-14 22:45:29 +01:00
maciejhirsz
2ee2d2ea45 Added missing GPL header 2017-02-14 20:03:25 +01:00
maciejhirsz
9256aa766b Lock file 2017-02-14 19:58:46 +01:00
maciejhirsz
3c634701dd Squashed 2017-02-14 19:30:37 +01:00
Robert Habermeier
e591b4481b warning on detected inconsistency 2017-02-14 19:16:46 +01:00
GitLab Build Bot
e9eed5206e [ci skip] js-precompiled 20170214-123602 2017-02-14 12:41:22 +00:00
Jaco Greeff
71c0cc867a Extract i18n string into i18n/_defaults (base of translations) (#4514)
* Build script to pull i18n into i18n/_default

* Fix header

* Current strings as extracted

* details_windows without prefix

* clean before build

* Alwasy extract babel strings

* clean & run build before extraction

* Update settings messages

* Put back template string (PR comment)

* PR comment cleanups & logging

* Less complicated string type check (PR comment)

* Remove node cache to extract all keys (Thanks @ngotchac)

* Merge in defaults from i18n/en (Comment by @h3ll0fr13nd)

* Unique index keys only

* Update with latest master strings

* _.defaultsDeep (Thanks to @dehurst)

* Use to-source for string formatting

* Sync with toSource output on latest master

* Updated to use/output sorted objects
2017-02-14 13:16:39 +01:00
Denis S. Soldatov aka General-Beck
7d12e383b2 windows build
switch to RUST stable
2017-02-14 16:09:19 +04:00
Nicolas Gotchac
e8597e2e91 Fix contract queries bug (#4534)
* Fix contract queries and multiple Address Selector issues

* Linting

* Use standard new Error
2017-02-14 13:08:38 +01:00
Robert Habermeier
1d9db578ff ready transactions order documentation 2017-02-14 12:14:02 +01:00
Robert Habermeier
63ad8cb086 store pending transactions only once 2017-02-14 12:12:26 +01:00
Robert Habermeier
e911fc2db9 address grumbles 2017-02-14 12:05:24 +01:00
GitLab Build Bot
fefd53d4f4 [ci skip] js-precompiled 20170214-101112 2017-02-14 10:15:36 +00:00
Tomasz Drwięga
bccd0991f6 Fixing namespace of couple methods in console. (#4538) 2017-02-14 13:03:23 +03:00
GitLab Build Bot
dd0ef6b5ec [ci skip] js-precompiled 20170214-073623 2017-02-14 07:40:43 +00:00
Jaco Greeff
63d2cfcbfc Home landing page (#4178)
* Home entry point (basics)

* WIP store for web

* Add DappUrlInput component

* Updated tests

* WIP store update

* Adjust styling

* Add home tab

* Collapse first/last without extra divs

* Navigation actually navigates

* styling

* Encoding of ethlink.io URLs

* encodedUrl setup

* base58 encoded URLs

* Added decoding, updated tests to Parity-compliant

* Base32 (synced with Rust implementation via tests)

* Split URL into 63 character chunks

* Fix store test

* Cleanups

* s/ethlink/dapplink/

* Display app navigation & histroy

* Start on /accounts (for now, until expanded fully)

* Update tests

* ethlink.io -> web3.site

* Basic list layout

* Store history on navigation

* Show Accounts & Dapps

* Add skeleton for DappIcon (WIP)

* DappIcon WIP

* DappIcon in place

* Split into maneable sub-components

* WIP

* Tests for views/Home

* Swap default entry-point to /home

* Expose registry.get via lookupMeta

* Add getEntry interface, fix instance retrieval (with tests)

* Add news display component

* Add tests for added contracts/registry methods

* Fix GHH test refactoring

* render news via SectionList

* News items store directly

* Images

* News & Urls has new layout

* Convert remainder

* First run-through of MVP for SectionList

* Update tests

* Deploycontract should not override global p styles

* Allow styles overrides for head & body

* Adjust layout styling

* revert Container>flex

* Adjust sizes of history items

* Cleanups

* HistoryStore for tracking relevant routes

* Default route is still /accounts

* Fix tests

* Update 2015-2017

* Add lookupMeta & tests

* Add getEntry & tests

* Split Dapp icon into ui/DappIcon

* Update copyright dates

* Encoding for *.web3.site urls

* Dapp history retrieval

* Grow to only 40% on hover

* Update description

* Add DappUrlInput component

* Update Web views with store

* Update spec description

* Update spec description

* edited url does not allow in-place store edits

* Use /web/<hash> urls for iframe

* Removed (now) unused _list.css

* Mistamtched merge fixed

* Tab split (WIP)

* Split Tab component

* Update tests after merge

* typo

* Remove background !important

* Set item width to parent

* Set width, remove overflow-x: hidden

* Align hover overlays

* Container defaults to some opacity

* Display history from listRecentDapps

* Override styles for a tags

* Open URLs in new window when extension is available

* Fix tests after update

* AccountCard width 100%

* Re-add opening correct url in tab

* Cleanup link rendering

* Remove hardcoded news URL

* pre-merge

* Extra padding at Home bottom (Pr grumble)

* Match js-vaults stretch

* s/Web Apps via URL/Web Apps/ (PR grumble)

* Store recent wallets (PR grumble)

* Simplify inline style matching (PR comment)

* Add store for new retrieval

* Add missing observer

* Auto-link based on account type

* Fix UI overlaps

* Extra spacing

* Only show account when accountInfo is available

* Align timestamp line-heights

* Fix tests

* Update tests

* Really fix failing test (check for Connect(Account))
2017-02-14 08:29:32 +01:00
Nikolay Volf
78917d728d Bump JSON RPC crates versions (#4530)
* json rpc bump

* some error message deviations
2017-02-13 21:34:16 +03:00
Robert Habermeier
443e8d2aed Merge pull request #4531 from ethcore/bump-readme
Update rust version in README
2017-02-13 17:44:42 +01:00
Nikolay Volf
83a8ceb09b Update rust version in readme [ci skip] 2017-02-13 19:39:46 +03:00
Robert Habermeier
073ed1a87c lower default pruning history and memory (#4528)
--pruning-history: 1200 -> 64
--pruning-memory: 150 -> 75
2017-02-13 17:15:25 +01:00
Robert Habermeier
4f1afccf97 best_block_header function 2017-02-13 16:51:40 +01:00
Tomasz Drwięga
f1e99ea2e4 Serde 0.9 (#4508)
* Porting json

* Dapps

* Rpc & Ethstore

* New ethabi

* Last bunch of fixes

* Fixing last test

* Removing build script

* Adding ethcore-ipc-tests back

* Fixing grumbles

* Fixing blockchain tests (inference regression?)
2017-02-13 18:38:47 +03:00
GitLab Build Bot
a2c6cd8f7b [ci skip] js-precompiled 20170213-125552 2017-02-13 13:00:14 +00:00
Nicolas Gotchac
b561ae7b12 Fixes to Token Deploy dapp (#4513)
* Renaming Basiccoin => Tokendeploy

* Rename Basiccoin => Tokendeploy

* UI and bug fixes to the TokenDeploy dapp

* Use decimals for Token Deployment #4311

* Typo

* PR Gumbles
2017-02-13 13:47:11 +01:00
Arkadiy Paronyan
1fa830d19b Fixed receipt decoding (#4521) 2017-02-13 12:14:05 +03:00
Denis S. Soldatov aka General-Beck
5f154b9f4b update Dockerfile
add libudev-dev
2017-02-11 20:48:45 +04:00
GitLab Build Bot
88b91b7e13 [ci skip] js-precompiled 20170210-173450 2017-02-10 17:39:23 +00:00
Nicolas Gotchac
ace5c27211 Several fixes to the Wallet in general (#4504)
* Fix address non-ellipsis on Wallet view

* Add warning if daily limit has been reached

* Add OOG warnings to TxHash

* Fixes to the Warning

* Added stringified version of the changes

* Add wallet link for notifications

* Fix tests

* Use Formatted Messages

* React Intl

* s/ui.walletSettings/walletSettings in React Intl
2017-02-10 18:27:18 +01:00
Nicolas Gotchac
da2e28dad1 Use the current contract name for Solidity compilation (#4510) 2017-02-10 18:26:52 +01:00
Robert Habermeier
c7d83bd88a Merge branch 'master' into light-txq 2017-02-10 17:21:38 +01:00
Robert Habermeier
48ae38eaf9 Merge pull request #4485 from ethcore/lightrpc
Preparation for Light client RPC
2017-02-10 17:15:03 +01:00
GitLab Build Bot
51f74f8d80 [ci skip] js-precompiled 20170210-135944 2017-02-10 14:04:00 +00:00
Bas
325cd0ec0b Fix Dutch translation (#4509)
After compiling + running the recently added Dutch translation I found it didn't work as I had forgotten to add nl to store.js. Now it is working.
2017-02-10 14:52:36 +01:00
Robert Habermeier
2c43b02e13 Merge branch 'lightrpc' into light-txq 2017-02-10 14:31:17 +01:00
Robert Habermeier
b8881215f1 Merge branch 'master' into lightrpc 2017-02-10 13:47:27 +01:00
Arkadiy Paronyan
8fd694ea47 Fixed a warning and bumbed libusb-sys (#4507) 2017-02-10 12:28:57 +01:00
GitLab Build Bot
d36303365f [ci skip] js-precompiled 20170210-075200 2017-02-10 07:56:35 +00:00
Nicolas Gotchac
aebb289ea9 Fix overflow on small screens (#4505) 2017-02-10 08:43:59 +01:00
Robert Habermeier
6bf97de9d8 Merge branch 'master' into lightrpc 2017-02-10 02:44:12 +01:00
GitLab Build Bot
cb772acec7 [ci skip] js-precompiled 20170210-001706 2017-02-10 00:22:18 +00:00
Nicolas Gotchac
515f30eea9 Fix no data sent in TxQueue dapp (#4502)
* Fix wrong PropType req for Embedded Signer

* Fix wrong data for tx #4499
2017-02-09 19:07:35 -05:00
Arkadiy Paronyan
a7e6d8727a Ledger wallet support (#4486)
* Ledger devices support

* structs for RPC types
2017-02-09 19:07:06 -05:00
Robert Habermeier
5e65081d4f remove accidental gap in next nonce 2017-02-09 22:37:56 +01:00
Robert Habermeier
e53d023a8a implement light dispatcher 2017-02-09 21:12:28 +01:00
Robert Habermeier
53774d4792 Merge branch 'lightrpc' into light-txq 2017-02-09 20:41:42 +01:00
Robert Habermeier
0d09a473a7 remove let inner pattern with take_weakf and try_bf 2017-02-09 20:38:47 +01:00
Robert Habermeier
7be2c145de LightDispatcher definition 2017-02-09 20:22:31 +01:00
Robert Habermeier
325c6aaf6a verify raw transactions against Engine 2017-02-09 19:58:29 +01:00
Robert Habermeier
a559dfe9a1 implement send_raw_transaction 2017-02-09 19:17:37 +01:00
Robert Habermeier
baf0dbc6bf LightProvider struct using light transaction queue 2017-02-09 18:42:18 +01:00
Robert Habermeier
6a924770be add several tests + minor bugfixes 2017-02-09 18:10:59 +01:00
GitLab Build Bot
395a44e4a8 [ci skip] js-precompiled 20170209-165020 2017-02-09 16:54:35 +00:00
Nicolas Gotchac
71f84067d9 Add new Componennt for Token Images (#4496) (#4498) 2017-02-09 17:41:27 +01:00
Nicolas Gotchac
48eac51c8a Fix address and accounts links (#4491)
* Add proper links to TxRows (#4314)

* Add proper link to the Signer (#4314)

* Fix and add tests
2017-02-09 17:41:17 +01:00
Nicolas Gotchac
867a593988 Fix Token Reg Dapp issues in Firefox (#4489)
* Fix overflow issues in Firefox (#4348)

* Fix wrong Promise inferance

* Add new Componennt for Token Images (#4496)

* Revert "Add new Componennt for Token Images (#4496)"

This reverts commit 6ffbdab891f85e4d988e3e8e96fc2c651bd68e04.
2017-02-09 17:41:01 +01:00
Robert Habermeier
33266f78d1 initial transaction queue implementation 2017-02-09 17:36:12 +01:00
GitLab Build Bot
2043123db0 [ci skip] js-precompiled 20170209-161356 2017-02-09 16:17:57 +00:00
Jaco Greeff
7a627f88cb parity.js interfaces for vaults (#4497) 2017-02-09 11:07:08 -05:00
GitLab Build Bot
c69f515597 [ci skip] js-precompiled 20170209-155632 2017-02-09 16:02:22 +00:00
Bas
8f6108fdc9 Initial Dutch translations (#4484)
* Create settings.js

* Create index.js

* Update constants.js

* Update languages.js
2017-02-09 10:48:36 -05:00
Svyatoslav Nikolsky
1534bbb7cb Fix key.meta.vault for root dir keys && read vault.meta without vault key (#4482)
* fix vault for root && read vault meta without key

* support for old vaults (wthout meta field)
2017-02-09 10:47:22 -05:00
Nikolay Volf
fea76c07f0 Arbitrary labels for extended keys (u32, H256 built-in) (#4438)
* extend derivatino to arbitrary labels

* fix review

* fix more obsolete comments

* hard test for h256

* fix using only 4 bytes from hash
2017-02-09 10:44:28 -05:00
Arkadiy Paronyan
3da3e8453b Fixing ethstore build (#4492) 2017-02-09 10:42:49 -05:00
Svyatoslav Nikolsky
f35517e213 fixed compilation (#4493) 2017-02-09 15:41:58 +01:00
GitLab Build Bot
1e47133b3f [ci skip] js-precompiled 20170209-143704 2017-02-09 14:41:10 +00:00
Nicolas Gotchac
e8175f4cca Build embedded Parity JS properly and separatly (#4426)
* Add a specific embed webpack build // output assets in JSON

* WIP Embed

* Updated Webpack

* Update exports // Webpack config

* Fix app build fail

* Fix NPm scripts

* Reduce Embed dependencies

* Fix NPM exports

* remvoe stats

* Lazy-Load worker (not to load in embed)

* PR Grumbles + Fix tests
2017-02-09 15:30:57 +01:00
Robert Habermeier
c83d27420c address grumbles 2017-02-09 15:10:14 +01:00
Robert Habermeier
bce6bf92d9 simplify code 2017-02-09 15:01:15 +01:00
Robert Habermeier
bcf0e23a4b take_weakf 2017-02-09 13:24:03 +01:00
Robert Habermeier
656c08976f Merge pull request #4487 from ethcore/snappy-static
Static link for snappy
2017-02-09 00:56:59 +01:00
arkpar
cdc09a6d8a Static link for snappy 2017-02-08 22:43:23 +01:00
Robert Habermeier
869d193d21 Merge branch 'lightrpc' into light-txq 2017-02-08 20:51:11 +01:00
Robert Habermeier
49f49194c5 use Dispatcher when starting RPCs 2017-02-08 20:44:40 +01:00
Robert Habermeier
028dbe5fe2 rename get_header to block_header by convention 2017-02-08 20:22:41 +01:00
Robert Habermeier
b3440babe3 light txq skeleton 2017-02-08 19:21:12 +01:00
Robert Habermeier
0246d5c734 Merge branch 'master' into lightrpc 2017-02-08 19:20:35 +01:00
Robert Habermeier
dd9e3f21ad silence errors temporarily 2017-02-08 19:09:52 +01:00
Denis S. Soldatov aka General-Beck
8773889532 downgrade rust (windows build) 2017-02-08 22:06:09 +04:00
Robert Habermeier
3669d17390 fix tests with loop hack 2017-02-08 17:57:18 +01:00
Robert Habermeier
2ca61151ac squash some warnings 2017-02-08 16:59:04 +01:00
Robert Habermeier
5223e25aa6 use generic dispatcher everywhere, squash errors 2017-02-08 16:55:06 +01:00
Robert Habermeier
e73ea80954 dispatcher abstraction, port most things to it 2017-02-08 15:36:53 +01:00
GitLab Build Bot
68b8724440 [ci skip] js-precompiled 20170208-134350 2017-02-08 13:49:08 +00:00
Jaco Greeff
0b3f97f792 Work with string numbers in contract (Fixes #4472) (#4478) 2017-02-08 08:38:27 -05:00
Svyatoslav Nikolsky
a92bf65181 parity_getVaultMeta && parity_setVaultMeta (#4475) 2017-02-08 07:53:39 -05:00
keorn
b0248cad0b sort corpus when hitting genesis (#4470) 2017-02-08 08:55:56 +01:00
Tomasz Drwięga
5fe993f658 Fixing CORS headers for parity.web3.site (#4461) 2017-02-07 18:11:42 -05:00
Robert Habermeier
4bb45c4f64 use new error-less on_demand 2017-02-07 23:25:17 +01:00
Arkadiy Paronyan
0e8b96a268 Update Dockerfile 2017-02-07 22:15:01 +01:00
Arkadiy Paronyan
b171076215 Update Dockerfile 2017-02-07 22:14:34 +01:00
Arkadiy Paronyan
86dbd50957 Update README.md 2017-02-07 22:13:52 +01:00
Gav Wood
810ec3558a Make signing compatible with geth. (#4468) 2017-02-07 22:09:59 +01:00
GitLab Build Bot
428e8361ce [ci skip] js-precompiled 20170207-191009 2017-02-07 19:16:17 +00:00
Jaco Greeff
2411e674eb Fixing histogram again (#4464) (#4467) 2017-02-07 19:55:58 +01:00
Jaco Greeff
7bca4aa24f Handle registry not found errors (Fixes #4463) (#4465) 2017-02-07 19:42:21 +01:00
Robert Habermeier
1fa5b07321 Merge branch 'master' into lightrpc 2017-02-07 17:13:18 +01:00
Robert Habermeier
6c06a1a5ec expunge error types from OnDemand 2017-02-07 17:06:22 +01:00
Robert Habermeier
04fe72face reassign requests indefinitely 2017-02-07 16:49:14 +01:00
Robert Habermeier
b37124991c enforce validity of on_demand requests 2017-02-07 16:13:56 +01:00
Robert Habermeier
9524ebbff1 on-demand contract code request 2017-02-07 15:29:38 +01:00
Robert Habermeier
d253a9c864 uncle and tx count RPCs 2017-02-07 14:45:48 +01:00
GitLab Build Bot
d341b49bad [ci skip] js-precompiled 20170207-120734 2017-02-07 12:11:54 +00:00
Jaco Greeff
83cf5fc068 Fix Portal scrolling getting stuck (#4455)
* Fix Portal scrolling getting stuck

* DappCard container flex

* Container height to 100%
2017-02-07 13:02:19 +01:00
GitLab Build Bot
1d774835de [ci skip] js-precompiled 20170207-075234 2017-02-07 07:56:44 +00:00
Jaco Greeff
66df4f6410 Fix AccountCard stretch to 100% (#4450) 2017-02-07 08:46:17 +01:00
Robert Habermeier
66692bc0e2 fast paths for block and receipts on_demand 2017-02-06 18:28:13 +01:00
Robert Habermeier
4172a5369c Include total difficulty in CHTs and hide implementation details from consumers (#4428)
* CHT builder and prover

* use CHT abstraction in provider

* hide CHT internals from header chain

* fix itertools conflict by updating all to 0.5

* cht proof checker, use it in on_demand
2017-02-06 17:21:35 +01:00
Robert Habermeier
b32cb7a97d make total difficulty field optional 2017-02-06 15:28:16 +01:00
Maciej Hirsz
127baed385 Merge pull request #4362 from ethcore/mh-tendermintrlpfix
Fix RLP encoding for types recursively calling `RlpStream::append`
2017-02-06 11:13:40 +01:00
GitLab Build Bot
d7e87dbe19 [ci skip] js-precompiled 20170206-083224 2017-02-06 08:36:28 +00:00
Tomasz Drwięga
4ac91b3284 Open popup without attempting inline (#4440)
* Open popup without attempting inline

* Cater for all .web3.site addresses
2017-02-06 09:26:11 +01:00
Svyatoslav Nikolsky
2f340a547a Vaults RPCs (#4366)
* vaults RPCs

* vault.password != vault_account.password

* moved vault RPCs to parityAccounts NS

* parity_listVaults + parity_listOpenedVaults
2017-02-05 10:17:56 -05:00
Nikolay Volf
e257e4e3bd Ethkey - extended keys (#4377)
* data structures initial

* hard derivation

* tabs, docs

* more docs

* soft private derivation

* public derivation

* finalize api, fix warnings

* use simple new()

* keypair api

* bump byteorder

* doc tweaks

* remove heavyness from tests

* added test vector infrastructure and examples

* initialization from seed to key pair

* add comment about panic
2017-02-05 10:17:03 -05:00
Robert Habermeier
def47b4042 make light module public 2017-02-05 15:22:15 +01:00
GitLab Build Bot
f646ffbe61 [ci skip] js-precompiled 20170205-101133 2017-02-05 10:15:32 +00:00
Sebastian Kippe
bcd3cd8467 Use secure websocket from HTTPS clients (#4436)
Currently, the unsecure `ws://` scheme is hardcoded. With this change,
the scheme will dynamically change to the secure `wss://` when the
frontend is requested from an HTTPS origin.
2017-02-05 11:04:17 +01:00
Denis S. Soldatov aka General-Beck
4fa1717a99 Update Dockerfile
remove --verbose from hub build
2017-02-05 02:56:19 +04:00
Denis S. Soldatov aka General-Beck
c5cc5e30ec Update Dockerfile
fix build for docker hub
[ci skip]
2017-02-05 02:39:22 +04:00
Robert Habermeier
7c9064c856 Merge branch 'master' into lightrpc 2017-02-04 22:30:20 +01:00
Robert Habermeier
1e123f1b4d handle TD info in RPC layer 2017-02-04 22:22:57 +01:00
Tomasz Drwięga
248cd5e036 RPC middleware: Informant & Client.keep_alive (#4384)
* Adding RPC informant structs

* RPC informant

* Middleware counting RPC requests

* Moving client keep_alive to middleware
2017-02-04 22:18:19 +01:00
Robert Habermeier
3a7248b964 cht proof checker, use it in on_demand 2017-02-04 17:48:02 +01:00
Robert Habermeier
197695414e correct ready transaction condition 2017-02-04 17:19:39 +01:00
Robert Habermeier
484b93abdc Merge branch 'cht-td' into lightrpc 2017-02-04 17:14:47 +01:00
Robert Habermeier
ca11138ce8 fix itertools conflict by updating all to 0.5 2017-02-04 17:07:39 +01:00
GitLab Build Bot
d7b937fe88 [ci skip] js-precompiled 20170204-152807 2017-02-04 15:32:05 +00:00
Gav Wood
4553f517ce Fix eth_sign/parity_postSign (#4432)
* Fix dispatch for signing.

* Remove console log

* Fix signing & tests.
2017-02-04 16:00:28 +01:00
Jaco Greeff
b4c24d5ab3 Web view with web3.site support (#4313)
* Web-domain based routing

* Support base32-encoded urls

* Proper support for non-domain based routing

* Handling long domain names

* Switching to web3.site

* Encoding for *.web3.site urls

* Add DappUrlInput component

* Update Web views with store

* Update spec description

* Update spec description

* edited url does not allow in-place store edits

* Fixing dapps access on 127.0.0.1:8180

* Use /web/<hash> urls for iframe

* Redirecting to parity.web3.site

* Disabling the redirection
2017-02-04 09:52:14 +01:00
GitLab Build Bot
c9d38cac6e [ci skip] js-precompiled 20170203-221154 2017-02-03 22:18:13 +00:00
Jaco Greeff
c7f5ee481d Extend Portal component with title, buttons & steps (as per Modal) (#4392)
* Allow Portal to take title & buttons props

* Fix tests

* Portal consistent in screen center

* Allow hiding of Close (e.g. FirstRun usage)

* Set overflow style on body based on open

* Don't lock scroll for child popups (overlaps)

* Override buttons to be white

* Expose ~/ui/Modal/Title as re-usable component

* Use ~/ui/Title to render the Title

* Update tests

* Added a portal example with buttons and steps

* Address PR comments

* Fix AddressSelect with new container withing container

* Move legend to "buttons"

* AddressSelect extra padding
2017-02-03 22:44:43 +01:00
GitLab Build Bot
a68ca7444e [ci skip] js-precompiled 20170203-191721 2017-02-03 19:22:26 +00:00
GitLab Build Bot
a39324632d [ci skip] js-precompiled 20170203-190642 2017-02-03 19:12:35 +00:00
Jaco Greeff
f48d8b0ef6 Extension installation overlay (#4423)
* Extension installation overlay

* Pr gumbles

* Spelling

* Update Chrome URL
2017-02-03 20:01:49 +01:00
Jaco Greeff
cd4d489b57 Add block & timestamp conditions to Signer (#4411)
* WIP

* WIP (with lint)

* Update ui/RadioButtons

* transaction.condition

* Date & Time selection in-place

* Swap to condition-only

* Fix tests, align naming

* Pick error properly from validation

* Update tests

* condition: time sent withough ms

* Format numbers as base-10

* override popup styles (zIndex)

* Pass condition to signer

* Update expectation (failing test typo)

* Adjust min/max height for expanded bar

* Fix address display

* Fix name display

* Number inputs for gas/gasPrice/blockNumber

* Default blockNumber to 1 (align with min setting)

* Update tests with min value

* Add Block Number

* Fix failing tests (after blockNumber intro)
2017-02-03 20:01:09 +01:00
Robert Habermeier
02142e3a57 Merge branch 'master' into cht-td 2017-02-03 19:56:52 +01:00
Robert Habermeier
e874df5155 hide CHT internals from header chain 2017-02-03 19:50:23 +01:00
Arkadiy Paronyan
312aa72747 Transaction timestamp condition (#4419)
* Transaction timestamp condtiion

* Updated docs

* Updated docs

* Check agains last block timestamp
2017-02-03 19:32:10 +01:00
Robert Habermeier
1baa824d1e use CHT abstraction in provider 2017-02-03 18:47:03 +01:00
Robert Habermeier
fc8e9e39ec CHT builder and prover 2017-02-03 18:38:28 +01:00
Robert Habermeier
e460421deb generic basic account fetcher, nonce RPC 2017-02-03 17:53:48 +01:00
Robert Habermeier
024e69138a get it compiling 2017-02-03 17:41:25 +01:00
Robert Habermeier
9328067eac start eth RPC API for light client 2017-02-03 16:20:43 +01:00
Robert Habermeier
1dc957e3a5 allow genesis block to be latest 2017-02-03 16:11:09 +01:00
Robert Habermeier
83de16da88 use encoded::Header in HeaderChain 2017-02-03 15:32:22 +01:00
GitLab Build Bot
85e9091b29 [ci skip] js-precompiled 20170203-133154 2017-02-03 13:36:20 +00:00
Jaco Greeff
f48a2df6e5 Poll for defaultAccount to update dapp & overlay subscriptions (#4417)
* Poll for defaultAccount (Fixes #4413)

* Fix nextTimeout on catch

* Store timers

* Re-enable default updates on change detection
2017-02-03 14:24:23 +01:00
GitLab Build Bot
d1728cca28 [ci skip] js-precompiled 20170203-131026 2017-02-03 13:16:08 +00:00
Tomasz Drwięga
853aae2b92 Validate dapps accounts with address book (#4407)
* Parametrize address book

* Improving types in account_provider

* Filtering dapps_accounts

* Fixing RPC tests
2017-02-03 13:56:47 +01:00
Jaco Greeff
acf41d6f27 Dapps use defaultAccount instead of own selectors (#4386)
* Remove account selection from GitHubHint

* Fix naming

* Update to match BasicCoin

* BasicCoin defaultAddress

* typo

* method registry without selector

* Update after manual tests

* IdentityIcon for localtx

* Fix non-secure personal subscriptions

* Query defaultAccount for non-secure apps on send
2017-02-03 13:54:53 +01:00
Denis S. Soldatov aka General-Beck
3af45c6ad9 update depends
Depends: libssl1.0.0 (>=1.0.0)
[ci skip]
2017-02-03 14:47:29 +04:00
Denis S. Soldatov aka General-Beck
0bf9f6c444 change depends
libssl (>=1.0.0)
[ci skip]
2017-02-03 13:17:10 +04:00
keorn
76c39e3e66 Fix lock and rename tracing (#4403)
* tracing, timeouts

* remove env_logger
2017-02-02 19:11:43 +01:00
Tomasz Drwięga
015425d447 Restarting fetch client every now and then (#4399) 2017-02-02 19:11:28 +01:00
GitLab Build Bot
4961422523 [ci skip] js-precompiled 20170202-163010 2017-02-02 16:33:24 +00:00
Maciej Hirsz
1b1d3a297c Perform a sync between Rust and JS when generating markdown instead of in spec tests (#4408)
* Sync RPC on npm run build:markdown

* Helpers

* Added GPL headers
2017-02-02 17:24:15 +01:00
Jannis Redmann
d5aa139e46 registry dapp: make lookup use lower case (#4409) 2017-02-02 17:23:58 +01:00
Robert Habermeier
3b9ac7648c with_context on LightSync 2017-02-02 17:02:46 +01:00
GitLab Build Bot
a0ffb3df20 [ci skip] js-precompiled 20170202-150718 2017-02-02 15:11:11 +00:00
Jaco Greeff
535ebb1f2f Available Dapp selection alignment with Permissions (Portal) (#4374)
* Manage default accounts

* Portal

* Portal

* Allow Portal to be used in as both top-level and popover

* modal/popover variable naming

* Move to Portal

* export Portal in ~/ui

* WIP

* Tags handle empty values

* Export AccountCard in ~/ui

* Allow ETH-only & zero display

* Use ui/Balance for balance display

* Add tests for Balance & Tags component availability

* WIP

* Default overlay display to block (not flex)

* Revert block

* WIP

* Add className, optional handlers only

* WIP

* Properly handle optional onKeyDown

* Selection updated

* Align margins

* Remove old code

* Remove debug logging

* TransitionGroup for animations

* No anim

* Cleanups

* Revert addons removal

* Fix tests

* WIP

* Add onClick to Container

* Create ui/DappCard component

* WIP

* Pass dummy displayApps

* Rename DappsVisible back to AddDapps (easier git diff)

* Rename CSS

* Fix tests after merge
2017-02-02 16:02:45 +01:00
Jannis Redmann
1547af191b more permissive verification process (#4317)
* style fixes 

* verification: find last request

* verification: don't request again if same input

* didRequestWithSameValues -> shallRequestAgain

* bugfixes 🐛, update SMS verification ABI

* verification: hasRequested -> accountHasRequested

* verification: hasIsVerified -> accountIsVerified

* verification: shallRequestAgain -> shallSkipRequest

* verification: show if unable to send req

* email verification: check if email already used

* address style grumbles 🎨
2017-02-02 16:01:37 +01:00
Robert Habermeier
fd44dcda15 rename LES protocol ID 2017-02-02 15:22:38 +01:00
GitLab Build Bot
8e82b2f631 [ci skip] js-precompiled 20170202-125420 2017-02-02 12:57:45 +00:00
Jaco Greeff
12bd207e53 Fix ParityBar account selection overflows (#4405) 2017-02-02 13:30:36 +01:00
arkpar
2b26f0cc28 Fixing yaml script 2017-02-02 13:24:44 +01:00
Arkadiy Paronyan
5817acb582 Mac binaries signing (#4397) 2017-02-02 11:55:20 +01:00
Denis S. Soldatov aka General-Beck
0a28b167a2 Merge pull request #4398 from ethcore/revert-4381-js-ci-skip
Revert "remove [ci skip]"
2017-02-02 13:47:17 +04:00
Denis S. Soldatov aka General-Beck
bc704283a4 Revert "remove [ci skip]" 2017-02-02 13:35:34 +04:00
GitLab Build Bot
3d4545fa91 js-precompiled 20170201-231534 2017-02-01 23:19:04 +00:00
GitLab Build Bot
85f75d39b3 js-precompiled 20170201-225215 2017-02-01 22:55:51 +00:00
GitLab Build Bot
52f40042b0 js-precompiled 20170201-222816 2017-02-01 22:31:43 +00:00
GitLab Build Bot
b8c0d657b4 js-precompiled 20170201-220650 2017-02-01 22:10:13 +00:00
GitLab Build Bot
ffb5ddc08b js-precompiled 20170201-214512 2017-02-01 21:48:38 +00:00
GitLab Build Bot
35e267c4fe js-precompiled 20170201-212208 2017-02-01 21:25:32 +00:00
GitLab Build Bot
43baa461b0 js-precompiled 20170201-205737 2017-02-01 21:01:07 +00:00
GitLab Build Bot
7fae67785c js-precompiled 20170201-203408 2017-02-01 20:37:33 +00:00
GitLab Build Bot
09e933a450 js-precompiled 20170201-200611 2017-02-01 20:09:34 +00:00
GitLab Build Bot
71190f6068 js-precompiled 20170201-194205 2017-02-01 19:45:25 +00:00
Jaco Greeff
bd0891c93c Typo, fixes #4271 (#4391) 2017-02-01 20:36:05 +01:00
GitLab Build Bot
2f299d20e8 js-precompiled 20170201-185153 2017-02-01 18:55:16 +00:00
GitLab Build Bot
bc73416e45 js-precompiled 20170201-182335 2017-02-01 18:27:32 +00:00
GitLab Build Bot
22f0d648c7 js-precompiled 20170201-174728 2017-02-01 17:50:56 +00:00
GitLab Build Bot
6b77d10cac js-precompiled 20170201-172305 2017-02-01 17:26:30 +00:00
GitLab Build Bot
12c1434f09 js-precompiled 20170201-165339 2017-02-01 16:58:21 +00:00
GitLab Build Bot
653bb112bf js-precompiled 20170201-162404 2017-02-01 16:27:37 +00:00
Tomasz Drwięga
4462c18690 Fixing invalid address in docs (#4388) 2017-02-01 17:14:16 +01:00
arkpar
dbafbc29be Killed travis and appveyor 2017-02-01 17:06:44 +01:00
Denis S. Soldatov aka General-Beck
1a8ce3e1f3 Merge pull request #4381 from ethcore/js-ci-skip
remove [ci skip]
2017-02-01 19:59:26 +04:00
GitLab Build Bot
8e35b2c39a [ci skip] js-precompiled 20170201-152542 2017-02-01 15:29:43 +00:00
Tomasz Drwięga
fb7c6c2867 Fixing estimate gas in case histogram is not available (#4387) 2017-02-01 16:18:22 +01:00
Jaco Greeff
3bdd32f9ec Default Account selector in Signer overlay (#4375)
* Manage default accounts

* Portal

* Portal

* Allow Portal to be used in as both top-level and popover

* modal/popover variable naming

* Move to Portal

* export Portal in ~/ui

* WIP

* Tags handle empty values

* Export AccountCard in ~/ui

* Allow ETH-only & zero display

* Use ui/Balance for balance display

* Add tests for Balance & Tags component availability

* WIP

* Default overlay display to block (not flex)

* Revert block

* WIP

* Add className, optional handlers only

* WIP

* Properly handle optional onKeyDown

* Selection updated

* Align margins

* Remove old code

* Remove debug logging

* TransitionGroup for animations

* No anim

* Cleanups

* Revert addons removal

* Fix tests

* defaultAccount

* Selection actually selects

* WIP tests

* tests WIP

* Expand tests

* Container for scrollbars

* Add parity_defaultAccount RPC (with subscription)

* Add jsonrpc interface
2017-02-01 16:18:11 +01:00
GitLab Build Bot
a414729de9 [ci skip] js-precompiled 20170201-142626 2017-02-01 14:29:49 +00:00
Tomasz Drwięga
5526a3a228 Fixing web3 in console (#4382) 2017-02-01 15:19:23 +01:00
GitLab Build Bot
f4a761edb7 [ci skip] js-precompiled 20170201-140028 2017-02-01 14:05:19 +00:00
Jaco Greeff
04fb2afba1 Add parity_defaultAccount RPC (with subscription) (#4383)
* Add parity_defaultAccount RPC (with subscription)

* Add jsonrpc interface
2017-02-01 14:52:15 +01:00
Denis S. Soldatov aka General-Beck
0a7aef1872 remove [ci skip]
remove tag [ci skip] for `js-precompiled`
2017-02-01 15:09:13 +04:00
Maciej Hirsz
ed09a76c91 Full JSON-RPC docs + sync tests. (#4335)
* Extended Markdown generator

* Synced and extended all JSON-RPC interfaces

* Fix linter errors

* Format `parity_listAccounts` output in API

* typo

* Check if interfaces are synced in JS spec tests

* Fixing missing interface errors

* Better #[rpc] attribute parsing

* Fixed RPC JS spec tests

* More examples

* Refactored how dummy data appears in examples

* Complete trace docs!

* fix typo

* Less copy-paste

* All the docs!

* Fix differences between CallRequest and TransactionRequest

* Fix differences between CallRequest and TransactionRequest

* Missing examples

* Grumble fixes
2017-02-01 10:58:09 +01:00
maciejhirsz
687ae4d7fa Removed fixed TODO 2017-02-01 10:38:01 +01:00
Denis S. Soldatov aka General-Beck
b2ecf1c5a4 Update gitlab-ci.yml
try to add `nightly` tag
2017-01-31 20:39:11 +04:00
GitLab Build Bot
867ca0f96c [ci skip] js-precompiled 20170131-163220 2017-01-31 16:35:42 +00:00
Jannis Redmann
5217469e85 expose util as Api.util (#4372) 2017-01-31 17:25:42 +01:00
GitLab Build Bot
f1995b3fb0 [ci skip] js-precompiled 20170131-161018 2017-01-31 16:13:39 +00:00
Jaco Greeff
a935a04449 Dapp Account Selection & Defaults (#4355)
* Manage default accounts

* Portal

* Portal

* Allow Portal to be used in as both top-level and popover

* modal/popover variable naming

* Move to Portal

* export Portal in ~/ui

* WIP

* Tags handle empty values

* Export AccountCard in ~/ui

* Allow ETH-only & zero display

* Use ui/Balance for balance display

* Add tests for Balance & Tags component availability

* WIP

* Default overlay display to block (not flex)

* Revert block

* WIP

* Add className, optional handlers only

* WIP

* Properly handle optional onKeyDown

* Selection updated

* Align margins

* Remove old code

* Remove debug logging

* TransitionGroup for animations

* No anim

* Cleanups

* Revert addons removal

* Fix tests

* Pr gumbles
2017-01-31 17:04:41 +01:00
GitLab Build Bot
12aadc3e2a [ci skip] js-precompiled 20170131-155752 2017-01-31 16:01:16 +00:00
Jaco Greeff
d3ee15c6fb Publish @parity/jsonrpc (#4365)
* Add npm/jsonrpc

* Allow ci:build:jsonrpc

* Publish @parity/jsonrpc
2017-01-31 16:52:48 +01:00
GitLab Build Bot
983a0e3d0b [ci skip] js-precompiled 20170131-132131 2017-01-31 13:24:45 +00:00
Gav Wood
75ecabbd28 Fix signing (#4363)
* Fix signing.

* Fix linting.

* Fix linting.

* Address grumble.
2017-01-31 14:15:08 +01:00
GitLab Build Bot
27d00f6eca [ci skip] js-precompiled 20170131-113939 2017-01-31 11:42:56 +00:00
Tomasz Drwięga
aaed67cfaf Fixing embedded bar not closing in chrome extension (#4367) 2017-01-31 12:34:55 +01:00
GitLab Build Bot
b864d0f6ec [ci skip] js-precompiled 20170131-112711 2017-01-31 11:30:36 +00:00
Jaco Greeff
223c474487 Update AccountCard for re-use (#4350)
* Tags handle empty values

* Export AccountCard in ~/ui

* Allow ETH-only & zero display

* Use ui/Balance for balance display

* Add tests for Balance & Tags component availability

* Add className, optional handlers only

* Remove debug logging

* AccountCard UI update
2017-01-31 12:21:50 +01:00
GitLab Build Bot
ee906467ad [ci skip] js-precompiled 20170131-104521 2017-01-31 10:50:22 +00:00
Nicolas Gotchac
b3a23480de Add proper event listener to Portal (#4359) 2017-01-31 11:38:53 +01:00
Tomasz Drwięga
9fb2be8f2b Optional from field in Transaction Requests (#4332)
* Infering default account when sending transactions if not provided

* Fixing test

* Fixing tests code

* Fixes.

* More fixes.

* Final fix.
2017-01-30 21:08:36 +01:00
maciejhirsz
681fa10d4b Tests checking item sizes for changed types 2017-01-30 20:01:32 +01:00
maciejhirsz
6795068ea4 Fixed other types 2017-01-30 19:13:35 +01:00
Nikolay Volf
4a404a6f33 Update README.md (#4361) 2017-01-30 18:47:12 +01:00
maciejhirsz
5fe54901e7 Fix Step encoding 2017-01-30 18:13:14 +01:00
Robert Habermeier
5b2b4717f6 fix earliest_era on empty db (#4316) 2017-01-30 17:20:41 +01:00
GitLab Build Bot
00c4c71176 [ci skip] js-precompiled 20170130-161417 2017-01-30 16:17:36 +00:00
Arkadiy Paronyan
43cc4ea13d Fixed deadlock in external_url (#4354) 2017-01-30 17:08:21 +01:00
Jaco Greeff
15ffd9a09c Allow Portal to be used as top-level modal (#4338)
* Portal

* Allow Portal to be used in as both top-level and popover

* modal/popover variable naming

* export Portal in ~/ui

* Properly handle optional onKeyDown

* Add simple Playground Example
2017-01-30 17:08:08 +01:00
GitLab Build Bot
4e7b8652c8 [ci skip] js-precompiled 20170130-142718 2017-01-30 14:30:42 +00:00
Gav Wood
ca196d683e Fix postsign (#4347)
* Fix whitespace.

* Fix post sign.

* Fix message.

* Fix tests.

* Rest of the problems.

* All hail the linter and its omniscience.

* ...and its divine omniscience.

* Grumbles and wording.
2017-01-30 15:08:02 +01:00
GitLab Build Bot
5a18ed7c3e [ci skip] js-precompiled 20170130-121240 2017-01-30 12:16:02 +00:00
Tomasz Drwięga
3fb445e198 Renaming signAndSendTransaction to sendTransaction (#4351) 2017-01-30 12:49:08 +01:00
GitLab Build Bot
f627bef08b [ci skip] js-precompiled 20170130-110455 2017-01-30 11:08:16 +00:00
Jaco Greeff
c0468faf58 Add api.util.encodeMethodCall to parity.js (#4330)
* Add api.util.encodeMethodCall

* Update spec description path, strip hex

* Remove options, add encodeMethodCall(name, inputs) signature

* Simplify interface with types-only inputs

* Add abiEncode & abiDecode functions
2017-01-30 11:57:55 +01:00
Svyatoslav Nikolsky
9ac4d83ca3 Initial commit for vaults (#4312)
* initial commit for vaults

* fixed TODO

* public docs

* vault_file.json now contains enc(pwd hash)

* removed doc
2017-01-30 13:44:09 +03:00
Tomasz Drwięga
bf1e7ecfcb Returning default account as coinbase + allow altering sender in signer (#4323)
* Returning first address as coinbase

* Allowing sender alteration in signer

* Adding default account RPC
2017-01-30 11:10:58 +01:00
Tomasz Drwięga
cf348dae60 Persistent tracking of dapps (#4302)
* Tests for RPC

* Extracting dapp_id from Origin and x-parity-origin

* Separate type for DappId

* Persistent tracking of recent dapps

* Fixing tests

* Exposing dapp timestamps

* Fixing import to work on stable

* Fixing test again
2017-01-30 10:59:46 +01:00
Tomasz Drwięga
47e1c5e2f1 Exposing all RPCs over dapps port as CLI option (#4346)
* Exposing all RPC over dapps port as CLI option

* Fix test.
2017-01-30 10:46:50 +01:00
Arkadiy Paronyan
089da2a24a New macOS App (#4345) 2017-01-29 20:22:45 +01:00
GitLab Build Bot
b4dab67f83 [ci skip] js-precompiled 20170127-210258 2017-01-27 21:06:16 +00:00
Jaco Greeff
aef699ebf2 Display QrCode for accounts, addresses & contracts (#4329)
* Display QrCode for accounts, addresses & contracts

* Default size 4

* Fix layouts
2017-01-27 21:55:20 +01:00
GitLab Build Bot
5246d51a1a [ci skip] js-precompiled 20170127-143849 2017-01-27 14:42:01 +00:00
Jaco Greeff
cb8fea3b5a Add QrCode & Copy to ShapeShift (#4322)
* Extract CopyIcon to ~/ui/Icons

* Add copy & QrCode address

* Default size 4

* Add bitcoin: link

* use protocol links applicable to coin exchanged

* Remove .only
2017-01-27 15:33:02 +01:00
GitLab Build Bot
e81787da34 [ci skip] js-precompiled 20170127-134933 2017-01-27 13:53:09 +00:00
Jaco Greeff
076c8b9de7 parity.js api.parity.chainStatus should handle { blockGap: null } (#4327)
* Add tests for null blockGap values

* Handle null blockGap values
2017-01-27 14:42:22 +01:00
Jaco Greeff
1940809dd4 DeleteAccount & LoadContract modal updates (#4320)
* i18n & tests for DeleteAccount

* i18n & tests for LoadContract
2017-01-27 14:42:06 +01:00
Jaco Greeff
b51b7849dc Split Tab from TabBar (#4318)
* Tab split (WIP)

* Split Tab component
2017-01-27 14:41:41 +01:00
GitLab Build Bot
da032e950f [ci skip] js-precompiled 20170126-165810 2017-01-26 17:01:54 +00:00
Jaco Greeff
b74f2d8831 Contracts interface expansion (#4307)
* Add lookupMeta & tests

* Add getEntry & tests

* Formatting

* Remove unneeded .then(console.log)
2017-01-26 17:51:35 +01:00
GitLab Build Bot
f5a73ff4c8 [ci skip] js-precompiled 20170126-164625 2017-01-26 16:49:41 +00:00
Jaco Greeff
7f3b1bd31e HistoryStore for tracking relevant routes (#4305)
* HistoryStore for tracking relevant routes

* Default route is still /accounts

* Fix copyright date-merge issue
2017-01-26 17:37:52 +01:00
GitLab Build Bot
3e2d95b272 [ci skip] js-precompiled 20170126-152421 2017-01-26 15:28:00 +00:00
Jaco Greeff
5ad50ab1e3 Split Dapp icon into ui/DappIcon (#4308) 2017-01-26 16:17:30 +01:00
Nicolas Gotchac
e19c28bb8e Add a Playground for the UI Components (#4301)
* Playground // WIP

* Linting

* Add Examples with code

* CSS Linting

* Linting

* Add Connected Currency Symbol

* 2015-2017

* 2015-2017

* 2015-2017

* 2015-2017

* 2015-2017

* 2015-2017

* 2015-2017

* Added `renderSymbol` tests

* PR grumbles

* Add Eth and Btc QRCode examples

* 2015-2017

* Add tests for playground

* Fixing tests
2017-01-26 16:15:49 +01:00
Jaco Greeff
2ac7655355 Update CreateWallet with FormattedMessage (#4298)
* Allow FormattedMessage as hint & label

* tests for basic rendering

* convert component messages

* Typo

* id typos (insubstantial, but annoying)

* 2015-2017

* 2015-2017

* 2015-2017

* 2015-2017

* 2015-2017
2017-01-26 16:11:04 +01:00
Denis S. Soldatov aka General-Beck
82a7a17e6e Update README.MD
Remove Travis CI badge
2017-01-26 19:06:48 +04:00
Denis S. Soldatov aka General-Beck
b5f46f3976 Update README.MD
Update Gitlab CI badge
2017-01-26 17:03:37 +04:00
GitLab Build Bot
79481b8ab5 [ci skip] js-precompiled 20170126-082319 2017-01-26 08:26:31 +00:00
Jaco Greeff
63e7379d5b Update copyright dates (#4306) 2017-01-26 09:17:38 +01:00
Arkadiy Paronyan
c012dfc3ef EIP-98: Optional transaction state root (#4296)
* EIP98: Optional receipt state root

* Use if-else

* Fixing tests
2017-01-25 20:22:48 +01:00
Denis S. Soldatov aka General-Beck
f5a4b55dae Update gitlab-ci
Fix CI lint errors
2017-01-25 23:01:28 +04:00
Denis S. Soldatov aka General-Beck
c03be11303 Update gitlab-ci
[ci skip] Add `docker` build stage for automated build tagged images and push it to hub.docker.com
2017-01-25 22:48:36 +04:00
Denis S. Soldatov aka General-Beck
0fe6b40e68 Dockerfile for docker hub
[ci skip] automated build on docker hub. tags only
2017-01-25 22:25:52 +04:00
GitLab Build Bot
0c913b45b2 [ci skip] js-precompiled 20170125-181524 2017-01-25 18:18:28 +00:00
Gav Wood
8404edb656 Fix whitespace (#4299)
* Fix whitespace.

* Update copyright years/owner.

* Push release only for tags.
2017-01-25 18:51:41 +01:00
Denis S. Soldatov aka General-Beck
e672e6c5d6 Update gitlab-ci
[ci-skip] Remove `triggers` from stage `push-release`
2017-01-25 19:03:28 +04:00
GitLab Build Bot
33b02febed [ci skip] js-precompiled 20170125-132524 2017-01-25 13:28:44 +00:00
Gav Wood
3125e2d2cc Attempt to fix console. (#4294)
* Attempt to fix console.

* Fixing couple of possible exceptions
2017-01-25 14:10:35 +01:00
GitLab Build Bot
afa1edbeee [ci skip] js-precompiled 20170125-112240 2017-01-25 11:25:48 +00:00
Jaco Greeff
380c0773d1 ui/SectionList component (#4292)
* array chunking utility

* add SectionList component

* Add TODOs to indicate possible future work

* Add missing overlay style (as used in dapps at present)
2017-01-25 12:16:04 +01:00
Nikolay Volf
1acc8031ce Stratum up (#4233)
* flush work

* flush work

* flush work

* flush work

* generalized notifiers

* general setup with modules

* general setup with modules

* all binded

* catch up with master

* all dependencies injected

* stratum another up

* tcp update

* submitwork routine

* finalize & fix warnings

* merge bugs, review fixes

* merge bugs, review fixes

* new cli mess cleanup

* usage.txt swap

* flush work

* cli adopt

* compilation with new cli sorted

* subid space in json

* serialization issues

* grumbles addressed

* more grumbles

* remove last_work note for now

* fix compilation

* fix tests

* merge bugs

* no obliged ipc

* moving notifiers

* no optional feature now

* refactored again

* working on tests

* refactor to new tcp/ip

* stratum lib ok

* ethcore crate ok

* wip on tests

* final test working

* fix warnings, \n-terminated response

* new compatibility

* re-pushing work once anybody submitted

* various review and general fixes

* reviewe fixes

* remove redundant notifier

* one symbol -> huge bug

* ensure write lock isn't held when calling handlers

* extern declarations moved

* options to stratum mod, SocketAddr strongly-typed instantiation

* Minor style fix.

* Whitespace and phrasing

* Whitespace
2017-01-25 11:03:36 +01:00
Tomasz Drwięga
67284cc1a2 Logging transaction duration (#4297)
* Logging transaction duration

* Printing time also on heavy transactions [ci:skip]
2017-01-25 11:02:03 +01:00
GitLab Build Bot
5e18daf29e [ci skip] js-precompiled 20170124-211147 2017-01-24 21:15:10 +00:00
keorn
e9251a9325 Generic engine utilities (#4258)
* move modules up

* make structs generic

* reound to view and tests

* fix
2017-01-24 22:03:03 +01:00
Maciej Hirsz
a58fad06a7 JSON-RPC interfaces with documentation (#4276)
* Extended Markdown generator

* Synced and extended all JSON-RPC interfaces

* Fix linter errors

* Format `parity_listAccounts` output in API

* typo
2017-01-24 22:02:52 +01:00
keorn
c460aec646 Dont decode seal fields (#4263)
* dont decode seal

* add get_block test
2017-01-24 21:57:29 +01:00
GitLab Build Bot
b0e7cd5c9d [ci skip] js-precompiled 20170124-194135 2017-01-24 19:44:54 +00:00
Jaco Greeff
75c2588920 Skip misbehaving test until properly fixed (#4283) 2017-01-24 19:35:01 +00:00
Tomasz Drwięga
fa02b3ae54 Additional logs for own transactions (#4278) 2017-01-24 19:18:52 +00:00
Robert Habermeier
b739704902 ensure write lock isn't held when calling handlers (#4285) 2017-01-24 19:15:59 +00:00
Gav Wood
73b67da3cf No need for geth compat by default. 2017-01-24 20:11:42 +01:00
GitLab Build Bot
7b7b552ed4 [ci skip] js-precompiled 20170124-162740 2017-01-24 16:30:59 +00:00
Jaco Greeff
155bbc328f Feature selector (#4074)
* WIP

* ParityBar verification

* import from index.js

* i18n expansion & tests

* Features component

* Adapt language selector to use features

* Add features to settings view

* typo

* Convert logging

* Fix earlier merge issues resulting in test failures

* Lint failure fixes (new rules)

* Fix additional listing rules

* Re-add FormattedMessage (missing after merge), fix tests

* Fix loader overrides

* grumble: split item rendering (& test)

* grumble: allow enable/disable while testing (default on)

* grumble: move LanguageSelector below Features

* grumble: don't pass visiblity prop (& update tests)

* grumble: missing observable (onClick misbehaving)

* grumble: don't reset to defaults per session

* Fix to single store instance
2017-01-24 17:20:10 +01:00
GitLab Build Bot
5b2dd8deb2 [ci skip] js-precompiled 20170124-152454 2017-01-24 15:28:00 +00:00
Jaco Greeff
06433033d9 AccountCreate updates (#3988)
* Add esjify for mocha + ejs

* First pass through, intl + basic smoketests

* Create store

* Update for renames

* Pass store around

* createType into store

* Move stage into store

* Update labels

* Define stages

* address into store

* Add @observer

* Retrieve name from store

* Store phrase in store

* isWindowsPhrase into store

* gethAddresses to store

* Store manages geth addresses

* passwordHint into store

* Fix build

* rawKey into store

* import json files

* name set direct from component

* No parent change callbacks

* canCreate from store

* createAccounts into store

* expand create tests

* Windows phrase testcases

* Properly bind newError

* FirstRun use of new CreateAccount

* Add fix & test for selectedAddress match

* Call into store from props

* onChangeIdentity fix & test

* Phrase set fix & test

* RecoveryPhrase tested manually (issues addressed via tests)

* Hex import manual test (& tests added for errors)

* New eslint update fixes

* grumble: set default type from store (with test)

* grumble: pass copy of accounts (observable injection)

* grumble: Summary owners can be array or array-like
2017-01-24 16:18:23 +01:00
GitLab Build Bot
153f2ca2f2 [ci skip] js-precompiled 20170124-151134 2017-01-24 15:14:38 +00:00
Maciej Hirsz
a30a108ac9 Extended JS interface -> Markdown generator (#4275)
* Extended Markdown generator

* Fix linter errors

* Review fixes
2017-01-24 16:05:21 +01:00
Konstantin
9d0278e0f8 added 3 warpnodes for ropsten (#4289)
* added 3 warpnodes for ropsten

* Fixed indentation
2017-01-24 14:35:52 +01:00
GitLab Build Bot
7aafa8a7ec [ci skip] js-precompiled 20170124-105551 2017-01-24 10:59:12 +00:00
Jaco Greeff
53bbc76d06 Ledger Communication toolkit (#4268) 2017-01-24 11:46:59 +01:00
keorn
ba0209678b ValidatorSet reporting (#4208)
* remove register_account_provider

* build rpc module

* new dummy client

* common EngineSigner struct

* from -> into

* initial report via call

* separate safe from regular contract

* transact_contract

* fix build

* return Signature, docs

* add sign method to some engines

* add safeContract spec

* update specs to new contracts

* use AuthorityRound for contract spec

* add more reporting

* add reporting test

* use gas floor

* shorter
2017-01-24 12:03:58 +03:00
GitLab Build Bot
b6575cb230 [ci skip] js-precompiled 20170123-184530 2017-01-23 18:48:32 +00:00
Jaco Greeff
ea44555f44 Add parity_accountsInfo as available subscription (#4273) 2017-01-23 19:39:49 +01:00
GitLab Build Bot
1c6e9bc772 [ci skip] js-precompiled 20170123-164245 2017-01-23 16:47:50 +00:00
Jaco Greeff
183efe9d19 Display AccountCard name via IdentityName (#4235)
* Display AccountCard name via IdentityName

* Pass name through (catches registry reverse display)
2017-01-23 17:33:03 +01:00
GitLab Build Bot
f4149cc089 [ci skip] js-precompiled 20170123-160350 2017-01-23 16:06:59 +00:00
GitLab Build Bot
5fce415ac3 [ci skip] js-precompiled 20170123-155126 2017-01-23 15:54:58 +00:00
Jaco Greeff
3d1162e3d9 Dapp visibility save/load tests (#4150)
* Start of tests to replicate issue

* Expand visibility tests

* Cleanups

* typo

* Extend saving tests as requested (pre-emptive)

* tests for new setDisplayApps action

* Address PR oversights
2017-01-23 16:45:56 +01:00
GitLab Build Bot
512612424c [ci skip] js-precompiled 20170123-153219 2017-01-23 15:35:49 +00:00
Nicolas Gotchac
b5a53284cf Fix wrong output format of peers (#4270)
* Fix wrong output format of peers

* Add outPeer tests
2017-01-23 16:25:20 +01:00
keorn
b7f9b304c1 Chain scoring (#4218)
* chain scoring

* use current steps
2017-01-23 17:27:11 +03:00
Nikolay Volf
2034595652 Rust 1.14 for windows builds (#4269) 2017-01-23 15:13:02 +01:00
GitLab Build Bot
9994ca93f7 [ci skip] js-precompiled 20170123-124637 2017-01-23 12:49:32 +00:00
Jaco Greeff
66e540edf8 Eslint formatting updates (#4234)
* Eslint updated (newline-after-var)

* Fix newline-after-var

* Eslint updated (one-var-declaration-per-line)

* Fix one-var-declaration-per-line

* Fix additional errors

* Lint after merge
2017-01-23 13:39:52 +01:00
GitLab Build Bot
cff64233b4 [ci skip] js-precompiled 20170123-121125 2017-01-23 12:14:45 +00:00
Tomasz Drwięga
3e70e886a0 Embeddable ParityBar (#4222)
* Embeddable ParityBar

* Replacing storage with store

* Fixing  references.

* Addressing style issues

* Supporting parity background
2017-01-23 13:04:08 +01:00
Lukas Maerdian
275fd5096c Update deb-build.sh to fix libssl dependency (#4260) 2017-01-22 16:16:15 +01:00
Svyatoslav Nikolsky
092e24b9f2 Integration with zgp whitelist contract (#4215)
* zgp-transactions checker

* polishing

* rename + refactor

* refuse-service-transactions cl option

* fixed tests compilation
2017-01-22 16:15:22 +01:00
GitLab Build Bot
220084d77d [ci skip] js-precompiled 20170121-134923 2017-01-21 13:53:01 +00:00
Nicolas Gotchac
6b52ed4dfa Adjust the location of the signer snippet (#4155)
* Move signer tab

* WIP

* Better movments

* Save Parity Bar position per dapp

* Add position to Dapp Manifest

* Stick Parity Bar to the four corners
2017-01-21 14:44:13 +01:00
GitLab Build Bot
ebe9072836 [ci skip] js-precompiled 20170120-185430 2017-01-20 18:57:26 +00:00
Nicolas Gotchac
8edaab806e Fix wrong token handling (#4254)
* Fixing wrong token displayed

* Linting

* Revert filtering out

* Revert the revert
2017-01-20 19:49:09 +01:00
GitLab Build Bot
6c5167ebb3 [ci skip] js-precompiled 20170120-184412 2017-01-20 18:47:09 +00:00
Jaco Greeff
e9e63a4a88 Additional building-block UI components (#4239)
* Currency WIP

* Expand tests

* Pass className

* Add QrCode

* Export new components in ~/ui

* s/this.props.netSymbol/netSymbol/

* Fix import case
2017-01-20 19:38:18 +01:00
GitLab Build Bot
9ea7ec0252 [ci skip] js-precompiled 20170120-153650 2017-01-20 15:39:49 +00:00
Jaco Greeff
ca2983b407 Bump package.json to 0.3.0 (1.6 track) (#4244) 2017-01-20 16:31:03 +01:00
GitLab Build Bot
888ce1ca3d [ci skip] js-precompiled 20170120-145411 2017-01-20 14:57:00 +00:00
Jaco Greeff
29e91f80d1 Disable notifications (#4243) 2017-01-20 15:48:14 +01:00
Robert Habermeier
203fd8a471 Memory-based pruning history size (#4114)
* prune states based on memory param

* pruning memory CLI and usage in sync

* return purged value from memorydb

* calculate memory used incrementally in overlayrecentdb

* refactor shared history pruning code in client

* Fixed usage alignment

* journal_size function for fast memory calculation
2017-01-20 13:25:53 +01:00
keorn
97a60ceab1 Common EngineSigner (#4189)
* remove register_account_provider

* build rpc module

* new dummy client

* common EngineSigner struct

* from -> into

* return Signature, docs
2017-01-20 13:25:17 +01:00
Jannis Redmann
1f77c4301a verification: don't request a code twice (#4221)
* verification: check if user has received code

* verification: don't request a code twice

* code style :lint:
2017-01-20 13:23:21 +01:00
Jaco Greeff
4e35fd215e s/Delete Contract/Forget Contract/ (#4237) 2017-01-20 13:21:51 +01:00
Robert Habermeier
a791cb50a6 Light protocol syncing improvements (#4212)
* remove old lint silencer

* dispatch requests only to peers with higher TD

* dynamic target for sync rounds

* use round pivots instead of frames, fix test

* fix total difficulty calculation for test client

* fix broken reorg algorithm

* fork test, fix ancestor search
2017-01-20 12:41:59 +01:00
Robert Habermeier
3ff9324ec0 LES Peer Info (#4195)
* connected peers function for network service

* get LES peer info in sync API

* new peer info in RPC
2017-01-20 12:41:49 +01:00
Arkadiy Paronyan
35666f718b Don't panic on uknown git commit hash (#4231) 2017-01-20 10:18:26 +01:00
GitLab Build Bot
685c630b4d [ci skip] js-precompiled 20170120-091224 2017-01-20 09:15:30 +00:00
Jannis Redmann
df9110dd5e cache registry reverses in local storage (#4182)
* cache reverses in localStorage

* bugfixes 🐛, linting fixes 👕

* registry caching: store last block

* registry caching: store per chain

* localStorage -> store

* code style 

* code style 👕
2017-01-20 10:07:47 +01:00
Denis S. Soldatov aka General-Beck
f12bd17c20 update gitlab-ci
revert to 1337
[ci skip]
2017-01-20 02:28:04 +04:00
Denis S. Soldatov aka General-Beck
3e8d5dbe23 update gitlab-ci
comment to curl 1337
[ci skip]
2017-01-20 00:47:53 +04:00
Denis S. Soldatov aka General-Beck
71ed9f5fff update gitlab-ci
fix build docker image in debian
[ci skip]
2017-01-20 00:33:27 +04:00
Denis S. Soldatov aka General-Beck
0e99e527bf update gitlab-ci
add debian build win openssl 1.0.1
[ci skip]
2017-01-19 23:32:52 +04:00
Robert Habermeier
33680f5b82 Merge pull request #4223 from ethcore/rh-readme
update version numbers in README
2017-01-19 18:16:29 +01:00
Robert Habermeier
1be9f9eb1b update version numbers in README
[ci skip]
2017-01-19 17:38:50 +01:00
Robert Habermeier
5830e03201 Merge pull request #4181 from ethcore/cht-full-nodes
CHT calculations for full nodes
2017-01-19 15:12:44 +01:00
Gav
42886fed5a Dont push-release for beta/stable changes 2017-01-19 14:30:52 +01:00
GitLab Build Bot
6db17eb908 [ci skip] js-precompiled 20170119-131530 2017-01-19 13:19:21 +00:00
Jaco Greeff
e62cda36c7 Use single source of info for dapp meta (build & display) (#4217)
* Add skipBuild flag

* Only use builtin.json to specify location

* Re-remove dapps/index.js
2017-01-19 14:07:41 +01:00
GitLab Build Bot
ab073efbd9 [ci skip] js-precompiled 20170119-100631 2017-01-19 10:09:51 +00:00
Jaco Greeff
46081de886 Non-secure for DappReg (#4216) 2017-01-19 10:59:49 +01:00
GitLab Build Bot
a6365577e5 [ci skip] js-precompiled 20170119-093724 2017-01-19 09:41:00 +00:00
Gav Wood
0826bf75d1 Console now has admin (#4220)
Fixes #4210
2017-01-19 10:24:34 +01:00
GitLab Build Bot
f9509cc8b8 [ci skip] js-precompiled 20170119-075016 2017-01-19 07:53:32 +00:00
Jannis Redmann
b9031953e0 verification: add mainnet BadgeReg ids (#4190)
* verification: mainnet BadgeReg ids

* verification: fetch contracts by name

* verification: better wording

* typo

* reregistered badges
2017-01-19 08:45:32 +01:00
Tomasz Drwięga
24aec5191a Fixing minimal transaction queue price (#4204)
* Fixing minimal transaction queue price

* Fixing tests
2017-01-18 19:44:24 +01:00
keorn
73b80869f5 Remove unnecessary Engine method (#4184)
* remove register_account_provider

* build rpc module

* new dummy client
2017-01-18 18:49:50 +01:00
Arkadiy Paronyan
61bfe42d1d Fixed --base-path on windows (#4193)
* Fixed --base-path on windows

* Add support for optional args with default text
2017-01-18 18:45:30 +01:00
Tomasz Drwięga
b4ff08beb8 Fixing etherscan price parsing (#4202)
* Fixing etherscan price parsing

* Handling all errors
2017-01-18 17:56:21 +01:00
Robert Habermeier
3040a1c83e Merge pull request #4093 from ethcore/better-timeouts
LES: Better timeouts + Track failed requests
2017-01-18 15:04:48 +01:00
GitLab Build Bot
779440450f [ci skip] js-precompiled 20170118-121219 2017-01-18 12:15:38 +00:00
Jaco Greeff
08f80f2695 ESLint additional rules (#4186)
* Add eslint rule for consistent block padding

* Fix padding consistency issues

* Eslint test for duplicate imports

* Eslint closing bracket location

* Fix eslint jsx closing bracket

* missed a file

* Formatting

* Manual overrides for auto

* Manual overrides for auto

* More minor auto-override manual adjustments
2017-01-18 13:05:01 +01:00
Arkadiy Paronyan
d608ad2011 jsonr rpc bump for IPC fix (#4200) 2017-01-18 12:54:35 +01:00
GitLab Build Bot
1cb37e53c0 [ci skip] js-precompiled 20170118-114926 2017-01-18 11:52:24 +00:00
Jaco Greeff
c1ce65c870 Poll for upgrades as part of global status (long) (#4197)
* Poll for upgrades as part of global status (long)

* Fix path
2017-01-18 12:44:18 +01:00
Arkadiy Paronyan
7cab6ac263 Updater fixes (#4196)
* Minor typo to ensure it updates only when synced.

* Fix deadlock.

* Skip unneeded arg in making list.

* Allow auto-restart even when not running an update.

* Fix trace.

* Update update info on each loop.

* Fix build.

* Shutdown all sockets

* Remove superfluous use.
2017-01-17 23:34:46 +01:00
Arkadiy Paronyan
8852a05301 Prevent duplicate incoming connections (#4180) 2017-01-17 16:02:29 +01:00
Gav Wood
e95d66832c Minor typo to ensure it updates only when synced. (#4188) 2017-01-17 13:05:02 +01:00
GitLab Build Bot
6339b3c88a [ci skip] js-precompiled 20170117-102646 2017-01-17 10:34:02 +00:00
Evan Saulpaugh
7dde80fdf3 Minor refactor for clarity (#4174)
* Spelling & grammar in TxQueue Viewer description

* minor refactor for clarity

* Fix lint.
2017-01-17 11:17:38 +01:00
Björn Wagner
581604aae4 current release: 1.3 -> 1.4 (#4183) 2017-01-16 19:02:35 +01:00
Robert Habermeier
536df809c6 tests + documentation 2017-01-16 17:42:39 +01:00
Robert Habermeier
b960152d5b CHT calculations for full nodes 2017-01-16 17:10:30 +01:00
Robert Habermeier
31aae4ed78 move cht module up a level 2017-01-16 16:55:23 +01:00
Nikolay Volf
f807aa65a1 Secret - from hash function, also validate data (#4159)
* from hash for secret

* checked from_slice

* move assert

* remove fromhash
2017-01-16 16:50:20 +01:00
Svyatoslav Nikolsky
bac6293309 gas_limit for blocks, mined by Parity will be divisible by 37 (#4154)
* gas_limit for new blocks will divide evenly by 13

* increased PARITY_GAS_LIMIT_DETERMINANT to 37

* separate method for marking mined block

* debug_asserts(gas_limit within protocol range)

* round_block_gas_limit method is now static

* made round_block_gas_limit free-function

* multiplier->multiple [ci skip]
2017-01-16 14:29:51 +01:00
Tomasz Drwięga
76daf50876 Support HTML5-routed dapps (#4173) 2017-01-16 10:49:27 +01:00
Jannis Redmann
1d618faaa6 fix subscribeToEvents test (#4166)
* try to fix freaking test

* fix subscribeToEvents test

This fix is a workaround. I would have used sinon fake timers, but I
couldn't get them to work.

* subscribeToEvent test: simplify code
2017-01-16 10:48:20 +01:00
GitLab Build Bot
aee70c4f16 [ci skip] js-precompiled 20170116-033453 2017-01-16 03:37:54 +00:00
GitLab Build Bot
d6ed42bff5 [ci skip] js-precompiled 20170115-041925 2017-01-15 04:22:19 +00:00
GitLab Build Bot
4b85e3ee57 [ci skip] js-precompiled 20170114-041818 2017-01-14 04:21:24 +00:00
GitLab Build Bot
af00986456 [ci skip] js-precompiled 20170113-172058 2017-01-13 17:23:57 +00:00
Nicolas Gotchac
51ac34f1cc Fix dapps not loading (#4170)
* Add secure to dappsreg

* Remove trailing slash // fix dapps
2017-01-13 18:14:56 +01:00
Nicolas Gotchac
42ddb4f26c Fix token images // Error in Contract Queries (#4169) 2017-01-13 18:14:25 +01:00
Tomasz Drwięga
d0cebc3982 Bumping hyper (#4167) 2017-01-13 16:30:49 +01:00
Gav Wood
c2f4716ee2 icarus -> update, increase web timeout. (#4165)
* icarus -> update, increase web timeout.

* Fix estimate gas
2017-01-13 16:30:16 +01:00
GitLab Build Bot
7611bbd3ee [ci skip] js-precompiled 20170113-145733 2017-01-13 15:00:41 +00:00
Nicolas Gotchac
4a714d4a3e Add a password strength component (#4153)
* Added new PasswordStrength Component

* Added tests

* PR Grumbles
2017-01-13 15:52:42 +01:00
Nicolas Gotchac
57ce845e4c Stop flickering + added loader in AddressSelector (#4149)
* Stop UI flickering + added loader to AddressSelector #4103

* PR Grumbles
2017-01-13 15:52:24 +01:00
Robert Habermeier
f0eab337d8 Merge pull request #4036 from ethcore/on-demand-les-request
On demand LES request
2017-01-13 14:36:48 +01:00
Arkadiy Paronyan
cdc525449a Ropsten fork detection (#4163) 2017-01-13 14:28:10 +01:00
Denis S. Soldatov aka General-Beck
d4cab20425 remove icarus
[ci skip]
2017-01-13 16:27:03 +04:00
GitLab Build Bot
f3717b96ff [ci skip] js-precompiled 20170113-090039 2017-01-13 09:03:30 +00:00
Jaco Greeff
ee4ede915a Pull in console dapp as builtin (#4145)
* Copy static dapps from static (no build)

* Console sources

* Add console to builtins

* Remove console assets

* Disable eslint on console.js

* Enable eslint after disable

* Webpack copy
2017-01-13 08:53:57 +00:00
Arkadiy Paronyan
cfb6dd2ea8 Optimized hash lookups (#4144)
* Optimize hash comparison

* Use libc
2017-01-13 08:52:23 +00:00
Tomasz Drwięga
e11353f94c UnverifiedTransaction type (#4134)
* Introducing ValidSignedTransaction

* Verifiying transactions in engines

* Widening use of VerifiedSignedTransaction

* Renaming Transactions

* Uncommenting banning queue & Fixing tests

* Fixing json tests

* Fixing pre-homestead test

* Fixing imports

* Addressing grumbles

* Fixing test
2017-01-13 08:51:36 +00:00
Jannis Redmann
6f1c55ef5d verification: check if server is running (#4140)
* verification: check if server is running

See also ethcore/email-verification#67c6466 and ethcore/sms-verification#a585e42.

* verification: show in the UI if server is running

* verification: code style , more i18n

* fix i18n key
2017-01-13 08:51:25 +00:00
GitLab Build Bot
3d06456fa5 [ci skip] js-precompiled 20170113-042838 2017-01-13 04:31:31 +00:00
GitLab Build Bot
54b06cea16 [ci skip] js-precompiled 20170112-222827 2017-01-12 22:31:32 +00:00
GitLab Build Bot
887e5f730e [ci skip] js-precompiled 20170112-142354 2017-01-12 14:26:49 +00:00
Jaco Greeff
bff0f8ec5d Remove onSubmit of current (no auto-change on password edit) (#4151)
* Remove onSubmit from current password

* Remove onSubmit from hint
2017-01-12 15:18:16 +01:00
GitLab Build Bot
b4eea05bd3 [ci skip] js-precompiled 20170112-133204 2017-01-12 13:35:58 +00:00
Jaco Greeff
0de34774b1 Trim spaces from InputAddress (#4126)
* Trim spaces for addresses

* onSubmit has only value, not event

* onSubmit (again)

* Length check on trimmed value
2017-01-12 14:25:41 +01:00
Nicolas Gotchac
81beec1352 Don't pop-up notifications after network switch (#4076)
* Better notifications

* Don't pollute with notifs if switched networks

* Better connection close/open events / No more notifs on change network

* PR Grumbles

* Add close and open events to HTTP // Add tests

* Fix tests

* WIP Signer Fix

* Fix Signer // Better reconnection handling

* PR Grumbles

* PR Grumbles

* Fixes wrong fetching of balances + Notifications

* Secure API WIP

* Updated Secure API Connection + Status

* Linting

* Linting

* Updated Secure API Logic

* Proper handling of token updates // Fixing poping notifications

* PR Grumbles

* PR Grumbles

* Fixing tests
2017-01-12 14:25:32 +01:00
GitLab Build Bot
bc2ebdc564 [ci skip] js-precompiled 20170112-130413 2017-01-12 13:07:28 +00:00
Jaco Greeff
389e4e3bc0 Use estimateGas error (as per updated implementation) (#4131)
* Use estimateGas error (as per updated implementation)

* EXCEPTION_ERROR as per #4142
2017-01-12 13:56:37 +01:00
Robert Habermeier
7dde02b25d Merge branch 'master' into on-demand-les-request 2017-01-12 11:23:47 +01:00
Gav Wood
311730ea95 Improvements and optimisations to estimate_gas (#4142)
* Return 0 instead of error with out of gas on estimate_gas

* Fix stuff up.

* Another estimate gas fix.

* Alter balance to maximum possible rather than GP=0.

* Only increase to amount strictly necessary.

* Improvements and optimisations to estimate_gas.

- Introduce proper error type
- Avoid building costly traces

* Fix tests.

* Actually fix testsActually fix tests
2017-01-12 11:06:12 +01:00
Tomasz Drwięga
41da1a0a79 New jsonrpc-core with futures and metadata support (#3859)
* Bumping serde & serde_json

* Super-initial usage of new jsonrpc

* Single event loop for jsonrpc

* Metadata

* Supporting metadata extraction for eth_accounts

* Fixing Cargo.lock

* Removing uneccessary clones

* Fixing unused import

* Unused import

* Fixing test
2017-01-11 20:02:27 +01:00
Gav Wood
c4d96a64a2 Reenable mainnet update server. (#4137) 2017-01-11 20:01:45 +01:00
Jannis Redmann
f0c831d63f temporarily skip failing test (#4138) 2017-01-11 20:01:19 +01:00
Robert Habermeier
78e670812c fix test compilation 2017-01-11 18:57:38 +01:00
Robert Habermeier
e88c62d37d Merge branch 'master' into better-timeouts 2017-01-11 18:55:16 +01:00
Robert Habermeier
7b3c648d3e Merge branch 'master' into better-timeouts 2017-01-11 18:47:09 +01:00
keorn
844b1f8c0d Refactor VoteCollector (#4101)
* dir

* simple validator list

* stub validator contract

* make the engine hold Weak<Client> instead of IoChannel

* validator set factory

* register weak client with ValidatorContract

* check chain security

* add address array to generator

* register provider contract

* update validator set on notify

* add validator contract spec

* simple list test

* split update and contract test

* contract change

* use client in tendermint

* fix deadlock

* step duration in params

* adapt tendermint tests

* add storage fields to test spec

* constructor spec

* execute under wrong address

* create under correct address

* revert

* validator contract constructor

* move genesis block lookup

* add removal ability to contract

* validator contract adding validators

* fix basic authority

* validator changing test

* more docs

* update sync tests

* remove env_logger

* another env_logger

* cameltoe

* hold EngineClient instead of Client

* return error on misbehaviour

* nicer return

* sprinkle docs
2017-01-11 17:56:50 +01:00
Gav Wood
56c546f465 Another minor estimation fix (#4133)
* Return 0 instead of error with out of gas on estimate_gas

* Fix stuff up.

* Another estimate gas fix.

* Alter balance to maximum possible rather than GP=0.

* Only increase to amount strictly necessary.
2017-01-11 17:51:48 +01:00
Nicolas Gotchac
8d3d76c107 Add proper label to method decoding inputs (#4136) 2017-01-11 17:44:56 +01:00
GitLab Build Bot
a4b93b4b88 [ci skip] js-precompiled 20170111-160821 2017-01-11 16:11:45 +00:00
Jaco Greeff
3e74d46a06 Remove bindActionCreators({}, dispatch) (empty) (#4135) 2017-01-11 17:02:53 +01:00
Jaco Greeff
32dbf9958e Better error log reporting & handling (#4128) 2017-01-11 17:02:39 +01:00
Nicolas Gotchac
b54709605a Fix broken transfer total balance (#4127) 2017-01-11 17:01:35 +01:00
Robert Habermeier
7123f19a75 Test harness for lightsync (#4109)
* make on_connect/disconnect public

* free flow params constructor

* Shared ownership of LES handlers

* light provider impl for test client

* skeleton for testing light sync

* have test_client use actual genesis

* fix underflow in provider

* test harnesses for lightsync

* fix tests

* fix test failure caused by test_client changes
2017-01-11 14:39:03 +01:00
Gav Wood
7286d42b7d Fix call/estimate_gas (#4121)
* Return 0 instead of error with out of gas on estimate_gas

* Fix stuff up.
2017-01-11 14:28:27 +01:00
GitLab Build Bot
2edd893f23 [ci skip] js-precompiled 20170111-112556 2017-01-11 11:28:45 +00:00
Tomasz Drwięga
26500af8c0 Fixing decoding API with signatures in names (#4125) 2017-01-11 12:17:04 +01:00
Tomasz Drwięga
21006da125 Get rid of unsafe code in ethkey, propagate incorrect Secret errors. (#4119)
* Implementing secret

* Fixing tests
2017-01-11 12:16:47 +01:00
Jannis Redmann
4ecd9da6e4 basic tests for subscribeToEvents (#4115)
* subscribeToEvent fixtures 

* subscribeToEvent tests 
2017-01-11 12:14:04 +01:00
Robert Habermeier
5b8a7259c1 Merge branch 'master' into on-demand-les-request 2017-01-11 11:39:43 +01:00
GitLab Build Bot
6f3cefe17f [ci skip] js-precompiled 20170110-180532 2017-01-10 18:09:09 +00:00
Tomasz Drwięga
7aa2af3e21 Auto-detect hex encoded bytes in sha3 (#4108)
* Auto-detect hex encoded bytes in sha3

* Using types/isHex

* Removing unused imports
2017-01-10 18:56:56 +01:00
Gav Wood
23feb7998f Use binary chop to estimate gas accurately (#4100)
* Initial sketch.

* Building.

* Fix a few things.

* Fix issue, add tracing.

* Address grumbles

* Raise upper limit if needed

* Fix test.
2017-01-10 18:56:41 +01:00
Denis S. Soldatov aka General-Beck
baa754cc52 Update gitlab-ci
fix curl in arm
2017-01-10 20:26:15 +04:00
Arkadiy Paronyan
148ea37687 v1.6 in master (#4113) 2017-01-10 15:41:59 +01:00
Gav Wood
ae144b7f62 Ignore get_price_info test by default. (#4112) 2017-01-10 15:41:48 +01:00
GitLab Build Bot
6e43903ab7 [ci skip] js-precompiled 20170110-124838 2017-01-10 12:51:37 +00:00
Jaco Greeff
f0e017fe6c Wrong log output address (#4106) 2017-01-10 13:42:29 +01:00
Gav Wood
8117036e0f Avoid comms with not-yet-active release update server. (#4111) 2017-01-10 13:41:21 +01:00
GitLab Build Bot
16e22b7f87 [ci skip] js-precompiled 20170110-123414 2017-01-10 12:37:38 +00:00
Nicolas Gotchac
cee2ac43c0 Update Transfer logic + Better logging (#4098)
* Add logs and better Transfer Store logic

* Fix wallet transfer

* Fix wrong gas in Wallet

* Move log levels to Parity tab
2017-01-10 13:26:30 +01:00
Nicolas Gotchac
ae7619431b Fix Signer (#4104) 2017-01-10 13:19:18 +01:00
GitLab Build Bot
78566cf9bf [ci skip] js-precompiled 20170110-113807 2017-01-10 11:41:00 +00:00
Jannis Redmann
8958603f64 merge #4066 from jr-reverse-caching
cache registry reverses, completion in address selector
2017-01-10 12:30:57 +01:00
keorn
be30c44179 Validator/authority contract (#3937)
* dir

* simple validator list

* stub validator contract

* make the engine hold Weak<Client> instead of IoChannel

* validator set factory

* register weak client with ValidatorContract

* check chain security

* add address array to generator

* register provider contract

* update validator set on notify

* add validator contract spec

* simple list test

* split update and contract test

* contract change

* use client in tendermint

* fix deadlock

* step duration in params

* adapt tendermint tests

* add storage fields to test spec

* constructor spec

* execute under wrong address

* create under correct address

* revert

* validator contract constructor

* move genesis block lookup

* add removal ability to contract

* validator contract adding validators

* fix basic authority

* validator changing test

* more docs

* update sync tests

* remove env_logger

* another env_logger

* cameltoe

* hold EngineClient instead of Client

* add a comment about lock scope
2017-01-10 12:23:59 +01:00
Arkadiy Paronyan
5c5244911e No reorg limit for ancient blocks (#4099) 2017-01-10 12:22:28 +01:00
Arkadiy Paronyan
d67ceec50c Update registration after every write (#4102) 2017-01-10 12:11:32 +01:00
Jannis R
f12937a21e reverse caching: use subscribeToEvents 2017-01-09 19:09:22 +01:00
Jannis R
67c2981975 subscribeToEvent -> subscribeToEvents 2017-01-09 19:09:21 +01:00
Gav Wood
e86b955815 Default to no auto-update. (#4092)
* Default to no auto-update.

* Fix test.
2017-01-09 18:33:53 +01:00
Jannis R
cca7627fb8 reverse caching: PR grumbles 2017-01-09 17:49:06 +01:00
Tomasz Drwięga
a584c6396c Don't remove out of date local transactions (#4094) 2017-01-09 17:01:09 +01:00
Jannis R
61a42cc7e4 reverse caching: pass API into middleware 2017-01-09 16:59:33 +01:00
Jannis R
8c2aa4d87c address selector: unique registry results 2017-01-09 14:24:04 +01:00
Jannis R
f05ffd2e09 address selector: complete reverses by name as well 2017-01-09 14:13:11 +01:00
Jannis R
38734c92c2 address selector: lower case for reverse completion 2017-01-09 14:03:52 +01:00
Jannis R
92742e663a merge master into jr-reverse-caching 2017-01-09 12:50:26 +01:00
keorn
8d256b223d Fix rebroadcast panic (#4084)
* fix

* fix compile

* remove peers trace

* simplify

* Fixing 'simplify'
2017-01-09 12:41:19 +01:00
Jaco Greeff
378739fae1 Use shallow-only rendering in all tests (#4087)
* Container/Title with shallow

* IdentityName with shallow

* IdentityIcon with shallow

* TypedInput to shallow

* DetailsStep to shallow
2017-01-09 12:40:29 +01:00
Robert Habermeier
d515ef9a2a test for id_guard behavior 2017-01-09 12:20:44 +01:00
Robert Habermeier
54058e3712 ensure failed requests considered unfulfilled 2017-01-09 11:29:06 +01:00
Tomasz Drwięga
4c94878cf7 Sending transactions in chunks. (#4089) 2017-01-09 11:20:02 +01:00
Gav Wood
14e65e5c3c Move to new CI servers. (#4091) 2017-01-09 11:16:21 +01:00
Tomasz Drwięga
9fec422a1b Fixing compilation without dapps. (#4088) 2017-01-09 11:16:05 +01:00
Nicolas Gotchac
e1847442cc Fix balances update (#4077)
* Fix balances fetching

* Fix fetching balances while syncing
2017-01-09 11:15:00 +01:00
Nicolas Gotchac
40f0ee004f Key derivation in Worker (#4071)
* Add Signer Key Derivation in Service Worker

* Several fixes throughout the UI

* Hint for external account // working Worker

* Add Worker state change

* PR Grumbles
2017-01-09 11:14:36 +01:00
GitLab Build Bot
ec4b4cfbf2 [ci skip] js-precompiled 20170109-084458 2017-01-09 08:47:45 +00:00
Nicolas Gotchac
cf0a20f08b Display contract block creation (#4069)
* Add contract block creation to metadata

* Display mined block for contract on Contracts view

* Better use of Summary for Accounts

* Add sorted by mined block for contracts

* Proper Block Number sort // display in contract page

* PR Grumble

* Linting issues
2017-01-09 09:38:27 +01:00
Tomasz Drwięga
71e6e24a1f Improving logs for transactions sync and disable re-broadcasting while syncing (#4065)
* Improving logs for transaction propagation

* Propagate only on timer
2017-01-08 17:12:17 +01:00
GitLab Build Bot
33d3c1f999 [ci skip] js-precompiled 20170108-033146 2017-01-08 03:34:41 +00:00
GitLab Build Bot
920d2217c8 [ci skip] js-precompiled 20170107-041806 2017-01-07 04:21:07 +00:00
Jannis R
ba4263e33f fix tests 2017-01-06 18:55:18 +01:00
GitLab Build Bot
c73bb3eed7 [ci skip] js-precompiled 20170106-170326 2017-01-06 17:06:28 +00:00
Nicolas Gotchac
761ed913a8 Passwords are valid by default (#4075)
* Passwords are valid by default #4059

* Actually fixing the issue
2017-01-06 17:56:57 +01:00
GitLab Build Bot
a7f23cbaed [ci skip] js-precompiled 20170106-162807 2017-01-06 16:31:16 +00:00
Nicolas Gotchac
30394bdb1c Add Origin to events table (#4073) 2017-01-06 17:24:35 +01:00
Nicolas Gotchac
81641a5839 Fix tags after Account view (#4070) 2017-01-06 17:23:04 +01:00
Robert Habermeier
9c00eb4e8a Zero-alloc trie lookups (#3998)
* triedb cleanup

* factor out common portion of trie query

* allocate far fewer times in node decoding

* fix bench compilation

* introduce OwnedNode variant to make iter fast again

* generalize recorder trait to Query

* decode trie outputs cost-free in state

* test for passing closure as query
2017-01-06 16:18:45 +01:00
Tomasz Drwięga
e983339edd Opening local dapp (#4041)
* Opening local dapp

* Using Path/PathBuf instead of Strings

* Fixing typo and adding some docs to apps::fs functions
2017-01-06 16:05:58 +01:00
Jannis R
c4f7b8fb96 merge master into jr-reverse-caching 2017-01-06 16:03:05 +01:00
GitLab Build Bot
332a45846d [ci skip] js-precompiled 20170106-144307 2017-01-06 14:46:06 +00:00
Tomasz Drwięga
f6349187ef Bringing back js-sha3 to fix in-browser signing (#4063)
* Bring back Uint8Array sha3 support

* Added SHA3 test with HEX encoding

* Rename hex2Ascii => hexToAscii
Add tests or the api/util/format functions
Use js-sha3 for sha3 with hex encoding support

* Adding Uint8Array test

* Fixing Transaction import
2017-01-06 15:36:24 +01:00
Jannis R
ad3b89dc14 Merge master into jr-reverse-caching 2017-01-06 13:35:50 +01:00
GitLab Build Bot
52d3633473 [ci skip] js-precompiled 20170106-094801 2017-01-06 09:50:58 +00:00
Nicolas Gotchac
9ab9ff2381 Fix wrong transaction input for contract deployments (#4052)
* Fix mutable options in Contract API

* Add Swarm hash and meta data from Solidity

* Updates tests for contract deployment

* Add test for deploy without constructor Params
2017-01-06 10:39:18 +01:00
Tomasz Drwięga
1b93d79a90 Re-broadcast transactions to few random peers on each new block. (#4054)
* Introduce predictable randomness in tests

* Re-broadcasting to few peers
2017-01-06 10:38:49 +01:00
GitLab Build Bot
20aaf17389 [ci skip] js-precompiled 20170106-050640 2017-01-06 05:12:05 +00:00
GitLab Build Bot
c2d4ee7555 [ci skip] js-precompiled 20170105-202446 2017-01-05 20:28:26 +00:00
Tomasz Drwięga
eb0daea9b9 Removing old transactions from the queue (#4046)
* Removing old transactions from the queue

* Addressing grumbles
2017-01-05 21:16:52 +01:00
keorn
fbc9f0d7fb Add block rewards to more Engines (#4055)
* add block rewards

* imports
2017-01-05 21:16:13 +01:00
Robert Habermeier
b4e713efdc return old trie values on insert and remove (#4053)
* return old trie values on insert and remove

* fix json tests
2017-01-05 21:15:43 +01:00
Jannis Redmann
20c1d37b59 let users open urls from dapps view (#4042)
* browser: better url handling

* browser: pass url as param

* dapps: button to open browser

* dapps url button: remove url validation

* PR grumbles, better URL parsing

* code style 

* better URL parsing, react to changed URL fragment
2017-01-05 21:15:01 +01:00
Jannis R
2aa76e5acc address selector: simple completion for reversed addresses 2017-01-05 18:21:15 +01:00
Jannis R
71e80f10d8 reverse caching: optimize timing
Users quickly want all reverses registered in the path,
but don't care so much about live data.
2017-01-05 17:27:25 +01:00
Jannis R
6f492a4945 address selector: use cached reverses 2017-01-05 17:19:26 +01:00
GitLab Build Bot
7d807551e8 [ci skip] js-precompiled 20170105-155705 2017-01-05 15:59:53 +00:00
Jannis R
b38aa8d01f reverse caching: middleware 2017-01-05 16:56:40 +01:00
Jannis R
ac2c678e69 reverse caching: redux boilerplate 2017-01-05 16:56:11 +01:00
Jaco Greeff
20ad2e7d42 Util/validation update (#4051)
* Fix code validation for null inputs

* tests WIP

* tests WIP

* Update validation tests

* Adjust block names, slice (PR comments)
2017-01-05 16:51:27 +01:00
Jaco Greeff
9613145464 Convert ShapeShift modal to store (#4035)
* WIP

* WIP store

* Store in-place

* WIP tests

* Store completed

* Expand option tests for events

* Fix & test for errors found in manual testing

* Add missing @observer (rookie mistake)

* Fix intl formatting error (completed step)

* Pass store to ErrorStep, test all stages for components

* Add warning messages (e.g. no price found)

* Fix typo
2017-01-05 16:51:16 +01:00
Tomasz Drwięga
a076ffaf8c Using local path on Windows (#4017)
* Using non-roaming path on Windows

* Fixing test
2017-01-05 13:12:54 +00:00
Tomasz Drwięga
91f864b2b7 Fixing minGasLimit > ceil limit mining issue (#4018) 2017-01-05 12:59:16 +00:00
Robert Habermeier
75b5acf21d use common BasicAccount type 2017-01-05 13:26:14 +01:00
Robert Habermeier
8446a8354b Merge branch 'master' into on-demand-les-request 2017-01-05 13:18:24 +01:00
Robert Habermeier
f1dd96ca5d Merge pull request #3892 from ethcore/lightsync
Naive light client synchronization
2017-01-05 13:17:14 +01:00
GitLab Build Bot
e7e561024a [ci skip] js-precompiled 20170105-111302 2017-01-05 11:15:57 +00:00
Jaco Greeff
1ef67f68ed Starting on homestead shows reload snackbar (#4043)
* Fix issue where starting on homestead showed reload

* Align snackbar timing with errors (60s)
2017-01-05 12:07:10 +01:00
Nicolas Gotchac
d16ab5eac5 Show contract parameters in MethodDecoding (#4024)
* Add decoding of Inner Contract Deployment params #3715

* Fixed TypedInput when formatted value

* Fix TypedInput

* PR Grumble

* Add test to `Param.toParams`
2017-01-05 12:06:58 +01:00
Jaco Greeff
ddeb06d9cc UI component updates (#4010)
* Update blockStatus & test results

* IdentityIcon rendering tests for #3950

* Update IdentityName with external messages

* Expand to cover basic layout sections

* ConfirmDialog rendering tests

* TxHash expansion & tests

* Cleanup ui/*.spec.js PropType warnings

* Use react-intl plural for confirmation/confirmations (verified manually)
2017-01-05 12:06:46 +01:00
Jaco Greeff
602a4429cc Account view updates (#4008)
* Fix null account render issue, add tests

* Add tests for #3999 fix (merged in #4000)

* Only include sinon-as-promised globally for mocha

* Move transactions state into tested store

* Add esjify for mocha + ejs (cherry-picked)

* Extract store state into store, test it

* Use address (as per PR comments)

* Fix failing test after master merge
2017-01-05 12:06:35 +01:00
Maciej Hirsz
881066243b Merge pull request #4034 from maciejhirsz/mh-pwmsg
Better error messages for PoA chains, closes #4030
2017-01-05 11:13:45 +01:00
keorn
93237045b8 Merge pull request #4019 from ethcore/optional-spec
Make some spec fields optional
2017-01-04 19:25:42 +01:00
Robert Habermeier
99f091ecee Merge pull request #4021 from ethcore/basic-account
Basic account type
2017-01-04 19:00:21 +01:00
Robert Habermeier
f63faea308 test for request_set and remove idle flag 2017-01-04 18:43:11 +01:00
Robert Habermeier
04282be721 use request set to provide better timeouts 2017-01-04 18:00:12 +01:00
maciejhirsz
a4b4263580 Adaptive hints 2017-01-04 16:51:27 +01:00
GitLab Build Bot
7ebf8be12e [ci skip] js-precompiled 20170104-153136 2017-01-04 15:34:36 +00:00
Nicolas Gotchac
fbb52ac58b Fix wallet in main net (#4038) 2017-01-04 16:25:39 +01:00
Robert Habermeier
6ad0a0baaa fix test imports 2017-01-04 16:12:58 +01:00
Robert Habermeier
5a3aa98115 Merge pull request #4032 from ethcore/https-fetch
Removing orphaned Cargo.toml
2017-01-04 15:28:50 +01:00
GitLab Build Bot
6861230bee [ci skip] js-precompiled 20170104-142103 2017-01-04 14:24:09 +00:00
Robert Habermeier
5060370c70 Merge branch 'lightsync' into on-demand-les-request 2017-01-04 15:18:22 +01:00
Jannis Redmann
839ee9afd7 address selector: support reverse lookup (#4033)
* address selector: simplify lookup

* address selector: support reverse lookup
2017-01-04 15:15:36 +01:00
Nicolas Gotchac
71e7a429d7 Only fetch App when necessary (#4023)
* Only fetch App when necessary. Show loadings + 404 #3914

* PR Grumble
2017-01-04 15:15:25 +01:00
Jaco Greeff
cc8e200ed5 Connection UI cleanups & tests for prior PR (#4020)
* Cleanups & tests for #3945

* Externalise icons as per PR comments
2017-01-04 15:15:11 +01:00
Jaco Greeff
7cdfaf1a43 Unsubscribe error on ShapeShift modal close (#4005)
* unsubscribe in onClose (state available)

* Revert "unsubscribe in onClose (state available)"

This reverts commit 1da0a7447563e3cb0d9149b0b9898ec93b483982.

* Fix shapeshift double unsubscribe

* Swap multiple list test addresses
2017-01-04 15:14:51 +01:00
Nicolas Gotchac
63017268ad Add ownership checks the Registry dApp (#4001)
* Fixes to the Registry dApp

* WIP Add Owner Lookup

* Proper sha3 implementation

* Add working owner lookup to reg dApp

* Add errors to Name Reg

* Add records error in Reg dApp

* Add errors for reverse in reg dApp

* PR Grumbles
2017-01-04 15:14:37 +01:00
Robert Habermeier
0b9a0b138b remove --light CLI 2017-01-04 15:07:49 +01:00
Robert Habermeier
ed98c389ca no_peers test 2017-01-04 14:54:50 +01:00
maciejhirsz
516c41c1ee Move hints to constants 2017-01-04 14:48:32 +01:00
Robert Habermeier
62bc92ff4d Merge branch 'master' into on-demand-les-request 2017-01-04 14:33:45 +01:00
Robert Habermeier
38ac84f0c7 reassign requests on failure 2017-01-04 14:33:32 +01:00
maciejhirsz
4b1b67bfeb Analog error messages for unlocking accounts 2017-01-04 14:05:32 +01:00
Robert Habermeier
ca35b345ca separate request dispatch from creation 2017-01-04 13:58:26 +01:00
Robert Habermeier
1d51b6f7e5 handle incoming LES requests 2017-01-04 13:34:50 +01:00
maciejhirsz
8ca0e09ffc Better error messages for PoA chains 2017-01-04 12:50:50 +01:00
Robert Habermeier
4e94f43644 tests for request module 2017-01-04 12:48:07 +01:00
Tomasz Drwięga
8d1a91b3b8 Removing orphaned Cargo.toml 2017-01-04 12:36:37 +01:00
GitLab Build Bot
4c532f9e3d [ci skip] js-precompiled 20170104-033203 2017-01-04 03:34:53 +00:00
Robert Habermeier
01977e60aa finish request module, basic dispatch 2017-01-03 19:13:40 +01:00
GitLab Build Bot
6c3b9327dd [ci skip] js-precompiled 20170103-164739 2017-01-03 16:50:54 +00:00
Jannis Redmann
565a1b510e refresh balances of contacts & contracts when syncing (#4022) 2017-01-03 17:42:05 +01:00
Jannis Redmann
9de8ba0cf5 show message on new chain (#4016)
* clear account infos on new chain

* new chain: show only snackbar

* fix new chain popup 🐛
2017-01-03 17:41:55 +01:00
Nicolas Gotchac
e8ef7b357d Use TypedInputs in Contracts view (#4015)
* Use TypedInput in Contracts

* Add right readOnly Bool TypedInput

* PR Grumbles
2017-01-03 17:41:46 +01:00
Nicolas Gotchac
0f41c5b847 Fix focus on Modal (#4014)
* Fix focus on Modal #3814

* PR Grumble
2017-01-03 17:41:31 +01:00
Jaco Greeff
04ed53e0f2 Fix newError noops when not bound to dispacher (#4013)
* AddContract properly binds newError

* EditMeta properly binds newError

* PasswordManager properly binds newError

* pass null instead of empty mapStateToProps

* Add openSnackbar test & binded prop
2017-01-03 17:41:21 +01:00
Robert Habermeier
5d2cf22ef4 use basic_account in snapshot 2017-01-03 17:05:27 +01:00
Robert Habermeier
eb2b1ad5da move basic_account to types module 2017-01-03 16:43:22 +01:00
Robert Habermeier
7c715aeec3 basic account type 2017-01-03 16:32:50 +01:00
Robert Habermeier
4dbbc3bc88 beginnings of on_demand request module + verification 2017-01-03 16:18:57 +01:00
keorn
e5b3c092c8 Merge branch 'master' into optional-spec 2017-01-03 15:42:56 +01:00
Robert Habermeier
9db3f383e3 Merge pull request #4004 from ethcore/testnet-flag-ropsten
parse testnet chain as ropsten
2017-01-03 12:29:10 +01:00
GitLab Build Bot
efa36545ce [ci skip] js-precompiled 20170103-033107 2017-01-03 03:33:55 +00:00
GitLab Build Bot
5210062a40 [ci skip] js-precompiled 20170102-033239 2017-01-02 03:35:30 +00:00
GitLab Build Bot
2fbb007911 [ci skip] js-precompiled 20170101-042119 2017-01-01 04:24:16 +00:00
GitLab Build Bot
6608027c02 [ci skip] js-precompiled 20161231-133348 2016-12-31 13:36:49 +00:00
Nicolas Gotchac
0c6a9ebbb9 Work on Portal Style (#4003)
* Reduce Portal size and close on click outside

* PR Grumbles
2016-12-31 13:28:16 +00:00
GitLab Build Bot
c93d3c1580 [ci skip] js-precompiled 20161231-033147 2016-12-31 03:34:58 +00:00
Robert Habermeier
29e8b2a3b8 parse testnet chain as ropsten 2016-12-30 15:52:49 +01:00
GitLab Build Bot
2365c714d4 [ci skip] js-precompiled 20161230-113233 2016-12-30 11:35:18 +00:00
Nicolas Gotchac
fd41a10319 Make Wallet first-class citizens (#3990)
* Fixed hint in Address Select + Wallet as first-class-citizen

* Separate Owned and not Owned Wallets

* Fix balance not updating

* Fix MethodDecoding for Contract Deployment

* Fix TypedInput params

* Fix Token Transfer for Wallet

* Small change to contracts

* Fix wallets shown twice

* Fix separation of accounts and wallets in Accounts

* Fix linting

* Execute contract methods from Wallet ✓

* Fixing linting

* Wallet as first-class citizen: Part 1 (Manual) #3784

* Lower level wallet transaction convertion

* Fix linting

* Proper autoFocus on right Signer input

* PR Grumble: don't show Wallets in dApps Permissions

* Add postTransaction and gasEstimate wrapper methods

* Extract Wallet postTx and gasEstimate to utils + PATCH api

* Remove invalid test

It's totally valid for input's length not to be a multiple of 32 bytes. EG. for Wallet Contracts

* Merge master

* Fix linting

* Fix merge issue

* Rename Portal

* Rename Protal => Portal (typo)
2016-12-30 11:28:12 +00:00
GitLab Build Bot
88c0329a31 [ci skip] js-precompiled 20161230-041039 2016-12-30 04:13:29 +00:00
GitLab Build Bot
02ea3ab0f8 [ci skip] js-precompiled 20161229-200742 2016-12-29 20:10:35 +00:00
Jaco Greeff
37c607d7b0 Don't slice non-existent tags (#4000) 2016-12-29 20:01:36 +00:00
GitLab Build Bot
b5f6162630 [ci skip] js-precompiled 20161229-185700 2016-12-29 18:59:55 +00:00
Nicolas Gotchac
75f2644e6a Update dev dependencies and make Webpack less verbose (#3997)
* Update dev dependencies // Less verbose Webpack

* Fix linting fro JSX
2016-12-29 18:48:39 +00:00
Tomasz Drwięga
b24fc97cb6 Correct log index in transaction receipt (#3995)
* Moving logs to separate, testable function

* Adding test

* Fixing log index

* Adding transaction log index

* Fixing rpc tests

* Making interface of  a bit cleaner.
2016-12-29 18:48:28 +00:00
Nicolas Gotchac
9814251a28 Add Email and Registry lookups to Address Selector (#3992)
* Move AccountSelect values to MobX store

* Mail registry + small fixes

* Add Registry to AddressSelect lookups + Nav fixes

* Fix linting

* PR Grumbles

* Fix tests and propTypes
2016-12-29 18:47:53 +00:00
Robert Habermeier
486f7ae684 Merge pull request #3994 from ethcore/remove-dead-journal
remove node journal: dead code
2016-12-29 13:58:41 +01:00
Robert Habermeier
4101396fc4 remove node journal: dead code 2016-12-29 11:06:00 +01:00
GitLab Build Bot
34aee26a2e [ci skip] js-precompiled 20161229-041755 2016-12-29 04:20:52 +00:00
Robert Habermeier
ddf2b944b5 on demand request dispatch 2016-12-28 21:46:55 +01:00
GitLab Build Bot
a3fe74ac69 [ci skip] js-precompiled 20161228-175047 2016-12-28 17:53:25 +00:00
Jaco Greeff
8677c3b91f Cleanup AddContract with store (#3981)
* Splits (WIP)

* Expand getters & setters

* Initial abi type set

* Expand

* Don't rely on passed api

* Store tests in place

* Allow RadioButtons to accept MobX arrays

* Fixes for manual testing
2016-12-28 17:09:54 +00:00
Jaco Greeff
7e600b5a82 Store for EditPassword Modal (#3979)
* External store (WIP)

* address & meta

* Add editable (WIP)

* View converted (WIP)

* Single API stub creation

* Testing (WIP)

* Simplified meta assign

* Tests running

* Fix duplicate exports

* Fix tags not editable
2016-12-28 17:09:45 +00:00
Robert Habermeier
4daa645789 dispatch header requests 2016-12-28 16:20:46 +01:00
Robert Habermeier
5309ba45a8 update peer status from announcement 2016-12-28 16:20:35 +01:00
Robert Habermeier
e6324a83f1 Merge branch 'master' into lightsync 2016-12-28 15:53:11 +01:00
Robert Habermeier
c2ad769fb7 Merge branch 'master' into on-demand-les-request 2016-12-28 14:00:33 +01:00
Tomasz Drwięga
3067a8de3e Additional fetch tests (#3983)
* First bunch of tests

* Dapps zip tests
2016-12-28 12:45:25 +00:00
Robert Habermeier
fe1f542c4f Owning views of blockchain data (#3982)
* owning views of blockchain data

* port blockchain and client traits to owning views

* fix ethcore tests

* use strong headers and bodies in ethcore_light

* port ethsync to use owning views

* port rpc to owning views

* port parity informant and blockchain export
2016-12-28 12:44:51 +00:00
Robert Habermeier
592a3ac623 Merge pull request #3974 from ethcore/mock-net
make test network generic over peer type
2016-12-28 13:32:06 +01:00
Robert Habermeier
428d5db9d1 beginning of on_demand 2016-12-27 16:43:28 +01:00
Tomasz Drwięga
bc3dacc952 Fetch tests (first batch) (#3977)
* Customizable fetch

* Some basic Fetch tests
2016-12-27 15:38:55 +00:00
GitLab Build Bot
a95057abe1 [ci skip] js-precompiled 20161227-152844 2016-12-27 15:31:43 +00:00
Nicolas Gotchac
7581ac635f Fetch certifiers only when needed (#3978)
* Fetch certifiers once + on new Logs

* Linting

* BadgeReg First Query

* Rightly fetching badges on page change

* PR Grumbles

* Only fetch certifiers onces
2016-12-27 15:23:58 +00:00
Jaco Greeff
b27c809c64 Visible accounts for dapps (default whitelist) (#3898)
* Add APIs for Dapp management

* Move AddDapps modal

* Add DappsPermissions Modal (basics)

* Allow whitelist editing

* Add select/unselect tests

* Case

* Case

* Modal render/non-render tests

* UI made slightly prettier

* Adjust spacing

* Allow get/set of null for default whitelist (all)

* Allow null = all for selection

* Adjust selected background

* Address valid comment on formatters location
2016-12-27 15:23:41 +00:00
Robert Habermeier
9b4f90718f Display impl for ReqId 2016-12-27 13:54:51 +01:00
Robert Habermeier
80eae8cc49 remove some old (unused/duplicate) files (#3975) 2016-12-27 12:41:22 +00:00
Robert Habermeier
8125b5690c Port try macro to new ? operator. (#3962)
* initial untry sweep

* restore try in ipc codegen, fix inference

* change a few missed try instances
2016-12-27 12:53:56 +01:00
GitLab Build Bot
b1ef52a6d7 [ci skip] js-precompiled 20161227-114547 2016-12-27 11:48:47 +00:00
Jaco Greeff
19c8e55aa9 Small UI fixes (#3966)
* Load dapp visibility from localStorage

* Align MethodDecoding address svg properly

* Consolidate svg & img classes overrides

* improve isNullAddress check

* readOnly for null display

* disabled || readOnly
2016-12-27 12:40:33 +01:00
Nicolas Gotchac
ce8d9252e7 Fix wrong use of Icons (#3973) 2016-12-27 12:40:16 +01:00
Robert Habermeier
55dbfbf35b address grumbles 2016-12-27 12:24:18 +01:00
Robert Habermeier
84219a0094 make test network generic over peer type 2016-12-27 11:23:57 +01:00
Tomasz Drwięga
7454212b28 Updating dependencies (#3968) 2016-12-27 10:17:50 +00:00
Tomasz Drwięga
c7c309d152 Web Based Dapps (#3956)
* Dapps web

Conflicts:
	dapps/src/apps/fetcher.rs
	dapps/src/handlers/fetch.rs

* Rewriting fetch

* Parity-wide fetch service

* Obey the limits and support cancellation.

* Removing temporary files.

* Actually use Fetch for dapps

* Re-implementing file fetching to avoid temporary files.

* Serde to 0.8.19

* Fixing content & dapps fetch

* Serving web content and injecting scripts

* Don't wait for old content, start a new download

* Supporting timeouts and query

* Simple GUI for the browser

* Proxy tokens validation

* Recovering from invalid web-based requests

* Remember last visisted URL

* Removing unused variables

* Addressing review comments

* Setting default account in web3

* Adding WebBrowser dapp to the list

* Actually prune old entries when generating new token
2016-12-27 10:15:02 +00:00
Jannis Redmann
6842d43491 contract query: render false as false (#3971) 2016-12-27 10:04:14 +00:00
Jannis Redmann
5128438835 email verification: add Terms of Service (#3970) 2016-12-27 10:04:02 +00:00
Nicolas Gotchac
72c65d9c2f Fix method decoding (#3967)
* Fix method decoding

* Restore master version
2016-12-27 10:03:49 +00:00
Jaco Greeff
2bbefcd438 Store for EditMeta modal (#3959)
* Store basics

* Tested
2016-12-27 10:02:53 +00:00
Jannis Redmann
002e8b00d4 registry dapp: cleanup, support reverse entries (#3933)
* style fixes 

* registry dapp: show reverse events

* registry dapp: actions & reducers for isTestnet

* registry dapp: make Hash & Address components

* registry dapp: code style 

* registry dapp: bugfixes 🐛

* registry dapp: postTx helper

* registry dapp: refactor reducers

* registry dapp: use react-redux

* registry dapp: actions & reducers for reverse lookup

* registry dapp: reverse lookup component

* registry dapp: connect Address to redux

* registry dapp: de-DRY recordTypeSelect

In preparation for the next commit.

* registry dapp: support reverse lookup

* registry dapp: render reverse events

* registry dapp: show tx sender, add key prop

* registry dapp: link accounts to etherscan as well

* registry dapp: address style grumbles 💄

* registry dapp: address style grumbles 💄
2016-12-27 10:01:16 +00:00
Nicolas Gotchac
1ffc6ac58c New Address Selector Component (#3829)
* WIP new address selector

* WIP Working New Account Selector

* WIP Fully working Addres Selector (missing keyboards navigation)

* WIP Address Selector

* Fully functionnal new Address Selector!

* Implement disabled prop

* Don't auto-open on focus + Text Selection fix

* Add copy address capabilities

* Better Address Selector Focus

* Search from tags

* [Address Selector] Better Focus // Parity Background

* Linting

* [Adress Selector] Better focused input style

* Better focus support for inputs

* Fix style issue

* Add tags to accounts

* linting

* Add label to address selector

* Removed old address selector + improved styling

* Fixing address selection issues

* fix test

* Better logs...

* PR Grumbles Part 1

* PR Grumbles Part 2

* PR Grumbles Part 3.1

* PR Grumbles Part 3.2

* PR Grumbles Part 3.3

* New Portal Component

* Simpler Transition for Portal

* PR Grumbles Part 4

* Align font-family with rest of UI

* Fix null value input

* Fix Webpack build...
2016-12-27 09:59:37 +00:00
GitLab Build Bot
4e51f93176 [ci skip] js-precompiled 20161227-033404 2016-12-27 03:36:50 +00:00
GitLab Build Bot
7ace4b55c2 [ci skip] js-precompiled 20161226-033142 2016-12-26 03:34:29 +00:00
GitLab Build Bot
3ffc7890cb [ci skip] js-precompiled 20161225-045509 2016-12-25 04:57:52 +00:00
GitLab Build Bot
9cfc72ca43 [ci skip] js-precompiled 20161224-033250 2016-12-24 03:36:00 +00:00
GitLab Build Bot
c39e0aa3ef [ci skip] js-precompiled 20161223-204746 2016-12-23 20:50:31 +00:00
GitLab Build Bot
4893540103 [ci skip] js-precompiled 20161223-181511 2016-12-23 18:17:57 +00:00
Tomasz Drwięga
27ba0e6922 Limiting accounts returned by parity_accountInfo (#3931)
* Limiting accountNames returned by parity_accountNames

* Fixing middleware

* Change RPC interface

* Enhance tests for RPC layer

* UI uses parity_allAccountsInfo

* Update dapps to use parity_accountsInfo

* Don't filter by uuid (deprecated)

* Consistency in calls

* Fix js tests (missed stub call)
2016-12-23 18:52:02 +01:00
Robert Habermeier
546246c56b Unknown block error for RPC (#3965) 2016-12-23 18:46:17 +01:00
Robert Habermeier
612f14188f remove unused fields in informant (#3963) 2016-12-23 18:45:51 +01:00
keorn
afc4cd2785 Allow contract constructors in chain spec (#3932)
* constructor spec

* execute under wrong address

* create under correct address

* revert

* move genesis block lookup

* remove env_logger
2016-12-23 18:44:39 +01:00
Arkadiy Paronyan
5a3c3bcb45 Sync reorg up to history size (#3874)
* Allow sync reorg up to pruning history size

* Peer difficulty tracking

* Abort downloading block if received with NewBlock

* Set pruning history to 1200

* Renamed history size field
2016-12-23 18:43:40 +01:00
GitLab Build Bot
4516f893e5 [ci skip] js-precompiled 20161223-165758 2016-12-23 17:00:39 +00:00
Tomasz Drwięga
6251289b85 Rising the limit for fetch (#3964) 2016-12-23 17:23:31 +01:00
Nikolay Volf
e7ca4445e2 Bring integer arithmetic up to crates.io (#3943)
* split initial

* decouple crate

* fix tests compilation

* fix rlp tests
2016-12-23 16:53:06 +01:00
GitLab Build Bot
0ed45eaf15 [ci skip] js-precompiled 20161223-154928 2016-12-23 15:52:26 +00:00
Jaco Greeff
714298aa9a Eslint rule for block curlies (#3955)
* Add curly rule

* Fix pre-existing issues with new rule
2016-12-23 16:43:13 +01:00
Jaco Greeff
466f84f485 Gas exception warnings on deployment (#3938)
* add deployEstimateGas function

* Render gas warning with Warning component

* estimateGas, display warning on contract deploy

* Update messages

* Removed unused import

* Fix calculated gas usage

* Basic component smoktest

* Only display warning on edit steps
2016-12-23 16:42:48 +01:00
GitLab Build Bot
9529b6fa8c [ci skip] js-precompiled 20161223-144822 2016-12-23 14:52:31 +00:00
Jannis Redmann
db6964acc4 move verification store into modal (#3951)
* move verification store

* address style grumbles 
2016-12-23 15:40:04 +01:00
Jaco Greeff
fc620d0d3e Allow setting of minBlock on sending (#3921)
* minBlock value formatting

* Allow Contract execute to specify minBock

* Transfer allows minBlock

* Cleanups

* Check errors, verify via testing

* Display Submitted/Submission block in MethodDecoding
2016-12-23 15:31:19 +01:00
Jaco Greeff
74efb22230 Allow empty address (#3961) 2016-12-23 15:24:03 +01:00
Jaco Greeff
e006af1edd Fix default import (#3960) 2016-12-23 15:13:43 +01:00
Robert Habermeier
0688ccb003 chain_mem_used function on client 2016-12-23 14:54:31 +01:00
Robert Habermeier
bdf90df56f client report and heap size for header chain 2016-12-23 14:50:42 +01:00
Denis S. Soldatov aka General-Beck
63d68aaeef Update deb-build.sh
Add Depends: libssl
2016-12-23 16:47:50 +04:00
Robert Habermeier
d0194f3ad3 Merge branch 'master' into lightsync 2016-12-23 13:39:06 +01:00
Robert Habermeier
10c56acff6 revert tests submodule 2016-12-23 13:21:29 +01:00
GitLab Build Bot
4623f45686 [ci skip] js-precompiled 20161223-041415 2016-12-23 04:17:11 +00:00
GitLab Build Bot
9a013c4f47 [ci skip] js-precompiled 20161222-173736 2016-12-22 17:40:57 +00:00
Jaco Greeff
077069c452 Display 0x00..00 as null (#3950)
* Display 0x00..00 as null (custom black icon)

* rendering test for null
2016-12-22 18:30:59 +01:00
Tomasz Drwięga
f0387c33c6 Global Fetch Service (#3915)
* Dapps web

Conflicts:
	dapps/src/apps/fetcher.rs
	dapps/src/handlers/fetch.rs

* Rewriting fetch

* Parity-wide fetch service

* Obey the limits and support cancellation.

* Removing temporary files.

* Actually use Fetch for dapps

* Re-implementing file fetching to avoid temporary files.

* Serde to 0.8.19

* Fixing content & dapps fetch
2016-12-22 18:26:39 +01:00
GitLab Build Bot
1645419bc8 [ci skip] js-precompiled 20161222-164848 2016-12-22 16:51:32 +00:00
Jaco Greeff
c2e5b78c5b Update babel-loader for WebPack 2.2-rc (#3953)
* Update babel loader for WebPack 2.2

* Force build
2016-12-22 17:44:29 +01:00
GitLab Build Bot
7dd988860f [ci skip] js-precompiled 20161222-162822 2016-12-22 16:31:24 +00:00
Nicolas Gotchac
1140f9c9f8 Remove ui/views/modals bundles (#3946) 2016-12-22 17:21:59 +01:00
Jaco Greeff
203b419080 Fix manual input token (#3945)
* Fix manual input token (invalid regex)

* .trim() on token

* Add ^ & $ matching
2016-12-22 17:21:48 +01:00
Nicolas Gotchac
692ec97158 Update Webpack to 2.2 RC2 (#3952) 2016-12-22 17:07:18 +01:00
GitLab Build Bot
25f1c1dcc9 [ci skip] js-precompiled 20161222-153857 2016-12-22 15:42:00 +00:00
Jaco Greeff
00f4f128f2 Add missing Ethcore -> Parity headers (#3948) 2016-12-22 16:33:05 +01:00
Paul Peregud
b444d23b3a code example: do start before register_protocol (#3947) 2016-12-22 16:15:26 +01:00
Igor Artamonov
be75cbfaaa set CHAIN_ID for Classic (#3934)
* configurable CHAIN_ID

* set CHAIN_ID for Ethereum Classic
2016-12-22 13:10:58 +01:00
Robert Habermeier
b44cd7b1db Merge pull request #3940 from gguoss/auth-bft
Fixed compile error.
2016-12-22 12:54:14 +01:00
gavinGuo
70c9f7c80d Fixed compile error. 2016-12-22 14:51:25 +08:00
keorn
552a772cc1 make fields defaulting to 0 optional 2016-12-22 07:06:40 +01:00
GitLab Build Bot
a13135de30 [ci skip] js-precompiled 20161222-043246 2016-12-22 04:35:36 +00:00
GitLab Build Bot
8114d50b47 [ci skip] js-precompiled 20161221-183632 2016-12-21 18:39:21 +00:00
Nicolas Gotchac
bce69b2b09 Fix dApps not loading (#3935) 2016-12-21 19:30:49 +01:00
GitLab Build Bot
5ea70b1fd3 [ci skip] js-precompiled 20161221-141855 2016-12-21 14:22:59 +00:00
Nicolas Gotchac
aba38721b1 Fix Secure API hangs (#3927)
* Use proxy for WS in dev

* Update SecureAPI

* Update webpack config

* Fix dev contract

* Update webpack

* Linting fixes

* Refactor Secure API logic : Promise based, no wastes of req

* Fix tests

* Add try 'intitial' token
2016-12-21 15:12:40 +01:00
Robert Habermeier
a9f89b09e0 Merge pull request #3899 from ethcore/warp-sync-rpcs
parity_chainStatus RPC for block gap info
2016-12-21 15:09:45 +01:00
Nikolay Volf
af501e6467 Custom attribute for binary serialization (#3922)
* derive(Binary) -> binary

* ethcore types refact

* fixup ethcore

* make binary optional

* fix common types

* fix updater

* remove condition
2016-12-21 15:09:35 +01:00
Robert Habermeier
01b494ca2c Merge branch 'master' into lightsync 2016-12-21 13:42:07 +01:00
Gav Wood
b369939f20 Merge pull request #3926 from ethcore/split-ci-intermediate-stage
Split intermediate stage into two.
2016-12-20 18:42:11 +01:00
Gav Wood
af5c6af539 Split intermediate stage into two. 2016-12-20 17:54:09 +01:00
GitLab Build Bot
5bccd13111 [ci skip] js-precompiled 20161220-164120 2016-12-20 16:44:23 +00:00
Gav Wood
d486a983ac Merge pull request #3920 from ethcore/curl-rel-before-build
Move release-registering to intermediate stage.
2016-12-20 17:35:34 +01:00
Gav Wood
8f5804eab8 Merge pull request #3894 from ethcore/jg-fix-status-blocktime
Blocktime format rounding
2016-12-20 17:35:08 +01:00
Tomasz Drwięga
9a5bb9470b Ignore dapps_policy.json (#3919)
* Ignore dapps_policy.json

* Produce warning for non-ignored files
2016-12-20 16:34:53 +01:00
Gav Wood
f5a4581fa5 Move release-registering to intermediate stage. 2016-12-20 14:05:07 +01:00
GitLab Build Bot
269338d9bf [ci skip] js-precompiled 20161220-130157 2016-12-20 13:04:47 +00:00
GitLab Build Bot
ee050d4fd8 [ci skip] js-precompiled 20161220-111754 2016-12-20 11:20:41 +00:00
Jaco Greeff
d89ee5432e JS API interface for parity_chainStatus 2016-12-20 12:12:39 +01:00
Gav Wood
854cc604d9 Merge pull request #3912 from ethcore/ng-contract-dev
Fixing Contract Development
2016-12-20 12:12:06 +01:00
Nicolas Gotchac
7b3b82b750 Updating dependencies 2016-12-20 11:43:13 +01:00
Nicolas Gotchac
efb928b8f1 Removed Worker 2016-12-20 03:51:23 +01:00
Nicolas Gotchac
b4c73a52d1 Merge branch 'master' into ng-contract-dev 2016-12-20 02:39:10 +01:00
Nicolas Gotchac
244d1aefc6 linting 2016-12-20 02:38:40 +01:00
Nicolas Gotchac
1627c3fa71 Add import files in Contract Dev 2016-12-20 02:37:16 +01:00
Nicolas Gotchac
5886034265 Add optimize and autocompile toggles 2016-12-20 02:11:04 +01:00
Nicolas Gotchac
f70e808056 Fallback in Contract Dev if no worker 2016-12-20 01:55:57 +01:00
Gav Wood
8fc10c1911 Merge pull request #3911 from ethcore/use-rhash-for-non-native
Use rhash for non-native CI platforms and submit build.
2016-12-20 01:12:15 +01:00
Gav Wood
6659a4ec21 Use rhash for non-native CI platforms and submit build. 2016-12-20 00:21:19 +01:00
Gav Wood
61ade1e710 Merge pull request #3907 from ethcore/no-orbit-off
remove -Zorbit=off from rustflags on windows
2016-12-19 22:24:51 +01:00
Gav Wood
cd8af0a497 Merge pull request #3904 from ethcore/new-dirs
Fixed upgrading keys on the first run
2016-12-19 22:24:37 +01:00
Gav Wood
18965be047 Merge pull request #3903 from ethcore/test-mem-limit-deadlock
fix deadlock in queue drop
2016-12-19 22:23:56 +01:00
Gav Wood
5ba16e4867 Merge pull request #3897 from ethcore/single-provider-functions
require only simpler methods on Provider
2016-12-19 22:23:39 +01:00
Robert Habermeier
11f382ca1b remove -Zorbit=off from rustflags on windows 2016-12-19 19:15:18 +01:00
Robert Habermeier
70d53dcfd6 Merge branch 'master' into lightsync 2016-12-19 18:53:52 +01:00
Robert Habermeier
ae8f77bc7c fix deadlock in queue drop 2016-12-19 18:10:26 +01:00
arkpar
ddb242c969 Fixed upgrading keys on the first run 2016-12-19 17:41:55 +01:00
Robert Habermeier
e0f6f8f97e Merge pull request #3902 from ethcore/rpc-error-grammar
Fix grammar ("you try" -> "you tried" + article)
2016-12-19 16:49:39 +01:00
Robert Habermeier
5b6cd2183b Fix grammar ("you try" -> "you tried" + article) 2016-12-19 16:27:03 +01:00
Robert Habermeier
e1adc9606f parity_chainStatus RPC for block gap info 2016-12-19 15:27:17 +01:00
Gav Wood
002cec9e6f Merge pull request #3872 from ethcore/disable-light-server
remove light server capability temporarily
2016-12-19 15:22:44 +01:00
Gav Wood
1f8a1cac22 Merge pull request #3896 from ethcore/timestamp-ignore
Allow retry for future blocks
2016-12-19 15:21:05 +01:00
Gav Wood
9e3cadc6c3 Merge pull request #3895 from ethcore/rename-engines
Consistent engine and seal names
2016-12-19 15:19:57 +01:00
Robert Habermeier
4c7dc9f2d8 require only simpler methods on Provider 2016-12-19 14:54:10 +01:00
arkpar
d3486b45c5 Allow retry for future blocks 2016-12-19 14:47:48 +01:00
Nicolas Gotchac
e377ec3194 Working ServiceWorker 2016-12-19 14:39:10 +01:00
GitLab Build Bot
776a45af87 [ci skip] js-precompiled 20161219-132051 2016-12-19 13:25:03 +00:00
keorn
46662899da make spec naming consistent 2016-12-19 14:15:39 +01:00
Jannis Redmann
2862e8b92c update email certification ABI (#3893) 2016-12-19 14:14:54 +01:00
Jaco Greeff
6efaec8f8b Blocktime format rounding 2016-12-19 14:07:50 +01:00
Robert Habermeier
2b1f51694b fix cli test 2016-12-19 14:01:19 +01:00
GitLab Build Bot
65f2d2b050 [ci skip] js-precompiled 20161219-122700 2016-12-19 12:30:05 +00:00
Jaco Greeff
1b59ceb7c1 Remove existence & length checks on passwords & phrases (#3854)
* Allow input to receive FormattedMessage errors

* Only do existence checks on phrases & passwords

* Add missing import

* Remove existence checks, display security reminder
2016-12-19 13:17:28 +01:00
Jannis Redmann
7185fb0f37 refresh certifications automatically (#3878)
* certifications: eth.getLogs -> filters

* linting 👕, indentation

* certifications: fetch filter changes

* certifications: prevent overlapping

* certifications: watch blockNumber to refresh

* fix email certification contract

See ethcore/contracts@d86490e302

* update email certification contract
2016-12-19 13:17:15 +01:00
Nicolas Gotchac
670be41b62 Fix Wallet Settings Modal (#3856)
* Fixes wallet settings modal

* Fix linting
2016-12-19 13:16:59 +01:00
Robert Habermeier
a48435ca60 Merge branch 'master' into lightsync 2016-12-19 13:15:37 +01:00
Robert Habermeier
d765611050 allow queue to drain fully when idle 2016-12-19 12:41:00 +01:00
Robert Habermeier
ccdf5d5873 increase tick timer and limit peers to one req 2016-12-19 12:28:42 +01:00
Arkadiy Paronyan
14a9942d14 Update appveyor.yml 2016-12-18 01:11:48 +01:00
Arkadiy Paronyan
fc10d15b75 Update appveyor.yml 2016-12-18 01:11:29 +01:00
Gav Wood
e755c09446 Merge pull request #3884 from ethcore/fix-diff-adj
Fix difficulty adjustment.
2016-12-17 16:35:20 +01:00
Gav Wood
ec5b867a22 Merge pull request #3883 from ethcore/fix-win-ci
Final fixups for updater
2016-12-17 16:10:08 +01:00
Gav Wood
d98f0d8fb5 No need to test windows for every PR. 2016-12-17 16:00:33 +01:00
Gav Wood
023d413610 Fix difficulty adjustment.
Closes #3861
2016-12-17 15:53:06 +01:00
Gav Wood
efd4036a9a Fix build. 2016-12-17 15:40:55 +01:00
Gav Wood
6e12f4f719 Alter port for icarus. 2016-12-17 15:22:31 +01:00
Gav Wood
b418cb8da3 Merge remote-tracking branch 'origin/master' into fix-win-ci 2016-12-17 15:10:17 +01:00
Gav Wood
b2b3a0eb34 Final fixups for updater
- Wire up platforms to match those of CI.
- Introduce "final" feature to tag version with "nightly".
2016-12-17 14:36:30 +01:00
Gav Wood
6634b2e3da Merge pull request #3882 from ethcore/fix-win-ci
Attempt to fix windows CI.
2016-12-17 13:13:08 +01:00
Gav Wood
a81e833fcc Merge pull request #3881 from ethcore/tx-test-fix
Fixing racy test
2016-12-17 12:57:15 +01:00
arkpar
b34d3ee5a2 Fixin racy test 2016-12-17 12:28:31 +01:00
Gav Wood
adb0f6fb26 Merge pull request #3880 from ethcore/fix-updater-permissions
Fix updater permissions
2016-12-17 12:15:05 +01:00
Gav Wood
f00eb060c1 Attempt to fix windows CI. 2016-12-17 12:06:51 +01:00
Robert Habermeier
5b0531e964 fix compiler warnings 2016-12-17 00:44:18 +01:00
Robert Habermeier
bd59ef05ac prettier informant 2016-12-17 00:41:02 +01:00
Robert Habermeier
893892ca12 remove request limiting from sync service 2016-12-17 00:31:21 +01:00
Robert Habermeier
be914ddfc7 fix check for moving backwards 2016-12-16 23:53:36 +01:00
Robert Habermeier
2c0f456e4d guard import order 2016-12-16 23:53:20 +01:00
Robert Habermeier
e57ab96731 fix reverse start block check 2016-12-16 23:21:59 +01:00
Robert Habermeier
08587a1f56 fix subchain request ordering 2016-12-16 23:21:51 +01:00
Robert Habermeier
653363c572 limit to one pending request per peer 2016-12-16 23:21:17 +01:00
Arkadiy Paronyan
4c0741e568 Fixed windows stub signature 2016-12-16 22:26:12 +01:00
Robert Habermeier
a7505be627 fix deadlocks 2016-12-16 22:09:29 +01:00
Robert Habermeier
8970946b74 basic --light parameter 2016-12-16 21:45:51 +01:00
Gav Wood
75c92e9356 Add Parity.png 2016-12-16 20:34:08 +01:00
Gav Wood
83e6e03dd6 Merge pull request #3865 from ethcore/tx-block
Delayed transactions
2016-12-16 20:28:18 +01:00
Gav Wood
6f977f03ae Rename from troublesome filename 2016-12-16 20:26:49 +01:00
Gav Wood
c14d34e347 Merge pull request #3853 from ethcore/jg-token-log
Don't log auth token
2016-12-16 20:24:23 +01:00
Gav Wood
fa721f5cdf Merge pull request #3875 from ethcore/config-fix
Loading default config from default path
2016-12-16 20:24:12 +01:00
Gav Wood
c2448f6c2f Add mac icon. 2016-12-16 18:32:33 +01:00
Gav Wood
14e4fefbcf Fix updater permissions and refactor existing code. 2016-12-16 18:17:15 +01:00
Gav Wood
45f141b52f Merge pull request #3877 from ethcore/path-fix
New paths
2016-12-16 17:38:20 +01:00
Robert Habermeier
8b88ef1844 add light sync service to ethsync 2016-12-16 17:38:16 +01:00
Gav Wood
b9cd68e7e6 Minor paths change 2016-12-16 17:38:02 +01:00
Gav Wood
e8624fda88 Merge pull request #3876 from ethcore/fix-ci
Update tests, gitlabci
2016-12-16 16:56:46 +01:00
Robert Habermeier
f85313fbff Merge branch 'master' into lightsync 2016-12-16 15:29:11 +01:00
Robert Habermeier
ce84215d93 naive and bad request dispatcher 2016-12-16 15:26:39 +01:00
arkpar
6966fd6c63 New paths 2016-12-16 15:25:53 +01:00
Gav Wood
b89d10239b Update tests, gitlabci 2016-12-16 15:12:35 +01:00
Tomasz Drwięga
f345458b65 Loading config from default path 2016-12-16 15:03:31 +01:00
arkpar
65f07e5aa7 Renamed some functions 2016-12-16 14:54:26 +01:00
Robert Habermeier
0d7b638a2d ancestor search response handler 2016-12-16 14:53:36 +01:00
arkpar
6c9de9e6f8 Merge branch 'master' of github.com:ethcore/parity into tx-block 2016-12-16 13:36:07 +01:00
arkpar
f967713d08 Added a test 2016-12-16 13:27:14 +01:00
GitLab Build Bot
3450538208 [ci skip] js-precompiled 20161216-121923 2016-12-16 12:22:56 +00:00
Gav Wood
72f278efed Merge pull request #3868 from ethcore/new-dirs
Base directory option
2016-12-16 13:04:31 +01:00
Gav Wood
6e5a583cb4 Merge pull request #3505 from ethcore/check-updates
Auto-updating
2016-12-16 13:01:49 +01:00
Gav Wood
b437265082 Fix build. 2016-12-16 11:27:00 +01:00
Gav Wood
90d3d330f5 Use info! for blockchain status rather than stdout. 2016-12-16 11:00:17 +01:00
Gav Wood
396ab5b361 Refactor and make is_syncing. 2016-12-16 10:31:10 +01:00
Gav Wood
35b18485d4 Don't check for updates while syncing. 2016-12-16 10:14:44 +01:00
Gav Wood
ba60e046be Tone down logging. 2016-12-16 10:02:42 +01:00
Gav Wood
d9b9172089 Merge pull request #3873 from ethcore/fix-collision
Fix naming collision
2016-12-16 02:09:36 +01:00
keorn
d8470cc5ca revert slack 2016-12-16 00:07:07 +01:00
Robert Habermeier
a1f32de2d9 Merge branch 'master' into lightsync 2016-12-15 23:55:04 +01:00
Robert Habermeier
8f65a7bcc8 remove light server capability temporarily 2016-12-15 23:50:16 +01:00
keorn
447196398a fix start_step 2016-12-15 23:36:06 +01:00
Gav Wood
6ea5638240 Merge pull request #3858 from ethcore/fetcher-ref
Get rid of unecessary redirection while fetching content
2016-12-15 23:08:37 +01:00
Gav Wood
a6a8e431f5 Fix lint 2016-12-15 22:46:36 +01:00
Gav Wood
7cac50601f Add JS tests for parity_netPeers 2016-12-15 22:45:35 +01:00
Robert Habermeier
8622ab66dc skeleton for maintain_sync: all but dispatch 2016-12-15 22:42:24 +01:00
Gav Wood
869fbf5108 Fix linting. 2016-12-15 22:07:25 +01:00
Gav Wood
ca0d87da10 125 -> 69. 2016-12-15 22:05:54 +01:00
arkpar
e2371632c5 Base dir option 2016-12-15 21:56:45 +01:00
Robert Habermeier
9c7340307e handle events, minimal state machine 2016-12-15 21:51:08 +01:00
arkpar
060cc799a6 Minor tweaks 2016-12-15 21:44:31 +01:00
GitLab Build Bot
3e83aeeb17 [ci skip] js-precompiled 20161215-201838 2016-12-15 20:21:20 +00:00
arkpar
e1dd986c41 Hex-encoded block numbers 2016-12-15 21:16:32 +01:00
Gav Wood
5bab14e0c0 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-15 21:15:25 +01:00
Gav Wood
5fb34573c6 Merge pull request #3864 from ethcore/jr-fix-verification
fix verification stores
2016-12-15 21:13:05 +01:00
Gav Wood
1a790b784f Fix centos's reported build platform. 2016-12-15 20:49:09 +01:00
Jannis R
d2962fe47b store certifier index in constant 2016-12-15 20:47:41 +01:00
arkpar
27580586e0 Minor tweaks 2016-12-15 20:09:05 +01:00
keorn
b7b531ca75 more slack in test 2016-12-15 19:54:28 +01:00
Gav Wood
4410fb635a Respect system paths. 2016-12-15 19:53:13 +01:00
arkpar
450a9d2867 Merge branch 'master' of github.com:ethcore/parity into tx-block 2016-12-15 19:41:19 +01:00
Nicolas Gotchac
1d04f25a0a Add error toString 2016-12-15 19:35:16 +01:00
arkpar
3ac0794d28 Bump jsonrpc-core for rpc_cli 2016-12-15 19:31:26 +01:00
keorn
b88d50dc9b fix naming collision 2016-12-15 19:27:06 +01:00
Robert Habermeier
72f7391551 add BasicContext trait for handler ticking 2016-12-15 19:25:52 +01:00
Gav Wood
801596395e --release-track. 2016-12-15 19:23:25 +01:00
Gav Wood
995fafebee Fix last remaining test. 2016-12-15 19:19:50 +01:00
Gav Wood
d737de0fc0 Fix tests. 2016-12-15 19:17:44 +01:00
arkpar
f8961484c1 Merge branch 'master' of github.com:ethcore/parity into tx-block 2016-12-15 19:10:33 +01:00
Nicolas Gotchac
5983a0c1a5 Linting fixes 2016-12-15 19:07:13 +01:00
Nicolas Gotchac
365ab60fed Use ServiceWorker for Contract compilation 2016-12-15 19:06:05 +01:00
Gav Wood
4a2b418fc2 Configurable update tracks to help testing. 2016-12-15 18:51:59 +01:00
Robert Habermeier
5346539ef8 minimal header import and client service 2016-12-15 18:47:26 +01:00
Tomasz Drwięga
99e42db2f5 Merge branch 'master' into fetcher-ref 2016-12-15 18:33:58 +01:00
Gav Wood
fa319ff64c Remove duplicate line. 2016-12-15 18:24:18 +01:00
GitLab Build Bot
867fdb9eac [ci skip] js-precompiled 20161215-172100 2016-12-15 17:23:53 +00:00
Gav Wood
c12702fc51 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-15 18:23:02 +01:00
arkpar
2952ea1b85 Delayed transactions 2016-12-15 18:19:19 +01:00
Jannis Redmann
5939575c87 Merge #3863 from ethcore/jg-contract-subid
Store subscriptionId, align with main subscription model
2016-12-15 18:14:33 +01:00
Jannis R
7fdcc70825 Merge jg-contract-subid into jr-fix-verification 2016-12-15 18:12:45 +01:00
Jaco Greeff
1f1dc8b89d Store subscriptionId, use it to send changes 2016-12-15 18:09:59 +01:00
Jannis R
0e963da27b fix verification stores 🐛 2016-12-15 18:09:52 +01:00
Gav Wood
4d6b4d9d72 Merge pull request #3792 from ethcore/dapps-accounts-rpc
Additional RPCs for dapps accounts management
2016-12-15 18:09:40 +01:00
Jaco Greeff
2be5247567 Merge branch 'master' into jg-contract-subid 2016-12-15 18:06:45 +01:00
Gav Wood
eb90d70be1 Merge pull request #3830 from ethcore/cli-rpc
Add Ws Json rpc client and command line utils (take 2)
2016-12-15 18:04:35 +01:00
GitLab Build Bot
87f1486907 [ci skip] js-precompiled 20161215-170041 2016-12-15 17:03:27 +00:00
Jannis Redmann
29457c11ef Merge #3862 from ethcore/jg-fix-contracts-send
Fix typo in method call (broken contract interface)
2016-12-15 17:54:42 +01:00
Jaco Greeff
17781a5ac4 Fix typo in method call 2016-12-15 17:52:28 +01:00
Robert Habermeier
f776f48023 drain prepared headers from sync round 2016-12-15 17:33:25 +01:00
Gav Wood
943f58487c Merge remote-tracking branch 'origin/master' into cli-rpc 2016-12-15 17:13:51 +01:00
Gav Wood
d455ac4a40 Merge remote-tracking branch 'origin/master' into dapps-accounts-rpc 2016-12-15 17:12:18 +01:00
Gav Wood
db2e1dd01a Merge remote-tracking branch 'origin/master' into check-updates 2016-12-15 17:11:22 +01:00
Gav Wood
2e02db2d3e Merge pull request #3860 from ethcore/fix-channel
Fix flaky test
2016-12-15 17:10:41 +01:00
keorn
ee653bc262 unused import 2016-12-15 16:53:28 +01:00
keorn
9bfa69c6bd fix channel 2016-12-15 16:52:39 +01:00
Robert Habermeier
71e96aca10 handle abandoned requests 2016-12-15 16:19:28 +01:00
Tomasz Drwięga
2be6223eb3 Updating submodules to latest 2016-12-15 15:57:21 +01:00
Jaco Greeff
9dd1268b69 Add keys for steps (future-proof) 2016-12-15 15:56:58 +01:00
Robert Habermeier
ec88a992e3 provide response context to response handler 2016-12-15 15:50:36 +01:00
Tomasz Drwięga
b85f7b7433 Merge branch 'master' into fetcher-ref 2016-12-15 15:44:14 +01:00
Gav Wood
5e59e0b9d3 Fix build. 2016-12-15 15:35:46 +01:00
Tomasz Drwięga
dedf9d6dce Getting rid of redirection 2016-12-15 15:32:53 +01:00
Gav Wood
817a58cf64 Merge pull request #3844 from ethcore/trace-macros
Converting traces API to AutoArgs
2016-12-15 15:21:35 +01:00
Gav Wood
590428e7f2 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-15 15:12:09 +01:00
Gav Wood
d1040e4127 Whitespace 2016-12-15 15:03:34 +01:00
Gav Wood
8f5e0cf7d9 Fix build 2016-12-15 14:54:02 +01:00
GitLab Build Bot
7e76d6494c [ci skip] js-precompiled 20161215-134858 2016-12-15 13:52:59 +00:00
Gav Wood
ca63bc2f44 Update parking_lot dep 2016-12-15 14:46:31 +01:00
Gav Wood
0da564a4c2 Merge branch 'master' into cli-rpc 2016-12-15 14:45:15 +01:00
Gav Wood
d76239ed48 Merge pull request #3768 from ethcore/jr-use-badge-reg
get certifications from BadgeReg, show them in accounts overview
2016-12-15 14:43:05 +01:00
Gav Wood
20b2f84d48 Merge pull request #3828 from ethcore/new-dirs
New directory structure
2016-12-15 14:34:01 +01:00
GitLab Build Bot
6dfcbd4156 [ci skip] js-precompiled 20161215-130206 2016-12-15 13:06:03 +00:00
Jaco Greeff
054a6a9daf Merge branch 'master' into check-updates
# Conflicts:
#	.gitlab-ci.yml
#	js/webpack/dev.server.js
2016-12-15 13:52:28 +01:00
Gav Wood
be0d5ca516 Merge pull request #3827 from ethcore/jr-first-run
first run: skip account creation if they already have accounts
2016-12-15 13:52:01 +01:00
Jannis R
4c42dedcad sort props 💄 2016-12-15 13:51:44 +01:00
Gav Wood
1ea521ea7d Merge remote-tracking branch 'origin/master' into dapps-accounts-rpc 2016-12-15 13:51:22 +01:00
Gav Wood
9440c2600f Merge pull request #3857 from ethcore/tender-seal
Tendermint seal
2016-12-15 13:50:49 +01:00
Jannis R
f59f7c5773 address style grumbles 💄 2016-12-15 13:48:40 +01:00
keorn
0b9ab0797f fix build 2016-12-15 13:45:22 +01:00
keorn
943efc21bb add tendermint seal 2016-12-15 13:41:04 +01:00
Gav Wood
69eec105a7 Change default back to permissive for now. 2016-12-15 13:40:44 +01:00
Gav Wood
db73b0d66f Merge remote-tracking branch 'origin/master' into dapps-accounts-rpc 2016-12-15 13:28:37 +01:00
Jannis R
afba259506 merge master into jr-use-badge-reg 2016-12-15 13:25:35 +01:00
Gav Wood
a74bce2c06 Merge pull request #3759 from ethcore/auth-bft
Tendermint Engine
2016-12-15 13:18:15 +01:00
Gav Wood
1ebbb8ae3d Merge pull request #3852 from ethcore/js-css-lint
Expand lint to catch css issues
2016-12-15 13:09:51 +01:00
Gav Wood
8fa00a20e6 Merge pull request #3851 from ethcore/js-inject-all
inject exports both partiy & web3
2016-12-15 13:09:29 +01:00
Gav Wood
0562d85a0e Merge pull request #3848 from ethcore/ng-webpack-talkative
Let Webpack talk again
2016-12-15 13:09:06 +01:00
Gav Wood
a660024eac Merge pull request #3843 from ethcore/auth-round-seal
AuthorityRound seal and simplify Generic seal Spec
2016-12-15 13:08:50 +01:00
Gav Wood
c4406c9198 Merge pull request #3691 from ethcore/rotating-key
Signing transactions with rotating token
2016-12-15 13:08:19 +01:00
Robert Habermeier
5d8bfd8758 handle responses for round scaffold and frames 2016-12-15 13:05:38 +01:00
arkpar
6d41168bbe Change build order 2016-12-15 12:07:09 +01:00
Tomasz Drwięga
c6912c8e0a Removing on_done 2016-12-15 11:43:36 +01:00
Jaco Greeff
701399fc77 Don't log auth token 2016-12-15 10:23:01 +01:00
Jaco Greeff
88a26ec53f Support lint:cached 2016-12-15 10:08:57 +01:00
Jaco Greeff
9fc3c47bcb inject exports both partiy & web3 2016-12-15 10:05:52 +01:00
Denis S. Soldatov aka General-Beck
03db4d0373 Update gitlab-ci
add `cargo clean` in darwin build
2016-12-15 14:15:27 +07:00
Nicolas Gotchac
15050da1cd Let Webpack talk again 2016-12-15 00:07:49 +01:00
Robert Habermeier
0768a61944 light: add LightChainClient trait 2016-12-14 23:26:15 +01:00
Robert Habermeier
1bcfc9348d light: specialize Downloader to SyncRound 2016-12-14 23:25:51 +01:00
Robert Habermeier
91b8fa7039 light: downloader state machine stub 2016-12-14 22:57:30 +01:00
Gav Wood
bf7fb84937 Don't put sha3s. 2016-12-14 21:59:00 +01:00
Robert Habermeier
2966b88a7a Merge pull request #3835 from ethcore/bump-dev
Bump dev chain
2016-12-14 21:37:14 +01:00
Robert Habermeier
0d466fa8d0 light: tests for response module 2016-12-14 20:27:03 +01:00
Denis S. Soldatov aka General-Beck
245c8581bb Update .gitlab-ci.yml 2016-12-15 02:17:59 +07:00
Denis S. Soldatov aka General-Beck
244761782e Update gitlab-ci
Remove armv6 from `nightly`
remove `-j 8` key from windows builds
Remove `test-windows` from `nightly`
2016-12-15 02:14:15 +07:00
Tomasz Drwięga
d2b9bc5bd8 Traces to AutoArgs 2016-12-14 20:09:14 +01:00
Tomasz Drwięga
6e51b23e30 Adding traces tests 2016-12-14 20:07:33 +01:00
Robert Habermeier
887bcfb88a light: response decoding and verification module 2016-12-14 19:36:48 +01:00
Jaco Greeff
3df092f29d Add lint:css 2016-12-14 16:42:26 +01:00
Jaco Greeff
7330612bfb Toggle upgrade modal via upgrade link 2016-12-14 15:56:01 +01:00
Vincent Serpoul
339b889ac4 spelling (#3839) 2016-12-14 15:15:19 +01:00
Tomasz Drwięga
366f9a8cd7 Fixing tests 2016-12-14 14:44:09 +01:00
Jaco Greeff
2588aea6b2 Merge branch 'master' into check-updates 2016-12-14 14:37:38 +01:00
Jaco Greeff
a8f428ccca Display capability status on statusbar 2016-12-14 14:37:25 +01:00
Tomasz Drwięga
1d80725f66 Merge branch 'master' into cli-rpc 2016-12-14 14:12:27 +01:00
Tomasz Drwięga
7eb9112613 Merge branch 'master' into rotating-key
Conflicts:
	rpc/src/v1/traits/signer.rs
2016-12-14 14:10:44 +01:00
Jaco Greeff
d28ec2ff97 Make enode available on Status page 2016-12-14 13:41:29 +01:00
keorn
f686fa3d6f update specs and generic conversion 2016-12-14 12:50:32 +01:00
Jannis R
bbcae3d27b merge master into jr-first-run 2016-12-14 12:28:55 +01:00
Jannis R
240bab230c merge master into jr-use-badge-reg 2016-12-14 12:26:18 +01:00
keorn
8509a183ed deserialize new seal 2016-12-14 12:14:04 +01:00
keorn
ae98a56e8b revert submodule 2016-12-14 11:42:47 +01:00
keorn
e1d83d15b7 bump dev chain 2016-12-14 11:34:19 +01:00
arkpar
3280f071b1 Fixed moving dirs on windows 2016-12-14 01:33:57 +01:00
arkpar
be5fefe772 Merge branch 'master' of github.com:ethcore/parity into new-dirs 2016-12-14 00:04:11 +01:00
arkpar
6e3e1ea88b XDG paths 2016-12-13 23:38:29 +01:00
Gav Wood
d1653567d9 Add contract ABI auto-generatr.
o
2016-12-13 22:32:34 +01:00
Robert Habermeier
359d433292 light: pass incoming responses to peer state machine 2016-12-13 22:26:06 +01:00
Gav Wood
597c3a4770 Ensure chain state is at threshold security level before looking for updates. 2016-12-13 21:21:07 +01:00
Robert Habermeier
6fb71527e4 light: search for common ancestor with peers 2016-12-13 21:09:57 +01:00
Robert Habermeier
8c64400654 light: change sync module name 2016-12-13 21:09:43 +01:00
Gav Wood
805b8cab2c Add missing file. 2016-12-13 20:50:33 +01:00
Gav Wood
4424155d39 Similar checks on file changes to other tests. 2016-12-13 20:49:26 +01:00
Gav Wood
aaf6d59bda Disable windows tests until it works. 2016-12-13 20:22:04 +01:00
Gav Wood
6a48e9d9e5 Print output for commands, don't info! 2016-12-13 20:20:10 +01:00
Robert Habermeier
484023b171 light: max requests as 0 on unknown peer 2016-12-13 20:13:55 +01:00
Robert Habermeier
2a01b43bd1 light: block status and CHT module 2016-12-13 20:13:16 +01:00
keorn
c96826beaa expect instead of index 2016-12-13 18:22:56 +01:00
GitLab Build Bot
1a9a142a69 [ci skip] js-precompiled 20161213-171715 2016-12-13 17:19:48 +00:00
Gav Wood
72b8ee84c7 Merge pull request #3766 from ethcore/jr-email-verification
email verification
2016-12-13 18:09:41 +01:00
Gav Wood
80d6e49070 Merge pull request #3812 from ethereumproject/splix/classic-replay-protection
Network configuration for Ethereum Classic
2016-12-13 17:39:33 +01:00
Gav Wood
c6281fc1c7 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-13 17:26:09 +01:00
Gav Wood
575afd8bac Merge branch 'check-updates' of github.com:ethcore/parity into check-updates 2016-12-13 17:25:16 +01:00
Gav Wood
e099e0d93c Add auth code. 2016-12-13 17:23:48 +01:00
Robert Habermeier
0b69e41bd1 Merge pull request #3831 from ethcore/rpc-macros
Using jsonrpc-macros
2016-12-13 17:16:29 +01:00
Gav Wood
119f253be9 Fix windows test. 2016-12-13 17:14:18 +01:00
Gav Wood
362b201532 Don't run git unnecessarily. 2016-12-13 16:32:03 +01:00
Gav Wood
7e269fe3d3 GLitlab-CI script pushes build info. 2016-12-13 16:21:26 +01:00
Tomasz Drwięga
65d62ccf04 Altering the order [ci:skip] 2016-12-13 14:59:19 +01:00
Robert Habermeier
45ef986c04 light: finish basic header chain and add tests 2016-12-13 14:48:03 +01:00
Tomasz Drwięga
f47be50843 Using jsonrpc-macros 2016-12-13 14:40:35 +01:00
arkpar
49ae375605 Don't coneect peers on each sync 2016-12-13 13:23:10 +01:00
Tomasz Drwięga
5affefc763 Fixing CLI signer 2016-12-13 12:17:01 +01:00
GitLab Build Bot
1114ad3ca7 [ci skip] js-precompiled 20161213-051314 2016-12-13 05:15:44 +00:00
Robert Habermeier
c2264bed27 light: skeleton for sync service 2016-12-13 00:08:39 +01:00
Jaco Greeff
51b544c2db Simplify icon exports 2016-12-12 23:53:29 +01:00
arkpar
5fd2e15313 Style and docs 2016-12-12 23:21:44 +01:00
Jaco Greeff
dbc6b42267 Lint fixes 2016-12-12 23:14:44 +01:00
Jaco Greeff
9931d7657a Merge remote-tracking branch 'origin/check-updates' into check-updates 2016-12-12 23:07:41 +01:00
Robert Habermeier
4173ecf2a5 light: begin header chain 2016-12-12 22:59:05 +01:00
Jaco Greeff
e170134d97 Merge branch 'master' into check-updates 2016-12-12 22:45:12 +01:00
Jaco Greeff
f15671c74b UI interface completed, to be tested 2016-12-12 22:45:09 +01:00
keorn
fa504e510f Merge branch 'master' into auth-bft 2016-12-12 21:28:46 +01:00
Igor Artamonov
e61d14d7f7 reuse Morden for Classic Testnet 2016-12-12 19:50:32 +00:00
keorn
19adb84527 TestNet flushing and cleanup 2016-12-12 19:44:24 +01:00
Jaco Greeff
a8ae9b02f9 Typo 2016-12-12 18:58:31 +01:00
Jaco Greeff
a2a89f7e59 Basic UI structure in-place 2016-12-12 18:30:41 +01:00
Jaco Greeff
7a0fccf417 Add shared icons 2016-12-12 18:30:05 +01:00
Jaco Greeff
9a26caf548 Build settings 2016-12-12 18:29:45 +01:00
arkpar
85fd62917a Updated tests 2016-12-12 17:53:17 +01:00
keorn
722cd4d086 AuthorityRound fork test 2016-12-12 17:24:48 +01:00
keorn
f8ed5cf022 finalize unit tests 2016-12-12 17:20:20 +01:00
arkpar
edb853ca35 KillDB command 2016-12-12 17:19:41 +01:00
arkpar
6601fde328 New data paths with upgrade 2016-12-12 16:51:07 +01:00
Gav Wood
988ac8a22d Add forks supported. 2016-12-12 16:47:57 +01:00
Gav Wood
ab4d666681 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-12 16:35:11 +01:00
Jaco Greeff
1135674eaa WIP UI (dialog available) 2016-12-12 15:51:36 +01:00
Jaco Greeff
c784ab55d2 Extend jsapi interfaces with documentation 2016-12-12 15:43:59 +01:00
Jaco Greeff
a659adfd33 Only ignore parity.* files in root 2016-12-12 15:43:24 +01:00
GitLab Build Bot
d2a34acdfd [ci skip] js-precompiled 20161212-143454 2016-12-12 14:37:25 +00:00
Gav Wood
3a16247655 Merge pull request #3823 from ethcore/jg-typedinput-tests
Fixed bool dropdown in contract execution
2016-12-12 15:28:58 +01:00
Jannis R
b980e7a329 add skip button to first run modal 2016-12-12 14:32:55 +01:00
Jannis R
085adbaffd make showFirstRun in localStorage a bool 2016-12-12 14:15:26 +01:00
keorn
8ed89bb74f propagate proposal to all peers 2016-12-12 13:00:51 +01:00
Jaco Greeff
3a7e30ec5c Fix issue with bool type dropdown 2016-12-12 12:49:40 +01:00
Jaco Greeff
563c8c75f9 Tests for DetailsStep (only bool dropdown) 2016-12-12 12:49:04 +01:00
Jaco Greeff
c5c4e5e901 Updated 2016-12-12 12:48:43 +01:00
Jaco Greeff
29674a0e65 Small testability fixes 2016-12-12 12:48:32 +01:00
Jaco Greeff
23234fb1aa Allow operation in test mode 2016-12-12 12:48:16 +01:00
Jannis R
c43944584d fix import 2016-12-12 12:33:58 +01:00
Jannis R
723e9e55db merge master into jr-email-verification 2016-12-12 12:21:06 +01:00
Jannis R
d67a9388ff merge master into jr-use-badge-reg 2016-12-12 12:13:49 +01:00
Jaco Greeff
28be8d6f6c Test for bool TypedInput 2016-12-12 10:55:20 +01:00
Jaco Greeff
f9b5a056cf Merge branch 'master' into jg-typedinput-tests 2016-12-12 10:14:29 +01:00
Jaco Greeff
2c4c6ba4e4 Basic smoketest 2016-12-12 10:12:12 +01:00
GitLab Build Bot
1db4647327 [ci skip] js-precompiled 20161212-052342 2016-12-12 05:26:15 +00:00
GitLab Build Bot
f1096619a5 [ci skip] js-precompiled 20161212-034026 2016-12-12 03:43:28 +00:00
Gav Wood
7975d475e1 Flesh out RPC tests. 2016-12-12 04:29:55 +01:00
Gav Wood
c0a2d5c8f5 Merge pull request #3796 from ethcore/tx-broadcast
Avoid broadcasting transactions to peers that send them
2016-12-12 04:13:56 +01:00
Gav Wood
2844a4e85e Merge pull request #3800 from ethcore/eth-sign
eth_sign RPC now hashes given data instead of getting the hash
2016-12-12 04:12:27 +01:00
Gav Wood
4c9ea55e49 Add an Updater mockup and provide a test for it. 2016-12-12 03:49:50 +01:00
Gav Wood
77cb937065 Please info!s in updater target. 2016-12-12 03:02:27 +01:00
Gav Wood
382a0b2d8b Avoid warning. 2016-12-12 03:00:18 +01:00
Gav Wood
32746df706 Add missing ;s 2016-12-12 02:58:35 +01:00
Gav Wood
758744449f Expose all other RPCs. 2016-12-12 02:57:19 +01:00
GitLab Build Bot
29af24519d [ci skip] js-precompiled 20161211-234535 2016-12-11 23:48:03 +00:00
Nicolas Gotchac
0cb16ae589 Add store for MethodDecoding (#3821)
* Add Loader to Transactions

* Add Method Decoding Store (better fetching of methods)

* Load locally stored ABI in MethodDecodingStore

* Fixes UI glitches along the way

* Linting

* Add method decoding from User Contracts
2016-12-12 00:38:47 +01:00
Jaco Greeff
22ac80d98f Add store for AddAddress (#3819)
* WIP

* Updated tests

* Final round of fixes

* Header update
2016-12-12 00:38:38 +01:00
Gav Wood
2d0d4682ad Add first Updater RPC. 2016-12-11 23:36:38 +01:00
Gav Wood
d81d9d77b2 Wire-in Updater to parity RPC 2016-12-11 23:15:52 +01:00
keorn
3c5d5856d2 nicer tracing 2016-12-11 22:54:48 +01:00
Gav Wood
d8ad09b654 Make updater an IPC module. 2016-12-11 22:47:43 +01:00
GitLab Build Bot
2de64bb5e4 [ci skip] js-precompiled 20161211-202217 2016-12-11 20:24:36 +00:00
Tomasz Drwięga
83d9bc189b Fixing test 2016-12-11 21:08:15 +01:00
Nicolas Gotchac
4c3dea2a0b Fix React-Router in i18n locale change (#3815)
* Routes in routes config => no more react router error message

* Add LocalStorage for Locale Selection

* Ethcore to Parity LTD
2016-12-11 21:03:48 +01:00
Nicolas Gotchac
4dbfcf231d Cache fetched Dapps (#3804)
* Have a singleton DappsFetcher so we don't realod them at each page load

* Better dapps Fetcher : event based listener
  Update on meta change

* Remove dapps fetcher => all in singleton dapps store + utils

* Modify header to Parity
2016-12-11 21:03:40 +01:00
GitLab Build Bot
f4134cf634 [ci skip] js-precompiled 20161211-193650 2016-12-11 19:39:15 +00:00
Gav Wood
e528ac9217 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-11 20:20:09 +01:00
Gav Wood
972aa79f9f Merge pull request #3818 from ethcore/consistent-crate-info
authors & homepage => Parity
2016-12-11 20:17:40 +01:00
Gav Wood
3aab5dec9b Refactor into a service. 2016-12-11 20:14:18 +01:00
GitLab Build Bot
282178e1fa [ci skip] js-precompiled 20161211-190404 2016-12-11 19:06:28 +00:00
Gav Wood
94f5501c61 authors & homepage => Parity 2016-12-11 19:43:58 +01:00
Gav Wood
15bb3f9b0a Merge remote-tracking branch 'origin/master' into check-updates 2016-12-11 19:38:04 +01:00
Gav Wood
c33901bd9f Merge pull request #3817 from ethcore/rename-ethcore-parity
Rename Ethcore -> Parity Technologies
2016-12-11 19:36:21 +01:00
Gav Wood
58b72c521d Rename ethcore -> parity in licenses. 2016-12-11 19:31:31 +01:00
Gav Wood
17cc2be4b5 Rename ethcore -> parity in license. 2016-12-11 19:30:54 +01:00
Gav Wood
33f266fffe Merge remote-tracking branch 'origin/master' into check-updates 2016-12-11 19:26:24 +01:00
Gav Wood
35b037e055 Add renamed files. 2016-12-11 19:15:58 +01:00
Gav Wood
10b0898bdf Crate tidyups.
- Move Updater into its own crate.
- Change ethcore -> parity in authors, homepages and licenses.
2016-12-11 19:14:42 +01:00
keorn
a4bf914683 Merge branch 'auth-bft' of https://github.com/ethcore/parity into auth-bft 2016-12-11 18:23:54 +01:00
Tomasz Drwięga
627b8a8414 Changing default policy 2016-12-11 17:56:12 +01:00
GitLab Build Bot
797d787a7b [ci skip] js-precompiled 20161211-164839 2016-12-11 16:51:09 +00:00
keorn
d4c9493b00 verification cache retrieval 2016-12-11 17:50:12 +01:00
Jaco Greeff
929b6ee0f7 Allow editing of gasPrice & gas in Signer (#3777)
* Rework gas display (maintainable)

* Move GasPriceSelector to ui

* Allow opening of gas component (WIP)

* Merge

* Consistency

* Adjust for Signer display

* Set maximum height based on screen size

* Gas editor displays in-place

* Cleanups

* Merge

* Style fixes

* Fixup stash mishap (again)

* Add store test

* Allow edited values to refrect on the display

* Fix properties

* Adjust styling to show different rows

* git mv

* git mv

* Style fixes

* Style updates

* Pass gas & gasPrice with confirmation

* Fix build (case)

* Style fixes

* Basic GasPriceEditor smoketest

* manual move 1

* manual move 2

* manual move 1

* manual move 2

* NODE_ENV=test ace fix

* UI smoketests

* Style

* Format options via formatter

* Initial version

* Re-add even/odd class

* re-add gasLimit to embedded passing

* style

* Updated for passing gas & price to store

* Allow gas/price overrides when none available

* Fix slider value, pass as number
2016-12-11 17:43:51 +01:00
Jaco Greeff
885d6eaa4d i18n string dictionaries (#3532)
* TabBar & Settings -> Views i18n enabled

* Proxy i18n

* Settings i18n

* defaultLocale

* Introduce thin Translate wrapper

* PropTypes util caters for multiples

* Translate & LanguageSelector under ui

* Update location & proptypes

* Add UI Language selector

* German settings pages

* Add German language selection

* Corrected umlaut encoding

* Lint

* Re-apply pre-merge conflict changes

* better German i18n

* Language names in locale language

* i8n -> index

* Allow for development/production operation

* Use Yahoo react-intl (as opposed to react-i18nify)

* Use default messages wih expansions

* Remove non-reused variable definitions

* Use FormattedMessage directly, opens up WebPack & Babel opportunities

* Add flat to flatten

* Extract default messages via babel

* Webpack to aggegrate i18n defaultMessage

* Re-add react-intl after merge

* Update proptype references (merge)

* Strip down external dictionary

* i18n for dapps

* Restore tests submodule

* Allow language changes to reflect

* Style updates
2016-12-11 17:42:35 +01:00
Tomasz Drwięga
b56f12adc6 Merge branch 'master' into tx-broadcast
Conflicts:
	ethcore/light/src/net/context.rs
	ethcore/light/src/net/tests/mod.rs
2016-12-11 17:31:56 +01:00
Gav Wood
e09b1faf20 Fix semver version issues. 2016-12-11 17:13:26 +01:00
GitLab Build Bot
839e3385dd [ci skip] js-precompiled 20161211-155716 2016-12-11 16:00:49 +00:00
Gav Wood
22cb5753d0 Improve capability information and disable old clients. 2016-12-11 16:52:41 +01:00
Nicolas Gotchac
13509a9e83 Fix padding in App, again... (#3813) 2016-12-11 16:49:38 +01:00
Gav Wood
74a6203f72 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-11 15:43:28 +01:00
Gav Wood
0e17cf8d3a Fix tests. 2016-12-11 15:41:49 +01:00
Robert Habermeier
6724f574d6 Light server improvements and protocol adjustments (#3801)
* light: basic transaction pool

* light: network timeouts

* fix dead code warnings

* les: update to new message format

* fix indentation

* les: hash or number in headers req, not both
2016-12-11 15:40:31 +01:00
Igor Artamonov
6742b080f5 use decimals for block numbers in config 2016-12-11 20:38:37 +06:00
Igor Artamonov
4e3c49c809 revert ETC to correct Network ID 2016-12-11 20:34:46 +06:00
Gav Wood
e6444cd106 Merge pull request #3810 from ethcore/defaults-parse-fix
Tolerate errors in user_defaults
2016-12-11 15:15:43 +01:00
GitLab Build Bot
778f5bbfaf [ci skip] js-precompiled 20161211-141210 2016-12-11 14:14:41 +00:00
Gav Wood
b28537aa9a Merge pull request #3809 from ethcore/mining-min-gas-limit
block: enforce gas limit falls within engine bounds
2016-12-11 15:08:30 +01:00
Nicolas Gotchac
d3077c51fc Target Babel to latest Chrome Versions in dev (#3806)
* Use `babel-preset-env` to target Babel to latest Chrome Versions

* Opt-In mechanism for Babel Preset Env
2016-12-11 15:05:10 +01:00
arkpar
05dcf951d1 Merge w master 2016-12-11 14:59:57 +01:00
Igor Artamonov
aed633d7df Testnet for Ethereum Classic 2016-12-11 19:25:02 +06:00
Gav Wood
5bf9fa9168 Allow reuse of previous logger. 2016-12-11 13:35:00 +01:00
arkpar
a49ff3fb32 Merge branch 'master' of github.com:ethcore/parity into cli-rpc 2016-12-11 13:30:48 +01:00
Igor Artamonov
7b5bc115e9 EIP-160 configuration for Ethereum Classic 2016-12-11 18:29:40 +06:00
Igor Artamonov
592ff53bab EIP-155 configuration for Ethereum Classic 2016-12-11 18:28:37 +06:00
arkpar
2c653d2c2e Merge w master 2016-12-11 13:11:08 +01:00
Gav Wood
8d7a63bbea Join up the final dots. 2016-12-11 13:10:33 +01:00
arkpar
a56443aa6c Tolerate error is user_defaults 2016-12-11 13:00:49 +01:00
Robert Habermeier
9252ebf93d block: enforce gas limit falls within engine bounds 2016-12-11 12:50:48 +01:00
arkpar
c777362d02 Sync channel for consensus test 2016-12-11 12:32:01 +01:00
GitLab Build Bot
95af942fc9 [ci skip] js-precompiled 20161211-093638 2016-12-11 09:40:44 +00:00
Jaco Greeff
0a37288aa4 Lowercase npm packages (#3807) 2016-12-11 10:30:30 +01:00
GitLab Build Bot
17dee5f1a2 [ci skip] js-precompiled 20161211-091947 2016-12-11 09:22:07 +00:00
Jaco Greeff
36b8e4b6a8 Extended publishing of libraries to npm (#3786)
* Extended publishing of libraries to npm

* Update source links

* Add some tests before publishing NPM library

* Fix Shapeshift tests
2016-12-11 10:13:34 +01:00
Gav Wood
d9f6ea56ef Don't restart if we're not in the cradle. 2016-12-11 04:05:02 +01:00
Gav Wood
2865cbaf70 Use file contents instead of symlink. 2016-12-11 03:33:10 +01:00
Gav Wood
7a1539cfb5 Fix deadlock. 2016-12-11 02:39:56 +01:00
GitLab Build Bot
bfb684a641 [ci skip] js-precompiled 20161211-012647 2016-12-11 01:28:52 +00:00
Gav Wood
078feaadd5 Merge pull request #3799 from ethcore/ng-ui-fixes
Several Fixes to the UI
2016-12-11 02:16:21 +01:00
Gav Wood
0a494962e4 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-11 02:13:52 +01:00
Gav Wood
120564ff29 Avoid pulling in hash_fetch. 2016-12-11 02:12:52 +01:00
Gav Wood
0302d582d2 Fix build. 2016-12-11 02:02:40 +01:00
Nicolas Gotchac
ba3bfcc54d Merge branch 'master' into ng-ui-fixes 2016-12-11 01:26:55 +01:00
Gav Wood
068201a01b Merge pull request #3805 from ethcore/fix-ci
Remove "s
2016-12-11 00:30:28 +01:00
Gav Wood
7c2c9c89a4 Stricter search for rust changes. 2016-12-11 00:20:19 +01:00
Gav Wood
c14d8da350 Use real arithmetic operator rather than '=' 2016-12-11 00:09:04 +01:00
GitLab Build Bot
62492a915e [ci skip] js-precompiled 20161210-230517 2016-12-10 23:07:55 +00:00
Gav Wood
12df3adfeb Merge branch 'master' into fix-ci 2016-12-11 00:02:48 +01:00
Gav Wood
854eb1080c Remove "s 2016-12-10 23:59:50 +01:00
Gav Wood
fa30dfd4b9 Refactor into system service, add exe redirect. 2016-12-10 23:58:39 +01:00
Nicolas Gotchac
b44e7bb292 Extract CSS to file in production builds (#3783)
* Extract CSS to file if production build

* Use DAPPS_URL for testing purposes + better assets in Webpack

* Delete comments
2016-12-10 23:55:57 +01:00
Nicolas Gotchac
b0f1665f11 Notify user on transaction received (#3782)
* Notify user on new transaction #2556

* Add routing to account on notification click

* Timeout of notif set to 20s
2016-12-10 23:55:36 +01:00
Gav Wood
aa30619b6f Merge pull request #3772 from ethcore/txqueue-gc
Removing all old entries from transaction queue
2016-12-10 23:53:24 +01:00
Tomasz Drwięga
1e8638608c fixing tests 2016-12-10 22:59:35 +01:00
Nicolas Gotchac
e5c73b29d8 'contract/write' to 'contract/develop' 2016-12-10 22:42:49 +01:00
GitLab Build Bot
5ec1ff43ea [ci skip] js-precompiled 20161210-212741 2016-12-10 21:29:53 +00:00
Nicolas Gotchac
9dbccfda2f Fix padding bottom // Status bar fixed 2016-12-10 22:22:14 +01:00
Jaco Greeff
173a88804a Status page updates (#3774)
* Allow Page to create optional Actionbar

* Typo

* Display last block.timestamp

* Remove unnneeded console.log

* Re-do git mv

* git mv

* Force build changes

* Resolving case sensitivity issues

* Swapped to margin at bottom
2016-12-10 22:21:32 +01:00
Nicolas Gotchac
7401358543 PR grumbles 2016-12-10 22:15:56 +01:00
Tomasz Drwięga
b5020d3c8d Fixing Light context API 2016-12-10 21:25:28 +01:00
Tomasz Drwięga
19ca9ad460 Prevent broadcasting transactions to peer that send them. 2016-12-10 21:22:19 +01:00
Nicolas Gotchac
70eab0da03 PR grumbles 2016-12-10 20:29:22 +01:00
Nicolas Gotchac
89ed76497e Merge branch 'master' into ng-ui-fixes 2016-12-10 20:23:09 +01:00
Tomasz Drwięga
08a47ea2d4 Allow modifications of gas when confirming in signer (#3798) 2016-12-10 20:18:42 +01:00
Tomasz Drwięga
9b5fd93290 removing println [ci:skip] 2016-12-10 20:07:12 +01:00
Tomasz Drwięga
76a93d4eff eth_sign RPC now hashes given data 2016-12-10 20:01:04 +01:00
Nicolas Gotchac
0f6681d3e8 Linting issue 2016-12-10 19:15:45 +01:00
Nicolas Gotchac
69c0086ada Better Autocomplete Divider 2016-12-10 19:14:29 +01:00
Nicolas Gotchac
2346f29731 Add dividers to AutoComplete 2016-12-10 18:35:54 +01:00
keorn
b6c7ed24b7 Client trait reorg 2016-12-10 18:35:29 +01:00
keorn
f3af0f46be Merge branch 'master' into auth-bft 2016-12-10 18:14:35 +01:00
keorn
1611d190ba initial tendetmint consensus test 2016-12-10 17:40:53 +01:00
keorn
b9909da8b1 move Sealing methods to MiningBlockChainClient 2016-12-10 17:40:20 +01:00
Tomasz Drwięga
c408861c29 Updating submodules 2016-12-10 17:36:29 +01:00
Nicolas Gotchac
cd6ab07217 Use the new onClose autocomplete prop 2016-12-10 17:06:44 +01:00
Tomasz Drwięga
42c2d2291a Merge branch 'master' into rotating-key 2016-12-10 17:00:59 +01:00
Tomasz Drwięga
1f9adc8622 Merge branch 'master' into txqueue-gc
Conflicts:
	ethcore/src/miner/miner.rs
2016-12-10 17:00:29 +01:00
Nicolas Gotchac
84116130f6 Add sender balances to contract (exec/deploy) 2016-12-10 16:58:03 +01:00
Tomasz Drwięga
aaf6da4c00 Returning persistent node id 2016-12-10 16:55:29 +01:00
Robert Habermeier
a6fcd8a0d9 Merge pull request #3794 from ethcore/net-fix
Network connectivity fixes
2016-12-10 16:55:17 +01:00
keorn
239ba61a99 move transition message to to_step 2016-12-10 16:50:23 +01:00
Nicolas Gotchac
d9da8a48ff Add sender balance in transfer modal 2016-12-10 16:46:00 +01:00
Tomasz Drwięga
e66157f922 fixing test 2016-12-10 16:40:32 +01:00
Nicolas Gotchac
054b4810d5 Fix wallet data's prop types 2016-12-10 15:30:39 +01:00
Tomasz Drwięga
704054ef40 Merge branch 'master' into tx-broadcast
Conflicts:
	ethcore/src/client/traits.rs
2016-12-10 15:23:53 +01:00
Nicolas Gotchac
ef93262311 See addresses outside address book + Save them 2016-12-10 15:19:05 +01:00
Tomasz Drwięga
e1ade5b375 Maintaining a list of transactions propagated from other peers 2016-12-10 15:18:44 +01:00
Tomasz Drwięga
27503e8e8c Merge branch 'master' into rotating-key
Conflicts:
	ethstore/src/ethstore.rs
	ethstore/src/secret_store.rs
2016-12-10 15:13:58 +01:00
Nicolas Gotchac
65f586ed14 Fix tab bar active style 2016-12-10 14:32:54 +01:00
Nicolas Gotchac
81c5085b35 Don't create new Contracts instance if already exists 2016-12-10 14:31:20 +01:00
Nicolas Gotchac
13607d48be Better use of Tab Bar 2016-12-10 14:26:35 +01:00
arkpar
02c788a403 Network connectivity fixes 2016-12-10 14:20:34 +01:00
Nicolas Gotchac
591d086f42 Better use of React-Router (maintaining old routes) 2016-12-10 14:19:15 +01:00
Gav Wood
316c25d9f8 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-10 14:08:41 +01:00
Gav Wood
60ea787bd1 Merge pull request #3781 from ethcore/consistent-id
Make *ID names consistent with std Rust (Id)
2016-12-10 14:04:07 +01:00
Gav Wood
0977b82eeb More fixes. 2016-12-10 13:54:17 +01:00
Gav Wood
7eb30b1249 Fix build. 2016-12-10 13:52:43 +01:00
Gav Wood
82efa2675e Merge remote-tracking branch 'origin/master' into consistent-id 2016-12-10 13:36:30 +01:00
Nicolas Gotchac
51b9034a5e Don't show addresses while loading balances (fix flash of unsorted) 2016-12-10 12:44:48 +01:00
Tomasz Drwięga
4696d7f606 Additional RPCs for dapps accounts management 2016-12-10 12:36:04 +01:00
keorn
e5f8044cad Merge branch 'master' into auth-bft 2016-12-10 11:01:23 +01:00
Jaco Greeff
6eb63a7316 Update CI builds (#3780)
* Only run languages tests in appropriate areas

* Drop echo
2016-12-10 10:49:39 +01:00
keorn
5f09eb9d04 update tests to new spec (#3790) 2016-12-10 10:38:10 +01:00
Nicolas Gotchac
0d9b1882a3 Treat tabs as real link (enable Ctrl+Click for new Tab) 2016-12-10 01:56:38 +01:00
Nicolas Gotchac
f6564dcc2f Fix dapps separation 2016-12-10 01:32:39 +01:00
Nicolas Gotchac
b9c04fcd00 Fixes to the Wallet UI (#3787)
* Correct number of transactions for contracts

* Remove daily limit info if set to 0

* Hide tx count for contracts
2016-12-10 01:26:47 +01:00
Nicolas Gotchac
6655e7e3c0 Add support for wallets without getOwner() interface (#3779)
* Make Wallet Mist compatible #3282

* Owners icons on load

* Fix oversized logo on load

* Don't fetch registry twice (even when pending)

* Better logging...

* Better contract view : show if no events // show loading events

* Better decimal typed input

* PR grumble
2016-12-10 01:26:28 +01:00
Nicolas Gotchac
923f85d90d Update Material-UI (#3785)
* Update MUI => Fixes wrong error styled inputs

* Update postcss import
2016-12-10 01:26:03 +01:00
Nicolas Gotchac
5c555aa18f Fixes error in Transfer modal (mix between props and own property) (#3788) 2016-12-10 01:25:23 +01:00
Robert Habermeier
4d25445af5 Merge pull request #3755 from ethcore/lightserv
LES Part 3: Event handlers and handling responses
2016-12-10 00:40:46 +01:00
Gav Wood
341777dbb6 Merge pull request #3743 from ethcore/jg-test-ui
Basic UI rendering tests
2016-12-09 23:16:11 +01:00
Gav Wood
edd5e76050 Merge branch 'consistent-id' into check-updates 2016-12-09 23:12:36 +01:00
Gav Wood
5f1fcf95e0 Make *ID names consistent with std Rust (Id) 2016-12-09 23:01:43 +01:00
Robert Habermeier
d427d60156 Merge pull request #3776 from ethcore/p2p-event-ordering
network: process packets only after connection handler finishes
2016-12-09 23:00:59 +01:00
Kristoffer Ström
0e516162c3 Rebased on master 2016-12-09 22:27:32 +01:00
Kristoffer Ström
6552319074 Style rewrite 2016-12-09 22:26:08 +01:00
Kristoffer Ström
1d0ccb1c30 Move format_ether into transaction_request.rs 2016-12-09 22:26:08 +01:00
Kristoffer Ström
a7e10cebbd Remove forgotten test debug 2016-12-09 22:26:08 +01:00
Kristoffer Ström
e202b9c79a Fix Cargo.toml formating 2016-12-09 22:26:08 +01:00
Kristoffer Ström
68df68ca1d Use Signer mock from the signer crate 2016-12-09 22:26:08 +01:00
Kristoffer Ström
b2b00e9dbe Use Mutex from util 2016-12-09 22:26:08 +01:00
Kristoffer Ström
f700aa39fe Switch to jsonrpc request/response types 2016-12-09 22:26:07 +01:00
Kristoffer Ström
91b7780eb5 comment formating 2016-12-09 22:26:07 +01:00
Kristoffer Ström
7a176094d5 * Use try!/map_err instead of match
* Use jsonrpc_core for serializing/deserializing rpc messages
* Factor out unwraps
* Remove mem::replace
* Add nicer formating of ConfirmationRequests
2016-12-09 22:26:07 +01:00
Kristoffer Ström
273d7c00c3 Pass cli tests, remove compiler warnings 2016-12-09 22:26:07 +01:00
Kristoffer Ström
4e3f8bab10 Add Ws Json rpc client and command line utils 2016-12-09 22:26:05 +01:00
Robert Habermeier
503b126c93 Merge branch 'master' into lightserv 2016-12-09 21:37:55 +01:00
Robert Habermeier
b772901d77 network: process packets only after connection handler finishes 2016-12-09 21:17:05 +01:00
Gav Wood
2226324495 Merge pull request #3778 from ethcore/auth-round-test
AuthorityRound network simulation test
2016-12-09 20:58:05 +01:00
keorn
b15edd095e Merge branch 'auth-bft' of https://github.com/ethcore/parity into auth-bft 2016-12-09 20:51:42 +01:00
Gav Wood
c82754874c Fix typo. 2016-12-09 20:48:52 +01:00
keorn
08e7e79bfd more test 2016-12-09 20:48:05 +01:00
Gav Wood
46af3d18da Merge remote-tracking branch 'origin/master' into check-updates 2016-12-09 20:45:15 +01:00
Gav Wood
e5e6b77984 Cleanups and avoid redownloading. 2016-12-09 20:40:24 +01:00
arkpar
97f358ced9 AuthorityRound network simulation test 2016-12-09 20:38:06 +01:00
Gav Wood
fe27b0f313 Merge pull request #3775 from ethcore/auth-bft-test
AuthorityRound network simulation test
2016-12-09 20:25:51 +01:00
Tomasz Drwięga
c91a614c3d Fixing tests 2016-12-09 20:24:33 +01:00
Gav Wood
598fd42856 Merge pull request #3770 from ethcore/jg-execute-gas
GasPrice selection for contract execution
2016-12-09 20:24:10 +01:00
Gav Wood
0a4e63b462 Merge pull request #3762 from ethcore/tx-check
Reject existing transactions
2016-12-09 20:17:28 +01:00
Gav Wood
45ec84e627 Merge pull request #3752 from ethcore/jg-subscription-check
Allow autoRemove from api.subscribe based on callback return values
2016-12-09 20:16:34 +01:00
Gav Wood
2e1e167397 Merge pull request #3753 from ethcore/jg-fix-gitlab.yml
Replace misplaced & with && in gitlab-ci.yml
2016-12-09 20:16:10 +01:00
arkpar
ca7406773f AuthorityRound network simulation test 2016-12-09 19:27:16 +01:00
GitLab Build Bot
647b62b4a2 [ci skip] js-precompiled 20161209-182130 2016-12-09 18:23:46 +00:00
Gav Wood
cf0b1bb9b2 use path prefix 2016-12-09 19:21:39 +01:00
Gav Wood
b99403740a Merge pull request #3773 from ethcore/ng-enhanced-multisig
Lower gas usage for creating a Multisig Wallet
2016-12-09 19:15:46 +01:00
Arkadiy Paronyan
5758bb7cac Rust files are all non-js files 2016-12-09 19:11:00 +01:00
Gav Wood
c2b6be95c8 Fetch and place in updates path. 2016-12-09 19:02:42 +01:00
Gav Wood
9bfceeea21 Merge pull request #3761 from ethcore/io-stop
Added IO service explicit stop
2016-12-09 19:00:46 +01:00
Gav Wood
d5d9d78bd9 It's not either-or. 2016-12-09 18:58:37 +01:00
Jaco Greeff
a73e0a987e Merge branch 'master' into jg-test-ui 2016-12-09 18:34:58 +01:00
Jaco Greeff
290a4a40ff Merge branch 'master' into jg-subscription-check 2016-12-09 18:17:36 +01:00
Jaco Greeff
0cbef30508 Unsubscribe on true 2016-12-09 18:17:31 +01:00
Jaco Greeff
99846e2ad2 Merge branch 'master' into jg-subscription-check 2016-12-09 18:14:09 +01:00
Jaco Greeff
1b0945940b Test for boolean result before unsubscribe 2016-12-09 18:14:05 +01:00
GitLab Build Bot
fd23a2972c [ci skip] js-precompiled 20161209-165845 2016-12-09 17:00:59 +00:00
Jaco Greeff
ffd8314a11 Be lenient around invalid owners map (#3764)
* Be lenient around invalid owners map

* Filter invalid owners before render
2016-12-09 17:52:25 +01:00
Nicolas Gotchac
ff11634e1d PR Grumble 2016-12-09 16:55:43 +01:00
Jannis R
bc33231f7c merge master into jr-use-badge-reg 2016-12-09 16:53:14 +01:00
Jannis R
eb1429237b merge master into jr-email-verification 2016-12-09 16:52:44 +01:00
Jannis R
c249c51dd3 certification: use BadgeReg to load the contract 2016-12-09 16:40:45 +01:00
Nicolas Gotchac
bace05b154 Merge branch 'master' into ng-enhanced-multisig 2016-12-09 16:40:07 +01:00
Nicolas Gotchac
caf3a96c19 Add fallback Full Fleshed Wallet if no library 2016-12-09 16:29:57 +01:00
Nicolas Gotchac
efee55ae84 Updated Wallet Version ! Now only 500k gas for Wallet creation 2016-12-09 16:24:11 +01:00
Jannis R
452b8c9c74 split sms & email verification 3rdparty code
We might want to bundle the code in `3rdparty`.

React & presentational components don't belong in there. At the
same time, the terms of service are strictly related to the use
of these external services. We decided to not bundle them, but
still keep them in a file called `terms-of-service.js`.

The commit also moves the "how it works" section into the
presentational part in `modals/Verification`.
2016-12-09 16:23:13 +01:00
Jaco Greeff
d992c642ff Adjust to final step on rejected/completed 2016-12-09 15:55:50 +01:00
Tomasz Drwięga
cee07fef74 Trigger remove_old on new block 2016-12-09 15:54:13 +01:00
Nicolas Gotchac
63137b1548 Add enhanced Wallet solidity code 2016-12-09 15:52:28 +01:00
Jaco Greeff
d2494d1425 GasPrice selection for contract execution 2016-12-09 15:43:24 +01:00
Robert Habermeier
415fccfffb add ethcore-light cov target 2016-12-09 15:20:45 +01:00
Robert Habermeier
9a4dfbd211 Merge branch 'lightserv' of github.com:ethcore/parity into lightserv 2016-12-09 15:20:12 +01:00
Tomasz Drwięga
5d054f08c3 Clearing old transactions 2016-12-09 15:05:03 +01:00
Robert Habermeier
5f37c93659 les: use negotiated protocol version 2016-12-09 15:04:54 +01:00
keorn
56e9dab9de add Engine stop method 2016-12-09 14:52:08 +01:00
arkpar
cc8c2ea58d Reject existing tx 2016-12-09 14:37:11 +01:00
keorn
c7f1260775 Merge branch 'io-stop' of https://github.com/ethcore/parity into auth-bft 2016-12-09 14:27:39 +01:00
Jannis R
6d20592f76 remove certification on Revoke 2016-12-09 14:06:02 +01:00
GitLab Build Bot
1213ada59c [ci skip] js-precompiled 20161209-125036 2016-12-09 12:52:50 +00:00
Jaco Greeff
2582514b58 GasEditor component (#3750)
* Initial split of component (WIP)

* GasPriceEditor externalised

* Fix lint
2016-12-09 13:44:35 +01:00
Jaco Greeff
befcc9cc1a Cleanups (#3742)
* Remove unused file

* Combine tx checks into single file

* Move UI components into UI

* DRY links

* Unused rollup config

* Cleanup util paths

* Revert "Move UI components into UI"

This reverts commit 3379e61246cde635c296d31322b71e63395a5cd4.

* Re-apply ~/util/tx move

* Cleanup unused styles
2016-12-09 13:44:10 +01:00
Jaco Greeff
00c53a8d18 Merge branch 'master' into jg-test-ui 2016-12-09 13:36:50 +01:00
Jaco Greeff
bb209424ac IdentityName flags testing 2016-12-09 13:36:46 +01:00
Jannis R
fd88421e88 store id with certifiers 2016-12-09 13:35:10 +01:00
arkpar
364dd9dda4 Make stop const 2016-12-09 13:25:02 +01:00
Jannis R
3dc943e854 merge master into jr-use-badge-reg 2016-12-09 13:14:35 +01:00
Jaco Greeff
1f4c84cbf1 Theme tests 2016-12-09 13:03:46 +01:00
keorn
475d4bcf3f Merge branch 'io-stop' into auth-bft 2016-12-09 12:37:55 +01:00
Jannis R
a94bbea7a5 more user-friendly method selection 2016-12-09 12:37:36 +01:00
keorn
762e5f1e3e proposed block sync tests 2016-12-09 12:05:56 +01:00
Tomasz Drwięga
3ccdb7c143 Fixing unused imports 2016-12-09 10:52:42 +00:00
Tomasz Drwięga
c76b7cf8f8 Fixing tests submodule 2016-12-09 10:48:46 +00:00
arkpar
22a63f6fd3 Added IO Service explicit stop 2016-12-09 11:45:16 +01:00
keorn
fb71caffbd remove double registration 2016-12-09 11:05:44 +01:00
Jaco Greeff
296301e284 Extend tests for TxList 2016-12-09 10:55:46 +01:00
keorn
42c34b5c1b ignore flaky test 2016-12-09 10:53:38 +01:00
Tomasz Drwięga
930183831b Adding tests for ethstore 2016-12-09 09:45:34 +00:00
Jaco Greeff
a133e41e16 Merge branch 'master' into jg-test-ui 2016-12-09 09:53:55 +01:00
Tomasz Drwięga
8596134c0f Clearer updates handling 2016-12-09 08:31:58 +00:00
Tomasz Drwięga
93230dd4c2 Merge branch 'master' into rotating-key
Conflicts:
	ethcore/src/account_provider/mod.rs
	rpc/src/v1/types/mod.rs.in
2016-12-09 07:37:34 +00:00
GitLab Build Bot
83f791fa5d [ci skip] js-precompiled 20161209-044115 2016-12-09 04:43:19 +00:00
GitLab Build Bot
12592689dd [ci skip] js-precompiled 20161209-014235 2016-12-09 01:44:45 +00:00
Jaco Greeff
7eeac232b4 Merge branch 'master' into lightserv 2016-12-09 02:36:55 +01:00
Jaco Greeff
8f9fdb350c Merge branch 'master' into jg-subscription-check 2016-12-09 02:34:07 +01:00
Jaco Greeff
f9a24f3c8e Update babel, fix CI build due to breaking changes (#3754)
* Update babel to latest version

* Re-add circular deps plugin

* Bump for build

* Fixes for babel build
2016-12-09 02:33:12 +01:00
Jaco Greeff
6b65a1f872 Merge branch 'master' into jg-subscription-check 2016-12-09 01:41:44 +01:00
GitLab Build Bot
e1ad347cdb [ci skip] js-precompiled 20161209-003004 2016-12-09 00:32:45 +00:00
Robert Habermeier
eec1929658 Merge branch 'master' into lightserv 2016-12-09 01:29:46 +01:00
Nicolas Gotchac
09334ca3bd Small fixes to contract (#3751)
* Fix contracts execution will fallback function

* Fix contract execute modal

* Working execute from Contract

* Don't dupliacet events

* Gas * 1.2 in wallet confirmations
2016-12-09 01:21:51 +01:00
Robert Habermeier
07d7a37319 les: make peer buffer flow params optional 2016-12-09 01:06:51 +01:00
Jaco Greeff
b76a717720 Fix & with && 2016-12-09 00:58:53 +01:00
Jaco Greeff
13f962ae01 Attempt to fix ci webpack 2016-12-09 00:56:12 +01:00
Jaco Greeff
10c356de65 Simplify, consolidate uses between subscription managers 2016-12-09 00:52:21 +01:00
Jannis R
5418c56b01 remove Prepare step
The modal got really crowded and the preparation step had
only been shown for fractions of a second anyways. The
"loading" message is now part of the next step.
2016-12-09 00:39:16 +01:00
Jannis R
dfc445b6d6 fix bugs & linting issues 2016-12-09 00:39:16 +01:00
Jannis R
162420f4c2 send emailHash with request, update ABI 2016-12-09 00:39:16 +01:00
Jannis R
0e0f602d5e pass fields to query into QueryCode 2016-12-09 00:39:16 +01:00
Jannis R
052f9258a5 pass fields to query into GatherData 2016-12-09 00:39:15 +01:00
Jannis R
d3fd71d953 add email-specific contract, helpers, store 2016-12-09 00:39:15 +01:00
Jannis R
1ac3421f33 step to select verification method 2016-12-09 00:39:15 +01:00
Jannis R
1672cbad7b factor out SMS-specific logic 2016-12-09 00:39:15 +01:00
Jannis R
b5b529f8c2 modals/SMSVerification -> modals/Verification 2016-12-09 00:39:15 +01:00
Jannis R
600a7e5ccc make SMS verification contract general purpose 2016-12-09 00:39:15 +01:00
Jannis R
e536290892 fix linting issues 2016-12-09 00:38:44 +01:00
Jannis R
a84cd9143f show certifications in accounts list 2016-12-09 00:36:27 +01:00
Robert Habermeier
d53c47aa69 more tracing 2016-12-09 00:35:34 +01:00
Jannis R
5862f2a9eb Certifications: read dappsUrl from state 2016-12-09 00:34:59 +01:00
Jannis R
e1c5796a5c fetch certifications in account view 2016-12-09 00:34:59 +01:00
Jannis R
409c4adfbf fetch certifiers from BadgeReg 2016-12-09 00:34:58 +01:00
Jannis R
b32b636697 fetch certifiers by id 2016-12-09 00:34:58 +01:00
Jannis R
2b34d76b8c pull out fetchMeta 2016-12-09 00:34:58 +01:00
Jaco Greeff
3989e2642b Typo 2016-12-09 00:25:50 +01:00
Jaco Greeff
1ecda93de9 Align api.subscribe with contract 2016-12-09 00:15:39 +01:00
Jaco Greeff
4ce3142c63 Add autoRemove functionality to api.contract.subscribe 2016-12-09 00:15:27 +01:00
Jaco Greeff
ad971a444c Add autoRemove functionality for api.subscribe 2016-12-09 00:00:56 +01:00
Robert Habermeier
e7ce8c9558 light: broadcast status updates to peers 2016-12-08 23:57:09 +01:00
Robert Habermeier
6f5f1f5e26 light: integrate with sync + serve_light CLI 2016-12-08 23:21:47 +01:00
keorn
7c42241466 remove merge code 2016-12-08 22:00:26 +01:00
keorn
74770e4773 better docstrings 2016-12-08 21:49:55 +01:00
keorn
cc284dd86f Merge branch 'master' into auth-bft 2016-12-08 21:35:08 +01:00
keorn
79ef64349c remove assert 2016-12-08 21:27:49 +01:00
keorn
9ecb07434f fix informant 2016-12-08 21:13:32 +01:00
Gav Wood
2d6656fc43 Merge pull request #3725 from ethcore/engine-password
Make engine hold AccountProvider
2016-12-08 20:52:12 +01:00
keorn
dca752e9bb docs, tweaks 2016-12-08 20:09:30 +01:00
Robert Habermeier
efd66f566d ethsync: optional ipc codegen 2016-12-08 19:52:48 +01:00
Jaco Greeff
9d5de519b6 Merge remote-tracking branch 'origin/jg-test-ui' into jg-test-ui 2016-12-08 17:33:15 +01:00
Jaco Greeff
0544e0e786 Merge branch 'jg-test-ui-2' into jg-test-ui 2016-12-08 17:33:02 +01:00
Jaco Greeff
96d4569cf3 Update test describe paths 2016-12-08 17:31:41 +01:00
Jaco Greeff
ae49251c81 Remove .only 2016-12-08 17:04:21 +01:00
Jaco Greeff
507b4b68a1 Merge branch 'master' into jg-test-ui 2016-12-08 16:50:23 +01:00
Jaco Greeff
9e8fb616d3 Add store tests, fix issue with pending sort to top 2016-12-08 16:50:19 +01:00
Robert Habermeier
2e87e31157 light: no default features 2016-12-08 16:46:58 +01:00
Robert Habermeier
64ebcd0f24 fix contract code response encoding; add test 2016-12-08 16:12:00 +01:00
GitLab Build Bot
4e1b72b45c [ci skip] js-precompiled 20161208-150237 2016-12-08 15:04:38 +00:00
Jaco Greeff
a1fb1240a7 Properly delete addresses/contracts in addressbook (#3739)
* Remove previously market addresses at startup

* Remove meta.deleted checks

* Remove artifact from code move
2016-12-08 15:54:23 +01:00
Nicolas Gotchac
d38da1f3b4 Display Wallet Owners in Accounts list (#3741) 2016-12-08 15:53:46 +01:00
Nicolas Gotchac
715761a714 Edit Multisig Wallet settings (#3740)
* WIP Sending tokens in multi-sig wallet

* Working Token transfer for multi-sig wallet #3282

* Add operation hash to transfer modal

* Add existing wallet from address #3282

* Wallet delete redirect to Wallets/Accounts #3282

* Rightly check balance in Transfer // Get all accounts balances #3282

* Fix linting

* Better Header UI for Wallet

* Use the `~` webpack alias

* Use Webpack `~` alias

* Add `ETH` format to number typed input

* Fix wallet creation hint && eth input type

* Update dailylimit #3282

* Fix too long copied message

* WIP Wallet settings modification #3282

* WIP edit contract parameters #3282

* Edit Wallet parameters #3282

* Don't show wallets if none

* Fix Transfer for Wallet #3282

* Optimized version of contract code

* Fix wrong max in Wallet creation // Round gas in API
2016-12-08 15:53:29 +01:00
GitLab Build Bot
69e010bbf9 [ci skip] js-precompiled 20161208-144436 2016-12-08 14:46:49 +00:00
Jaco Greeff
328db0c124 Replace build directory completely (#3748) 2016-12-08 15:39:27 +01:00
Jaco Greeff
fb80cf6190 Add existing release files before merge (#3747) 2016-12-08 15:20:53 +01:00
Jaco Greeff
5d224df2d5 Release script back to using fetch/merge (#3746)
* Update with -X only for merge

* Release back to using fetch/merge
2016-12-08 15:02:45 +01:00
Jaco Greeff
1ab4ee3781 Update Button with correct proptypes 2016-12-08 14:53:57 +01:00
Jaco Greeff
cbd5fe7c07 Update with -X only for merge (#3745) 2016-12-08 14:48:09 +01:00
Robert Habermeier
3e8ee9d423 light IPC feature and mock state proofs 2016-12-08 13:44:17 +01:00
Jaco Greeff
a5b5277a88 Expanded basic tests for #2289 2016-12-08 13:00:29 +01:00
Jaco Greeff
543428fe5d NODE_ENV=test for all tests 2016-12-08 12:59:59 +01:00
Jaco Greeff
699a821775 Merge branch 'master' into jg-test-ui 2016-12-08 12:45:40 +01:00
Robert Habermeier
de4715bc67 Merge pull request #3732 from ethcore/jg-duplicate-accounts
Give accounts precedence over address_book entries
2016-12-08 12:27:26 +01:00
Jaco Greeff
b3f7c00780 ui/Container tests as per #2289 2016-12-08 12:22:40 +01:00
Robert Habermeier
8d16f73795 first few LES tests, fix get_header logic bug 2016-12-08 12:20:18 +01:00
Jaco Greeff
ad8a191e95 Adjust specs to show location 2016-12-08 12:19:03 +01:00
Jaco Greeff
88e5ed9ea5 Allow mocha to use webpack aliasses via babel 2016-12-08 12:18:43 +01:00
keorn
3ebfa1481d better proposal block handling 2016-12-08 12:03:34 +01:00
Arkadiy Paronyan
15ec63750e Enable Panic=abort (#3423)
* Enable panic=abort

* Update remaining crate versions to 1.5

* Run tests in release mode

* Enable panic=abort for release profile only

* Added travis_wait

* Travis timeout set to 40
2016-12-08 11:31:57 +01:00
Jaco Greeff
5f1021822d Cleanups on js-precompiled (#3738)
* Cleanups on js-precompiled

* Combined

* Adjust based on Pr comments
2016-12-07 21:38:28 +01:00
Gav Wood
8903384840 Merge branch 'master' into check-updates 2016-12-07 19:19:44 +01:00
GitLab Build Bot
9e8d90b5ba [ci skip] js-precompiled 20161207-173717 2016-12-07 17:39:18 +00:00
Gav Wood
342357302b Merge pull request #3735 from ethcore/jg-addressbook-delete
Add parity_removeAddress RPC
2016-12-07 18:31:22 +01:00
Jaco Greeff
dba8cf3a3b Add test for RPC side 2016-12-07 17:58:22 +01:00
Robert Habermeier
2d1a3ff091 les: generalize network and event contexts with traits 2016-12-07 17:52:10 +01:00
Jaco Greeff
7c054d2da0 Remove unneeded block scope 2016-12-07 17:07:28 +01:00
Jaco Greeff
46840d36c9 Add parity_removeAddress RPC 2016-12-07 16:53:46 +01:00
keorn
347634ac6c dont rebroadcast propose 2016-12-07 16:42:58 +01:00
keorn
aa9caac750 revert cli default 2016-12-07 15:36:20 +01:00
Robert Habermeier
10d75b6de0 light: implement all response handlers 2016-12-07 15:27:04 +01:00
keorn
b73689f041 Merge branch 'engine-password' into auth-bft 2016-12-07 15:17:49 +01:00
keorn
727ace0561 add test 2016-12-07 15:14:21 +01:00
keorn
e9743a3a75 Merge branch 'master' into auth-bft 2016-12-07 14:50:17 +01:00
keorn
4361cb53e7 Merge branch 'engine-password' into auth-bft 2016-12-07 14:49:42 +01:00
keorn
5faa4a85cb remove dummy type 2016-12-07 14:49:07 +01:00
keorn
6440ca2f68 move stuff around 2016-12-07 14:39:37 +01:00
Gav Wood
1f0a02b638 Merge pull request #3633 from ethcore/fix-tx-rpc
Fix up the transaction JSON serialisation for RPC.
2016-12-07 14:34:51 +01:00
Robert Habermeier
cdc758368a les: flesh out event handler 2016-12-07 13:52:45 +01:00
Robert Habermeier
89726356a3 Merge pull request #3709 from ethcore/opt-in-verifier-scaling
queue: CLI for auto-scaling and num verifiers
2016-12-07 13:40:42 +01:00
GitLab Build Bot
3388eab76a [ci skip] js-precompiled 20161207-123833 2016-12-07 12:40:35 +00:00
GitLab Build Bot
2e40a00768 [ci skip] js-precompiled 20161207-122336 2016-12-07 12:26:14 +00:00
Nicolas Gotchac
8dbd56888d Add functionalities to multi-sig wallet (#3729)
* WIP Sending tokens in multi-sig wallet

* Working Token transfer for multi-sig wallet #3282

* Add operation hash to transfer modal

* Add existing wallet from address #3282

* Wallet delete redirect to Wallets/Accounts #3282

* Rightly check balance in Transfer // Get all accounts balances #3282

* Fix linting

* Better Header UI for Wallet

* Use the `~` webpack alias

* Use Webpack `~` alias
2016-12-07 12:47:44 +01:00
Jaco Greeff
5bdb6e4f22 Ignore meta.deleted for account name display 2016-12-07 11:51:48 +01:00
Jaco Greeff
f7586109df Ignore meta.deleted for accounts 2016-12-07 11:48:08 +01:00
Jaco Greeff
21a3cf7b65 Swap order of addressbook & acocunts merge 2016-12-07 11:44:45 +01:00
keorn
c582540746 Merge branch 'engine-password' into auth-bft 2016-12-07 11:41:38 +01:00
keorn
3ae09de019 restore is_new_best 2016-12-07 11:40:46 +01:00
keorn
a296c5e226 test client message handling 2016-12-07 11:38:09 +01:00
Robert Habermeier
b38d95328d light: conditional compilation 2016-12-07 10:50:24 +01:00
Jaco Greeff
be90245ecb PropTypes as function call (#3731) 2016-12-07 10:46:46 +01:00
keorn
da030fed51 Merge branch 'master' into auth-bft 2016-12-07 10:41:07 +01:00
keorn
5c333fce31 Merge branch 'engine-password' into auth-bft 2016-12-07 10:35:52 +01:00
keorn
71a96588b0 add the methods to engines 2016-12-07 10:34:06 +01:00
Jaco Greeff
e2bb8ef6d1 Unify proptypes in util/proptypes.js (#3728)
* Unify proptypes in util/proptypes.js

* Add missing use of nodeOrStringProptype
2016-12-07 10:25:57 +01:00
keorn
d9eb5e7f1d remove uncles 2016-12-07 09:32:36 +01:00
Robert Habermeier
60680e1913 Merge pull request #3730 from ethcore/jsonrpc-ipc-bump
bump jsonrpc-ipc-server to fix windows build
2016-12-07 09:32:10 +01:00
Robert Habermeier
085b8ad553 Merge pull request #3527 from ethcore/client-provider
LES Part 2
2016-12-07 09:31:50 +01:00
GitLab Build Bot
97e60a6e9c [ci skip] js-precompiled 20161207-042556 2016-12-07 04:28:25 +00:00
Robert Habermeier
d28f615482 bump jsonrpc-ipc-server to fix windows build 2016-12-06 19:32:19 +01:00
Robert Habermeier
398b94e6e2 Merge branch 'master' into opt-in-verifier-scaling 2016-12-06 15:37:10 +01:00
keorn
8f641e67f3 Merge branch 'engine-password' into auth-bft 2016-12-06 13:13:02 +00:00
GitLab Build Bot
0f76533713 [ci skip] js-precompiled 20161206-084538 2016-12-06 08:47:58 +00:00
keorn
b089aa7a6b fix password loading 2016-12-06 08:38:41 +00:00
Nicolas Gotchac
bec3539651 First draft of the MultiSig Wallet (#3700)
* Wallet Creation Modal #3282

* Name and description to Wallet #3282

* Add Wallet to the Account Page and Wallet Page #3282

* Fix Linting

* Crete MobX store for Transfer modal

* WIP Wallet Redux Store

* Basic Details for Wallet #3282

* Fixing linting

* Refactoring Transfer store for Wallet

* Working wallet init transfer #3282

* Optional gas in MethodDecoding + better input

* Show confirmations for Wallet #3282

* Order confirmations

* Method Decoding selections

* MultiSig txs and confirm pending #3282

* MultiSig Wallet Revoke #3282

* Confirmations and Txs Update #3282

* Feedback for Confirmations #3282

* Merging master fixes...

* Remove unused CSS
2016-12-06 09:37:59 +01:00
keorn
0a2ec319ac rename to engine_signer 2016-12-05 21:31:38 +00:00
keorn
92d566c900 Merge branch 'master' into engine-password 2016-12-05 19:30:08 +00:00
keorn
46dd2543e5 rename rpc to match cli 2016-12-05 19:27:24 +00:00
keorn
5e7c21ad4a add a cli flag 2016-12-05 19:23:03 +00:00
Gav Wood
ff7b918d82 Fix build. 2016-12-05 10:55:53 -08:00
Gav Wood
5e1fdc4b11 Merge remote-tracking branch 'origin/master' into fix-tx-rpc 2016-12-05 10:44:19 -08:00
Gav Wood
ad36743122 Merge pull request #3719 from ethcore/engine-block-ordering
Engine block ordering
2016-12-05 10:37:36 -08:00
Gav Wood
d708922d29 Merge pull request #3716 from ethcore/fdlimit
Use fdlimit utility crate from crates.io
2016-12-05 10:36:42 -08:00
GitLab Build Bot
98bfbdc5cb [ci skip] js-precompiled 20161205-174841 2016-12-05 17:50:43 +00:00
Jaco Greeff
873f451df1 Move decoding for contract deployment logic earlier (#3714)
* Move decoding deployment logic earlier

* Removed rendunant isContract
2016-12-05 18:42:44 +01:00
keorn
01bf483b63 remove unnecessary impls 2016-12-05 17:29:47 +00:00
Robert Habermeier
1b6ebe1a6d possible fix for queue drop deadlock (#3702)
* possible fix for #3686

* queue: simplify conclusion, don't block on joining

* queue: park verifiers with timeout to prevent race

* more robust verification loop

* queue: re-introduce wait for verifier joining
2016-12-05 18:18:56 +01:00
NikVolf
ebd4173d21 bump version 2016-12-05 20:15:05 +03:00
keorn
81a756394a Merge branch 'master' into engine-password 2016-12-05 17:08:57 +00:00
keorn
529a7fc33c add password and AccountProvider 2016-12-05 17:08:16 +00:00
keorn
6fc943ca6d Merge branch 'master' into auth-bft 2016-12-05 16:37:35 +00:00
keorn
4f857642b5 rename set_sealer 2016-12-05 16:28:56 +00:00
Robert Habermeier
a726472023 Merge pull request #3713 from ethcore/fix-v-u64
Encode networkid as a u64.
2016-12-05 17:14:07 +01:00
Robert Habermeier
5db93cd433 light: fix compile errors 2016-12-05 17:09:05 +01:00
Robert Habermeier
a6c2408562 IPC codegen in ethcore-light; remove network dependency 2016-12-05 16:56:21 +01:00
Robert Habermeier
61c3358447 move light to its own crate again 2016-12-05 16:55:33 +01:00
keorn
53b479fb7a pass engine to snapshot service 2016-12-05 15:43:46 +00:00
keorn
94302f3f61 throw out difficulty checks 2016-12-05 15:27:44 +00:00
keorn
c61a0e97b3 make engine determine block order 2016-12-05 15:20:32 +00:00
Gav Wood
afe4cc6a05 Merge remote-tracking branch 'origin/master' into check-updates 2016-12-05 07:09:42 -08:00
GitLab Build Bot
e6ed49b2c9 [ci skip] js-precompiled 20161205-150312 2016-12-05 15:05:10 +00:00
Gav Wood
84c923ff6d Merge pull request #3717 from ethcore/spec-rlp-loading
Use valid RLP in generic genesis seal spec
2016-12-05 06:57:24 -08:00
Gav Wood
43ec3d8f79 network_id -> u64 2016-12-05 06:54:31 -08:00
Gav Wood
459babb1a8 Logging. 2016-12-05 06:39:56 -08:00
keorn
db59bd8731 update genesis seal 2016-12-05 14:28:50 +00:00
keorn
c39d504167 Merge branch 'spec-rlp-loading' into auth-bft 2016-12-05 14:11:06 +00:00
keorn
0860a3a767 ignore variable 2016-12-05 14:09:41 +00:00
keorn
22632e6324 make generic seal take valid rlp 2016-12-05 14:07:31 +00:00
NikVolf
42fc770d30 use crates.io crate 2016-12-05 16:25:03 +03:00
keorn
b30c1d5602 fix tests 2016-12-05 13:24:22 +00:00
Robert Habermeier
767d486014 fix config test 2016-12-05 14:12:40 +01:00
keorn
c946ffebf3 Merge branch 'master' into auth-bft 2016-12-05 11:30:11 +00:00
GitLab Build Bot
cf796d3ea4 [ci skip] js-precompiled 20161205-105433 2016-12-05 10:56:28 +00:00
Nicolas Gotchac
9a43e6d6c8 Update JS dependencies (#3710)
* Minor Versions NPM updates

* Remove unused packages

* No longer relevant JS test

* Update some major versions // Revert Rechartjs

* Update Redux/React-{Ace, RouterRedux}

* Updated React Tooltips

* Update mock-socket // Update tests to pass

* Updated React Router

* Removed `history` module that isn't necessary (instead of updating it)

* Updated redux-actions

* Removed commented hot store reload
2016-12-05 11:48:43 +01:00
Nicolas Gotchac
52b4ce0dd7 Use Webpack Aliases (#3711)
* Adds aliases to Webpack Build

* Use `ui` Webpack alias

* Use `views` alias

* Use `modals` aliase

* Use `providers` aliase

* Use `contracts` aliase

* Use '~' aliase

* from `ui` to from `~/ui`

* from  to from

* from `modals` to from `~/modals`

* from `providers` to from `~/redux/providers`

* from `contracts` to from `~/contracts`

* Updated Webpack App config
2016-12-05 11:47:13 +01:00
Gav Wood
9d79cac36b Cleanups. 2016-12-04 11:56:12 -08:00
keorn
f7a01b87b5 better gossip, better proposal collection 2016-12-04 19:43:24 +00:00
keorn
edef7a185f remove tracing 2016-12-04 19:42:53 +00:00
Gav Wood
2911c549e3 Encode networkid as a u64. 2016-12-04 10:48:26 -08:00
Gav Wood
b8c492644b Fix more build. 2016-12-04 10:47:05 -08:00
Gav Wood
356aca2db5 Fix build. 2016-12-04 09:13:23 -08:00
Gav Wood
90a20a217f Merge branch 'master' into check-updates 2016-12-04 09:01:50 -08:00
Gav Wood
0c7b7fc8bc Merge pull request #3627 from ethcore/rpc-middleware
Dapps-specific accounts
2016-12-04 08:46:05 -08:00
GitLab Build Bot
a9424bdf26 [ci skip] js-precompiled 20161204-042533 2016-12-04 04:27:27 +00:00
keorn
f1542b5612 better genesis seal rlp 2016-12-03 16:19:51 +00:00
GitLab Build Bot
ca4aa42615 [ci skip] js-precompiled 20161203-062111 2016-12-03 06:23:18 +00:00
Gav Wood
be7401c8bf Merge pull request #3671 from ethcore/jg-signer-decoding
Signer method parameter decoding & destination info
2016-12-02 22:13:35 -08:00
GitLab Build Bot
f093b077a4 [ci skip] js-precompiled 20161203-043512 2016-12-03 04:37:04 +00:00
GitLab Build Bot
f15906fe8d [ci skip] js-precompiled 20161202-201514 2016-12-02 20:18:10 +00:00
Jaco Greeff
b2a5d66c99 Fix slice test (#3712) 2016-12-02 21:10:22 +01:00
keorn
9084e6242d lock ordering 2016-12-02 20:04:12 +00:00
keorn
ff6240eff3 insert block into queue when sealing 2016-12-02 20:03:15 +00:00
Robert Habermeier
80f98bc8b7 fix tests 2016-12-02 18:52:02 +01:00
Robert Habermeier
cd5b6fdf59 queue: CLI for auto-scaling and num verifiers 2016-12-02 18:21:54 +01:00
GitLab Build Bot
4c32d3ced4 [ci skip] js-precompiled 20161202-142708 2016-12-02 14:29:56 +00:00
Jaco Greeff
fbd3738096 Merge branch 'master' into jg-signer-decoding 2016-12-02 15:27:56 +01:00
Jaco Greeff
b8b9086dae React library update (#3704)
* Update React & MaterialUI

* Adjust TabBar layouts for new MUI
2016-12-02 15:21:25 +01:00
Nicolas Gotchac
456b50639c Adds Loading Component (#3707) 2016-12-02 15:21:11 +01:00
Nicolas Gotchac
c892a4f7ae Refactoring Transfer Modal (#3705)
* Better Token Select in Transfer > Details

* Better Autocomplete

* Crete MobX store for Transfer modal

* Remove unused var

* Update Webpack Conf

* Small changes...

* Optional gas in MethodDecoding + better input

* New Contract `getAll` method // TxList Row component

* Method Decoding selections

* Rename `getAll` to `getAllLogs`
2016-12-02 15:21:01 +01:00
Jaco Greeff
bd2e2b630c Fix extra scrollbars in dapps (#3706)
* Fix extra scrollbars in dapps

* Dapps list padding

* spelling

* lint

* Height overflow fix
2016-12-02 15:10:38 +01:00
keorn
c8a3db4c52 new error proposal test 2016-12-02 13:59:54 +00:00
keorn
91099f62c9 add more gossip if step is stuck 2016-12-02 13:37:49 +00:00
keorn
e0f2fac441 new error type 2016-12-02 13:32:00 +00:00
keorn
0eb55cbd4d update message test 2016-12-02 13:31:28 +00:00
keorn
2c8c090598 stricter size verification 2016-12-02 13:30:43 +00:00
Jaco Greeff
2dd2004ed5 Merge branch 'master' into jg-signer-decoding
# Conflicts:
#	js/src/views/Signer/components/RequestFinished/requestFinished.js
2016-12-02 11:21:17 +01:00
Robert Habermeier
6e1a1f9dec Merge branch 'master' into client-provider 2016-12-02 10:06:09 +01:00
Robert Habermeier
3837114eb2 Merge pull request #3431 from ethcore/state-tests-indentation
indent state tests
2016-12-02 09:09:35 +01:00
GitLab Build Bot
986e8ef9a2 [ci skip] js-precompiled 20161202-052414 2016-12-02 05:26:08 +00:00
GitLab Build Bot
f30a8f79f2 [ci skip] js-precompiled 20161202-034812 2016-12-02 03:50:41 +00:00
Gav Wood
1dd13372b6 Merge remote-tracking branch 'origin/master' into rpc-middleware 2016-12-01 19:43:31 -08:00
Gav Wood
21a76c22fc Merge pull request #3698 from ethcore/jg-null-transaction
Filter null transactions for display (not available on node)
2016-12-01 19:40:16 -08:00
Gav Wood
5b829aece7 Merge pull request #3697 from ethcore/jr-move-recovery-print
move recovery phrase print button
2016-12-01 19:38:31 -08:00
keorn
f0e9eae244 remove difficulty check 2016-12-01 22:07:18 +00:00
keorn
df1cce8e7f simplify seal verification 2016-12-01 21:56:38 +00:00
keorn
e76ead40d1 update tracing message 2016-12-01 21:55:43 +00:00
keorn
39ea703c69 vote on message generation 2016-12-01 20:50:24 +00:00
arkpar
f1ef4a4935 Import sealed block immedtiatelly 2016-12-01 19:11:36 +01:00
Jannis Redmann
d4ec9049f6 merge #3701 from ethcore/ng-status-fix
Fix padding bottom needed after fixed status
2016-12-01 19:09:13 +01:00
Jannis R
9512794c7f prevent status bar overlapping 2016-12-01 19:08:19 +01:00
Nicolas Gotchac
d5c630c1d2 Fix padding bottom needed after fixed status 2016-12-01 18:45:59 +01:00
keorn
9290fdde85 fix tests 2016-12-01 17:21:51 +00:00
keorn
498b2fb0b1 show verification error 2016-12-01 17:20:16 +00:00
keorn
e40e398eaa clean up some tracing 2016-12-01 17:19:40 +00:00
arkpar
4eca687bbb Fixed network context 2016-12-01 15:49:26 +01:00
Jannis R
7049336800 show recovery print button on first run 2016-12-01 15:40:20 +01:00
Gav Wood
f77a9aa007 Merge remote-tracking branch 'origin/master' into fix-tx-rpc 2016-12-01 06:31:09 -08:00
Jannis R
a1c1746667 show recovery print button if recovered account 2016-12-01 15:19:42 +01:00
keorn
344999aaf7 return signing failure error 2016-12-01 14:10:42 +00:00
keorn
66b4f1ac47 remove unnecessary option 2016-12-01 14:10:22 +00:00
Jaco Greeff
9087560344 gumbles 2016-12-01 14:08:32 +01:00
Jaco Greeff
077f32dce6 Cater for completely empty lists 2016-12-01 13:39:38 +01:00
Jaco Greeff
d5373e26b8 Filter null transactions (not available on node) 2016-12-01 13:36:23 +01:00
Jannis R
6822433a83 recovery phrase: move print helpers 2016-12-01 12:19:12 +01:00
Jannis R
08a6be5d62 recovery phrase: move print button to modal actions 2016-12-01 12:19:09 +01:00
GitLab Build Bot
0f987a2206 [ci skip] js-precompiled 20161201-044643 2016-12-01 04:48:29 +00:00
GitLab Build Bot
3ef569329a [ci skip] js-precompiled 20161201-011624 2016-12-01 01:21:59 +00:00
Gav Wood
d3e684698a Merge remote-tracking branch 'origin/master' into fix-tx-rpc 2016-11-30 17:15:05 -08:00
Gav Wood
ec38c68e30 Merge pull request #3695 from ethcore/snapshot-share
Don't share the snapshot while downloading old blocks
2016-12-01 01:11:22 +00:00
Gav Wood
6420ea4429 Merge pull request #3694 from ethcore/jr-print-recovery-phrase
button to print recovery phrase
2016-12-01 01:11:01 +00:00
Gav Wood
9053e2f27b Merge pull request #3692 from ethcore/jr-fixed-status
fix status bar to bottom of the screen
2016-12-01 01:09:29 +00:00
Gav Wood
c630fc5c1c Merge pull request #3642 from ethcore/confirmation
Splitting serialization of signTransaction and sendTransaction confirmation requests
2016-12-01 01:09:07 +00:00
Denis S. Soldatov aka General-Beck
61eb2a9104 Update test.sh
add -j 8 for test
2016-12-01 07:48:06 +07:00
Denis S. Soldatov aka General-Beck
70c6aebca5 Update gitlab-ci
-j $(nproc) in build
2016-12-01 07:15:35 +07:00
Denis S. Soldatov aka General-Beck
c4125a84b1 Update gitlab-ci
CARGOFLAGS -> -j $(nproc)
2016-12-01 07:07:52 +07:00
arkpar
b7dc60ace5 Don't share the snapshot while downloading old blocks 2016-11-30 23:33:17 +01:00
GitLab Build Bot
4f4bfb2239 [ci skip] js-precompiled 20161130-204501 2016-11-30 20:46:47 +00:00
Jannis Redmann
784dcaff7c implement basic badges/certifications/flair (#3665)
* sms verification: Certifications component

* sms verification: actions & reducers for certifications

* sms verification: put Certifications component into place

* sms verification: show certification icons

* sms verification: show certification titles

* sms verification: default icon for certifications

* sms verificaiton: lint issue 👕, fix testnet detection

The sms verification store got created when `isTestnet` (from the
Redux state) was still `undefined`.

* move certification helpers into middleware file

* connect Certifications to Redux

* don't pass certifications as prop

* move default certification icon into assets

* separate file for BadgeReg.sol

* don't pass certifications as prop

* Fix import name

* make BadgeReg a class

* make certifications middleware a class

* Certifications: pass in certifications of account
2016-11-30 21:39:06 +01:00
Jannis R
e43457a6ce recovery page: add Parity logo 2016-11-30 20:42:55 +01:00
Jannis R
cf85d1978f recovery page: add ItendityIcon 2016-11-30 20:10:29 +01:00
Jannis R
35fe4de622 add recovery page print button 2016-11-30 20:01:35 +01:00
Jannis R
eee03b542d add account recovery phrase page 2016-11-30 19:51:03 +01:00
Jannis R
60a8aabe19 differentiate Snackbar from background 2016-11-30 17:58:18 +01:00
Jannis R
890f880a89 status bar: beautify enode icon 2016-11-30 17:46:50 +01:00
Jannis R
f9f91837c2 rework status bar layout
- floats -> Flexbox
- align to content width
2016-11-30 17:46:48 +01:00
Jannis R
cce195a98b fix status bar to bottom of the screen 2016-11-30 17:45:54 +01:00
keorn
dbf82c2e98 fix tests 2016-11-30 16:40:16 +00:00
Tomasz Drwięga
dcb7e1e638 Implementing RPC 2016-11-30 17:08:45 +01:00
keorn
d128c20dc2 remove proposer_nonce 2016-11-30 16:02:05 +00:00
keorn
bb8347477a gossip when not enough votes 2016-11-30 16:01:20 +00:00
arkpar
84cf27c3ef Advertise protocol version 2 2016-11-30 16:48:30 +01:00
Tomasz Drwięga
1d76bb7048 Fixing ethstore tests 2016-11-30 16:41:37 +01:00
Tomasz Drwięga
022ccb5bce Fixing tests 2016-11-30 16:33:42 +01:00
Tomasz Drwięga
c028f106b1 RPC for confirming with token 2016-11-30 16:11:41 +01:00
keorn
ca87d2cde9 add set_sealer rpc test 2016-11-30 15:01:43 +00:00
keorn
73e7908325 test password registration 2016-11-30 14:30:21 +00:00
Tomasz Drwięga
6397556cbb Sign with token support 2016-11-30 15:08:38 +01:00
keorn
61f1699c0e fix merge 2016-11-30 13:39:28 +00:00
keorn
155da50fcd Merge branch 'master' into auth-bft 2016-11-30 13:06:21 +00:00
keorn
34d5017950 hold password in engine, add rpc 2016-11-30 12:59:33 +00:00
keorn
4ef5badcea fix parity tests merge 2016-11-30 12:58:45 +00:00
Tomasz Drwięga
ad440a12bd EthMultiStore 2016-11-30 13:47:14 +01:00
GitLab Build Bot
837ff1bc7d [ci skip] js-precompiled 20161130-104916 2016-11-30 10:54:38 +00:00
Jannis Redmann
f1b3463015 Merge #3680 from ethcore/jg-container-title
Simplify Container title rendering
2016-11-30 11:42:23 +01:00
Tomasz Drwięga
8e2aca719f Shared hash-fetch 2016-11-30 10:16:18 +01:00
Denis S. Soldatov aka General-Beck
79e79473bf Update gitlab-ci
armv6 only triggers
2016-11-30 16:15:45 +07:00
Denis S. Soldatov aka General-Beck
21ed95d0a1 Update gitlab-ci 2016-11-30 12:57:55 +07:00
Denis S. Soldatov aka General-Beck
7a446fae05 Update gitlab-ci
tst
2016-11-30 08:45:03 +07:00
Denis S. Soldatov aka General-Beck
74f5f67055 Update gitlab-ci
test
2016-11-30 08:29:34 +07:00
Denis S. Soldatov aka General-Beck
95c2a41264 Update gitlab-ci 2016-11-30 07:48:57 +07:00
Jaco Greeff
8fd8bdf0f5 Update loading splash to fit in with l&f (#3685) 2016-11-30 00:06:58 +01:00
Denis S. Soldatov aka General-Beck
7cfec1e1c8 Update gitlab-ci
remove NIGHTLY ENV
2016-11-30 06:02:52 +07:00
Jaco Greeff
7f1391c7a2 Safari UI fixes (#3678)
* Minimum content height for overlay

* Fix Safari TabBar clicks

* Fix extra vertical scrollbar on Chrome

* Swap to em heights
2016-11-30 00:01:42 +01:00
Jaco Greeff
1a53ab78e8 Remove strict mode (work-around for upgrade) (#3681) 2016-11-29 19:26:36 +01:00
Gav Wood
d525a6d7f0 Merge pull request #3654 from ethcore/clippy-bump
Bumping clippy
2016-11-29 18:00:13 +01:00
Gav Wood
d58905ae13 fix comment 2016-11-29 17:59:17 +01:00
Jaco Greeff
6f24010424 Merge branch 'master' into jg-container-title 2016-11-29 17:50:36 +01:00
Tomasz Drwięga
df3c07b0a9 adding proof to a panicker 2016-11-29 17:14:34 +01:00
Jaco Greeff
7e2a072a2b Remove finished rendering completely 2016-11-29 16:59:44 +01:00
Jaco Greeff
0ddd33c643 Trim unused components 2016-11-29 16:55:59 +01:00
arkpar
95f81b2a2f Moved consensus networking into Parity handler 2016-11-29 16:54:30 +01:00
Gav Wood
9115214cea Merge pull request #3636 from ethcore/fatdb
Return of the Fat DB
2016-11-29 16:47:09 +01:00
Jaco Greeff
efd4e6f96a Pass MethodDecoding as to/destination view 2016-11-29 16:37:25 +01:00
Jaco Greeff
6a69e22b28 Methods use either input or data elements 2016-11-29 16:36:54 +01:00
Gav Wood
33d3287ed3 Merge pull request #3652 from ethereumproject/splix/block-ts-validation
Invalidate blocks from future
2016-11-29 16:34:29 +01:00
keorn
7929a145e7 fix deadlock 2016-11-29 14:55:54 +00:00
Gav Wood
63c28253d8 Merge remote-tracking branch 'origin/master' into fix-tx-rpc 2016-11-29 15:37:49 +01:00
Tomasz Drwięga
762d8b89d6 Removing unused imports 2016-11-29 14:03:21 +01:00
Jaco Greeff
907606ab69 Merge branch 'master' into jg-container-title 2016-11-29 13:54:30 +01:00
keorn
294e89e5c0 use EngineError instead of BlockError 2016-11-29 12:51:27 +00:00
Jannis Redmann
e667d33778 make Modal always scrollable (#3667) 2016-11-29 13:50:22 +01:00
Jaco Greeff
5e8f6f271d Display local/completed transactions (#3630)
* Initial fetch of local transactions

* Container allows for title specification

* Introduce TxList component

* Display local transactions in signer list

* Simplify

* Pass only hashes from calling components

* Simplify no pending display

* Render pending blocks at the top

* Get rid of time for 0 blocks

* Indeed sort Pending to the top

* Allow retrieval of pending transactions

* setTimeout with clearTimeout
2016-11-29 13:50:09 +01:00
Gav Wood
0e0bdc8ae9 Deduplicate code. 2016-11-29 13:48:28 +01:00
Gav Wood
436016ef02 Introduce to_hex() utility in bigint. Fix tests. 2016-11-29 13:46:06 +01:00
Konstantin
a578e10c49 added build-essential dep to dockerfiles (#3666) 2016-11-29 13:23:53 +01:00
Tomasz Drwięga
c97c59f62f returning errors with extra fields in config file (#3663) 2016-11-29 13:23:28 +01:00
keorn
e784fa906e warn on double vote 2016-11-29 12:20:38 +00:00
keorn
49b953a9f4 order invariant seal equality 2016-11-29 11:18:40 +00:00
Igor Artamonov
8ec8bcd626 fix after code review, rel [748260b] 2016-11-29 17:18:33 +06:00
Gav Wood
1166013c2b Merge pull request #3662 from ethcore/strict-rpc
Strict deserialization
2016-11-29 12:10:31 +01:00
Gav Wood
7c2cccc60c Merge pull request #3655 from ethcore/sync
Disable peer if no common block found
2016-11-29 12:10:19 +01:00
Jaco Greeff
b6efd6b1fd DRY-er Container with title 2016-11-29 11:58:00 +01:00
Tomasz Drwięga
44314c5d02 Merge branch 'master' into clippy-bump
Conflicts:
	rpc/src/v1/types/filter.rs
2016-11-29 11:56:55 +01:00
keorn
d0eab4a0d8 old message removal, avoid too many recoveries 2016-11-29 10:55:24 +00:00
Tomasz Drwięga
1a6ee533ed Addressing tiny grumbles 2016-11-29 11:52:55 +01:00
GitLab Build Bot
cfc1dabd57 [ci skip] js-precompiled 20161129-050158 2016-11-29 05:07:32 +00:00
GitLab Build Bot
261aa29db3 [ci skip] js-precompiled 20161128-232953 2016-11-28 23:31:43 +00:00
Jannis Redmann
65f4ba8372 show snackbar on password change (#3661)
* show snackbar on password change

* Swap last two words
2016-11-29 00:21:54 +01:00
keorn
61cf8b8b7e vote propose 2016-11-28 18:58:15 +00:00
keorn
0f1eefc00d disallow None seal sigs 2016-11-28 18:37:00 +00:00
Gav Wood
54b656ba05 Merge pull request #3660 from ethcore/pv62-sync
Bring back PV62 support
2016-11-28 18:19:34 +01:00
Gav Wood
77ebbedbba Merge pull request #3659 from ethcore/unlock-rpc
Unlock expecting quantity
2016-11-28 18:18:15 +01:00
Gav Wood
5cab951429 Merge pull request #3643 from ethcore/ng-webpack-update
Update Webpack => v2
2016-11-28 18:14:59 +01:00
Tomasz Drwięga
a418dcd8ea Fix manifest deserialisation 2016-11-28 17:59:50 +01:00
Nicolas Gotchac
d78de18385 Merge branch 'master' into ng-webpack-update 2016-11-28 17:56:47 +01:00
Tomasz Drwięga
24f72716b9 Strict deserialization 2016-11-28 17:55:46 +01:00
GitLab Build Bot
3c9983cf25 [ci skip] js-precompiled 20161128-164710 2016-11-28 16:48:55 +00:00
Tomasz Drwięga
64b1b898f1 Fixing compilation on stable 2016-11-28 17:43:38 +01:00
Jannis Redmann
5f570edf3b update SMS verification (#3579)
* add isTestnet helper

* sms verification: use different port on testnet

* subscribeToEvent helper

* sms verification: await Puzzled event

* sms verification: bugfixes 🐛, move awaitPuzzle

* sms verification: check upfront if code is valid

* sms verification: more helpful phone input label

* isTestnet helper -> redux state
2016-11-28 17:39:55 +01:00
Jannis Redmann
2b178d8233 simplify tx confirmations display (#3559)
* Hash component

* DRY code by using Hash component

* TxHash component: show hash inline

* TxHash component: less verbose confirmations display

* TxHash component: rename ui/Hash to ui/ShortenedHash

* signer: center message in TransactionFinished

* style fixes
2016-11-28 17:39:32 +01:00
arkpar
bae8acee74 Allow pv62 peers 2016-11-28 17:24:02 +01:00
Tomasz Drwięga
f5a899606e Merge branch 'master' into rpc-middleware 2016-11-28 17:20:02 +01:00
Nicolas Gotchac
eec99ebad8 Fixes overflow in Signer tx data #3138 (#3657) 2016-11-28 17:18:27 +01:00
Tomasz Drwięga
424638f89d Unlock expecting quantity 2016-11-28 17:15:40 +01:00
Nicolas Gotchac
1d194f9ae8 Fix linting 2016-11-28 17:00:51 +01:00
Nicolas Gotchac
9248303416 Fix Circular Deps 2016-11-28 17:00:33 +01:00
keorn
e4ff614966 remove unused tracing 2016-11-28 15:50:55 +00:00
keorn
b454f7e307 use Io queue for messages 2016-11-28 15:42:36 +00:00
arkpar
cf5b409fed Disaable peer if no common block found 2016-11-28 16:30:36 +01:00
keorn
1326c6cf5a rebroadcast unseen messages 2016-11-28 15:24:22 +00:00
keorn
7d97ba5ee0 seal sigs test 2016-11-28 15:23:39 +00:00
GitLab Build Bot
ecf283e2fc [ci skip] js-precompiled 20161128-151919 2016-11-28 15:21:01 +00:00
Nicolas Gotchac
6be08d8ce4 Fixed tab bar not updating #3631 (#3653) 2016-11-28 16:13:02 +01:00
Nicolas Gotchac
d41c60da54 Renaming webpack/config to webpack/app 2016-11-28 16:06:27 +01:00
Tomasz Drwięga
2b3d100de2 Fixing some clippy warnings 2016-11-28 15:54:22 +01:00
Igor Artamonov
748260bebe invalidate blocks from future 2016-11-28 20:14:43 +06:00
keorn
ef4ecce7bf nicer vote counting + test 2016-11-28 14:08:38 +00:00
Nicolas Gotchac
50530aec37 Default npm install to tilde #3520 2016-11-28 13:14:37 +01:00
Nicolas Gotchac
3675095201 Merge branch 'master' into ng-webpack-update 2016-11-28 13:02:03 +01:00
Nicolas Gotchac
3dd5f350f9 Webpack config update 2016-11-28 13:01:17 +01:00
keorn
09c28806d6 proper test IoHandler 2016-11-28 11:47:33 +00:00
Nicolas Gotchac
b823b675a4 Working HOT RELOAD !! 2016-11-28 12:37:13 +01:00
Tomasz Drwięga
e1e7886918 Bumping clippy 2016-11-28 12:23:06 +01:00
Tomasz Drwięga
8686339b0c Fixing UI to support both send and signTransaction 2016-11-28 12:14:14 +01:00
arkpar
dfd17949ef Added a test 2016-11-28 12:08:12 +01:00
Tomasz Drwięga
3e69ff0b88 Separating serialization of send and signTransaction 2016-11-28 11:41:46 +01:00
keorn
5c0e89ae9a Merge branch 'master' into auth-bft 2016-11-28 09:50:22 +00:00
keorn
89f0bd714d test whole transitioning 2016-11-28 09:42:50 +00:00
arkpar
fa45413a90 Extened API 2016-11-28 01:37:25 +01:00
arkpar
c7b359fcee Style 2016-11-28 01:37:25 +01:00
arkpar
d0c80a6903 Updated tests 2016-11-28 01:37:25 +01:00
arkpar
3aceac60de Use sha3 for fat key 2016-11-28 01:37:24 +01:00
arkpar
e91f7977fb Storage export 2016-11-28 01:37:24 +01:00
arkpar
b0555fbe7c State export 2016-11-28 01:37:24 +01:00
arkpar
8b3cdc513b Seekable iterator 2016-11-28 01:37:24 +01:00
Gav Wood
ce3f4911a2 Merge remote-tracking branch 'origin/master' into check-updates 2016-11-27 15:01:17 +01:00
Gav Wood
0cf8db58b8 Fix tests. 2016-11-27 14:49:30 +01:00
Gav Wood
3b6d886860 Fix up the transaction JSON serialisation for RPC. 2016-11-27 14:11:37 +01:00
Nicolas Gotchac
f9b3a98ff7 Fixing mocha tests 2016-11-26 17:27:44 +01:00
Nicolas Gotchac
44e099000d Working webpack build // Without Hot Reload 2016-11-26 17:12:52 +01:00
Nicolas Gotchac
353b6c06db Removed Circular Dependencies 2016-11-26 17:06:37 +01:00
Nicolas Gotchac
002c793f53 Added Webpack check circular deps 2016-11-26 16:53:24 +01:00
Denis S. Soldatov aka General-Beck
a7037f8e5b Update gitlab-ci
js-release &->&&
2016-11-26 03:52:29 +07:00
Tomasz Drwięga
3b595a01ad Merge branch 'master' into rpc-middleware 2016-11-25 21:46:35 +01:00
Tomasz Drwięga
a9028ca986 Merge branch 'master' into rpc-middleware
Conflicts:
	Cargo.lock
	rpc/src/v1/tests/mocked/parity_accounts.rs
2016-11-25 21:18:02 +01:00
Denis S. Soldatov aka General-Beck
8ca1781ab9 Update gitlab-ci
add js-test as diff
2016-11-26 01:57:58 +07:00
Nicolas Gotchac
f77afd072b Updated ESLINT and fixing linting issues 2016-11-25 19:48:06 +01:00
Nicolas Gotchac
8392090861 WIP - Webpack 2 building 2016-11-25 19:32:58 +01:00
Gav Wood
de8dd47ff9 Fetch binaries. 2016-11-25 19:29:13 +01:00
Gav Wood
699f462d56 Merge pull request #3617 from ethcore/default-gas-price
Set default min tx price to $0.0025
2016-11-25 18:46:29 +01:00
Gav Wood
a51066bdca Merge pull request #3618 from ethcore/jg-list-accounts
Use accountsInfo instead of eth_accounts for first check
2016-11-25 18:46:07 +01:00
Gav Wood
b274d082c3 Merge pull request #3619 from ethcore/ng-copy-clip-fix
Fix Copy to Clipboard Snackbar
2016-11-25 18:45:49 +01:00
Jaco Greeff
50585763aa Manually add \r to Windows phrases pre 1.4.5 (#3615)
* Manually add \r to Windows phrases pre 1.4.4

* < 1.4.5

* Only support 1.4.x dictionary
2016-11-25 18:43:28 +01:00
keorn
a7afbf4d25 tracing and vote test 2016-11-25 16:45:32 +00:00
keorn
8f72017bcc add transition tracing 2016-11-25 16:44:57 +00:00
keorn
f59746b2da order messages by signature 2016-11-25 16:44:18 +00:00
keorn
d2099d9f13 derive Eq for tests 2016-11-25 16:43:26 +00:00
Nicolas Gotchac
a534949b2d Updated packages version... 2016-11-25 17:33:18 +01:00
Jaco Greeff
e95ef0160f Signer layouts to flexbox (#3600)
* Use variables for signer form widths

* Simplify signer layouts with flex

* Fix styling issues with Signer
2016-11-25 17:20:16 +01:00
Nicolas Gotchac
807790ce95 Merge branch 'master' into ng-webpack-update 2016-11-25 17:17:06 +01:00
Nicolas Gotchac
7610336596 Fixing tokens sent as Array (#3621) 2016-11-25 17:10:02 +01:00
Jaco Greeff
6d6e942d9d Add dappreg link to apps list (#3568)
* Fix rendering when contract is empty

* Add registration dapp to app list
2016-11-25 16:46:57 +01:00
Nicolas Gotchac
08c507daaa Smarter balance fetching (#3605)
* Smarter dApps Manifest fetching...

* Fetching only visible accounts (and don't delete other balances) #3590

* Moved balances action into BalancesActions #3590

* Fetch balances for accounts and contracts #3590

* Add balances to contract/address/account views #3590

* Fix transaction not fetching on first load

* Remove console.warn

* Fix pending tokens not showing #3154

* Fix tokens image update

* Remove unused name in Header

* Separate Tokens and ETH fetching #3590

* Remove unused isTest

* Fetch Tokens Balance via Filter #3590

* Fix linting

* Fix updating tokens image (#3590)

* Fix contract balances

* Improved Status

* Fixing secureApi issues...

* Fetch all tokens every 2 minutes (for safety) #3590

* PR changes fix

* Fix Account error
2016-11-25 16:46:35 +01:00
Nicolas Gotchac
9fdab84305 Merge pull request #3597 from ethcore/jg-iframe-sandbox
Dapp iframe allow forms, allow target=_blank
2016-11-25 16:31:32 +01:00
Tomasz Drwięga
789d6608cf Bumping jsonrpc 2016-11-25 16:16:24 +01:00
Nicolas Gotchac
9b21c96e3a Fix Copy to Clipboard Snackbar 2016-11-25 15:52:23 +01:00
Gav Wood
8cddf9976a Better information. 2016-11-25 15:43:49 +01:00
Tomasz Drwięga
f080f33c41 JSON-RPC bump / update hyper
Conflicts:
	Cargo.lock
2016-11-25 15:21:18 +01:00
Jaco Greeff
2958546653 Use accountsInfo instead of eth_accounts for first check 2016-11-25 15:19:14 +01:00
arkpar
ffa123c949 Set default tx price to 0.0025 USD 2016-11-25 15:13:51 +01:00
Nicolas Gotchac
0d6c2dd51d Merge pull request #3604 from ethcore/jr-input-copy-button
align copy button to input field
2016-11-25 15:12:53 +01:00
Nicolas Gotchac
24bdf1cb98 Use webpack hot/dev middlewares 2016-11-25 13:14:30 +01:00
Tomasz Drwięga
9b9bdaa1b1 Appending logs by default (#3609) 2016-11-25 13:04:02 +01:00
Gav Wood
d0312b89ad Update test, fix number. (#3612) 2016-11-25 13:03:15 +01:00
Tomasz Drwięga
0e2cd1d080 Fixing phrases generated on windows (#3614) 2016-11-25 12:59:15 +01:00
GitLab Build Bot
686978fa97 [ci skip] js-precompiled 20161125-113155 2016-11-25 11:36:32 +00:00
keorn
a143da2cb8 fix complete build 2016-11-25 11:36:25 +00:00
Gav Wood
d0d01ca39b Merge pull request #3602 from ethcore/jg-network-id-match
Check for network ID for live/test matching
2016-11-25 12:28:58 +01:00
Gav Wood
befb0bf2bd Merge branch 'fix-number' into check-updates 2016-11-25 12:17:58 +01:00
keorn
1692c07ba6 Merge branch 'master' into auth-bft 2016-11-25 10:51:06 +00:00
Denis S. Soldatov aka General-Beck
86522c8f71 Update gitlab-ci
if fix
2016-11-25 07:02:54 +07:00
Denis S. Soldatov aka General-Beck
202739689d Update gitlab-ci
small fix for test's and js-build
2016-11-25 06:27:07 +07:00
GitLab Build Bot
4d9492a01d [ci skip] js-precompiled 20161124-231507 2016-11-24 23:16:52 +00:00
Denis S. Soldatov aka General-Beck
30c3b13518 Update gitlab-ci
https://github.com/ethcore/parity/issues/3185
2016-11-25 06:10:36 +07:00
Denis S. Soldatov aka General-Beck
2d79eee454 Update gitlab-ci
[ci skip]
add darwin installer in master
2016-11-25 04:10:37 +07:00
keorn
da499b0a4a self contained test proposal 2016-11-24 19:59:08 +00:00
keorn
f867372dfe increase default proposal time 2016-11-24 19:58:29 +00:00
keorn
04acdd6ca0 reuse rlp generation 2016-11-24 19:57:58 +00:00
Gav Wood
45017c599a Update test, fix number. 2016-11-24 19:11:29 +01:00
GitLab Build Bot
815cdc6ba1 [ci skip] js-precompiled 20161124-164849 2016-11-24 16:50:27 +00:00
GitLab Build Bot
51afc3afbe [ci skip] js-precompiled 20161124-163141 2016-11-24 16:40:11 +00:00
Gav Wood
735df6c30f More work. 2016-11-24 17:19:48 +01:00
Jannis R
fa1343e8af align copy button to input field 2016-11-24 17:17:14 +01:00
Gav Wood
e9197f5862 Merge pull request #3603 from ethcore/trace-fix
Always insert traces for genesis.
2016-11-24 17:16:37 +01:00
Gav Wood
46e5a84bc5 Merge pull request #3540 from ethcore/delete-accounts
Real deleting accounts
2016-11-24 17:16:26 +01:00
GitLab Build Bot
905d0c0b43 [ci skip] js-precompiled 20161124-154751 2016-11-24 15:50:50 +00:00
Nicolas Gotchac
d449b3c3f1 Merge pull request #3599 from ethcore/jg-phrase-whitespace
Trim whitespace from input recovery phrase
2016-11-24 16:22:56 +01:00
Jaco Greeff
6b9b31ad37 check for network ID for live/test matching 2016-11-24 15:46:25 +01:00
Tomasz Drwięga
aa52c72bda Traces for genesis are always present. 2016-11-24 15:05:52 +01:00
keorn
8f37807d4b seal checks 2016-11-24 13:57:54 +00:00
keorn
38f25fc195 message tests and fixes 2016-11-24 13:57:04 +00:00
Jaco Greeff
67771f39de Trim whitespace from recovery phrase 2016-11-24 14:56:39 +01:00
keorn
a3730b3042 change proposer address 2016-11-24 13:56:27 +00:00
keorn
207364929c improve error types 2016-11-24 13:55:16 +00:00
Denis S. Soldatov aka General-Beck
54ad70313c Update gitlab-ci
close https://github.com/ethcore/parity/issues/3515
2016-11-24 18:36:02 +07:00
Jaco Greeff
30526da094 Allow forms, allow target=_blank 2016-11-24 11:46:27 +01:00
Denis S. Soldatov aka General-Beck
4dc24c9e87 Update gitlab-ci
[ci skip]
fix S3_BUCKET in Windows build
2016-11-24 17:37:42 +07:00
Denis S. Soldatov aka General-Beck
6d6a2a8f1b Update gitlab-ci
[ci skip]
small fix in S# windows
2016-11-24 14:59:45 +07:00
Nicolas Gotchac
d188435fd8 Add Loading splashscreen 2016-11-24 03:40:22 +01:00
Nicolas Gotchac
e676f00dfa Wepback dapps 2016-11-24 03:26:38 +01:00
Nicolas Gotchac
259b91da50 Webpack Reuse proxies 2016-11-24 03:20:12 +01:00
Nicolas Gotchac
0750d82115 Reuse Webpack Configs 2016-11-24 03:11:54 +01:00
Nicolas Gotchac
52bd9eabb6 Don't add commons chunk in prod 2016-11-24 02:36:08 +01:00
Nicolas Gotchac
1291130f9e Simpler Webpack config : create HTML files for dapps 2016-11-24 02:28:33 +01:00
Denis S. Soldatov aka General-Beck
0bb9a4aba7 Update gitlab-ci
[ci skip]
small fix
2016-11-24 06:33:22 +07:00
Denis S. Soldatov aka General-Beck
4d1c3b2a3d Update gitlab-ci
[ci skip]
small fix for S3 windows
temp off alpine
2016-11-24 06:24:17 +07:00
Denis S. Soldatov aka General-Beck
f3512967a7 Update gitlab-ci
[ci scip]
restore test & js-build
2016-11-24 06:05:07 +07:00
Denis S. Soldatov aka General-Beck
51e771428c Update gitlab-ci
[ci skip]
small fix
2016-11-24 05:45:07 +07:00
Denis S. Soldatov aka General-Beck
f01cde89b6 Update gitlab-ci
fix windows s3 and alpine
2016-11-24 05:39:53 +07:00
Denis S. Soldatov aka General-Beck
d76081a269 Update gitlab-ci
initial support alpine linux
fix https://github.com/ethcore/parity/pull/3548
2016-11-24 05:23:26 +07:00
Jaco Greeff
97ec5053f0 PR grumbles, wording, isRequired, no close on error 2016-11-23 22:17:36 +01:00
GitLab Build Bot
8f9f5cd5a3 [ci skip] js-precompiled 20161123-205310 2016-11-23 20:55:02 +00:00
Nicolas Gotchac
d429f5526f Fix local tx requests (#3589)
* [localtx] Poll every second, dettach on unmount

* Fixed webpack config for dapps

* Fixed webpack PROXY config
2016-11-23 21:35:10 +01:00
Denis S. Soldatov aka General-Beck
2996499a06 Update gitlab-ci
[ci skip]
2016-11-24 02:48:58 +07:00
Gav Wood
6c686023e0 Use tester.accounts 2016-11-23 20:37:35 +01:00
Gav Wood
03ef95ba50 Compiles. 2016-11-23 20:35:21 +01:00
Gav Wood
9f3a042f55 Update message 2016-11-23 20:16:33 +01:00
Gav Wood
90b5d1c62d Merge remote-tracking branch 'origin/master' into check-updates 2016-11-23 20:13:47 +01:00
Gav Wood
34ab265b68 Merge pull request #3592 from ethcore/mio-cpu-fix
Fix CPU usage when idle
2016-11-23 19:58:39 +01:00
Gav Wood
0501658d1b Merge pull request #3591 from ethcore/ng-sync-ws
Don't fetch balances on every new block if syncing
2016-11-23 19:58:14 +01:00
GitLab Build Bot
273165e982 [ci skip] js-precompiled 20161123-185249 2016-11-23 18:54:40 +00:00
Gav Wood
7e800b7a63 Merge pull request #3587 from ethcore/ng-ws-improved
Work around WS in UI
2016-11-23 19:29:02 +01:00
Nicolas Gotchac
cd88f2ad1b Don't fetch balances on every new block if syncing #3582 2016-11-23 19:12:32 +01:00
arkpar
4e9c690640 Use patched MIO 2016-11-23 19:08:40 +01:00
Nicolas Gotchac
0c3d87f0d3 Removed check node up from WS #3587 2016-11-23 18:20:18 +01:00
Gav Wood
5d62cfdf6f Merge remote-tracking branch 'origin/master' into check-updates 2016-11-23 18:15:21 +01:00
Nicolas Gotchac
bb6fe16478 Fixed ping and comment #3587 2016-11-23 18:08:53 +01:00
Nicolas Gotchac
ab212fcdb5 Localstorage SignerToken first #3587 2016-11-23 17:51:08 +01:00
Nicolas Gotchac
abcccbe7cc Merge branch 'master' into ng-ws-improved 2016-11-23 17:48:06 +01:00
Nicolas Gotchac
f800dd1eee WebSocket Improvments #3544 2016-11-23 17:37:04 +01:00
Gav Wood
9d3b2352cc More work. 2016-11-23 16:29:15 +01:00
Tomasz Drwięga
cd6f565f69 RPC Middleware & Get/Set dapp-specific accounts 2016-11-23 16:27:05 +01:00
Gav Wood
820e291ac8 Merge pull request #3573 from ethcore/no-bg-download
CLI option to disable ancient block downloading
2016-11-23 16:06:45 +01:00
Gav Wood
7ed4a21a02 Merge pull request #3531 from ethcore/jg-signer-api-queries-2
Move Signer balance queries to store for component-wide re-use
2016-11-23 16:03:45 +01:00
Gav Wood
4c9bb5aa25 Merge remote-tracking branch 'origin/master' into check-updates 2016-11-23 14:45:55 +01:00
GitLab Build Bot
e7dd222142 [ci skip] js-precompiled 20161123-131908 2016-11-23 13:20:46 +00:00
Nicolas Gotchac
93f8a1494e Fix contract method name (#3580) 2016-11-23 13:59:21 +01:00
Nicolas Gotchac
a22469ade5 Fix contract method name 2016-11-23 13:56:48 +01:00
Jaco Greeff
e9eebb3088 Optimise multi-balance fetching (one set) 2016-11-23 12:32:50 +01:00
Jaco Greeff
dddb8752f2 Merge branch 'master' into jg-signer-api-queries-2 2016-11-23 12:32:21 +01:00
GitLab Build Bot
24ffb30bc2 [ci skip] js-precompiled 20161123-105837 2016-11-23 11:00:19 +00:00
GitLab Build Bot
5bd6d5e3ac [ci skip] js-precompiled 20161123-102835 2016-11-23 10:32:27 +00:00
Jaco Greeff
78ffd10236 Typo in description 2016-11-23 10:33:04 +01:00
Nicolas Gotchac
33dd49160f Smarter Tokens fetching (#3546)
* Don't auto-subscribe for contracts #3240

* Smarter Balance : don't re-instantiate contracts, fetch tokens #3240

* Smarter Balance Tokens fetching (update image when needed) #3240

* Attaching to TokenReg Events instead of fetching for each block #3240

* Unsubscribe from shapeshit... #3240

* Unsubscribe from EthFilter if used once (resolved) #3240

* Remove warning

* PR review fix

* Typo

* Better contract JS API : one subscribe for all #3546

* Fixed test
2016-11-23 10:30:47 +01:00
Arkadiy Paronyan
a969c008d1 Fix panic on importing own invalid transaction (#3550) 2016-11-23 08:46:55 +01:00
GitLab Build Bot
cbeb2dc3f9 [ci skip] js-precompiled 20161122-175502 2016-11-22 17:57:03 +00:00
arkpar
7da8f019d5 --no-ancient-blocks 2016-11-22 18:15:55 +01:00
keorn
d5b15d4560 change authorities for testing 2016-11-22 17:15:42 +00:00
keorn
8f6a464c51 new error types 2016-11-22 17:15:22 +00:00
Gav Wood
03d3e585af Merge pull request #2445 from ethcore/adaptive_queue_threads
Use an adaptive number of threads in the verification queue
2016-11-22 17:39:11 +01:00
Jaco Greeff
59f4252011 Merge branch 'master' into jg-signer-api-queries-2 2016-11-22 17:31:27 +01:00
Jaco Greeff
d8cb32d49b Typo 2016-11-22 17:31:25 +01:00
GitLab Build Bot
9f74c76f07 [ci skip] js-precompiled 20161122-162239 2016-11-22 16:25:02 +00:00
keorn
340d377930 Revert "dont keep account provider in miner"
This reverts commit 11ccacd6d0.
2016-11-22 16:05:27 +00:00
Gav Wood
490b39cc85 Merge pull request #3555 from ethcore/ng-fast-ui
Faster UI - React Tweaks
2016-11-22 17:05:23 +01:00
Gav Wood
a722bac304 Merge pull request #3512 from ethcore/jg-transact-gas-warnings
Send value & contract execute gas limit warnings
2016-11-22 17:04:13 +01:00
Jaco Greeff
7f7ffd7284 Monitor killAccount for refresh 2016-11-22 16:46:40 +01:00
Jaco Greeff
609e8912d8 Merge branch 'master' into delete-accounts 2016-11-22 16:19:40 +01:00
Jaco Greeff
cce5b217ed Delete account dialog 2016-11-22 16:19:36 +01:00
GitLab Build Bot
12ff42a513 [ci skip] js-precompiled 20161122-151225 2016-11-22 15:14:06 +00:00
Jaco Greeff
3db5e3e627 jsapi interface for parity_killAccount 2016-11-22 15:52:23 +01:00
Jaco Greeff
57ff0e5747 Add visibility specifier (not added between merges) (#3566) 2016-11-22 13:36:23 +01:00
Jaco Greeff
bd6f343cbe DappRegistry (#3405)
* Initial version, just loading

* Warning dialog

* Retrive & show applications

* Display completed

* Edit/New mode start

* Display distry state, resolve hashes to urls

* Move buttons to top-level

* Rework display

* Update error handling & dirty checks

* Formatting

* Split sections into components

* Styling updates

* Slight styling adjustments

* Start delete modal

* Add modals for register & update

* Flesh-out register modal

* Register error handling

* Register registers

* List refresh on add & remove

* Update operational

* Simplify, remove bg image

* Really remove bg

* fix case

* Collapse text-only components
2016-11-22 11:54:20 +01:00
Gav Wood
bf9ed2d444 Merge remote-tracking branch 'origin/master' into check-updates 2016-11-22 10:25:34 +01:00
Gav Wood
45dead9d49 Naming consistency and make Updater improvements.
- ID -> Id (consistency with rust libs)
2016-11-22 10:24:22 +01:00
Jaco Greeff
a475c2166c Merge branch 'master' into jg-signer-api-queries-2 2016-11-22 09:49:17 +01:00
Jaco Greeff
4c08f7ebba Merge branch 'master' into jg-signer-api-queries-2 2016-11-22 09:48:32 +01:00
GitLab Build Bot
b97763e13d [ci skip] js-precompiled 20161121-233309 2016-11-21 23:35:10 +00:00
Gav Wood
4c83eff912 Merge pull request #3552 from ethcore/import-msg
Import account message
2016-11-22 00:03:36 +01:00
Gav Wood
7e5553a872 Merge pull request #3551 from ethcore/ropsten
--testnet set to ropsten
2016-11-22 00:03:11 +01:00
Gav Wood
818e54d44e Merge pull request #3547 from ethcore/fix-flaky-auth
Fix flaky test
2016-11-22 00:01:51 +01:00
Jannis Redmann
f9ecea8f4d sms verification code style (#3564)
* sms verification: fix code style

* sms verification: move server-related code to 3rdparty

* sms verification: adapt to ropsten
2016-11-21 20:45:47 +01:00
Nicolas Gotchac
5735d948f5 [Registry] Clear input and working buttons (#3563)
* onClick to onTouchTap #3556

* onClick to onTouchTap 2 #3556

* Registry dApp clear input + check Signer #3557
2016-11-21 20:44:37 +01:00
Nicolas Gotchac
8a1b585da2 Fix peers not displaying (#3561)
* Add peers count to status polling

* Array destruct for better readability
2016-11-21 20:44:07 +01:00
keorn
32bcd08b94 test utilities 2016-11-21 18:54:16 +00:00
keorn
66526af5a8 pass engine in tests 2016-11-21 18:53:53 +00:00
GitLab Build Bot
eb94eda30b [ci skip] js-precompiled 20161121-181249 2016-11-21 18:16:10 +00:00
GitLab Build Bot
65785475f3 [ci skip] js-precompiled 20161121-173542 2016-11-21 17:37:37 +00:00
Gav Wood
10e64847a4 Merge remote-tracking branch 'origin/master' into check-updates 2016-11-21 18:17:31 +01:00
Jaco Greeff
af0db9f80e New registry contract address for ropsten (#3549)
* New registry for ropsten

* Registry address

* Registry with payable modifier
2016-11-21 18:14:23 +01:00
keorn
84fdaf966a correct seal verification 2016-11-21 16:02:26 +00:00
keorn
841d0941e0 remove WithSome block hash 2016-11-21 16:01:52 +00:00
keorn
12dbdc1d6e dont pass ap 2016-11-21 16:01:34 +00:00
Nicolas Gotchac
a6430c6086 Merge pull request #3554 from ethcore/jg-registry-fee
Use contract Registry fee, not a hard-coded value
2016-11-21 15:59:19 +01:00
Nicolas Gotchac
ba8460c65b Fix summary update 2016-11-21 15:54:51 +01:00
Jaco Greeff
42964e9a8e lint fixes 2016-11-21 15:48:46 +01:00
Jaco Greeff
e90743ecbf Use actual registry fee 2016-11-21 15:47:36 +01:00
Nicolas Gotchac
35fdbf3352 Progressive Accounts List Rendering #3240 2016-11-21 15:45:58 +01:00
arkpar
efdf017c43 Import account message 2016-11-21 15:03:20 +01:00
Robert Habermeier
53afb8d22d queue: park directly instead of through condvar 2016-11-21 14:48:25 +01:00
arkpar
8bb8ecac2d --testnet set to ropset 2016-11-21 14:39:26 +01:00
Nicolas Gotchac
a317e4fdbf Better TabBar #3240 2016-11-21 14:31:06 +01:00
Robert Habermeier
133796b7ff queue: verifier scaling tests 2016-11-21 14:23:34 +01:00
Nicolas Gotchac
47f5a6d005 Merge pull request #3524 from ethcore/jg-signer-api-queries
Don't query chain in Signer, use Redux isTest
2016-11-21 14:16:33 +01:00
Nicolas Gotchac
ca5fd0b23d React Perf in dev mode // Smarter background component #3240 2016-11-21 14:14:25 +01:00
keorn
42ef7767da delete unused message type 2016-11-21 12:23:27 +00:00
keorn
6e0bd4072b Merge branch 'master' into auth-bft 2016-11-21 12:17:00 +00:00
keorn
959ccc705a fix indent 2016-11-21 12:07:43 +00:00
keorn
c6db157554 fix flaky test, clean up specs 2016-11-21 12:06:14 +00:00
Jaco Greeff
278b1e3bd5 ropsten updates as per comment 2016-11-21 13:04:32 +01:00
keorn
e69be670de message serialization 2016-11-21 11:36:07 +00:00
Jaco Greeff
d48391d6be ropsten 2016-11-21 12:26:38 +01:00
Robert Habermeier
06f5bf809f Merge branch 'master' into client-provider 2016-11-21 12:19:11 +01:00
Gav Wood
601e0fb0fd Merge remote-tracking branch 'origin/master' into check-updates 2016-11-21 11:43:29 +01:00
Gav Wood
2d9369e5ba Introduce test. 2016-11-21 11:03:18 +01:00
GitLab Build Bot
21b2b4ac27 [ci skip] js-precompiled 20161121-093611 2016-11-21 09:37:54 +00:00
Gav Wood
9c0b630d20 Merge pull request #3543 from ethcore/hash-fetch
Moving fetching of hash-addressed dapps/content to separate crate.
2016-11-21 10:16:40 +01:00
Tomasz Drwięga
94328e9784 Fixing main 2016-11-20 22:40:23 +01:00
Tomasz Drwięga
cc8a9d410b Adding fetch API to the crate 2016-11-20 18:44:23 +01:00
Tomasz Drwięga
845bc52e36 Moving contract resolver to separate crate 2016-11-20 17:40:28 +01:00
GitLab Build Bot
92a34d9dd8 [ci skip] js-precompiled 20161120-160026 2016-11-20 16:06:52 +00:00
Arkadiy Paronyan
efd1d9bd0e Ropsten network (#3539)
* Ropsten network

* Sorted premine

* Comas

* Removed trailing coma
2016-11-20 16:38:45 +01:00
Gav Wood
2b8bed434c RPC for deleting accounts. 2016-11-20 16:17:57 +01:00
GitLab Build Bot
9832be395f [ci skip] js-precompiled 20161120-133314 2016-11-20 13:35:00 +00:00
GitLab Build Bot
ab4941b5ee [ci skip] js-precompiled 20161120-132620 2016-11-20 13:28:04 +00:00
Gav Wood
017aaa346c Merge pull request #3534 from sandakersmann/patch-2
Add simple one-line installer to README.md
2016-11-20 14:11:07 +01:00
Gav Wood
efca40a733 Merge pull request #3491 from ethcore/transactions-propagate
Propagations & local transactions tracking
2016-11-20 14:10:27 +01:00
Gav Wood
0848a9ec3c Merge branch 'master' into transactions-propagate 2016-11-20 13:24:08 +01:00
Gav Wood
27a8608624 More information in the updater. 2016-11-20 13:18:56 +01:00
sandakersmann
306ee068f5 Add simple one-line installer to README.md
Add simple one-line installer for Mac and Ubuntu to README.md
2016-11-19 19:22:26 +01:00
Gav Wood
44eda379ad Merge remote-tracking branch 'origin/master' into check-updates 2016-11-19 03:43:43 +01:00
Jaco Greeff
1c4779683f Rename Request{Pending,Finished}Web3 -> Request{Pending,Finished} 2016-11-18 22:30:36 +01:00
Jaco Greeff
d1e6b9ec5e Introduce mobx store for component balances 2016-11-18 22:26:52 +01:00
Jaco Greeff
4498fd54a4 Typo slipped through 2016-11-18 21:55:55 +01:00
GitLab Build Bot
60922b61c9 [ci skip] js-precompiled 20161118-192308 2016-11-18 19:27:32 +00:00
Gav Wood
c4f2b71f1b Merge pull request #3503 from ethcore/signTransaction-format
Correct format of eth_signTransaction
2016-11-19 02:58:53 +08:00
Gav Wood
c9d1eb085c Merge pull request #3518 from ethcore/ng-solc-combined-fix
ABI can be empty and auto-fill contract name
2016-11-19 02:50:23 +08:00
Gav Wood
be2aabc7a1 Merge pull request #3516 from ethcore/ng-fix-npm-versions
Fix versions for NPM
2016-11-19 02:50:09 +08:00
Gav Wood
a97e08fbc8 Merge pull request #3498 from ethcore/jg-ghh-info-display
Better GHH event display & tracking
2016-11-19 02:49:56 +08:00
Gav Wood
80288f8680 Merge pull request #3438 from ethcore/jg-external-dapps
Dapp section & visibility changes
2016-11-19 02:49:41 +08:00
Nicolas Gotchac
53fcfa658f Fix parity.js badly built (#3526) 2016-11-18 19:49:30 +01:00
Konstantin
d870b71636 updated the european warp bootnode addresses (#3528) 2016-11-18 19:41:39 +01:00
Robert Habermeier
58ca93c123 document lock order 2016-11-18 19:27:32 +01:00
Robert Habermeier
48df2e12fa exclusive access to each peer at a time 2016-11-18 19:26:05 +01:00
Arkadiy Paronyan
9c62dd3916 Limit sync reorg to 20 blocks (#3519)
* Limit sync reorg

* Fixed tests
2016-11-18 19:17:35 +01:00
Robert Habermeier
4fd9670b33 support request sending 2016-11-18 19:12:20 +01:00
Jaco Greeff
1686d23522 Don't query chain in Signer, use Redux isTest 2016-11-18 19:07:13 +01:00
Jaco Greeff
be1e5ae52f Updated overlay size as per comments 2016-11-18 18:20:14 +01:00
Nicolas Gotchac
128cd2a8e4 Fixing JS tests 2016-11-18 18:14:34 +01:00
Jaco Greeff
1382c3bbf4 PR grumble 2016-11-18 18:12:38 +01:00
Nicolas Gotchac
8fc1506c57 ABI can be empty and auto-fill contract name #3511 2016-11-18 17:54:25 +01:00
Arkadiy Paronyan
51012d1fae Revert "Limit sync reorganization to 20 blocks" (#3517) 2016-11-18 17:50:27 +01:00
Arkadiy Paronyan
4a3bdf13df Check transaction signature when adding to the queue (#3508) 2016-11-18 17:45:19 +01:00
Arkadiy Paronyan
15702a875c Limit sync reorg (#3509) 2016-11-18 17:45:00 +01:00
Nicolas Gotchac
ffc94343fe Fix version for NPM 2016-11-18 17:44:40 +01:00
Jaco Greeff
f827ade616 debug log removal 2016-11-18 16:32:57 +01:00
keorn
9456c160c2 Merge branch 'master' into auth-bft 2016-11-18 15:22:20 +00:00
Robert Habermeier
f1c665081a Merge branch 'master' into client-provider 2016-11-18 16:07:50 +01:00
Robert Habermeier
63aa54cfc7 trigger event handlers, update capabilities 2016-11-18 15:30:06 +01:00
Jaco Greeff
8d339ad379 Adjust styling 2016-11-18 15:13:37 +01:00
Jaco Greeff
b433e7e9a0 Updated, contract execution in-place 2016-11-18 15:05:02 +01:00
GitLab Build Bot
55a3da8f0a [ci skip] js-precompiled 20161118-134410 2016-11-18 13:46:22 +00:00
keorn
49cbd6ef98 unused imports, proposer_nonce 2016-11-18 13:38:04 +00:00
keorn
2f3b801296 rename transition 2016-11-18 13:37:47 +00:00
Jaco Greeff
bf58aab6a3 Merge branch 'master' into jg-transact-gas-warnings 2016-11-18 14:24:04 +01:00
Nicolas Gotchac
aa43990456 Merge pull request #3506 from ethcore/jg-block-gasLimit
Keep track of block gasLimit
2016-11-18 14:21:13 +01:00
Jaco Greeff
e69b7f66a3 Gas calculation & limit errors 2016-11-18 14:18:50 +01:00
keorn
e90d814193 lock rounds 2016-11-18 12:27:00 +00:00
Gav Wood
4fd575b5ec Add traces. 2016-11-18 19:52:11 +08:00
Robert Habermeier
3fabad5c0f event struct types 2016-11-18 12:36:31 +01:00
Jaco Greeff
2de38c9238 Merge branch 'master' into jg-block-gasLimit 2016-11-18 12:25:04 +01:00
Jaco Greeff
5dcb3cbffb Retrieve gasLimit on new blocks 2016-11-18 12:24:32 +01:00
Gav Wood
9f030db6fb Merge remote-tracking branch 'origin/master' into check-updates 2016-11-18 19:23:22 +08:00
Gav Wood
cd770490ff Remove unneeded file. 2016-11-18 19:22:47 +08:00
Gav Wood
3f2ba96e97 Merge pull request #3504 from ethcore/ng-faster-ui
Smarter Status Polling
2016-11-18 19:18:28 +08:00
Gav Wood
dd50c63912 Merge pull request #3496 from ethcore/ng-solc-output
Handle solc combined output
2016-11-18 19:17:49 +08:00
Gav Wood
b9add2fa6b Merge pull request #3481 from ethcore/no-auto-uuid-name
Wallet names shouldn't use UUID
2016-11-18 19:17:42 +08:00
Gav Wood
d0cbbe2ec3 Merge pull request #3475 from ethcore/ng-fix-parity-jsapi
Make parity.js usable by Node and Browser
2016-11-18 19:17:33 +08:00
Gav Wood
401a4a37c1 Initial structure for auto-updater.
- Add auto-gen'ed Operations and Registry ABIs.
- Add Updater for managing updates.
- Add fields in Client to enable update checking and registry.
2016-11-18 19:14:52 +08:00
Tomasz Drwięga
5897e01dbd Correct format of eth_signTransaction 2016-11-18 11:03:29 +01:00
Gav Wood
28aabcdb6c Merge branch 'master' into check-updates 2016-11-18 11:45:04 +08:00
keorn
c62795d09b ap registration 2016-11-17 23:36:24 +00:00
keorn
9d61071dd7 Merge branch 'miner-no-ap' into auth-bft 2016-11-17 22:04:07 +00:00
Nicolas Gotchac
1c3923c9e8 Smarter Polling #3240
Only refresh statuses when on Status Page for
  some statuses (eg. hashrate)
2016-11-17 20:19:11 +01:00
keorn
9d8ac7a09b extra line [ci skip] 2016-11-17 19:08:00 +00:00
keorn
a521fda24e update rpc module test 2016-11-17 19:04:02 +00:00
keorn
11b6578bc3 update tests 2016-11-17 18:46:50 +00:00
Jaco Greeff
0c26eddd7f Better GHH event display & tracking 2016-11-17 19:37:08 +01:00
keorn
11ccacd6d0 dont keep account provider in miner 2016-11-17 18:32:12 +00:00
Nicolas Gotchac
5fd66d2c97 Smarter pinging. Don't waster resources #3240 2016-11-17 19:20:58 +01:00
Nicolas Gotchac
868fdd68ab Smarter Status Redux fixed 2016-11-17 18:45:23 +01:00
Nicolas Gotchac
50473a69f4 Smarter Status Redux dispatch #3240 2016-11-17 18:44:01 +01:00
keorn
3bac68419a last_lock 2016-11-17 17:12:37 +00:00
Robert Habermeier
8c0e511ebe rewrite scaling logic 2016-11-17 18:10:09 +01:00
Nicolas Gotchac
18e40f3ece Merge branch 'master' into ng-solc-output 2016-11-17 17:51:32 +01:00
Nicolas Gotchac
3ec256cd7b Merge branch 'master' into ng-fix-parity-jsapi 2016-11-17 17:51:05 +01:00
Nicolas Gotchac
a1cbe449fa Use a single step and input for ABI/solc output #3196 2016-11-17 17:45:04 +01:00
GitLab Build Bot
b79d65c0f3 [ci skip] js-precompiled 20161117-160039 2016-11-17 16:02:23 +00:00
Nicolas Gotchac
4f50a63dbc Remove node_modules dir after tests 2016-11-17 16:44:19 +01:00
Nicolas Gotchac
b633631f42 Npm install in npm test 2016-11-17 16:43:41 +01:00
Gav Wood
25a7ff1433 Merge pull request #3336 from ethcore/sms-verification-modal
sms verification modal
2016-11-17 23:42:12 +08:00
Gav Wood
e02d4d9205 Fix test. 2016-11-17 23:39:48 +08:00
Nicolas Gotchac
73b4b4d241 Added library test (node only) #3471 2016-11-17 16:39:36 +01:00
Robert Habermeier
546cd00659 allocate verifiers up front, hibernate when not needed 2016-11-17 16:00:23 +01:00
Nicolas Gotchac
6fd17540f3 Use the right webpack file // Export to window.Parity #3471 2016-11-17 15:54:13 +01:00
Nicolas Gotchac
830c762b75 Working desc and name fields #3196 2016-11-17 15:24:55 +01:00
GitLab Build Bot
7b866b4a1b [ci skip] js-precompiled 20161117-141135 2016-11-17 14:13:10 +00:00
Gav Wood
5c4a9f71d7 Merge pull request #3488 from ethcore/mac-uninstall
sudo -c is not supported on Mac
2016-11-17 21:56:34 +08:00
Gav Wood
9c8b7b25c9 Merge pull request #3492 from ethcore/jg-trace-apis
Add trace_{call, rawTransaction, replayTransaction}
2016-11-17 21:56:19 +08:00
Gav Wood
8befeb29a0 Merge pull request #3490 from ethcore/scrypt-sweep-panics
Check for possible panics in scrypt key derivation
2016-11-17 21:54:35 +08:00
Gav Wood
2532b1527e Merge pull request #3477 from ethcore/sync-opt
Sync traffic optimization
2016-11-17 21:53:05 +08:00
Tomasz Drwięga
3bfd6c5998 Merge branch 'master' into transactions-propagate 2016-11-17 14:37:29 +01:00
Jannis R
4ae58f7d33 move nullable PropType helper 2016-11-17 14:31:25 +01:00
Tomasz Drwięga
afef5b5316 Mocking API for tests 2016-11-17 14:30:53 +01:00
keorn
ce711e321a remove unused vote accumulators 2016-11-17 13:28:29 +00:00
keorn
51ac38318a save proposal hash 2016-11-17 13:26:57 +00:00
Jannis R
179078d31a sms verification: loading step 2016-11-17 14:23:59 +01:00
Jannis R
fff8743ee6 sms verification: fetch contract address from Registry 2016-11-17 14:23:47 +01:00
Tomasz Drwięga
45c7a28585 Fixing JS tests 2016-11-17 14:13:59 +01:00
Nicolas Gotchac
52f3d3cccd Add solc text helper #3196 2016-11-17 14:09:02 +01:00
Jaco Greeff
1b5f7f2241 Remove dangling only 2016-11-17 14:07:34 +01:00
Jaco Greeff
139e66932d Add trace_{call, rawTransaction, replayTransaction} 2016-11-17 14:05:11 +01:00
Tomasz Drwięga
be6eb79296 Fixing JS lints 2016-11-17 14:00:53 +01:00
Nicolas Gotchac
d41efcc84e Add input from Solc compiler #3196 2016-11-17 13:59:13 +01:00
Tomasz Drwięga
5c62e38a7c Cleanup 2016-11-17 13:52:09 +01:00
Tomasz Drwięga
fc4b51fe68 Prioritizing local transactions regardless of nonce 2016-11-17 13:42:45 +01:00
Tomasz Drwięga
74bf2c75f0 Transaction queue improvements 2016-11-17 13:32:13 +01:00
NikVolf
9bbaa03932 check for sanity 2016-11-17 15:30:08 +03:00
keorn
6cb892f605 Merge remote-tracking branch 'parity/master' into bft 2016-11-17 12:19:30 +00:00
keorn
9563ccfbd2 message broadcasting methods 2016-11-17 12:18:20 +00:00
keorn
45027ea306 add new client messaging 2016-11-17 12:17:48 +00:00
Robert Habermeier
44dcd6bc3b increase readjustment period 2016-11-17 13:10:33 +01:00
Jannis R
3f0053f884 sms verification: move helper functions
- checkIfTxFailed & waitForBlockConfirmations are both general-purpose
- checkIfVerified, checkIfRequested & postToServer are sms verification-specific
2016-11-17 13:07:36 +01:00
arkpar
d890dd6f42 Updated sync algo desription 2016-11-17 13:02:44 +01:00
Robert Habermeier
ada9d2b760 Merge branch 'master' into adaptive_queue_threads 2016-11-17 13:00:24 +01:00
Jannis R
a59526099d merge master into sms-verification-modal 2016-11-17 12:40:22 +01:00
Jannis R
13448930e9 sms verification: fix styling 2016-11-17 12:31:06 +01:00
Arkadiy Paronyan
2928da07e4 sudo -c Is not supported on Mac 2016-11-17 12:30:56 +01:00
Nicolas Gotchac
c8fadbec69 Add a new RadioButtons Component #3196 2016-11-17 12:06:35 +01:00
Gav Wood
64a4b60857 Merge pull request #3378 from ethcore/fix-wallet-naming
Wallet files shouldn't give away the address
2016-11-17 18:30:04 +08:00
GitLab Build Bot
76ac87af8b [ci skip] js-precompiled 20161117-101458 2016-11-17 10:16:40 +00:00
Tomasz Drwięga
e45fa62ed5 Fixing tests, fixing refreshing precompiled (#3483)
* Fixing tests, fixing refreshing precompiled

* Commit only js and Cargo.lock

* Moving commands to the right place

* Adding js content as well
2016-11-17 10:58:07 +01:00
Tomasz Drwięga
ff27bbcb4f Simple GUI for local transactions 2016-11-17 10:15:11 +01:00
Gav Wood
4c41195d5c Merge pull request #3478 from ethcore/ng-errors-overlay
Better Errors Snackbar in UI
2016-11-17 08:34:49 +08:00
Gav Wood
a9f017648a Merge pull request #3476 from ethcore/ng-signer-reject
Handle Signer Rejection
2016-11-17 08:33:26 +08:00
Gav Wood
4fa361c988 Wallet names shouldn't include uuid.
Fixes #3368
2016-11-17 08:29:28 +08:00
Nicolas Gotchac
05dc1ab05e Better Erros Snackbar in UI #3473 2016-11-16 19:57:41 +01:00
arkpar
5bddcd8003 Sync bandwidth optimization 2016-11-16 19:34:58 +01:00
Nicolas Gotchac
3ad7e873e1 Better use of Webpack #3471 2016-11-16 19:16:55 +01:00
keorn
802d5c669d transition rules 2016-11-16 18:01:09 +00:00
Nicolas Gotchac
6c60aaec08 Merge branch 'master' into ng-fix-parity-jsapi 2016-11-16 18:58:15 +01:00
Nicolas Gotchac
7144da5d7e Handle Signer Rejection // Real Custom Errors #3153 2016-11-16 18:55:53 +01:00
Tomasz Drwięga
cd686b5d68 Merge branch 'master' into transactions-propagate 2016-11-16 18:07:44 +01:00
Nicolas Gotchac
18f570327e Enhanced MethodDecoding in Transactions list (#3454)
* Better MethodDecoding UI // No empty params #3452

* Display input if ASCII in transactions #3434

* Fixes UI for #3454

* Better MethodDecoding contract detection #3454
2016-11-16 18:03:59 +01:00
Tomasz Drwięga
2cd2b10327 Local transactions RPC 2016-11-16 17:54:54 +01:00
GitLab Build Bot
a7574a1108 [ci skip] js-precompiled 20161116-161024 2016-11-16 16:12:55 +00:00
keorn
51bbad66d0 add a path to submit seal from engine 2016-11-16 15:56:16 +00:00
Nicolas Gotchac
6fa863f2cc Make parity.js usable by Node and Browser #3471 2016-11-16 16:52:05 +01:00
Gav Wood
25950345db Merge pull request #3379 from ethcore/new-token
Signer new-token generates a link and opens browser
2016-11-16 23:48:21 +08:00
Nicolas Gotchac
6f2c818f9f Make tokenreg dapp fast again (#3474)
* Using proper TokenReg Instance in TokenReg dApp #3371

* remove unnecessary logs in tokereg dapp

* Improved Redux managment in TokeReg dApp #3371

* Fixfing linting
2016-11-16 16:43:21 +01:00
Tomasz Drwięga
66e327dfcb Keep track of local transactions 2016-11-16 15:58:14 +01:00
keorn
3b0d5503b1 fix compilation 2016-11-16 13:13:21 +00:00
Tomasz Drwięga
78b5c743f6 Stats RPC 2016-11-16 13:54:58 +01:00
keorn
2fa34fd6a8 step transition messaging 2016-11-16 12:43:21 +00:00
Jannis R
ed2b8e14fc merge master into sms-verification-modal 2016-11-16 13:29:46 +01:00
Jannis R
da8c70fbe7 sms verification: check if tx failed, minor UI fixes
- checks if the tx failed by the amount of gas used
- don't show the pending indicator if an error occured
2016-11-16 13:28:52 +01:00
Jaco Greeff
bbf6d1768d Overal + acceptance in-place 2016-11-16 13:08:08 +01:00
Jaco Greeff
d14801f4ea Merge branch 'master' into jg-external-dapps 2016-11-16 12:36:43 +01:00
Jaco Greeff
68efa70977 Update styling 2016-11-16 12:36:27 +01:00
Jaco Greeff
501c7369b0 External app overlay 2016-11-16 12:36:27 +01:00
keorn
8ac989cbeb Merge remote-tracking branch 'parity/master' into bft 2016-11-16 10:29:54 +00:00
Tomasz Drwięga
4febd0eb93 Maintaining the statistics for propagation of pending transactions 2016-11-16 10:45:55 +01:00
Tomasz Drwięga
29271383dd signer new-token doesn't open the browser 2016-11-16 09:38:09 +01:00
Arkadiy Paronyan
df1fbf50d8 Build fix (#3470) 2016-11-16 08:47:50 +01:00
Gav Wood
b7a76be23a Merge pull request #3447 from ethcore/jg-basiccoin
Display deployed Basic token addresses
2016-11-16 11:46:20 +08:00
Gav Wood
9bd6378e42 Typo 2016-11-16 11:37:25 +08:00
Gav Wood
b9e9544841 Merge pull request #2866 from ethcore/ng-accounts-backup
Export accounts as JSON or CSV
2016-11-16 11:31:18 +08:00
Gav Wood
a5c6cc34cf Merge pull request #3466 from ethcore/hf2-block-num
Set HF2 block number
2016-11-16 11:21:59 +08:00
Gav Wood
9c8a85fa4e Merge pull request #3461 from ethcore/jr-better-wordlist
better word list for secret phrase generation
2016-11-16 11:21:17 +08:00
Gav Wood
8ad2526826 Merge pull request #3460 from ethcore/drop-spec
drop spec when no longer useful
2016-11-16 11:20:13 +08:00
Gav Wood
4d5ce8fde4 Merge pull request #3459 from ethcore/ng-abi-fallback
Add fallback check in ABI validation
2016-11-16 11:19:50 +08:00
Gav Wood
130fd3f9c1 Merge pull request #3457 from ethcore/ng-save-sorting
Save sort order in LocalStorage
2016-11-16 11:19:19 +08:00
Gav Wood
06112255ae Merge pull request #3456 from ethcore/ng-paste-input-submit
Adds onPaste event to Inputs
2016-11-16 11:18:29 +08:00
Gav Wood
53cb033b17 Merge pull request #3450 from ethcore/jg-signer-overflow
Update signer to take care of text overflows
2016-11-16 11:18:20 +08:00
Gav Wood
1daba384cc Merge pull request #3426 from ethcore/auth-round
Authority round consensus engine
2016-11-16 11:18:01 +08:00
GitLab Build Bot
a9596abf5c [ci skip] js-precompiled 20161115-212437 2016-11-15 21:26:09 +00:00
arkpar
be4311540d Set HF block number 2016-11-15 22:04:25 +01:00
Jaco Greeff
df901379b3 Fix transfer token decimal calculation (#3445)
* Fix decimal calculation

* Recalc when shorcutting estimate
2016-11-15 22:00:14 +01:00
GitLab Build Bot
3addae9313 [ci skip] js-precompiled 20161115-194902 2016-11-15 19:50:43 +00:00
Arkadiy Paronyan
4464231c3d Merge pull request #3363 from ethcore/eip-170
Restrict max code size for EIP-150 and after.
2016-11-15 20:33:02 +01:00
Arkadiy Paronyan
4016c58ee9 Update test client with max code size 2016-11-15 19:48:15 +01:00
arkpar
e795f84664 fixed test 2016-11-15 19:46:25 +01:00
Jannis R
373441373d better word list for secret phrase generation 2016-11-15 19:37:45 +01:00
Jannis R
8d4b1a332b sms verification: bugfixes 🐛
- fixed imports
- renamed `uiSteps` to `phases` to make the distinction between
  actual (tiny) steps and visible UI steps clear
- lookup `requestTx` if request has already been sent
- change code regex to match ethcore/sms-verification@59acb73
2016-11-15 19:22:44 +01:00
Jaco Greeff
6efdc08044 Queries display IdentityIcons (#3453) 2016-11-15 19:08:16 +01:00
Robert Habermeier
8c8bf30de5 drop spec when no longer useful 2016-11-15 19:07:23 +01:00
Nicolas Gotchac
3b8286f474 Add fallback check in ABI validation #3392 2016-11-15 18:53:53 +01:00
Nicolas Gotchac
22e47a68a3 Save sort order in LocalStorage #3402 2016-11-15 18:39:11 +01:00
Robert Habermeier
7bfb9e4003 handle all LES requests 2016-11-15 18:19:16 +01:00
Gav Wood
b5704f8056 Update max code size. 2016-11-15 17:58:29 +01:00
Gav Wood
062d55a046 Fix test. 2016-11-15 17:58:28 +01:00
Gav Wood
30ea921329 Introduce the actual max code size. 2016-11-15 17:58:28 +01:00
Gav Wood
528bf17af5 Restrict max code size to 23999 bytes for EIP-150 and after. 2016-11-15 17:58:28 +01:00
Nicolas Gotchac
aae7af6895 Adds onPaste event to Inputs #3127 2016-11-15 17:58:11 +01:00
Jannis R
7a83fb8595 merge master into sms-verification-modal 2016-11-15 17:04:36 +01:00
Jannis R
aa8fc554fe sms verification: simplify code
- moved the steps into named exports
- moved the store creation into the Accounts component
- fix a linting issue
2016-11-15 17:04:34 +01:00
Nicolas Gotchac
039bd3c9f9 Use Babel in vendor when needed #3419 (#3451) 2016-11-15 16:46:48 +01:00
Jannis R
3e879aac35 sms verification: use Mobx store 2016-11-15 16:30:55 +01:00
keorn
1c958695c3 timeout loading 2016-11-15 15:25:30 +00:00
Jannis R
bfcc8d33d6 sms verification: make Done component dumb 2016-11-15 16:22:19 +01:00
Jannis R
90df237ca5 sms verification: make SendConfirmation component dumb 2016-11-15 16:22:19 +01:00
Jannis R
377c16cf78 sms verification: make QueryCode component dumb 2016-11-15 16:22:19 +01:00
Jannis R
f48a341c32 sms verification: make SendRequest component dumb 2016-11-15 16:22:18 +01:00
Jannis R
71986249e5 sms verification: make GatherData component dumb 2016-11-15 16:22:16 +01:00
Jannis R
8ef9fff8ba sms verification: put process into MobX store 2016-11-15 16:05:00 +01:00
Nicolas Gotchac
20185e5aac Use signature of functions instead of names (#3448)
* Use signature of functions instead of names #3411

* Fixes contract tests #3448
2016-11-15 15:58:33 +01:00
Robert Habermeier
cb54152c23 cut off headers after first missing 2016-11-15 15:47:08 +01:00
Jaco Greeff
37ebca6d34 Merge branch 'master' into jg-external-dapps 2016-11-15 15:27:27 +01:00
GitLab Build Bot
b5dedd8aeb [ci skip] js-precompiled 20161115-135402 2016-11-15 13:55:35 +00:00
Robert Habermeier
abf39fde0a implement provider for client 2016-11-15 14:53:30 +01:00
Jaco Greeff
28f11be200 Merge pull request #3430 from ethcore/ng-array-parameters
Handle contract constructor inputs
2016-11-15 14:35:10 +01:00
keorn
7d0eafd5cd fix extra_info 2016-11-15 13:33:11 +00:00
Jaco Greeff
a1ec3146eb Update signer to take care of text overflows 2016-11-15 14:32:29 +01:00
keorn
8efaf08da3 typos and warning 2016-11-15 13:02:46 +00:00
GitLab Build Bot
19b8b48579 [ci skip] js-precompiled 20161115-130035 2016-11-15 13:02:08 +00:00
Jaco Greeff
10c503b5c7 Merge pull request #3446 from ethcore/ng-tokenreg-correct-owner
Use Contract owner for unregistering Token
2016-11-15 13:45:57 +01:00
Nicolas Gotchac
125ac1a69a Better close icons in Modals 2016-11-15 12:52:37 +01:00
Nicolas Gotchac
723005635a Close and not Cancel on deploy contract #3393 2016-11-15 12:50:20 +01:00
GitLab Build Bot
771ce13ddc [ci skip] js-precompiled 20161115-114313 2016-11-15 11:44:42 +00:00
Nicolas Gotchac
2b30d4b75f Empty default Address Field #3395 2016-11-15 12:35:50 +01:00
Jaco Greeff
0181b8a245 Display token addresses 2016-11-15 12:35:43 +01:00
Nicolas Gotchac
3a01352744 Use Contract owner for unregistering Token #3440 2016-11-15 12:30:08 +01:00
Robert Habermeier
db518ecdd4 Merge pull request #3442 from ethcore/lenient-dirs
Create directories only if feature is enabled
2016-11-15 12:28:33 +01:00
keorn
06e5416537 header fns, extra_info 2016-11-15 11:27:09 +00:00
keorn
fde6ff2186 nicer extra info 2016-11-15 11:10:32 +00:00
keorn
d19e8c5505 Merge remote-tracking branch 'parity/master' into bft 2016-11-15 10:26:37 +00:00
keorn
ff2dc5dd57 vote counting 2016-11-15 10:21:49 +00:00
keorn
54e4956345 return errors from constructor 2016-11-15 10:21:18 +00:00
Tomasz Drwięga
8dc7fcbe07 Don't clear propagated transactions 2016-11-15 11:20:54 +01:00
keorn
dd8ed42270 update timeouts 2016-11-15 10:20:42 +00:00
keorn
55a5402bf5 simplify messages 2016-11-15 10:20:14 +00:00
Tomasz Drwięga
6ea4b25859 Create directories only if feature is enabled 2016-11-15 10:28:52 +01:00
GitLab Build Bot
9857f632d8 [ci skip] js-precompiled 20161115-085029 2016-11-15 08:52:53 +00:00
Jaco Greeff
601cef226b Merge branch 'master' into jg-external-dapps 2016-11-15 09:25:42 +01:00
Jaco Greeff
604be3e463 Import AddresBook from exported JSON (#3433)
* Adds error handler in Importer // Import AddressBook #2885

* More robust import #2885
2016-11-15 09:24:59 +01:00
Jaco Greeff
1e155ae548 Render selection inside areas 2016-11-14 21:57:28 +01:00
GitLab Build Bot
c4885a1423 [ci skip] js-precompiled 20161114-201022 2016-11-14 20:11:54 +00:00
Denis S. Soldatov aka General-Beck
85fdcc7bf3 Update gitlab-ci
remove -Zorbit=off
switch to rust 1.13
2016-11-14 23:45:58 +04:00
Nicolas Gotchac
b9f3c4b266 Merge branch 'master' into ng-accounts-backup 2016-11-14 20:31:10 +01:00
Nicolas Gotchac
5322727617 Fixing linting issues #3430 2016-11-14 20:29:37 +01:00
Nicolas Gotchac
09ec0c1f2f More robust import #2885 2016-11-14 20:26:21 +01:00
keorn
071e66c9a8 fix flaky test 2016-11-14 19:03:02 +00:00
keorn
9d46401626 revert to try! 2016-11-14 18:25:42 +00:00
keorn
ae5ae765a6 Merge branch 'master' into auth-round 2016-11-14 18:04:44 +00:00
GitLab Build Bot
3bfa56c72a [ci skip] js-precompiled 20161114-174654 2016-11-14 17:48:20 +00:00
keorn
06ebd5fa1a remove most panics 2016-11-14 17:42:56 +00:00
Nicolas Gotchac
134622ea3a Adds error handler in Importer // Import AddressBook #2885 2016-11-14 18:34:05 +01:00
Gav Wood
cfbd5bd713 Merge pull request #3427 from ethcore/ng-address-input-improv
Scrollable accounts in autocomplete
2016-11-14 18:30:50 +01:00
Jannis R
b5560d27a0 sms verification: pull out postToVerificationServer 2016-11-14 18:03:07 +01:00
Robert Habermeier
25b0b8641e indent state tests 2016-11-14 17:47:56 +01:00
Nicolas Gotchac
29442673f8 Clean-Up #3314 2016-11-14 17:39:45 +01:00
Nicolas Gotchac
97378daee5 Merge branch 'master' into ng-array-parameters 2016-11-14 17:06:02 +01:00
Jaco Greeff
5a6e2f89dd Hide external apps by default 2016-11-14 17:02:45 +01:00
Nicolas Gotchac
9e2214c513 Working add/remove fields for var. length #3314 2016-11-14 17:00:36 +01:00
keorn
1e3ae9fff9 typos, header functions 2016-11-14 15:56:19 +00:00
GitLab Build Bot
5127b997eb [ci skip] js-precompiled 20161114-155241 2016-11-14 15:54:09 +00:00
GitLab Build Bot
c061eae64b [ci skip] js-precompiled 20161114-154454 2016-11-14 15:46:21 +00:00
Gav Wood
ef471af4ee Merge pull request #3428 from ethcore/ws-rs
Bump ws-rs
2016-11-14 16:32:33 +01:00
Gav Wood
d98c6fb717 Merge pull request #3425 from ethcore/jg-tokenreg-decimals
Swap TokenReg dapp from base to decimals
2016-11-14 16:32:12 +01:00
Gav Wood
3eb019064b Merge pull request #3421 from ethcore/travis-beta
Change beta builds to stable on Travis
2016-11-14 16:29:34 +01:00
Gav Wood
1418c3175a Merge pull request #3420 from ethcore/refactor-copy-to-clipboard
refactor copy to clipboard functionality
2016-11-14 16:29:09 +01:00
Gav Wood
ae67bd5371 Merge pull request #3385 from ethcore/dev-chain
Dev chain
2016-11-14 16:28:58 +01:00
Gav Wood
2989ab9dfc fetch known code from the database during restoration (#3377)
* fetch known code from the database during restoration

previously it kept all seen code in memory, leading to
high memory usage by the end of state restoration

* whitespace

[ci:skip]

* test previous code fetch
2016-11-14 16:28:15 +01:00
Nicolas Gotchac
89f83b8cd7 Fixes #3397 : fake blur handled 2016-11-14 16:11:00 +01:00
Tomasz Drwięga
d66cc0907d Bump ws-rs 2016-11-14 16:10:04 +01:00
Jannis R
9df0d33709 merge master into sms-verification-modal 2016-11-14 16:00:16 +01:00
Nicolas Gotchac
ecb89d3670 Scrollable Accounts list // Tab;Enter;Keydown for first input #3396 2016-11-14 15:35:25 +01:00
keorn
0b5a9a6e60 nicer bundled spec message 2016-11-14 14:29:33 +00:00
GitLab Build Bot
6fc7c15644 [ci skip] js-precompiled 20161114-142451 2016-11-14 14:26:16 +00:00
Jaco Greeff
48b2252029 Swap from base to decimals 2016-11-14 15:16:57 +01:00
Robert Habermeier
3c7533831e Merge branch 'master' into client-provider 2016-11-14 15:16:26 +01:00
keorn
5de7d50bf8 add test for multi proposals 2016-11-14 14:15:31 +00:00
keorn
8be8b3e1cd ensure no double proposals 2016-11-14 13:35:45 +00:00
keorn
8a86c11375 enable force sealing 2016-11-14 13:35:16 +00:00
Arkadiy Paronyan
b4ef3f3255 Fixing benches (#3422) 2016-11-14 14:21:35 +01:00
Robert Habermeier
18153b8d9e Merge branch 'master' into missing-code-by-prefix 2016-11-14 14:02:19 +01:00
Tomasz Drwięga
9f002a8a94 Fixing benches 2016-11-14 13:29:49 +01:00
Tomasz Drwięga
d02afc0e40 Beta -> Stable 2016-11-14 13:21:08 +01:00
keorn
165e2bef75 modify proposer test 2016-11-14 11:34:54 +00:00
Jannis R
b1fcee73a5 sms verification: less block confirmations 2016-11-14 12:33:29 +01:00
Jannis R
8ce362b224 sms verification: add terms of service 2016-11-14 12:31:26 +01:00
Tomasz Drwięga
2795f40464 Merge branch 'new-token' of github.com:ethcore/parity into new-token 2016-11-14 12:17:29 +01:00
Tomasz Drwięga
7f011afacb Tokens retention policy 2016-11-14 12:17:05 +01:00
Jaco Greeff
665504c414 Only use #/auth token as fallback 2016-11-14 12:10:03 +01:00
keorn
b5c891814a fix merge 2016-11-14 11:09:57 +00:00
GitLab Build Bot
594bd35a5e [ci skip] js-precompiled 20161113-131856 2016-11-14 11:57:54 +01:00
GitLab Build Bot
1e696c41f7 [ci skip] js-precompiled 20161113-131228 2016-11-14 11:57:54 +01:00
Gav Wood
8db3414de9 Merge branch 'master' into sms-verification-modal 2016-11-14 11:56:37 +01:00
Gav Wood
2fa2f8342a isLatest works. 2016-11-14 11:49:56 +01:00
Jannis R
4d01fbc4c4 merge master into refactor-copy-to-clipboard 2016-11-14 11:46:58 +01:00
Jannis R
e9e9475830 CopyToClipboard: remove tooltip 2016-11-14 11:39:36 +01:00
keorn
501f6d3f49 Merge branch 'master' into auth-round 2016-11-14 10:08:14 +00:00
keorn
d8e6dbd981 Merge branch 'master' into dev-chain 2016-11-14 10:05:34 +00:00
keorn
2d4b4cf5c9 revert moves to Spec 2016-11-14 10:04:34 +00:00
Tomasz Drwięga
6957634ee7 Merge branch 'master' into new-token 2016-11-14 09:22:06 +01:00
Gav Wood
4bb4ed9551 Initial checking. 2016-11-13 15:52:33 +01:00
GitLab Build Bot
d1848117ef [ci skip] js-precompiled 20161113-131856 2016-11-13 13:20:20 +00:00
GitLab Build Bot
5a259be290 [ci skip] js-precompiled 20161113-131228 2016-11-13 13:13:54 +00:00
Gav Wood
4a92668c56 Fix chainspec storage field. (#3406)
Add a test.
2016-11-13 13:58:42 +01:00
Robert Habermeier
37f49aac1b abort snapshot restoration faster (#3356)
* abort snapshot restoration faster

* flag-checking tests
2016-11-13 13:52:53 +01:00
GitLab Build Bot
0c302376b6 [ci skip] js-precompiled 20161113-011451 2016-11-13 01:16:28 +00:00
Jaco Greeff
3ff9c3e6d6 Remove addresses, display non-refundable warning (#3403) 2016-11-12 22:28:50 +01:00
Jaco Greeff
c57738b9b6 Don't unsubscribe when subscriber callback throws (#3401) 2016-11-12 22:26:50 +01:00
Jaco Greeff
6b33899239 Fix dapp account selection (#3399)
* Fix GHH accounts (filter non accounts)

* SignatureReg handle undefined ABI names gracefully

* SignatureReg fix accounts (filter non accounts)

* TokenReg fix accounts (filter non accounts)

* Registry fix accounts (filter non accounts)
2016-11-12 22:24:55 +01:00
GitLab Build Bot
e5486f5d58 [ci skip] js-precompiled 20161112-202502 2016-11-12 20:26:39 +00:00
Robert Habermeier
ee11d104bf Merge pull request #3381 from ethcore/fix-travis
Fix travis build: remove unused import
2016-11-12 21:03:40 +01:00
Jaco Greeff
7ca317912f Set signer token via #/auth=token={} 2016-11-12 17:09:55 +01:00
Jaco Greeff
373eb6c01b Merge branch 'master' into new-token 2016-11-12 16:25:21 +01:00
Gav Wood
86eb84fd81 Switch --signer- to --ui- 2016-11-12 15:21:51 +01:00
Arkadiy Paronyan
67fa58db14 Optimize memory footprint (#3376) 2016-11-12 12:07:02 +01:00
Tomasz Drwięga
c17ef2c1a4 Fixing parsing passwords from file (#3367)
* fixing parsing passwords as inputs

* Fixing typo in test
2016-11-12 10:06:40 +01:00
keorn
15d748c2f7 Merge branch 'master' into dev-chain 2016-11-11 20:40:05 +00:00
keorn
aa296c3c0d update rpc tests 2016-11-11 19:12:32 +00:00
keorn
ea9c479fff update json_tests 2016-11-11 18:57:57 +00:00
keorn
cc39b24599 update chain name 2016-11-11 18:41:04 +00:00
keorn
4a65394269 change instant spec, update doc 2016-11-11 18:38:44 +00:00
Robert Habermeier
7e41f1c901 Fix travis build: remove unused import 2016-11-11 18:41:25 +01:00
keorn
53258cca6c add new dev spec 2016-11-11 17:27:20 +00:00
keorn
e63b7e51fb update instant_seal schedule 2016-11-11 17:26:41 +00:00
Robert Habermeier
87c668ba9c test previous code fetch 2016-11-11 18:24:12 +01:00
keorn
225d0b02e7 update parity module 2016-11-11 17:10:47 +00:00
Tomasz Drwięga
ba699fdb25 new line [ci:skip] 2016-11-11 18:02:36 +01:00
keorn
beaa014543 tix doc test 2016-11-11 16:59:22 +00:00
Tomasz Drwięga
be6023b602 Opening a browser 2016-11-11 17:56:52 +01:00
Tomasz Drwięga
aa147461b0 Generating browser link on signer new-token 2016-11-11 17:38:45 +01:00
keorn
a719b91b63 move spec constructors to spec 2016-11-11 16:37:44 +00:00
Gav Wood
a7ad75d851 whitespace
[ci:skip]
2016-11-11 17:32:54 +01:00
Gav Wood
24cb0ae905 Wallet names shouldn't include address.
(Actually wallet files shouldn't contain it either, but we'll
leave that for a later PR).
2016-11-11 17:28:03 +01:00
GitLab Build Bot
c656b53ce6 [ci skip] js-precompiled 20161111-161748 2016-11-11 16:19:10 +00:00
Robert Habermeier
ed135bb9dc fetch known code from the database during restoration
previously it kept all seen code in memory, leading to
high memory usage by the end of state restoration
2016-11-11 17:18:31 +01:00
Tomasz Drwięga
4bf75d6f2f Remove some unwraps from parity/helpers (#3364)
* Fixing no stdin

* Removing unwrap when reading passwords
2016-11-11 16:53:51 +01:00
Jaco Greeff
80606cdd7d Load external, builtin & local apps in parallel (#3340) 2016-11-11 16:53:10 +01:00
GitLab Build Bot
d5d1c1b674 [ci skip] js-precompiled 20161111-141616 2016-11-11 14:17:40 +00:00
Nicolas Gotchac
0e4ef539fc Solidity Compiler in UI (#3279)
* Added new Deploy Contract page // Use Brace in React #2276

* Adding Web Wrokers WIP

* Compiling Solidity code // Getting mandatory params #2276

* Working editor and deployment #2276

* WIP : displaying source code

* Added Solidity hightling, editor component in UI

* Re-adding the standard Deploy Modal #2276

* Using MobX in Contract Edition // Save to Localstorage #2276

* User select Solidity version #2276

* Loading Solidity versions and closing worker properly #2276

* Adds export to solidity editor #2276

* Adding Import to Contract Editor #2276

* Persistent Worker => Don't load twice Solidity Code #2276

* UI Fixes

* Editor tweaks

* Added Details with ABI in Contract view

* Adds Save capabilities to contract editor // WIP on Load #3279

* Working Load and Save contracts... #3231

* Adding loader of Snippets // Export with name #3279

* Added snippets / Importing from files and from URL

* Fix wrong ID in saved Contract

* Fix lint

* Fixed Formal errors as warning #3279

* Fixing lint issues

* Use NPM Module for valid URL (fixes linting issue too)

* Don't clobber tests.
2016-11-11 15:00:04 +01:00
Nicolas Gotchac
046d2f2333 Scrollable 2016-11-11 13:09:16 +01:00
Nicolas Gotchac
deaf863c9e Fixing linting 2016-11-11 12:41:44 +01:00
Nicolas Gotchac
b59df1d7b8 WIP // Real ABI params in Deploy Constructor #3314 2016-11-11 12:37:01 +01:00
Nicolas Gotchac
94b80cc08a Merge branch 'master' into ng-array-parameters 2016-11-11 11:18:17 +01:00
GitLab Build Bot
5d8f74ed57 [ci skip] js-precompiled 20161111-082057 2016-11-11 08:22:24 +00:00
Jaco Greeff
c7b99cd7e6 Determine real-time HTTP connected status (#3335)
* Determine real-time HTTP connected status

* Update failing tests, no polluting polling
2016-11-11 09:01:28 +01:00
Chuck LeDuc Díaz
7cc88b175f Clarify error message to indicate (#3359)
Indicate that Signer *needs* to be re-enabled, not that it *was* re-enabled.
2016-11-11 08:52:52 +01:00
Jaco Greeff
0b176e7013 Cater for home.parity hostname in dappsUrl (#3341)
* Cater for home.parity hostname

* Cater for 0.0.0.0 & default dappsInterface

* Extra check
2016-11-10 20:45:03 +01:00
Nicolas Gotchac
cd143e475a WIP refacto typed input 2016-11-10 20:35:47 +01:00
GitLab Build Bot
0456d4e5d0 [ci skip] js-precompiled 20161110-180734 2016-11-10 18:08:55 +00:00
Jannis R
522b7108f9 CopyToClipboard: show SnackBar 2016-11-10 18:47:17 +01:00
Nicolas Gotchac
eb56b82f43 Check totalBalance > 0 // Better account selection (#3347) 2016-11-10 18:46:03 +01:00
Nicolas Gotchac
cb84e61d06 Fixed Unregister for Contract Owner only #3321 (#3346) 2016-11-10 18:44:11 +01:00
Robert Habermeier
3854b8a689 LES Part 1 (#3322)
* stub implementations of light client trait

* Light provider trait

* light client sync stubs

* LES boilerplate

* stub implementation of provider for client

* skeleton and request traits

* request definitions

* new_list -> begin_list

* handle unknown packet

* revise light implementation strategy

* make verification module public

* Move all light client work to own crate

* experiment with answering requests

* buffer flow scaffolding

* remove LESv2 requests

* buffer flow basics, implement cost table

* begin status module

* implement handshake parsing and creation

* implement announcement serialization

* errors, punishment, and handshake

* handle announcements

* making announcements, clean up warnings

* allow dead code temporarily
2016-11-10 18:30:17 +01:00
Jannis R
e9b69bceab Account Header: use CopyToClipboard 2016-11-10 18:09:54 +01:00
GitLab Build Bot
529633e9b2 [ci skip] js-precompiled 20161110-163203 2016-11-10 16:33:24 +00:00
Jannis R
87c39f066c Form/Input: use CopyToClipboard 2016-11-10 17:27:53 +01:00
Jannis R
acbaed59c0 CopyToClipboard: clear timeout on unmount 2016-11-10 17:27:53 +01:00
Jaco Greeff
a97e68a030 Make transactions load (#3348) 2016-11-10 16:38:47 +01:00
Jannis R
01f14901ce merge master into sms-verification-modal 2016-11-10 16:23:43 +01:00
Jannis R
bd839d019c sms verification: polish UI, linting issues 👕 2016-11-10 16:23:09 +01:00
Jannis R
afdda48ab5 sms verification: polish UI
This introduces another "Done" step, making clear the process has finished.

Also, steps 2 ("Request") and 4 ("Confirm") now have a pending indicator.
2016-11-10 16:09:41 +01:00
GitLab Build Bot
0ed8114726 [ci skip] js-precompiled 20161110-141839 2016-11-10 14:20:08 +00:00
GitLab Build Bot
aa0f05a186 [ci skip] js-precompiled 20161110-140631 2016-11-10 14:07:52 +00:00
Jaco Greeff
561f008c91 Manual bump of package.json (#3345) 2016-11-10 15:01:07 +01:00
Arkadiy Paronyan
bb5da2379b Windows app and installer fixes (#3338)
* Windows app and installer fixes

* Sorted out comments
2016-11-10 14:49:16 +01:00
Nicolas Gotchac
6ad909e7b3 Removed unnecessary test (#3342) 2016-11-10 14:26:06 +01:00
Robert Habermeier
8c2c048444 clean up errors 2016-11-10 14:05:47 +01:00
Jannis R
2309e53fe6 sms verification: polish UI, linting issues 👕 2016-11-10 13:54:17 +01:00
Jannis R
ac80276ad8 sms verification: refactor checks & confirmation 2016-11-10 13:37:32 +01:00
Nicolas Gotchac
1deeb0d901 Git pre-push checks for UI (#3072)
* Added eslint cached option (#2291)

* Added pre-push script running linting (#2291)

* Modifies pre-push hook to run if eslint installed // auto install hook

* Update pre-push script comment

* Added husky for git hooks (#3072)
2016-11-10 11:42:00 +01:00
Arkadiy Paronyan
6ffaab15a3 Disarm the HF and add more bootnodes (#3323)
* Disarm the HF

* More bootnodes

* Updated tests
2016-11-10 11:28:27 +01:00
Nicolas Gotchac
67ac05ef39 Default contract type on UI (#3310)
* Added Token and Wallet ABI in Watch Contract #3126

* Improved ABI Validator #3281

* Select contract type on first screen #3126

* Added types decsription

* Add ABI type to Contract metadata // Custom as default type #3310
2016-11-10 11:27:35 +01:00
Tomasz Drwięga
2f98169539 In-browser signing support (#3231)
* Signer RAW confirmations

* Returning address book as eth_accounts

* UI support for in-browser signing

* Post review fixes

* Adding new methods to jsonrpc

* Fixing eth_accounts

* Deterministic accounts ordering
2016-11-10 11:27:05 +01:00
Robert Habermeier
11e6b08f02 Move ethcore-light crate into ethcore/light module 2016-11-09 23:39:56 +01:00
Robert Habermeier
ebff010d16 partial implementation of provider for client types 2016-11-09 23:25:54 +01:00
Jaco Greeff
90ff810e36 Handle redirects from /api/content on manifest.json gracefully (#3315)
* Add redirect follow mode to manifest.json

* Remove (now) unused count parameter

* autoRewrite: true for dev mode proxy redirects
2016-11-09 20:05:08 +01:00
Tomasz Drwięga
88c9cea04d Dapps interface RPC (#3311)
* Dapps Interface RPC

* Adding JS apis

* Support for signer interface in proxypac and embeds

* Fixing tests

* fixing tests again
2016-11-09 19:41:47 +01:00
Arkadiy Paronyan
eba0dd5023 Additional snapshot sync checks (#3318)
* Additional snapshot sync checks

* Proper checks

* Proper highset block check
2016-11-09 19:40:36 +01:00
Jannis R
89c1d9c25c merge master into sms-verification-modal 2016-11-09 19:04:31 +01:00
Jannis R
cde9f454eb sms verification: polish UI 2016-11-09 19:04:13 +01:00
Jannis R
8028c0fd65 sms verification: check if already requested 2016-11-09 19:02:33 +01:00
Tomasz Drwięga
915766c7bf Fix spurious signer tests failures (#3312)
* Increasing sleep time for signer tests

* Attempt re-connections instead of delaying tests execution
2016-11-09 18:26:35 +01:00
Jaco Greeff
877cfe9b53 Fix signer token updates (#3302)
* Manual bump of package.json (recovery)

* Debug

* Simplify status connections
2016-11-09 18:26:10 +01:00
GitLab Build Bot
29aecc2cff [ci skip] js-precompiled 20161109-171832 2016-11-09 17:19:59 +00:00
Nicolas Gotchac
92333ab875 Merge pull request #3316 from ethcore/jg-update-phrase
Update account recovery phrase hint
2016-11-09 18:07:13 +01:00
Robert Habermeier
60a8728121 Merge branch 'master' into les-impl 2016-11-09 18:06:12 +01:00
Robert Habermeier
6c23d53f04 allow dead code temporarily 2016-11-09 18:05:56 +01:00
Robert Habermeier
25d5efac15 making announcements, clean up warnings 2016-11-09 18:05:00 +01:00
Jannis R
01cf88d71a sms verification: merge step 1 & 2 2016-11-09 18:02:33 +01:00
Gav Wood
4712b882e5 New transaction tests (#3313)
* Add new transaction tests.

* Add new test.
2016-11-09 18:02:24 +01:00
Jannis R
a42140edde sms verification: send confirmation tx 2016-11-09 17:34:21 +01:00
Jannis R
f08e2a4b17 sms verification: query code 2016-11-09 16:56:01 +01:00
Jannis R
7996ac47ec sms verification: polish UI, fix linting issues 👕 2016-11-09 16:55:59 +01:00
Jannis R
e7113e7eb4 sms verification: show fee in consent form 2016-11-09 16:54:57 +01:00
Jannis R
e84531f31c sms verification: refactor contract call 2016-11-09 16:54:57 +01:00
Jannis R
ebf742f2af sms verification: update contract address & ABI 2016-11-09 16:54:57 +01:00
Jannis R
a56a1d3aef sms verification: request SMS 2016-11-09 16:54:56 +01:00
Jannis R
4931381e0e txHash component: add maxConfirmations prop 2016-11-09 16:54:56 +01:00
Jannis R
3ef54f9172 sms verification: wait for tx confirmations 2016-11-09 16:54:56 +01:00
Jannis R
d0d737d1e3 sms verification: post request transaction 2016-11-09 16:54:56 +01:00
Jannis R
89a2917935 boilerplate for third step 2016-11-09 16:54:56 +01:00
Jannis R
4c199ef716 sms verification: collect data 2016-11-09 16:54:55 +01:00
Jannis R
14da2d2805 sms verification: check if certified 2016-11-09 16:54:55 +01:00
Jannis R
435d3c24db SendRequest -> GatherData 2016-11-09 16:54:55 +01:00
Jannis R
1a245405e5 query phone number & consent 2016-11-09 16:54:55 +01:00
Jannis R
fc76fa9252 sms verification: basic stepper 2016-11-09 16:54:54 +01:00
Jannis R
f96e69309f SMS verification modal 2016-11-09 16:54:54 +01:00
Jannis R
7cb724bfbe put SMS verification into action bar 2016-11-09 16:54:54 +01:00
Robert Habermeier
c132775bb1 handle announcements 2016-11-09 16:21:09 +01:00
Jaco Greeff
22faee2099 Update account recovery phrase hint 2016-11-09 15:48:45 +01:00
Robert Habermeier
ec1b982b52 errors, punishment, and handshake 2016-11-09 15:36:26 +01:00
GitLab Build Bot
599f214ad9 [ci skip] js-precompiled 20161109-132407 2016-11-09 13:25:39 +00:00
Jaco Greeff
95e03f87fa Remove 127.0.0.1 references (#3303) 2016-11-09 14:01:59 +01:00
arkpar
f568730aa8 Fixed MD5 generation 2016-11-09 13:44:48 +01:00
Arkadiy Paronyan
8ecbec8d6c Fixes for open UI after installation (#3300) 2016-11-09 13:17:57 +01:00
Arkadiy Paronyan
85ade4a2ec Fixed uncle details (#3299) 2016-11-09 13:17:40 +01:00
Jaco Greeff
b17ce6c9a5 Updated blance display with max decimals (#3266) 2016-11-09 13:16:17 +01:00
Tomasz Drwięga
b33b237f76 Refactoring Signer to auto_args + eth_signTransaction (#3261)
* Sign transaction initial

* Refactoring signer to auto_args
2016-11-09 13:13:35 +01:00
Björn Wagner
3c6f148a16 Fix typo (#3298) 2016-11-09 13:12:28 +01:00
GitLab Build Bot
29add4e40a [ci skip] js-precompiled 20161109-111303 2016-11-09 11:14:24 +00:00
Jaco Greeff
6a1b17d5a9 Change to more common focused spelling (#3264) 2016-11-09 11:53:40 +01:00
keorn
49f2a72d5d Merge branch 'master' into auth-round 2016-11-09 10:35:00 +00:00
arkpar
ad18a30535 Corrected startup executable 2016-11-09 01:14:32 +01:00
GitLab Build Bot
9325fe44f3 [ci skip] js-precompiled 20161108-234705 2016-11-08 23:48:24 +00:00
Jaco Greeff
044a3f409b Manual bump of package.json (recovery) (#3295) 2016-11-09 00:07:06 +01:00
Jaco Greeff
f9dc766ae2 Fix initial token generation (#3289)
* Fix initial token generation

* Remove extra debug info
2016-11-08 23:17:33 +01:00
Gav Wood
7b5824d4a2 Fixes for 1.4 (#3260)
* Fix --geth

* Fix mac installer.

* Fix up installer.

* Additional tweaks.

* Fix for empty APIs

* Another case of empty apis
2016-11-08 21:45:22 +01:00
Arkadiy Paronyan
f1e61c87b4 Fixed IO service shutdown (#3286) 2016-11-08 21:07:18 +01:00
keorn
4e36550890 message revamp 2016-11-08 18:01:31 +00:00
Robert Habermeier
ca25deb4e6 implement announcement serialization 2016-11-08 19:00:37 +01:00
Arkadiy Paronyan
b453ae1db2 Autostart checkbox (#3269) 2016-11-08 18:52:09 +01:00
Denis S. Soldatov aka General-Beck
d8eafa91b8 Update gitlab-ci
remove ubuntu 14.04
remove tags from js-release
2016-11-09 00:32:20 +07:00
Denis S. Soldatov aka General-Beck
82990ee464 Update gitlab-ci
skip js-release in nightly builds
[ci skip]
2016-11-08 23:46:22 +07:00
Robert Habermeier
b369cdd573 Merge branch 'master' into les-impl 2016-11-08 17:14:19 +01:00
Robert Habermeier
440f5e537f implement handshake parsing and creation 2016-11-08 17:13:43 +01:00
arkpar
b2fe406666 Updated signing path 2016-11-08 11:07:18 +01:00
Arkadiy Paronyan
318a3d29e1 Build tray app for x64 (#3255)
* Build tray app for x64

* Fixed command
2016-11-08 10:23:23 +01:00
Denis S. Soldatov aka General-Beck
7a657a2e85 Update gitlab-ci
remove trigger from js-release
[ci skip]
2016-11-08 14:50:30 +07:00
Jaco Greeff
51aa0e28eb Add secure flag back (#3244) 2016-11-07 20:07:08 +01:00
Robert Habermeier
d18bb9d152 verify chunk hashes in cli restore (#3241) 2016-11-07 19:33:55 +01:00
Robert Habermeier
4ba4861734 begin status module 2016-11-07 19:16:23 +01:00
Jaco Greeff
6ab6c0709d Load network apps manifests as contentHash (no coding) (#3235)
* Add mobx

* Use mobx store for dapps

* Cleanup hidden reads

* Remove (now) unused hidden.js

* _ denotes internal functions

* s/visibleApps/visible/

* AddDapps now use the mobx store as well

* Move modalOpen state to store

* Simplify

* Complete master merge

* Remove extra indirection

* Remove unneeded check

* Readability improvements

* Remove final debug info

* Load network manifests from the network

* Swallow manifest errors

* introduce fetchManifest
2016-11-07 18:08:16 +01:00
GitLab Build Bot
418474ad27 [ci skip] js-precompiled 20161107-170338 2016-11-07 17:04:56 +00:00
Arkadiy Paronyan
108452d082 Fixed some typos (#3236) 2016-11-07 17:42:17 +01:00
keorn
52ea597d6f Rename cli and config options signer->ui (#3232)
* rename options signer->ui

* rename config signer->ui
2016-11-07 17:40:53 +01:00
Denis S. Soldatov aka General-Beck
01602ec0b5 Update gitlab-ci
prepare to nightly builds
2016-11-07 23:16:34 +07:00
Robert Habermeier
051effe9f8 buffer flow basics, implement cost table 2016-11-07 15:40:34 +01:00
GitLab Build Bot
43ec40d572 [ci skip] js-precompiled 20161107-142633 2016-11-07 14:27:49 +00:00
Jaco Greeff
f0054aa201 Add store for dapps state (#3211)
* Add mobx

* Use mobx store for dapps

* Cleanup hidden reads

* Remove (now) unused hidden.js

* _ denotes internal functions

* s/visibleApps/visible/

* AddDapps now use the mobx store as well

* Move modalOpen state to store

* Simplify

* Complete master merge

* Remove extra indirection

* Remove unneeded check

* Readability improvements

* Remove final debug info
2016-11-07 15:22:46 +01:00
Denis S. Soldatov aka General-Beck
834c0703fe Update gitlab-ci
Add i686
cache optimization
add triggers
2016-11-07 21:07:37 +07:00
keorn
ea960f1c27 Merge remote-tracking branch 'parity/master' into bft 2016-11-07 11:34:45 +00:00
GitLab Build Bot
6388c814ea [ci skip] js-precompiled 20161107-113204 2016-11-07 11:33:25 +00:00
arkpar
8cad185a57 Set version to unstable 2016-11-07 12:10:29 +01:00
Robert Habermeier
d573ef3cc2 remove LESv2 requests 2016-11-06 20:02:15 +01:00
Robert Habermeier
44e36596c9 buffer flow scaffolding 2016-11-06 19:04:30 +01:00
GitLab Build Bot
eb0c92e8c8 [ci skip] js-precompiled 20161106-165954 2016-11-06 17:01:11 +00:00
GitLab Build Bot
a453f99885 [ci skip] js-precompiled 20161106-165021 2016-11-06 16:51:51 +00:00
Jaco Greeff
a4cc6058dd Don't push empty tags to input (#3222) 2016-11-06 17:42:50 +01:00
Jaco Greeff
44266115b6 Fix /parity-utils/{web3,parity}.js webpack errors (#3221)
* Don't override library builds

* Don't override libraries on build

* Enhance working blockNumber display
2016-11-06 17:42:25 +01:00
Björn Wagner
d8a95084cb Improve 'invalid raw key' error msg (#3219) 2016-11-06 17:31:26 +01:00
GitLab Build Bot
d172c83c26 [ci skip] js-precompiled 20161106-120902 2016-11-06 12:10:21 +00:00
Tomasz Drwięga
9c4979681c Cleaning up polluted namespaces (#3143)
* Renaming ethcore_ to parity_

* Renaming files

* Renaming poluted EthSigning

* Tidy up the namespaces

* Renaming files to match new structure

* Splitting EthSigning into separate traits

* jsapi move ethcore.* -> parity.*

* Move jsonrpc parity definitions

* Update UI API calls for parity interfaces

* Move jsapi signer interfaces from personal to signer

* Update UI to use signer.* where applicable

* Updsate jsapi subscriptions for signer

* Fix dodgy merge.

* Update README.

* Fix some tests.

* Move parity-only personal.* to parity.*

* Update UI for personal -> parity API moves

* Update subscription APIs after personal -> parity move

* personal. generateAuthorizationToken -> parity. generateAuthorizationToken (UI)

* enode, dappsPort & signerPort (UI)

* Update subscription tests (accountsInfo)

* subscription update

* personal -> parity

* Additional error logging on method failures

* move postTransaction to parity

* Additional debug info with method failures

* Fix personal tests.

* Console wrning shows parameters, error object does not

* Include parity_ signing methods.

* Console log http transport info

* Fix failing tests

* Add RPC stubs for parity_accounts.

* Allow some secure built-in dapps

* Use parity_accounts in place of accountsInfo

* Improve error reporting

* Cleanup GHH error handling
2016-11-06 12:51:53 +01:00
GitLab Build Bot
78f2d88182 [ci skip] js-precompiled 20161105-173004 2016-11-05 17:31:24 +00:00
Denis S. Soldatov aka General-Beck
19406fb0fa Update gitlab-ci
add $NIGTHLY to var
2016-11-06 00:07:08 +07:00
Denis S. Soldatov aka General-Beck
022a718b6f Update gitlab-ci 2016-11-06 00:02:44 +07:00
Denis S. Soldatov aka General-Beck
cb6003f40d Update gitlab-ci
$(git --no-pager diff --name-only HEAD HEAD@{1} | grep \.js | wc -l)
2016-11-05 22:39:51 +07:00
GitLab Build Bot
f2faf3609b [ci skip] js-precompiled 20161105-144817 2016-11-05 14:49:31 +00:00
Arkadiy Paronyan
77136b8f84 Set passive mode for first run only (#3214) 2016-11-05 14:38:04 +01:00
GitLab Build Bot
2cb41f96f5 [ci skip] js-precompiled 20161105-112525 2016-11-05 11:26:40 +00:00
Jaco Greeff
458ee4cbad Parity configuration settings, i.e. mode (#3212)
* Add initial page

* Add parity icon

* opacity for parity icon

* Mode selector

* Actually set mode when value changes
2016-11-05 12:08:14 +01:00
GitLab Build Bot
7b043047f0 [ci skip] js-precompiled 20161105-095429 2016-11-05 09:55:44 +00:00
Robert Habermeier
56fd88d1e8 ethash unsafety cleanup (#3210) 2016-11-05 10:39:15 +01:00
Gav Wood
744501c454 Mode improvements for UI (#3109)
* `--mode=off` now works.

* Add Mode::Off as a persistent CLI option.

* "last" not "auto" as default.

* Commit accidentally unsaved file.

* Whitespace

[ci:skip]

* Mode CLI parse fix

* or offline

* Save mode when it gets changed.

* Fix Offline mode

* Fix up mode operations.

* Make passive default, but not overriding.

* Fix test

* Maybe not everyone wants to run an archive node...
2016-11-05 10:38:00 +01:00
GitLab Build Bot
8351c5d500 [ci skip] js-precompiled 20161105-053734 2016-11-05 05:38:51 +00:00
GitLab Build Bot
0e9d70a85d [ci skip] js-precompiled 20161105-053249 2016-11-05 05:34:04 +00:00
Robert Habermeier
52abbc0643 experiment with answering requests 2016-11-04 23:50:56 +01:00
GitLab Build Bot
08d92fe3aa [ci skip] js-precompiled 20161104-222946 2016-11-04 22:31:01 +00:00
GitLab Build Bot
67715da827 [ci skip] js-precompiled 20161104-222646 2016-11-04 22:28:04 +00:00
GitLab Build Bot
20bb0e5f59 [ci skip] js-precompiled 20161104-222329 2016-11-04 22:24:43 +00:00
Igor Artamonov
2a19c33b8d delay bomb for Classic (ECIP-1010) (#3179)
* delay bomb for classic (ECIP-1010)

* formatting fix after core review, rel [e6b5093]
2016-11-04 23:09:23 +01:00
Jaco Greeff
c2e85dc4d5 Use ethcore_dappsPort when constructing URLs (#3139)
* Upon connect, retrieve the available api ports

* Update dapps to load from dappsPort

* Update dapps summary with dappsPort

* Allow proxy to use dappsPort

* Replace /api/ping with HEAD /

* Dynamic port for available apps

* Retrieve content images with dappsPort

* Fix /

* Transfer token dropdown image fix

* IdentityIcon loads images via contentHash

* Update apps fetch to cater for dev & prod

* DRY up 127.0.0.1:${dappsPort} with ${dappsUrl}
2016-11-04 23:08:12 +01:00
Jaco Greeff
f9f37f1c84 Add copy address button to Contract deploy (#3199)
* Allow copy of deployed address

* Pre-parse/clean JSON inputs

* Revert cleanup
2016-11-04 23:06:03 +01:00
GitLab Build Bot
9db28e12ac [ci skip] js-precompiled 20161104-191028 2016-11-04 19:11:43 +00:00
Jaco Greeff
83beedc27e expose api as window.secureApi (#3207) 2016-11-04 19:52:39 +01:00
Robert Habermeier
c1a6dbe75f Move all light client work to own crate 2016-11-04 19:40:11 +01:00
Robert Habermeier
5cabb3008f make verification module public 2016-11-04 19:21:48 +01:00
GitLab Build Bot
7f0310921d [ci skip] js-precompiled 20161104-175104 2016-11-04 17:52:19 +00:00
Robert Habermeier
edf17d00c4 revise light implementation strategy 2016-11-04 18:40:31 +01:00
Tomasz Drwięga
501b2cdd18 Add error for sendRawTransaction and estimateGas (#3194)
* sendRawTransaction invalid RLP error

* Returning proper error for estimate_gas
2016-11-04 18:33:10 +01:00
GitLab Build Bot
2563189316 [ci skip] js-precompiled 20161104-170459 2016-11-04 17:06:13 +00:00
Robert Habermeier
90a2c37977 handle unknown packet 2016-11-04 17:35:31 +01:00
Tomasz Drwięga
f31d42d0c5 Exposing engine extra info in block RPC (#3169)
* Exposing extra info in RPC

* Proper serialization and client trait API
2016-11-04 17:35:02 +01:00
Arkadiy Paronyan
d37f4cc82f v1.5 (#3195) 2016-11-04 17:27:11 +01:00
GitLab Build Bot
75d100476e [ci skip] js-precompiled 20161104-162426 2016-11-04 16:25:41 +00:00
Robert Habermeier
5d011fe577 new_list -> begin_list 2016-11-04 17:25:26 +01:00
Robert Habermeier
eef9a355af request definitions 2016-11-04 17:19:01 +01:00
Jaco Greeff
858962ca0d Remove dapp logos (GHH points to dapp-assets) (#3192) 2016-11-04 17:03:28 +01:00
Tomasz Drwięga
145e766db2 Fixing possible race condition in ethcore_hashContent (#3191) 2016-11-04 16:59:42 +01:00
keorn
a8b688b469 allow permanent unlock for internal sealing 2016-11-04 15:50:56 +00:00
keorn
0e5060db18 update schedule 2016-11-04 15:04:19 +00:00
Jaco Greeff
caab72394d Bump package.json version (1.5 is master) (#3193)
* Bump package.json version (1.5 is master)

* Updated maintainers
2016-11-04 15:58:44 +01:00
Gav Wood
0f16942186 EIP-155 update with Vitalik's new test vectors (#3166)
* Vitalik's new test vectors.

* Update to latest EIP155 spec.

* Fix txs.

* Another fix.
2016-11-04 15:13:51 +01:00
Robert Habermeier
1bc124f980 Merge branch 'master' into les-impl 2016-11-04 15:00:05 +01:00
keorn
9de910cf9c Merge branch 'master' into auth-round 2016-11-04 13:47:29 +00:00
GitLab Build Bot
df33aa920b [ci skip] js-precompiled 20161104-130943 2016-11-04 13:11:00 +00:00
GitLab Build Bot
67b1bde355 [ci skip] js-precompiled 20161104-121251 2016-11-04 12:14:06 +00:00
Jaco Greeff
e80771b3ca Back to real root (#3178) 2016-11-04 12:54:23 +01:00
Jaco Greeff
6667373a80 Remove extra cd js (#3177) 2016-11-04 12:45:50 +01:00
Nicolas Gotchac
bf94a5b82b Fixes #3171 (#3175) 2016-11-04 12:38:05 +01:00
keorn
255ec0c139 Merge branch 'master' into auth-round 2016-11-04 11:35:17 +00:00
Tomasz Drwięga
2e47842d66 Exposing state root and logsBloom in RPC receipts (#3174) 2016-11-04 12:33:13 +01:00
Tomasz Drwięga
7ff73a9533 Exposing v,r,s from transaction signature in RPC (#3172) 2016-11-04 12:05:10 +01:00
Jaco Greeff
fa875aed05 Push precompiled for beta/stable, npm only master (#3163)
* Push precompiled for beta/stable, npm only master

* Release to npm before comitting updates
2016-11-04 12:02:09 +01:00
GitLab Build Bot
f9274d178b [ci skip] js-precompiled 20161104-104936 2016-11-04 10:50:43 +00:00
Denis S. Soldatov aka General-Beck
3ae5ad1bea Update gitlab-ci
add $NIGHTLY ENV for future nightly builds
2016-11-04 17:29:21 +07:00
GitLab Build Bot
4b92881592 [ci skip] js-precompiled 20161104-094125 2016-11-04 09:42:28 +00:00
Denis S. Soldatov aka General-Beck
6f046f8d84 Update gitlab-ci
stages:
  - test
  - js-build
  - build
2016-11-04 16:16:40 +07:00
GitLab Build Bot
0ee332f8e2 [ci skip] js-precompiled 20161104-090141 2016-11-04 09:02:49 +00:00
Denis S. Soldatov aka General-Beck
514d2cb7db Update gilab-ci
js-release
  only:
    - master
    - beta
    - stable
    - tags
2016-11-04 15:59:17 +07:00
Tomasz Drwięga
68f60596dc Enabling personal RPC over IPC by default (#3165) 2016-11-04 09:58:39 +01:00
Denis S. Soldatov aka General-Beck
c532032372 Update README.MD (#3164)
Add badge build status from Gitlab CI -master
2016-11-04 09:58:08 +01:00
Arkadiy Paronyan
26b09b1513 Dependencies in README (#3162) 2016-11-04 09:57:47 +01:00
Gav Wood
af9de37756 Make the footer a bit less ugly. (#3160)
* Make the footer a bit less ugly.

* Whitespace.
2016-11-04 09:57:21 +01:00
GitLab Build Bot
155eb02c69 [ci skip] js-precompiled 20161104-085547 2016-11-04 08:56:51 +00:00
Denis S. Soldatov aka General-Beck
1ac002ec4d Update gitlab-ci
rename stages
2016-11-04 15:51:35 +07:00
Denis S. Soldatov aka General-Beck
27472dfe44 Update gitlab-ci
fix lint
remove rust-beta and rust-nightly test's
add new job 'js-test' 'js-build'
2016-11-04 15:46:27 +07:00
Denis S. Soldatov aka General-Beck
38bd84257f Update gitlab-ci
change tags `rust-test` - `rust-stable` etc
add rust stable, beta, nightly test's
2016-11-04 14:29:16 +07:00
Denis S. Soldatov aka General-Beck
8575dfdea6 Update gitlab-ci
fix lint error in gitlab-ci.yml
2016-11-04 14:01:13 +07:00
Denis S. Soldatov aka General-Beck
72a1db8d01 Update gilab-ci
1. Builds only  beta, stable, tags
2. test script for check js changes in `test-linux`
3. `js-test` and `js-release` only for jg* ng* ui* brances
2016-11-04 13:59:48 +07:00
GitLab Build Bot
a892fcd723 [ci skip] js-precompiled 20161104-063713 2016-11-04 06:38:42 +00:00
Administrator
065f3644b9 Update build-server.js 2016-11-04 07:35:42 +01:00
GitLab Build Bot
e267405893 [ci skip] js-precompiled 20161104-054932 2016-11-04 05:50:39 +00:00
Administrator
8dd3d628c6 Update .gitlab-ci.yml 2016-11-04 06:49:21 +01:00
Administrator
331b1be715 Update .gitlab-ci.yml 2016-11-04 06:45:26 +01:00
GitLab Build Bot
4f548952db [ci skip] js-precompiled 20161104-033042 2016-11-04 03:31:46 +00:00
Administrator
a1f6b86945 Update .gitlab-ci.yml 2016-11-04 04:25:48 +01:00
GitLab Build Bot
471bdf7c22 [ci skip] js-precompiled 20161103-235828 2016-11-03 23:59:34 +00:00
Jaco Greeff
71512cf90d Linux build case sensitivity fix (#3161) 2016-11-04 00:35:07 +01:00
Arkadiy Paronyan
e8b2635545 Version=beta (#3157) 2016-11-04 00:24:36 +01:00
GitLab Build Bot
084492e71e [ci skip] js-precompiled 20161103-215018 2016-11-03 21:51:28 +00:00
GitLab Build Bot
3aba31114c [ci skip] js-precompiled 20161103-213602 2016-11-03 21:37:24 +00:00
Jannis Redmann
c79e3286ca abbreviated enode, CopyToClipboard component (#3131)
* show abbreviated enode

* CopyToClipboard component

* CopyToClipboard: improved styling

* put CopyToClipboard into enode status

* Rename CopyToClipboard.js to copyToClipboard.js
2016-11-03 22:22:53 +01:00
Gav Wood
d3de475205 EIPs 155, 160, 161 (#2976)
* The front-end for each hard-fork, also EIP-160.

* Address EIP161 a/c

* Include EIP-161b

* EIP-161 part d.

* Fix test build.

* Fix one test, add another.

* Fix use of bloom & renaming.

* Initial groundwork for EIP-155

* Fix minor bug.

* Fix all tests finally.

* Rest of EIP-155.

* Add tests for EIP-155 algorithm.

Update transaction tests validation.

* Minor reformat.

* Address grumbles.

* Remove unused code.

* Fix SUICIDE gas mechanism and add consensus tests.

* Remove commented code.

* Set Frontier hardfork block number

* Fix warning.

* Transaction tests,
2016-11-03 22:22:25 +01:00
GitLab Build Bot
7e592e5389 [ci skip] js-precompiled 20161103-202525 2016-11-03 20:26:28 +00:00
keorn
0c2cfc9b6e Fix histogram (#3150)
* fix histogram

* remove outdated comment
2016-11-03 21:15:27 +01:00
GitLab Build Bot
f32c6af6c4 [ci skip] js-precompiled 20161103-194213 2016-11-03 19:43:20 +00:00
GitLab Build Bot
b447d69b88 [ci skip] js-precompiled 20161103-192710 2016-11-03 19:28:14 +00:00
Jaco Greeff
2f665ba115 Remove network label from TabBar (#3142) 2016-11-03 20:17:59 +01:00
Jaco Greeff
34e3c1e0c2 Speed up unresponsive Contract events & Account transactions (#3145)
* Don't load method via redux

* Don't redux fetchTransaction (contracts)

* Move isTest to top-level passing

* transaction list with local blocks/transactions

* Combine calls (allows future chunking)

* Progressive loading of transactions

* Cleanups

* Never try tracing
2016-11-03 20:08:35 +01:00
GitLab Build Bot
29c8350bf2 [ci skip] js-precompiled 20161103-190201 2016-11-03 19:03:12 +00:00
Arkadiy Paronyan
d1b9aa7d73 Better shortcut (#3147) 2016-11-03 20:01:03 +01:00
keorn
12125dcfee Merge branch 'master' into auth-round 2016-11-03 16:51:38 +00:00
GitLab Build Bot
3cb355d06a [ci skip] js-precompiled 20161103-160437 2016-11-03 16:05:42 +00:00
GitLab Build Bot
03bb226947 [ci skip] js-precompiled 20161103-155801 2016-11-03 15:59:10 +00:00
GitLab Build Bot
98af662056 [ci skip] js-precompiled 20161103-154219 2016-11-03 15:43:26 +00:00
Tomasz Drwięga
2bd4f7182e Redirecting to the same address the request came. (#3133) 2016-11-03 16:12:46 +01:00
Arkadiy Paronyan
3413989c8a Fixed peer ping timeout (#3137) 2016-11-03 16:12:25 +01:00
Arkadiy Paronyan
8f4bd3590a Fix windows build (#3125) 2016-11-03 16:11:08 +01:00
Jaco Greeff
7a804d8b01 Fix AddessInput icon position (#3132) 2016-11-03 16:10:40 +01:00
GitLab Build Bot
5bd9814470 [ci skip] js-precompiled 20161103-142158 2016-11-03 14:23:04 +00:00
Nicolas Gotchac
1481ed2dcb Fixed not scrollable accounts (#3128) 2016-11-03 15:20:40 +01:00
GitLab Build Bot
0affd61ebc [ci skip] js-precompiled 20161103-130130 2016-11-03 13:02:39 +00:00
Denis S. Soldatov aka General-Beck
2ed237a6d2 Update gitlab-ci
Optimize build's
1. remove arm* from master
2. `js-pack` + `js-test` + `js-lint`
2016-11-03 19:19:13 +07:00
GitLab Build Bot
b2b8d78bcc [ci skip] js-precompiled 20161103-121148 2016-11-03 12:13:11 +00:00
GitLab Build Bot
c2adce4a5c [ci skip] js-precompiled 20161103-120015 2016-11-03 12:01:36 +00:00
Tomasz Drwięga
e9cd2f4d56 Returning cache headers for network content (#3123) 2016-11-03 12:40:53 +01:00
Jaco Greeff
3a1f3c0a80 Optimise contract events display (#3120)
* Adjust to last 25 events

* Adjust event address widths

* Slight column size adjustment
2016-11-03 12:23:53 +01:00
Jaco Greeff
e4fcf4da2b Add basic validation for contract execute values (#3118) 2016-11-03 12:23:25 +01:00
Tomasz Drwięga
e251fd49a1 Dapps errors embeddable on signer (#3115) 2016-11-03 12:22:28 +01:00
Nicolas Gotchac
d99f1b517c Use enode RPC in UI (#3108)
* add enode rpc

* spaces -> tabs

* Added Enode to JSAPI // Use it to display in Status (#3106)

* Added enode to JSON RPC Interfaces #3108
2016-11-03 12:04:25 +01:00
Arkadiy Paronyan
d101cb5247 Windows tray app (#3103)
* Check if already running in ui command

* Windows tray app

* Upadted CI scripts
2016-11-03 12:00:39 +01:00
Tomasz Drwięga
7fb39d1511 Displaying errors on stderr (#3116) 2016-11-03 12:00:26 +01:00
Jannis Redmann
5ae737f307 new InputAddressSelect component (#3071)
* basic address autocomplete

* validate input, propagate changes

* show IdentityIcon in menu

* show IdentityIcon next to input

* refactoring, better variable names, linting

* show default IdentityIcon if search by name

* port #3065 over

* show accounts in the beginning

* show accounts before contacts

* filter deleted accounts

* UX improvements

- limit number of search results shown
- hint text

* only render identity icon if valid address

* UX improvements

- align IdentityIcon
- better hint text

* align label & error with other inputs

This probably needs to be changed soon again. Therefore this ugly hack has been put in place.

* Align component with coding style for app

* Use standard/tested AddressAutocmplete (WIP)

* Address selection & inputs operational

* Update TODOs, remove unused CSS

* only handle input changes when editing

* Simplify

* Cleanup unused modules

* Add contracts to address search

* Updates Address Selector to handle valid input address #3071

* Added Address Selector to contracts read queries
2016-11-03 11:57:43 +01:00
Arkadiy Paronyan
0f9451efe8 Bump mio (#3117) 2016-11-03 11:52:44 +01:00
GitLab Build Bot
d7eeda3341 [ci skip] js-precompiled 20161103-073434 2016-11-03 07:35:41 +00:00
Gav Wood
f9a389c4b6 Minor typo fixed. (#3110) 2016-11-03 08:22:35 +01:00
GitLab Build Bot
0dd9b2a2f1 [ci skip] js-precompiled 20161102-223654 2016-11-02 22:37:59 +00:00
Nicolas Gotchac
391f408653 Sort by ETH balance and contract by date (#3107)
* Added timestamps to contract creation // Sort by date (#3070)

* Added sort by ETH balance (#3070)

* Added timestamp meta to accounts / addresses entry creations (#3107)
2016-11-02 23:09:00 +01:00
GitLab Build Bot
6098f008ce [ci skip] js-precompiled 20161102-220144 2016-11-02 22:03:03 +00:00
keorn
36d17d5c28 Add RPC enode lookup (#3096)
* add enode rpc

* spaces -> tabs
2016-11-02 19:43:21 +01:00
Tomasz Drwięga
cf8f27ce0f Initializing logger for each command (#3090)
* Initializing logger for each command

* Single logger setup

* Whitespace [ci:skip]
2016-11-02 19:42:21 +01:00
keorn
045a65c99c Merge remote-tracking branch 'auth/auth-round-no-mocknet' into auth-round 2016-11-02 17:43:54 +00:00
keorn
00a3619392 header methods 2016-11-02 17:42:56 +00:00
keorn
b2a3851972 Merge remote-tracking branch 'auth/auth-round-no-mocknet' into auth-round 2016-11-02 17:22:41 +00:00
Jaco Greeff
b3d502ba78 Allow registration of content bundles in GitHubHint (#3094)
* Clear woner & error on success

* WIP buttons

* Selection bar

* Sanitize GitHub urls

* Complete hint registration

* button-row icons

* PR comments, url check & validation TODO

* PR comments, TODO for validation to show intent
2016-11-02 18:16:50 +01:00
Nicolas Gotchac
e4c75bde4c Add read-only inputs to UI plus Copy to Clipboard buttons (#3095)
* Adds readOnly prop to Input, convert disabled props to it (#3066)

* WIP

* Adds copy icon to readOnly Input (#3009)

* Added Copy to Clipboard buttons on the UI (#3009)

* copiable to allowCopy props #3095

* Padded copy icons (#3095)

* Fixed password width in account creation

* Copyable value in MethodDecoding
2016-11-02 17:25:34 +01:00
Jaco Greeff
f3d4aa43f3 Allow boolean dropdowns for contract deploy (#3077)
* Allow boolean dropdowns for contract deploy

* Be explicit in deployment types

* Extra line as per PR comments
2016-11-02 17:25:21 +01:00
Gav Wood
9b1f67b2dd Add mac installer files (#2995)
* Add mac installer files.

* Add shortcut for Applications.

* Rework installer to run under user.

* Fix up script further.

* Add App stub

* Introduce better information.
2016-11-02 17:03:21 +01:00
keorn
03c9760de2 Merge remote-tracking branch 'parity/master' into auth-round-no-mocknet 2016-11-02 13:01:31 +00:00
GitLab Build Bot
0e8e2d7245 [ci skip] js-precompiled 20161102-125818 2016-11-02 12:59:29 +00:00
GitLab Build Bot
79ab756e96 [ci skip] js-precompiled 20161102-122506 2016-11-02 12:26:17 +00:00
keorn
26155f51d5 proper calculation of remaining step time 2016-11-02 12:13:47 +00:00
keorn
da3253133c ignore block timeout when sealing internally 2016-11-02 12:13:12 +00:00
Nicolas Gotchac
ed89e1efab Fixing dapps sorting (#3086)
* Fixing dapps sorting (#3076)

* PR Grumble

* PR Grumble #2
2016-11-02 12:58:03 +01:00
GitLab Build Bot
feffe59fd4 [ci skip] js-precompiled 20161102-115346 2016-11-02 11:54:58 +00:00
The Gitter Badger
5fff63a085 Add Gitter badge (#3092) 2016-11-02 12:18:56 +01:00
Nicolas Gotchac
27ce6659d3 Fixes webpack HTML loader (#3089) 2016-11-02 12:08:22 +01:00
GitLab Build Bot
f4863c12b7 [ci skip] js-precompiled 20161102-110620 2016-11-02 11:07:27 +00:00
Tomasz Drwięga
f7b7a3a1c5 Redirecting /home to new UI (#3084) 2016-11-02 11:29:18 +01:00
Jaco Greeff
d47c6db713 Allow owner to update content url (#3083) 2016-11-02 11:28:23 +01:00
Jaco Greeff
5336f65cf5 Remove assets moved to ethcore/dapps-assets (#3082) 2016-11-02 11:28:04 +01:00
Jaco Greeff
0912160220 Goodbye Gavcoin, Hello Gavcoin (#3080) 2016-11-02 11:27:47 +01:00
Jaco Greeff
274b109f3f Load network dapps (#3078)
* Initial load of network apps

* Load network dapps

* Cleanups

* Update

* Updated

* Fix builtin apps loading
2016-11-02 11:27:28 +01:00
GitLab Build Bot
bd1bfd01bc [ci skip] js-precompiled 20161101-231432 2016-11-01 23:15:40 +00:00
GitLab Build Bot
dffa06d18f [ci skip] js-precompiled 20161101-224217 2016-11-01 22:43:26 +00:00
GitLab Build Bot
dc66778097 [ci skip] js-precompiled 20161101-220850 2016-11-01 22:10:05 +00:00
Jaco Greeff
eeee017f4f Swap account phrase to normal input (non-multiline) (#3060) 2016-11-01 22:45:20 +01:00
Gav Wood
94e3a98524 Fix minor type in informant (#3056) 2016-11-01 22:44:24 +01:00
Jaco Greeff
efbbe507ee Warp sync status display (#3045)
* Warp sync status display

* Add BlockStatus component (re-usable)
2016-11-01 22:43:22 +01:00
GitLab Build Bot
e6a486b647 [ci skip] js-precompiled 20161101-203737 2016-11-01 20:38:43 +00:00
GitLab Build Bot
5dfd834c12 [ci skip] js-precompiled 20161101-200259 2016-11-01 20:04:05 +00:00
Nicolas Gotchac
bb120ece59 Enhance address input (#3065)
* Don't show identity icon when invalid address / add 0x on valid (#3057)

* Removed unused `isEmpty`
2016-11-01 20:41:16 +01:00
Nicolas Gotchac
183b54af84 Go to Accounts Page if Tooltips are displayed (#3054) (#3063) 2016-11-01 20:37:00 +01:00
keorn
3a6b56e99c check double signing, tracing 2016-11-01 18:12:06 +00:00
GitLab Build Bot
d0d8cde0a5 [ci skip] js-precompiled 20161101-181028 2016-11-01 18:11:48 +00:00
keorn
a33e2f2e0d fix deadlock after merge 2016-11-01 17:52:52 +00:00
Jaco Greeff
314eb59081 Change contract Execute bool values & query bool value display (#3024)
* Allow for boolean value selection

* Updated

* Explicitly display bool as true/false (string)

* Really fix boolean display
2016-11-01 18:42:36 +01:00
Jaco Greeff
556827400c Update Parity logo (#3036)
* Add new parity logos

* FirstRun logo

* Tabbar logo

* Remove duplicated block image

* Parity favicons

* Remove images to be replaced

* Paritybar logo

* Add favicon

* Adding HTML Loader for Webpack for image linking
2016-11-01 18:12:40 +01:00
GitLab Build Bot
57c00066c1 [ci skip] js-precompiled 20161101-171004 2016-11-01 17:11:17 +00:00
Jannis Redmann
145a88d401 settings: replace background patterns (inline) (#3047)
* replace generated background patterns

* move button to overview section

* keep selected background

* show current background pattern
2016-11-01 18:05:10 +01:00
Nicolas Gotchac
6fc89f69c1 Multiple line description for dapps and Masonry like layout (#2905) (#3058) 2016-11-01 17:47:02 +01:00
Nicolas Gotchac
9e7313afc8 Proper order for status logs (#3055) (#3062) 2016-11-01 17:44:59 +01:00
GitLab Build Bot
a02a8d3a17 [ci skip] js-precompiled 20161101-160426 2016-11-01 16:05:25 +00:00
Denis S. Soldatov aka General-Beck
14094a09b3 Update gitlab-ci
skip darwin and windows tests
2016-11-01 22:39:48 +07:00
GitLab Build Bot
7f92b50f95 [ci skip] js-precompiled 20161101-142007 2016-11-01 14:21:15 +00:00
Nicolas Gotchac
84ca3d7a7d Graphical gas price selection (#2898)
* Added gasPriceStatistics

* WIP graph fas price stats (#2142)

* Chart to select gas price in Extra Tx (#2142)

* Gas Selection UI

* Gas Price Selection: better UI (right octiles, point on graph) (#2142)

* Gas Price Selection chart update using D3 (#2142)

* Working UI, more fluid... (#2142)

* Using the new gasPriceHistogram Call: display histogram (#2142)

* Code Clean

* Updated gas Selection explaination

* PR grumble // Gas Price Selector (#2898)

* Fixing linting issues
2016-11-01 15:04:51 +01:00
GitLab Build Bot
3b6c969398 [ci skip] js-precompiled 20161101-140045 2016-11-01 14:01:50 +00:00
Nicolas Gotchac
297a09399d [Registry dApp] Actions not available before selecting accounts (#3032)
* Removed hasAccount from actions, now in Application [RegDapp] (#2931)

* Linting issues
2016-11-01 14:40:50 +01:00
Robert Habermeier
19d5f93745 Merge pull request #3020 from ethcore/fix-old-migrations
apply post-consolidation migrations after consolidating
2016-11-01 14:32:23 +01:00
GitLab Build Bot
03a2d46e8a [ci skip] js-precompiled 20161101-132539 2016-11-01 13:26:56 +00:00
Jannis Redmann
09c42973f1 fix chain badge padding (#3046) 2016-11-01 14:10:17 +01:00
GitLab Build Bot
65db6c80b7 [ci skip] js-precompiled 20161101-130412 2016-11-01 13:05:11 +00:00
Nicolas Gotchac
ff04c622f3 Fixes tab on Chip Input (#3022) (#3044) 2016-11-01 13:51:02 +01:00
GitLab Build Bot
4d4b124efd [ci skip] js-precompiled 20161101-105638 2016-11-01 10:57:40 +00:00
GitLab Build Bot
c938114580 [ci skip] js-precompiled 20161101-104257 2016-11-01 10:43:57 +00:00
Tomasz Drwięga
8c1f8700ec Fixing last hashes for ethcall (#3043) 2016-11-01 11:24:46 +01:00
Jaco Greeff
71662bb219 Remove signer icons (#3039)
* Remove signer icons

* Linting fixes
2016-11-01 11:11:20 +01:00
Robert Habermeier
42010acd68 execute periodic snapshot in new thread (#3029)
to ensure that the I/O worker isn't stalled.
2016-11-01 11:09:46 +01:00
GitLab Build Bot
cb3bb2469d [ci skip] js-precompiled 20161101-062958 2016-11-01 06:31:01 +00:00
Denis S. Soldatov aka General-Beck
1dc97c7bac Update gitlab-ci
allow_failure: true -> windows test
2016-11-01 13:18:29 +07:00
GitLab Build Bot
28e4f93d32 [ci skip] js-precompiled 20161101-052312 2016-11-01 05:24:13 +00:00
Denis S. Soldatov aka General-Beck
975c01b43a Update gitlab-ci
replace stage: test to build
2016-11-01 12:09:21 +07:00
GitLab Build Bot
c553c3c94b [ci skip] js-precompiled 20161101-042855 2016-11-01 04:29:59 +00:00
Denis S. Soldatov aka General-Beck
92752f13c6 Update gitlab-ci
fix windows test
2016-11-01 11:13:27 +07:00
GitLab Build Bot
38160c05bb [ci skip] js-precompiled 20161031-224932 2016-10-31 22:50:31 +00:00
Jannis Redmann
93400810db fix background of embedded signer (#3026) 2016-10-31 23:37:12 +01:00
Jannis Redmann
e024afacf3 registry dapp: fix reducer (#3028) 2016-10-31 23:28:49 +01:00
Nicolas Gotchac
b8bcb8e622 Replace Execute by Query in contract button (#3015) (#3031) 2016-10-31 23:28:26 +01:00
Nicolas Gotchac
d29de96a59 Fixing GavCoin dApp overflow issues (#2953) (#3030) 2016-10-31 23:25:25 +01:00
Jannis Redmann
55cdc7c265 execute contract function: validate address (#3013)
* execute contract fn: validate address

* forgot import

* execute contract fn: set value
2016-10-31 23:24:12 +01:00
Jaco Greeff
381af547fa Align tag inputs with other input boxes (#2965)
* Wrap tag input component

* Postcss nested selectors

* Chips has same size as in ui

* Input matches with sizes/paddings of others

* Adjust colours, move hint text

* Added ChipInput from search in wrapper

* Using InputChip Wrapper in search (#2965)
2016-10-31 23:22:22 +01:00
GitLab Build Bot
04432b2766 [ci skip] js-precompiled 20161031-194842 2016-10-31 19:49:41 +00:00
GitLab Build Bot
714cb22f89 [ci skip] js-precompiled 20161031-192549 2016-10-31 19:27:04 +00:00
Arkadiy Paronyan
2e70abdc40 Sweep panickers from IO and network (#3018)
* Sweep panickers from IO and network

* Typo and logging
2016-10-31 19:58:47 +01:00
Denis S. Soldatov aka General-Beck
60df9857ce Update gitlab-ci
Reorganize build queue
windows test
2016-11-01 01:51:29 +07:00
Jaco Greeff
f8a38a8a1e Terms & Conditions (#3019) 2016-10-31 19:05:39 +01:00
Robert Habermeier
5d41d38dff open column families after reparing db corruption (#3017) 2016-10-31 18:21:44 +01:00
Robert Habermeier
8599a11a0b Snapshot sync and block gap info in eth_syncing (#2948)
* provide snapshot sync info in eth_syncing

* specify block gap in eth_syncing

* Extend eth_syncing with warp, format the output properly

* adjust serialization tests for sync info

* whitespace
2016-10-31 17:32:53 +01:00
Tomasz Drwięga
ff90fac125 Moving personal_ to autoargs (#3000) 2016-10-31 17:11:56 +01:00
Gav Wood
547871f933 RPCs for mode change (#3002)
* Allow warnings.

* Add RPCs to allow ad-hoc mode changes.

* Add the JSAPI interfaces

* Add missing file.
2016-10-31 16:58:35 +01:00
Gav Wood
54a408fd88 Fix a test sensitive to slow execution. (#3014) 2016-10-31 16:55:30 +01:00
Robert Habermeier
0139dfcc39 apply post-consolidation migrations after consolidating 2016-10-31 16:18:20 +01:00
Nicolas Gotchac
8c24e64a5e Fixes search filtering issues (#2966) (#3011) 2016-10-31 15:00:23 +01:00
Arkadiy Paronyan
b7bebdbc75 Restart sync if no more peers with snapshots (#3007) 2016-10-31 14:59:41 +01:00
Jaco Greeff
10fcf7f051 Allow empty input arrays for ABIs (#3001) 2016-10-31 14:59:02 +01:00
Jaco Greeff
ea784d7419 Allow operation when no registry is available (#2980)
* Allow retrieval of native network balances without registry

* Remove debugging address

* Disable dapps when no registry is available
2016-10-31 14:24:33 +01:00
GitLab Build Bot
1255105490 [ci skip] js-precompiled 20161031-124811 2016-10-31 12:49:10 +00:00
GitLab Build Bot
b9f055677f [ci skip] js-precompiled 20161031-123449 2016-10-31 12:36:00 +00:00
GitLab Build Bot
180f16af7c [ci skip] js-precompiled 20161031-122556 2016-10-31 12:27:03 +00:00
Jaco Greeff
346fe0b509 Make JS lint & test run on Travis (#2894)
* Make JS lint & test run on Travis

* Update node version required

* 6, any latest node 6

* Travis node_version

* query node & npm versions

* last attempt, use nvm directly
2016-10-31 13:00:02 +01:00
Jaco Greeff
d086251e89 Update account dropdowns (#2959)
* Simplify & consolidate address items

* Adjust dropdown background
2016-10-31 12:58:25 +01:00
keorn
7af20a5db0 Modify gas price statistics (#2947)
* gas price distribution + median + tests

* put histogram in util

* use the util histogram

* remove the default gas price implementation

* histogram rpc

* fix empty corpus

* Add JS ethcore_gasPriceHistogram

* Fix typo (s/types/type/) & subsequent failing test

* Fix return type & formatting

* bucketBounds

* Add jsapi e2e test verification
2016-10-31 12:57:48 +01:00
Nicolas Gotchac
8bf577e0fe Fixes pending/mined transactions in registry dApp (#3004)
* Fixing React Errors

* Fixes pending and mined events in Registry dApp (#2930)

* PR grumbles (#2930)
2016-10-31 12:56:53 +01:00
Arkadiy Paronyan
568a18d8bd Prevent connecting to self (#2997) 2016-10-31 12:54:50 +01:00
GitLab Build Bot
455059f6b1 [ci skip] js-precompiled 20161031-093746 2016-10-31 09:38:45 +00:00
Gav Wood
477dbf36f5 Disable verbose in gitlab CI (#2999)
* Allow warnings.

* Disable verbose.
2016-10-31 10:36:30 +01:00
GitLab Build Bot
c2c7585619 [ci skip] js-precompiled 20161031-090648 2016-10-31 09:07:51 +00:00
Gav Wood
f5f3edf239 Allow warnings. (#2998)
Allow warnings in gitlab
2016-10-31 09:55:24 +01:00
GitLab Build Bot
921fde43a7 [ci skip] js-precompiled 20161031-084918 2016-10-31 08:50:17 +00:00
Denis S. Soldatov aka General-Beck
ce20b226a5 Update gitlab-ci 2016-10-31 15:47:47 +07:00
GitLab Build Bot
0ff5b18bcb [ci skip] js-precompiled 20161031-071713 2016-10-31 07:18:12 +00:00
Denis S. Soldatov aka General-Beck
f4332933e9 Update gilab-ci
add --no-release test option
RUSTFLAGS="-D warnings"
2016-10-31 14:16:06 +07:00
GitLab Build Bot
aa4b124005 [ci skip] js-precompiled 20161031-053203 2016-10-31 05:33:10 +00:00
Gav Wood
29cdfa9061 Fix the brainwallet functionality. (#2994) 2016-10-31 00:01:23 +01:00
keorn
fc4664ab12 Merge branch 'master' into auth-round-no-mocknet 2016-10-30 21:18:52 +00:00
keorn
37ca1fa497 Merge remote-tracking branch 'parity/master' 2016-10-30 20:45:28 +00:00
Jaco Greeff
6da02e0a7a s/Used/Provided/ gas (#2993) 2016-10-30 20:38:07 +01:00
GitLab Build Bot
3e8900db3e [ci skip] js-precompiled 20161030-164930 2016-10-30 16:50:29 +00:00
Arkadiy Paronyan
cf027d74f9 Print messages to stderr (#2991) 2016-10-30 17:48:36 +01:00
GitLab Build Bot
6b85d58ae7 [ci skip] js-precompiled 20161030-144119 2016-10-30 14:42:20 +00:00
Arkadiy Paronyan
6931878ff1 Networking and syncing tweaks (#2990)
* Reduce periodic snapshot delay

* Prevent connecting to peers over the min_peers limit

* Smaller block requests for slower connections
2016-10-30 15:39:36 +01:00
GitLab Build Bot
d3a2f7dce9 [ci skip] js-precompiled 20161030-120641 2016-10-30 12:07:40 +00:00
Arkadiy Paronyan
43f40d37f6 Allow build warnings (#2985) 2016-10-30 13:05:33 +01:00
GitLab Build Bot
0b835323b9 [ci skip] js-precompiled 20161030-113341 2016-10-30 11:34:48 +00:00
Jaco Greeff
10a6e95d8a Display network status for finished Signer requests (#2983)
* Display confirmation for finished requests

* Update box padding
2016-10-30 12:20:52 +01:00
Arkadiy Paronyan
4ded10fcbe Fixed transaction propagation (#2984) 2016-10-30 12:19:20 +01:00
GitLab Build Bot
0189481ee6 [ci skip] js-precompiled 20161030-090922 2016-10-30 09:10:18 +00:00
Arkadiy Paronyan
bccc56b6b0 mio version bump (#2982) 2016-10-30 09:56:34 +01:00
Jaco Greeff
70f87ea002 Publish parity.js to npmjs registry (#2978)
* Skeleton packages

* Publish parity.js package to npm

* [ci skip] js-precompiled 20161029-190427

* Extra step information

* [ci skip] js-precompiled 20161029-192209

* Use autToken for npmjs (cannot run headless in docker)

* [ci skip] js-precompiled 20161029-193414

* Correct package.json structure

* [ci skip] js-precompiled 20161029-194003

* Scope package to public

* [ci skip] js-precompiled 20161029-194529

* Start package version at 0.1.0

* Build proper umd library

* [ci skip] js-precompiled 20161029-231233

* Update build/release stage

* [ci skip] js-precompiled 20161030-071454

* Basic README.md to satisfy npmjs

* [ci skip] js-precompiled 20161030-073150

* CommonJs format

* [ci skip] js-precompiled 20161030-075034

* Update README.md

* update dependencies

* [ci skip] js-precompiled 20161030-075727

* Starting package version

* Build only on master
2016-10-30 09:55:46 +01:00
Jaco Greeff
acaa40e221 Import raw private key (#2945)
* Initial selection screen

* UI in-place

* Make actual import API calls

* Simplify value checking logic
2016-10-30 09:54:21 +01:00
GitLab Build Bot
3002219250 [ci skip] js-precompiled 20161030-083815 2016-10-30 08:39:09 +00:00
Jannis Redmann
86c0dbeedc refactor etherscan.io links (#2896)
* use proper querystring builder

* etherscan.txLink helper

* refactor to etherscan.txLink

* etherscan.addressLink helper

* refactor to etherscan.addressLink

* move txLink & addressLink into common file
2016-10-30 09:37:15 +01:00
GitLab Build Bot
222b2b70ea [ci skip] js-precompiled 20161029-192902 2016-10-29 19:29:59 +00:00
Arkadiy Paronyan
8796574e5a Use separate lock for code cache (#2977) 2016-10-29 21:27:53 +02:00
GitLab Build Bot
5a8cee9557 [ci skip] js-precompiled 20161029-185701 2016-10-29 18:57:56 +00:00
arkpar
ffb9cc7b18 Fixed build 2016-10-29 20:41:07 +02:00
Jaco Greeff
e304a2f3fe Add favicon (#2974)
* Add favicon.ico

* Add favicon to all html pages

* Cleanup favicon background
2016-10-29 19:06:33 +02:00
GitLab Build Bot
c24ac577fb [ci skip] js-precompiled 20161029-160033 2016-10-29 16:01:29 +00:00
arkpar
fca545ce98 Removed junk file 2016-10-29 17:59:27 +02:00
GitLab Build Bot
e2b82e1e37 [ci skip] js-precompiled 20161029-154241 2016-10-29 15:44:04 +00:00
Jaco Greeff
4d1cfd6706 Align password change dialog with create (#2970) 2016-10-29 17:39:08 +02:00
Arkadiy Paronyan
c342fa3035 WS bump (#2973) 2016-10-29 17:38:50 +02:00
Arkadiy Paronyan
99d6d87e78 Discovery performance optimization (#2972) 2016-10-29 17:38:34 +02:00
GitLab Build Bot
3a6c1c377c [ci skip] js-precompiled 20161029-133354 2016-10-29 13:34:58 +00:00
Jaco Greeff
49a7b84f14 Pass gas & gasPrice to token transfers (#2964) 2016-10-29 15:32:10 +02:00
Tomasz Drwięga
144930f12c Updating ws-rs (#2962) 2016-10-29 15:31:13 +02:00
GitLab Build Bot
fe02f93e4c [ci skip] js-precompiled 20161029-114119 2016-10-29 11:42:16 +00:00
GitLab Build Bot
598679000c [ci skip] js-precompiled 20161029-112814 2016-10-29 11:29:09 +00:00
GitLab Build Bot
1a258fc0a7 [ci skip] js-precompiled 20161029-112006 2016-10-29 11:21:07 +00:00
Robert Habermeier
227bf4b8c5 Run cargo with verbose flag when testing (#2943)
* Run cargo with verbose flag when testing

* use full verbose flag
2016-10-29 13:09:16 +02:00
Tomasz Drwięga
f17cad9dff Fixing clippy warnings 2 (#2961) 2016-10-29 13:08:49 +02:00
Arkadiy Paronyan
9e82eeccfe Snapshot sync improvements (#2960)
* Status packet timeout

* Snapshot collection state

* Pause snapshot download

* Updated tests
2016-10-29 13:07:06 +02:00
GitLab Build Bot
290ed3343f [ci skip] js-precompiled 20161029-110604 2016-10-29 11:06:59 +00:00
Jaco Greeff
65c985bef3 Gavcoin event display updates (#2956)
* Mapp all known addresses

* Display timestamp in event log

* Shorten addresses

* Display "Pending" timestamps as well

* Pending/Loading with empty timestamp
2016-10-29 13:04:47 +02:00
GitLab Build Bot
e1cf6f7dd0 [ci skip] js-precompiled 20161029-075744 2016-10-29 07:58:45 +00:00
Jaco Greeff
c61526f8d5 Eslint fixes (package upgrade) (#2957) 2016-10-29 09:55:55 +02:00
GitLab Build Bot
3e3230aa34 [ci skip] js-precompiled 20161028-184917 2016-10-28 18:50:17 +00:00
Denis S. Soldatov aka General-Beck
40d794ddfd Update gitlab-ci 2016-10-29 01:47:05 +07:00
keorn
7976f46231 Merge branch 'master' into auth-round-no-mocknet 2016-10-28 17:53:23 +01:00
keorn
63cc5c0e60 Merge remote-tracking branch 'parity/master' 2016-10-28 17:52:48 +01:00
GitLab Build Bot
8cd66f14d5 [ci skip] js-precompiled 20161028-160553 2016-10-28 16:06:51 +00:00
Denis S. Soldatov aka General-Beck
1094dfbe6b Update gitlab-ci
add darwin and windows tests
2016-10-28 23:04:00 +07:00
GitLab Build Bot
ef0ed5833a [ci skip] js-precompiled 20161028-155009 2016-10-28 15:51:18 +00:00
Jaco Greeff
8d66fc50e2 Add import of raw private key RPCs (#2942)
* Importing an account from raw secret

* Add jsapi & jsonrpc for personal_newAccountFromSecret
2016-10-28 16:46:25 +02:00
Jaco Greeff
6abd08f5b2 Bring in styling queues from original Gavcoin (#2936)
* Bring in styling queues from original

* NewTranch background colour update
2016-10-28 16:46:11 +02:00
Tomasz Drwięga
0f0334275e Validating minimal required gas for a transaction (#2937)
* Validating minimal required gas for a transaction

* Adding RPC case and note

* Fixing whitespace [ci skip]
2016-10-28 16:42:24 +02:00
Robert Habermeier
2806f1d4c9 Even more snapshot validity checks (#2935)
* clarify "cancelled periodic snapshot" message

* more rigorous checks for snapshot validity

* verify ancient blocks on import

* limit number of fed blocks

* make it possible to feed snapshot service canonical hashes

* fix failing test build

* swap ethash DAG only when more recent
2016-10-28 16:10:30 +02:00
Robert Habermeier
29ab4ecac1 Shared code cache (#2921)
* add a global code cache

* extract memory-limited lru cache to util

* use memory-limited code cache

* account for code cache size in mem_used
2016-10-28 16:04:44 +02:00
Tomasz Drwięga
956a059a06 Updating bootnodes for ETC (#2938) 2016-10-28 16:02:23 +02:00
Arkadiy Paronyan
55efa16e42 More bootnodes (#2926) 2016-10-28 12:00:01 +02:00
GitLab Build Bot
151ec869a6 [ci skip] js-precompiled 20161027-204107 2016-10-27 22:41:22 +02:00
Jaco Greeff
908e563f18 Revert hash updates until testable (#2925)
* Revert hash updates until testable

* Re-add hash to echo (debug info)
2016-10-27 22:26:47 +02:00
Jaco Greeff
a9e7f59203 Merge branch 'master' into jg-js-release-fix (#2924)
# Conflicts:
#	js/scripts/release.sh
2016-10-27 21:15:41 +02:00
Jaco Greeff
9fd8ac6a15 additional release.sh debugging info (#2922) 2016-10-27 21:05:47 +02:00
GitLab Build Bot
22af04e81d [ci skip] js-precompiled 20161027-175225 2016-10-27 17:53:23 +00:00
Jaco Greeff
a4e84c375e Pass the js-precompiled commit hash to cargo update (#2920) 2016-10-27 19:30:13 +02:00
Tomasz Drwięga
07fca24b44 Next nonce RPC (#2917) 2016-10-27 19:29:55 +02:00
Tomasz Drwięga
dedc4d5cfc Get rid of duplicated code (#2915) 2016-10-27 19:29:23 +02:00
Tomasz Drwięga
152a551e8b Transaction Queue banning (#2524)
* Blacklisting transaction queue

* Using blacklisting queue in miner

* Restoring todo [ci:skip]

* Blacklisting recipients and code

* Renaming blacklisting->banning

* CLI option for banning.

* Fixing submodule commit [ci:skip]

* Fixing RPC tests

* Additional logging when dropping transactions

* whitespace

[ci:skip]

* Configurable ban duration

* Reverting fix for pruning history from config file
2016-10-27 19:28:34 +02:00
Tomasz Drwięga
ce37b6dcb9 Revert to gas price ordering (#2919) 2016-10-27 19:27:08 +02:00
Jaco Greeff
8dff4012a6 Personal split (#2879)
* Split personal namespace into Safe and Unsafe part

* Re-add api.personal.accountsInfo() calls to dapps

* Removing listGethAccounts from safe personal
2016-10-27 19:26:34 +02:00
GitLab Build Bot
abb1da5f4b [ci skip] js-precompiled 20161027-164817 2016-10-27 16:49:18 +00:00
Denis S. Soldatov aka General-Beck
90aa2fefc2 Update gitlab-ci
fix darwin md5
2016-10-27 23:13:51 +07:00
GitLab Build Bot
bb14eea66c [ci skip] js-precompiled 20161027-150816 2016-10-27 15:09:11 +00:00
Tomasz Drwięga
8cef517788 Fixing config values for pruning_history (#2918) 2016-10-27 16:56:18 +02:00
GitLab Build Bot
7c6112e9f0 [ci skip] js-precompiled 20161027-143256 2016-10-27 14:33:50 +00:00
arkpar
6978042c16 Packet id tracing 2016-10-27 16:20:11 +02:00
Robert Habermeier
3a5843c40f skeleton and request traits 2016-10-27 15:45:59 +02:00
GitLab Build Bot
123b75179c [ci skip] js-precompiled 20161027-133941 2016-10-27 13:40:42 +00:00
Nikolay Volf
d315ec29e1 Apply pending block details on commit (#2254)
* failing test

* Cache pending details

* [ci skip] updated comment
2016-10-27 15:26:29 +02:00
Arkadiy Paronyan
3edd9e4bee Fixed GetNodeData output (#2892) 2016-10-27 15:25:54 +02:00
Robert Habermeier
a7e420d9ec stub implementation of provider for client 2016-10-27 15:09:17 +02:00
GitLab Build Bot
176dc0e945 [ci skip] js-precompiled 20161027-115054 2016-10-27 11:51:52 +00:00
Arkadiy Paronyan
bdc372462a Change sync protocol ID (#2912) 2016-10-27 13:49:44 +02:00
GitLab Build Bot
02b6d3943d [ci skip] js-precompiled 20161027-070811 2016-10-27 07:09:06 +00:00
Denis S. Soldatov aka General-Beck
3347d59042 Update gitlab-ci
add to arm*
export HOST_CC=gcc
export HOST_CXX=g++
2016-10-27 14:00:05 +07:00
GitLab Build Bot
005bdd5d07 [ci skip] js-precompiled 20161027-065456 2016-10-27 06:55:53 +00:00
Denis S. Soldatov aka General-Beck
8e6ca7fc61 Update gitlab-ci
remove armv6 from master
[ci skip]
2016-10-27 13:45:16 +07:00
Denis S. Soldatov aka General-Beck
ae46361b33 Update gitlab-ci
fix windows HOST_CC HOST_CXX -> x86_64-pc-windows-msvc
2016-10-27 13:42:09 +07:00
GitLab Build Bot
6c79decdda [ci skip] js-precompiled 20161027-062905 2016-10-27 06:30:05 +00:00
Tomasz Drwięga
88997801d0 Clippy bump (#2877)
* Bumping clippy

* Fixing warnings

* Fix the "fix"
2016-10-27 08:28:12 +02:00
GitLab Build Bot
9bfb8094cc [ci skip] js-precompiled 20161027-025520 2016-10-27 02:56:17 +00:00
Denis S. Soldatov aka General-Beck
e668fc4c55 Update gitlab-ci
fix arm* build ENV
2016-10-27 09:53:51 +07:00
GitLab Build Bot
a08b331856 [ci skip] js-precompiled 20161026-203802 2016-10-26 20:39:01 +00:00
Jaco Greeff
d72ea19e54 iconomi token images (#2906) 2016-10-26 22:25:51 +02:00
GitLab Build Bot
58b963b93d [ci skip] js-precompiled 20161026-194241 2016-10-26 19:44:08 +00:00
Nicolas Gotchac
f7259c26d1 Fixes too long desc and Token Balance Value (#2891) (#2902) 2016-10-26 21:25:03 +02:00
Denis S. Soldatov aka General-Beck
0e14738147 Update gitlab-ci
enable arm* in master branch
2016-10-27 02:12:05 +07:00
GitLab Build Bot
f58ccfb435 [ci skip] js-precompiled 20161026-165632 2016-10-26 16:57:31 +00:00
keorn
3ff26dd544 Merge branch 'master' into auth-round-no-mocknet 2016-10-26 17:50:04 +01:00
Nicolas Gotchac
6b2cffd312 Merge branch 'master' into ng-accounts-backup 2016-10-26 18:43:05 +02:00
Nicolas Gotchac
e018739ba9 Removed unused Format => Use JSON for Export 2016-10-26 18:42:52 +02:00
keorn
4ee669b77e Merge remote-tracking branch 'parity/master' 2016-10-26 16:53:30 +01:00
Jaco Greeff
e449477f23 Add mising imgages for local dapps (#2890) 2016-10-26 17:04:48 +02:00
GitLab Build Bot
215c82d744 [ci skip] js-precompiled 20161026-144207 2016-10-26 14:43:01 +00:00
Nicolas Gotchac
99fab5cdb9 Fix Webpack, again (#2895)
* Add inject to "bundle everything" list

* Fixes the `build-server` script // Updates Webpack config (#2872)

* New Webpack config file for libraries

* Added `parity-utils` path

* Removed parity in CommonChunks prod

* Fixes CI build

* Re-Add Libs in Webpack Config
2016-10-26 16:27:53 +02:00
keorn
a1745624ce enable suicide test (#2893) 2016-10-26 16:27:38 +02:00
GitLab Build Bot
6901d087dd [ci skip] js-precompiled 20161026-141507 2016-10-26 14:16:03 +00:00
Arkadiy Paronyan
f024acd329 More snapshot fixes and optimizations (#2883)
* More snapshot fixes and optimizations

* db drop
2016-10-26 16:14:13 +02:00
GitLab Build Bot
c36202fcf5 [ci skip] js-precompiled 20161026-131806 2016-10-26 13:19:04 +00:00
Nicolas Gotchac
af27bfe868 Fixes CI JS precompiled build (#2886)
* Add inject to "bundle everything" list

* Fixes the `build-server` script // Updates Webpack config (#2872)

* New Webpack config file for libraries

* Added `parity-utils` path

* Removed parity in CommonChunks prod

* Fixes CI build
2016-10-26 14:59:45 +02:00
Jannis Redmann
49d44cfccc merge #2884 from ng-empty-tag-fix
Fix empty tags modification
2016-10-26 14:57:47 +02:00
Robert Habermeier
4b82392371 merge with master 2016-10-26 14:17:13 +02:00
GitLab Build Bot
909fb1d54e [ci skip] js-precompiled 20161026-121420 2016-10-26 12:15:18 +00:00
GitLab Build Bot
cdc348d955 [ci skip] js-precompiled 20161026-120247 2016-10-26 12:03:52 +00:00
Gav Wood
c9298981f8 Fix up informant. (#2865)
Just ensure as many transactions/blocks are reported as possible.
2016-10-26 13:57:54 +02:00
Nicolas Gotchac
0441babb5f Fix empty tags modif. (#2882) 2016-10-26 13:55:41 +02:00
Arkadiy Paronyan
5b978be034 Get rid of MemoryDB denote (#2881) 2016-10-26 13:53:47 +02:00
GitLab Build Bot
436b7c213d [ci skip] js-precompiled 20161026-114541 2016-10-26 11:46:34 +00:00
Jaco Greeff
c8809b3396 Add inject to "bundle everything" list (#2871)
* Add inject to "bundle everything" list

* Fixes the `build-server` script // Updates Webpack config (#2872)

* New Webpack config file for libraries

* Added `parity-utils` path

* Removed parity in CommonChunks prod
2016-10-26 13:44:38 +02:00
GitLab Build Bot
71e973cb0b [ci skip] js-precompiled 20161026-100446 2016-10-26 10:05:40 +00:00
Nicolas Gotchac
1b0a87cdde Removed CSV Export option (#2147) 2016-10-26 11:59:25 +02:00
Nicolas Gotchac
c05430e25e Fixes signer errors throwing // MaterialUI Update errors too (#2867) (#2876) 2016-10-26 11:56:38 +02:00
GitLab Build Bot
3cd724d056 [ci skip] js-precompiled 20161026-095510 2016-10-26 09:56:14 +00:00
Nicolas Gotchac
14014dd208 Merge pull request #2878 from ethcore/jg-fix-tests
Fix failing tests after log parsing updates
2016-10-26 11:53:24 +02:00
GitLab Build Bot
e1c2cff957 fix failing tests after log parsing updates 2016-10-26 10:41:46 +02:00
GitLab Build Bot
162d1a032b [ci skip] js-precompiled 20161026-044349 2016-10-26 04:44:46 +00:00
Denis S. Soldatov aka General-Beck
d28af0a3ab Update deb-build.sh
change email
2016-10-26 11:41:54 +07:00
Denis S. Soldatov aka General-Beck
70d6ad6682 Create deb-build.sh
[ci skip]
add sh for deb build
2016-10-26 11:36:07 +07:00
GitLab Build Bot
7b7ce4a0b1 [ci skip] js-precompiled 20161026-040753 2016-10-26 04:08:54 +00:00
Denis S. Soldatov aka General-Beck
51a78d290e Update gitlab-ci
add arm* bulds
add deb packages (amd64,arm64,armhf)
2016-10-26 10:57:35 +07:00
GitLab Build Bot
20d43b9c26 [ci skip] js-precompiled 20161025-203648 2016-10-25 20:37:47 +00:00
Robert Habermeier
33748c2046 Sweep some more panics (#2848)
* purge unwraps from ethcrypto, ethstore

* sweep panics from util
2016-10-25 22:34:52 +02:00
Jaco Greeff
d1d82e787b Make GitLab js-precompiled really update Cargo.toml in main repo (#2869)
* Src outputs into build.sh

* reset detatched head

* add .dist

* testing for this branch

* update comments, be explicit is what we are doing

* [ci skip] js-precompiled 20161025-173946

* Revert "[ci skip] js-precompiled 20161025-173946"

This reverts commit 0d23f7683c6e18e4642566313963c130684afa90.

* remove testing branch

* typo
2016-10-25 22:27:13 +02:00
Nikolay Volf
014e47a50a Merge pull request #2870 from ethcore/ipc-bump-5
IPC version bump
2016-10-25 23:23:42 +03:00
NikVolf
f81787d603 ipc version bump 2016-10-25 21:28:54 +03:00
Arkadiy Paronyan
135d5d0e4c Snapshot fixes and optimizations (#2863) 2016-10-25 18:40:01 +02:00
Nicolas Gotchac
61f41cdbe2 Add exporting to CSV (#2147) 2016-10-25 18:26:47 +02:00
Nicolas Gotchac
92bdfb1234 Add Export button to Accounts (#2147) 2016-10-25 18:06:05 +02:00
Nicolas Gotchac
2d2e9c4d6e Add Check and Change Password for an Account (#2861)
* Added new RPC endpoints to JSAPI (#2389)

* Added modal in Account Page to test & modify password (#2389)

* Modify hint with password change // Better tabs (#2556)
2016-10-25 17:54:01 +02:00
Jaco Greeff
e71c752210 Output git fetch/push to log files (#2862)
* add -q options for fetch & push

* Store log in .gitignored location

* update GITLOG command location

* Remove test branch
2016-10-25 17:39:19 +02:00
GitLab Build Bot
03e2aa61e2 [ci skip] js-precompiled 20161025-153329 2016-10-25 17:33:46 +02:00
Jaco Greeff
7eacf07629 Align contract event log l&f with transactions (#2812)
* Event into own component, align with transactions

* Pass value & type through from event log params

* Reformat display columns
2016-10-25 16:02:12 +02:00
keorn
8d0cff3599 Nicer port in use errors (#2859)
* dapps port

* rpc port

* signer port

* different instance as possible cause

* network port
2016-10-25 15:55:53 +02:00
Jaco Greeff
4fc1c5f42e Remove personal_* calls from dapps (#2860)
* remove accountsInfo & listAccounts

* registry accounts selector works
2016-10-25 15:15:22 +02:00
Jaco Greeff
b6f2628018 Token sorting, zero-ETH transfer & token decimals (#2805)
* Error trapping for decimals (Fixes #2799)

* Sort tokens by tag (Closes #2789)

* PR comments

* Always display ETH

* Recalculate in all cases (traps >available)
2016-10-25 13:22:27 +02:00
Gav Wood
a6fd922ffb Don't fail badly when no transactions in last 100 blocks. (#2856) 2016-10-25 12:21:21 +02:00
Tomasz Drwięga
5ae87a64b1 Bumping ws-rs (#2851) 2016-10-25 12:12:09 +02:00
Tomasz Drwięga
1af40a3db3 Fixing UI compilation (#2853) 2016-10-25 12:11:56 +02:00
Nicolas Gotchac
037a8c7625 Removes event name in unsubscribe API + Tests (#2364) (#2844) 2016-10-25 11:43:24 +02:00
Jaco Greeff
9f6da3f829 Don't return empty names as clickable titles (#2809)
* Don't return empty names (Fixes #2786)

* add trim in validation
2016-10-25 11:43:05 +02:00
Jaco Greeff
285727e2fd Auto-bump js-precompiled on release (#2828)
* Auto-bump js-precompiled on release

* [ci skip] js-precompiled 20161022-232245

* Remove old GitLab tests

* Only move file.ext (get rid of error)

* allow add, commit & push failures (auto-bump)
2016-10-25 09:36:42 +02:00
Denis S. Soldatov aka General-Beck
cf67ed964e Update gitlab-ci
fix windows RUSTFLAGS
2016-10-25 04:54:43 +07:00
Denis S. Soldatov aka General-Beck
97cdc2b4ac Update gitlab-ci
fix RUSTFLAGS in win build
2016-10-25 04:48:38 +07:00
Denis S. Soldatov aka General-Beck
df23c9931c Update gitlab-ci
Add Global ENV RUSTFLAGS="-D warnings"
2016-10-25 03:31:22 +07:00
Robert Habermeier
0fedc27332 Remove ethcore::common re-export module (#2792)
* no longer export action_params

* remove transaction, header, receipt re-rexports from common

* remove env_info and builtins re-exports from common

* remove everything but util export from common

* replace common usages with util, remove module

* add a prelude module for ethcore-bigint
2016-10-24 18:35:25 +02:00
Arkadiy Paronyan
edbd667696 Prevent database corruption on OOM (#2832)
* Prevent database corruption on OOM

* Renamed write_flushing
2016-10-24 18:32:06 +02:00
Nicolas Gotchac
1b42e9a9af Added Export Component in Actionbar => export Addressbook (#2153) (#2847) 2016-10-24 18:27:35 +02:00
Robert Habermeier
bc81ae0407 Snapshot and blockchain stability improvements (#2843)
* allow taking snapshot from just-restored database without error

* make creation informant less spammy

* Ancestry iterator failure-resilient

* make uncle hash searching resilient to incomplete chain

* deduce pre-chunk info from last written block's details
2016-10-24 18:27:23 +02:00
Arkadiy Paronyan
1a5bae8ef1 Extended network options (#2845)
* More network configuration options

* Filter UDP requests

* Fixed tests

* Fixed test warning
2016-10-24 18:25:27 +02:00
Robert Habermeier
7f210b05bb fix failing master test build (#2846) 2016-10-24 16:38:32 +02:00
Tomasz Drwięga
16ec413508 Local dapps embeddable on signer port (#2815) 2016-10-24 16:36:15 +02:00
Nicolas Gotchac
487da9c9c6 Trigger accounts/contracts search on search input change (#2838)
* Styling Chips in search bar (#2766)

* Styling search chips // Add chip on space/comma/... (#2766)

* Update search on input (#2766)

* Fixing search triggers bugs (#2766)

* removed console logs

* Use props instead of weird CSS selectors for Search Bar

* Add tags on space and commas in EditMeta modal (#2766)

* Fixed empty input in EditMeta modal ; tokens input
2016-10-24 16:35:43 +02:00
keorn
aa05823afe Merge remote-tracking branch 'parity/master' into auth-round-no-mocknet 2016-10-24 15:32:30 +01:00
arkpar
24fa2888ab Merge branch 'master' of github.com:ethcore/parity 2016-10-24 16:31:55 +02:00
arkpar
f543108cf5 Fixed tests 2016-10-24 16:31:37 +02:00
Arkadiy Paronyan
9ec091e0cf Move snapshot sync to a subprotocol (#2820) 2016-10-24 16:24:35 +02:00
Jannis Redmann
ff347da8d3 fix node log being reversed (#2839) 2016-10-24 15:11:32 +02:00
Nicolas Gotchac
f4203a2571 Fixes currency symbol font size in Shapeshift modal (#2840)
* Fix case error in Dapps import

* Fixed big input in modal and currency symbols size (#2718)

* `em` instead of `rem`
2016-10-24 15:10:27 +02:00
Tomasz Drwięga
4ea67ff91d Disable personal APIs by default (#2834) 2016-10-24 15:10:13 +02:00
Tomasz Drwięga
a293493f93 Clear cached content (#2833) 2016-10-24 15:09:47 +02:00
Jaco Greeff
e0207b594b Add ethcore_[dapps|signer]Port APIs (#2821)
* Add ethcore_[dapps|signer]Port APIs

* typo
2016-10-24 15:09:33 +02:00
Arkadiy Paronyan
44a560e964 CLI option to skip seal check when importing (#2842) 2016-10-24 15:09:13 +02:00
Jannis Redmann
9500f2b83d merge #2837 from ng-import-case-fix
Fix case error in Dapps import
2016-10-24 13:13:39 +02:00
Jannis Redmann
a3d92857dc merge #2841 from ng-fix-address-select
Double click on address in account detail view should select it
2016-10-24 13:12:21 +02:00
Nicolas Gotchac
35925db825 Double click on address in account detail view should select it 2016-10-24 13:03:44 +02:00
Jaco Greeff
66a8d534ef Bump js-precompiled to 20161022-223915 UTC (#2826) 2016-10-24 12:28:32 +02:00
Jaco Greeff
7e84b078dd Adjust paths to handle CORS changes (#2816)
* Adjust :8080 paths for CORS & development

* No need to redirect, Node takes care of it
2016-10-24 12:21:52 +02:00
Tomasz Drwięga
e5f86c62ad Dapps port RPC (#2819) 2016-10-24 12:21:15 +02:00
Nicolas Gotchac
bd040d4cfd Fix case error in Dapps import 2016-10-24 10:28:18 +02:00
Jaco Greeff
8cf9934cab Update build to working version on repo (#2825) 2016-10-23 00:28:19 +02:00
Jaco Greeff
3637c6ad9a Adjust network name badge colours (darker) (#2823) 2016-10-22 22:29:47 +02:00
Tomasz Drwięga
aca82fb84b Removing submodule in favour of rust crate (#2756)
* Removing submodule

* Fixing UI dependency structure.

* Merging RS and JS package

* Updating release script to push also rs files

* fix merge gone wrong

* Fixing compilation
2016-10-22 20:07:12 +02:00
Tomasz Drwięga
20591e882e Return old-ish content even when syncing (#2757) 2016-10-22 20:06:30 +02:00
Jannis Redmann
bf827a758f fix Signer UI (#2750)
* fix Signer UI

* resolve conflicts
2016-10-22 19:25:30 +02:00
Jaco Greeff
cf9ad991db USG, GBP, Euro & Yuan updates (#2818) 2016-10-22 18:02:48 +02:00
Jaco Greeff
a1266fccb7 Make local apps available (Fixes #2771) (#2808) 2016-10-22 15:49:39 +02:00
Gav Wood
37a2ee98de Additional RPCs for password management (#2779)
* Add personal_testPassword and stub for personal_changePassword

* Add change-password functionality.

* Address grumble.

* Update tests.

* Update build.
2016-10-22 14:24:02 +01:00
Robert Habermeier
7bd37e3972 flush DB changes on drop (#2795) 2016-10-22 14:22:34 +01:00
Robert Habermeier
8e5c9ff162 rename State::snapshot to checkpoint to avoid confusion (#2796) 2016-10-22 14:22:16 +01:00
Tomasz Drwięga
3ff1ca81f4 Missing changes required to make new UI work (#2793)
* Getting rid of old dapps

* Updating proxypac and allowing home.parity on signer

* CORS support for API

* Fixing CORS - origin is sent with protocol

* Fixing signer with proxy

* Fixing grumbles

* Fix expect msg [ci:skip]
2016-10-22 14:21:41 +01:00
Nicolas Gotchac
9150fce2f1 Merge pull request #2810 from ethcore/jg-tx-formatting
Cleanup method decoding (Fixes #2811)
2016-10-22 10:56:45 +02:00
jacogr
82496ae525 validate meta properly 2016-10-22 10:38:48 +02:00
jacogr
8a60ed1315 empty data is allowed 2016-10-22 10:38:34 +02:00
jacogr
c312f4fb92 don't attempt to map empty types 2016-10-22 10:21:33 +02:00
jacogr
db4f1c382e format blockNumber consistently 2016-10-22 09:58:50 +02:00
Nicolas Gotchac
76cded7fa4 Use trace API for decentralized transaction list (#2784)
* Using traces when available to get accounts transactions (#2148)

* Fixed traceMode detection and transactions rendering (#2148)

* [WIP] Use Redux Thunk in main UI => Async Actions (#2148)

* Using Redux for Transaction / Block / Methods... (#2148)

* Use BigNumber comparedTo function to sort txs (#2148)
2016-10-22 09:45:54 +02:00
keorn
479657b23b Automatic compaction selection on Linux (#2785)
* add auto compaction types

* pass db paths

* detect drive type on Linux

* use base db path

* add docstring

* limit the test to be side effect free

* use base db path

* more docs

* fix parsing test

* update error

* detect only on Linux

* make test Linux only

* add second device letter, update cli doc

* use spaces in cli doc

* import only on linux

* default->auto
2016-10-21 23:21:57 +02:00
Jaco Greeff
df799362bf Update token images (#2804)
* Additional token images

* Add HKG image token

* Updated token images
2016-10-21 21:24:12 +02:00
Jaco Greeff
2689b13681 Hackergold token images (#2801)
* Additional token images

* Add HKG image token
2016-10-21 21:02:10 +02:00
Jaco Greeff
87f52f092e Additional token images (#2800) 2016-10-21 20:59:29 +02:00
Robert Habermeier
49ef9a1aa4 Add empty account existence test from beta. (#2769)
* add bloom filter existence test from beta

* fix U256 instantiation for master
2016-10-21 20:36:40 +02:00
Jaco Greeff
f58bdf2ccf Additional token images (#2798) 2016-10-21 19:50:17 +02:00
Arkadiy Paronyan
6f7b7638f4 Resolve morden fork (#2773) 2016-10-21 19:23:05 +02:00
Robert Habermeier
115f782935 Merge pull request #2778 from ethcore/siphasher
Using SipHashes from crates.io
2016-10-21 17:36:06 +02:00
Nicolas Gotchac
dc5dd6b941 Bumped Material UI version (fixing issues with AutoComplete) (#2790)
Fixed issues with Searchable addresses
2016-10-21 17:01:06 +02:00
Nicolas Gotchac
c24f4e87ad Merge pull request #2788 from ethcore/jg-images-currency
Currency icons
2016-10-21 15:23:32 +02:00
jacogr
cb68599a6d Currency icons 2016-10-21 15:22:14 +02:00
Jaco Greeff
dc8fcfde20 Update token images (#2783) 2016-10-21 13:44:34 +02:00
Robert Habermeier
31bb0c59f0 Merge pull request #2775 from ethcore/fix-master
Fix warning in master
2016-10-21 12:11:24 +02:00
Tomasz Drwięga
d3ae463a75 Using SipHasher from crates.io 2016-10-21 11:57:30 +02:00
Tomasz Drwięga
5aadda95c3 Using DefaultHasher instead of SipHasher 2016-10-21 11:26:29 +02:00
keorn
9ecea24a89 fix warning 2016-10-21 10:10:12 +01:00
Nicolas Gotchac
b2da168ff2 Merge pull request #2768 from ethcore/jg-basiccoin
Update name of basiccoin manager
2016-10-21 09:54:54 +01:00
jacogr
e55d6def73 Update name of basiccoin manager 2016-10-21 00:21:08 +02:00
Robert Habermeier
96f4c10453 sweep most unwraps from ethcore crate, dapps crate (#2762)
* sweep most unwraps from ethcore crate

* purge unwrap from dapps server

* whitespace

[ci:none]
2016-10-20 23:41:15 +02:00
keorn
866ab9c7a3 Check queue to determine major importing (#2763)
* simplify major sync detection

* fix typos

* fix merge

* more realistic EthTester

* add new synced state

* remove Blocks synced state

* move is_major_importing to rpc crate and check queue

* add tests
2016-10-20 23:36:18 +02:00
Nicolas Gotchac
236fb82886 Trace filtering fix (#2760)
* (#2751) Trace filtering fix:
  Don't test contract address against empty array in trace filtering

* Fixes spaces/typo

* Simplify the Trace Filtering (#2751)

* Removed unused `strictly_matches` fn
2016-10-20 23:35:56 +02:00
Jaco Greeff
7efffea34b Update js precompiled to 20161020-141636 (#2761) 2016-10-20 17:40:51 +02:00
Robert Habermeier
7359af8588 Incrementally calculate verification queue heap size (#2749)
* incrementally calculate queue heap size

* query the correct queue sizes
2016-10-20 17:19:31 +02:00
Arkadiy Paronyan
ae853a7557 Don't add empty accounts to bloom (#2753) 2016-10-20 16:49:27 +02:00
Jannis Redmann
68efbe32bf fix contract deployments not showing up (#2759)
* fix contract deployments not showing up

I'm really not happy with this.

Since the Signer consists of many, deeply nested, components, which in many cases
just pass props through, it's hard to trace this. `<TransactionPending>` is
supposed to fetch data from Parity (smart component) and pass it on to its (dumb)
children. For that, it needs to know implementation details of them.

* eslint 💄
2016-10-20 16:37:25 +02:00
Nicolas Gotchac
5c49168a66 Fix positionning issue of Icon in Address Selection (#2754) 2016-10-20 16:35:08 +02:00
Jannis Redmann
67f734cb20 fix linting issues (#2758) 2016-10-20 16:09:58 +02:00
Denis S. Soldatov aka General-Beck
d70503b874 Dockerfile for ubuntu stable
Add Dockerfile for parity stable branch
2016-10-20 21:00:09 +07:00
Tomasz Drwięga
0017a43364 Making Trie.iter non-recursive (#2733) 2016-10-20 14:49:44 +02:00
Arkadiy Paronyan
906dcd7bfe Block import optimization (#2748)
* Block import optimization

* whitespace

[ci:none]
2016-10-20 14:49:12 +02:00
Jaco Greeff
8ef598990a Update js-precompiled to 20161020-110858 (#2752) 2016-10-20 14:35:48 +02:00
Tomasz Drwięga
cd4e21e1b4 Fixing small files fetching (#2742)
* Fixing small files fetching

* Fixing a case where tranfer encoding is not chunked
2016-10-20 12:57:48 +02:00
Arkadiy Paronyan
7db42df1db Fixed stalled sync (#2747) 2016-10-20 12:56:37 +02:00
Jannis Redmann
d2e4bafaa5 refactor signer components (#2691)
* remove TransactionPendingWeb3

* remove TransactionFinishedWeb3

* remove SignRequestWeb3
2016-10-20 11:31:23 +02:00
Jaco Greeff
81f8e86e47 Png images with backgrounds from original svg (#2740) 2016-10-20 11:25:36 +02:00
Nicolas Gotchac
1e21b07e07 Make address selection searchable (#2739)
* Remove padding on address input if empty (#2141)

* Use Autocomplete to make address selection searchable (#2141)

* Adds AutoComplete Wrapper (#2141)
2016-10-20 11:25:20 +02:00
Jannis Redmann
9b246245bf very basic dapp add/remove interface (#2721)
* refactor dapp loading

* basic modal window

* UI for removing dapps

* button to open modal

* eslint 💄, make dialog scrollable

* Dialog -> ui/Modal

* show dapp hash
2016-10-20 11:22:25 +02:00
Arkadiy Paronyan
20e1d575da Frontport commits from beta to master (#2743)
* Remove count limit for local transactions (#2634)

* Fixed stalled sync
2016-10-20 00:33:00 +02:00
Denis S. Soldatov aka General-Beck
3b8247b631 Update gitlab-ci
git submodule update --init - windows
2016-10-20 02:53:16 +07:00
Nicolas Gotchac
248437fa1d Implements Trace API Formatter (#2732)
* Add formatter for Traces API output (#2700)

* Adding formatter tests (#2700)
2016-10-19 20:15:27 +02:00
Robert Habermeier
146cefdb32 bump parking_lot to 0.3.x series (#2702) 2016-10-19 18:35:56 +02:00
keorn
aa52b04e31 Unify major syncing detection (#2699)
* simplify major sync detection

* fix typos

* fix merge

* more realistic EthTester

* add new synced state
2016-10-19 18:35:39 +02:00
Nicolas Gotchac
319cfb278c Custom Input props value change must be reflected (#2734) (#2735) 2016-10-19 18:34:56 +02:00
Tomasz Drwięga
048d6968b0 Fixing build UI stuff along with Rust (#2726) 2016-10-19 18:33:24 +02:00
Jaco Greeff
a71006ebc4 Merge pull request #2731 from ethcore/ng-copy-clipboard-fix
Fixed Snackbar not showing and/or behind transactions (#2730)
2016-10-19 18:04:18 +02:00
Denis S. Soldatov aka General-Beck
5eca5f7bd0 Update gitlab-ci
allow_failure: true to Wondows build
2016-10-19 22:47:14 +07:00
keorn
b039323793 Merge pull request #2728 from ethcore/tests-bump
Updating json tests to latest develop commit
2016-10-19 16:30:56 +01:00
Denis S. Soldatov aka General-Beck
d8dd3a8019 Update gitlab-ci
git submodule update --init
2016-10-19 22:27:35 +07:00
Nicolas Gotchac
c50ef499b3 Fixed Snackbar not showing and/or behind transactions (#2730) 2016-10-19 16:58:14 +02:00
Jannis Redmann
9a615da8b2 merge #2727 from dapps-show-errors
dapps: show errors
2016-10-19 16:51:05 +02:00
Jannis R
dd51c7ef42 dapps: show errors 2016-10-19 16:40:39 +02:00
Tomasz Drwięga
9869a85ed5 Bumping json tests 2016-10-19 16:31:51 +02:00
Jannis Redmann
60c01e8cc3 merge #2722 from logs-break-lines
node logs: break lines
2016-10-19 15:17:55 +02:00
Denis S. Soldatov aka General-Beck
d5a898e761 Update gitlab-ci
Add `git submodule init && git submodule update` in Windows build
2016-10-19 19:35:53 +07:00
Jannis R
c4b60b8552 fix styling 2016-10-19 14:03:33 +02:00
Jannis R
6c6ad6d660 node logs: break lines 2016-10-19 13:36:08 +02:00
Tomasz Drwięga
fcac518644 Bumping JSON-RPC http server (#2714) 2016-10-19 13:24:48 +02:00
Nicolas Gotchac
dd89ecea43 Add 'Copy to Clipboard' icon in Accounts Header (#2167) (#2716) 2016-10-19 13:24:22 +02:00
Jannis Redmann
cf170418d5 merge #2720 from ng-ui-tags-fixes
Sort tags when displaying ; use AND for search results
2016-10-19 13:21:54 +02:00
Jaco Greeff
b9a4e42bbe allow-same-origin for iframe (#2711) 2016-10-19 13:18:58 +02:00
Nicolas Gotchac
749e1e44b9 Use Array.prototype.some instead of filter then length 2016-10-19 13:15:01 +02:00
Nicolas Gotchac
88eb72468e Use AND instead of OR for tags search // Sort tags when displayed (#2719) 2016-10-19 13:01:06 +02:00
Jaco Greeff
57f33c45cc Update Registry.sol address (mainnet) (#2713) 2016-10-19 12:35:56 +02:00
Nicolas Gotchac
cc10f412dc Allow tags for Accounts, Addresses and Contracts (#2712)
* Added tag to the editMeta Modal (#2643)

* Added Tags to ui and to contract/address/account Header (#2643)

* Added tags to summary (#2643)

* Added Search capabilities to contracts/address book/accounts from tokens
(#2643)

* fixes eslint

* Using Chips/Tokens for search (#2643)

* Add search tokens, clickable from List (#2643)

* Add sort capabilities to Accounts / Addresses / Contracts (#2643)

* Fixes formatting issues + state updates after component unmount bug
(#2643)

* Remove unused import

* Small fixes for PR #2697

* Added default sort order for Contracts/Addresses/Accounts

* Using official `material-ui-chip-input` NPM package

* Removed LESS from webpack
2016-10-19 11:51:02 +02:00
Jaco Greeff
dadd6b1e7c Correct parameters for eth_sign (#2703)
* Cherry-pick eth_sign update/fix

* Correct sign documentation (signs txhash)
2016-10-19 11:04:26 +02:00
Jaco Greeff
6aed6a45d3 Bump js-precompiled to 20161018-161705 (#2698)
* Global fetch before specific sha fetch

* Update to js-precompiled 20161018-161705
2016-10-19 11:03:08 +02:00
Jaco Greeff
b359e09bb6 Add inject.js (for web3 exposed) (#2692) 2016-10-19 11:02:42 +02:00
Tomasz Drwięga
5e67c89b4b Remove obsolete dapps and update security headers (#2694)
* Embed allowed only on signer port

* Adding security headers to dapps

* Adding security headers to signer

* Removing old dapps
2016-10-19 11:02:21 +02:00
Arkadiy Paronyan
487dfb0208 Snapshot sync part 2 (#2098)
* Split block downloader into a module

* Snapshot sync progress

* Warp sync CLI option

* Increased snapshot chunk and ping timeouts

* Fixed an issue with delayed writes

* Updated bootnodes

* Don't run pending IO tasks on shutdown

* Optional first_block; removed insert_snapshot_block

* Fixing expect calls

* Fixed stalled sync

* style and docs

* Update block_sync.rs

[ci:skip]
2016-10-18 18:16:00 +02:00
Nikolay Volf
dba2d79b56 fix issues with no test dir present (#2659) 2016-10-18 16:44:40 +02:00
Jaco Greeff
3c0b02ffe6 Apply UI PRs after master merge (#2690) 2016-10-18 16:44:09 +02:00
Tomasz Drwięga
4d48054cee Fixing importing traces for non-canon blockS (#2683) 2016-10-18 16:43:42 +02:00
Arkadiy Paronyan
ed804341bd Fixing random test failures (#2577) 2016-10-18 16:36:43 +02:00
Nikolay Volf
723eb164d1 disable ipc by default (#2657) 2016-10-18 14:03:36 +02:00
Robert Habermeier
0eb8cb453b Merge pull request #2658 from ethcore/snapshot-earliest-era
use pruning history in CLI snapshots
2016-10-18 13:57:43 +02:00
Tomasz Drwięga
70c3001d2d Fixing --no-default-features again and evmbin (#2670)
* Fixing --no-default-features again and evmbin

* Fixing evmbin Result
2016-10-18 12:13:49 +02:00
Jaco Greeff
1e6a2cb378 Initial new UI source code import (#2607)
* address -> name mappings

* expanding, loading all coin details

* send use only actual BasicCoin tokens registered (any reg)

* sending token & accounts

* form styling updates

* send form layout in place

* coin send working as expected

* api subscriptions on multiple addresses

* bring in events

* simplify

* basic events display in-place, functionally complete

* basic functionality in-place

* fix horrible event address issue

* rwork display of events slightly

* test TLA availability

* table for owner -> tokens

* fix signature lookup address

* fix signature lookup address

* basic overview styling

* txhash links

* page layout adjustments

* background import

* adjust colors

* no global registration, simplify color selection

* updated styling

* connection dialog for "busy connecting"

* initial token connection - WIP

* init token updates take place

* basic test for manual token

* rework connection display

* allow updates of the secure token

* first stab at making the build build

* update runner tags

* fix linting issues

* skip tests requiring network (should be e2e, TODO)

* re-enable javascript tag/runner

* release push does the trick

* push to any branch, CI name

* javscript-test runner as well

* swap dependencies build requires test

* revert stages swap

* retrieve images associated with tokens

* remove js build deps order

* null image when hash = 0x0

* 6x64 images (hashes for registries)

* don't pass tokens as prop to IdentityIcon

* check images against content hash pictures

* cleanup signer after connection changes

* fix naming typo

* display unknownImages for balances (not available as content hash)

* unknownImage for transfer dialog

* basic githubhint layout

* single input for commit/filename

* ethcore_hashContent call

* lookup hash

* registration in place

* fixes

* events is using a proper table

* pass value through as-is

* stop wrongly using main app IdentityIcon

* NEVER export class instance functions

* alignment back to normal

* typo  in definition

* set & get images working (mostly)

* show content retrieval info

* set exitcode via ||

* use javascript:latest images

* disable npm progress bar

* rename phase I

* rename phase II

* only send build output to GitHub on major branches

* also run the build step as part of the test (until comprehensive)

* ci-specific build (no webpack progress)

* allow for account creation via recovery phrase

* display account uuid (where available), closes #2546

* connection dialog now shows up in dapps as well, closes #2538

* token images show up as expected

* IdentityName component added and deployed

* fix padding tests

* adjust tests to map to stricter 0x-prefixed hex

* render names via common component for the address -> name

* split lint into seperate script (early exit)

* test phases changed to lint, test & pack

* pack part of test phase

* remove files marked for deletion (cleanup)

* Signer cleanups, start moving in the direction of the rest

* add personal signer methods

* basic signer request subscription

* don't poll blockNumber when not connected

* missing return, creating massive ws queue backlogs

* ΞTH -> ETH

* fix failing tests

* registry uses setAddress to actually set addresses now

* bytes mapping operates on lowerCase hex strings

* sha3 ids for each application

* add dappreg to list of contracts

* adjust alignment of queries

* show gas estimation log

* abi with payable for register function

* add key as required

* image retrieval from dappreg

* use proper Image urls

* embed and link apps from Parity, retrieved via /api/apps

* filter apps that has been replaced

* proxy entry for parity-utils

* add basiccoin abi

* add support for fallback abi type

* capture constructor paramaters

* merge master into js

* move images to assets/images/

* add font assets

* import fonts as part of build

* don't inline woff files

* Revert "merge master into js"

This reverts commit cfcfa81bd26f1b3cbc748d3afa1eb5c670b363fe.

* remove unused npm packages

* information on gas estimates (like almost everywhere else)

* don't pass gas & gasPrice to estimation

* display account passwordhint when available

* signer subscriptions based on polling & function trapping

* pending requests retrieved via jsapi

* update signer middleware

* remove all web3 instances

* remove web3 package

* last web3 dependencies removed

* no need to toChecksumAddress - api takes care of it

* expand description for personal_confirmRequest

* Signer conversion from web3 -> parity.js completed

* explicit in no return

* green circle background

* remove generated background

* convert /api/* paths to localhost:8080/api/* paths (hard-coded, temporary)

* change dapps to load from localhost:8080/ui/*

* remove dangling web3 files

* update manager test for signer

* /api/ping -> /

* additional token images

* additional token images

* add missing styles.css for 8180 error pages

* cater for txhash returning null/empty object

* adjust output directories

* Release merge with origin with ours strategy

* additional token images

* cater for development server

* s/localhost/127.0.0.1/ (cater for origin)

* Fix address selection for contract deployment

* Adjust z-index for error overlay

* better text on unique background pattern

* fix signer rejections

* Don't allow gavcoin transfer with no balance

* fix txhash rendering in signer

* remove unnecessary ParityBackground

* script to update js-precompiled

* Redirect from :8080 to :8180

* Remove extra return

* Dapp logo images
2016-10-18 11:52:56 +02:00
Robert Habermeier
c2dd37bb69 use pruning history in CLI snapshots 2016-10-17 13:05:57 +02:00
Tomasz Drwięga
6c7af57529 Initial import of new UI (compiled JS code) (#2220)
* Normalizing dapps format for signer.

* Adding new ui

* Adding New UI to dapps

* Adding parity styles for signer errors

* Adding pre-compiled JS as submodule

* Fixing struct declaration [ci:skip]

* Bumping js

* Adding styles

* build dest

* Correct whitespace

@tomusdrw please note the alterations - no mixing tabs and spaces in the indentation portion and always just one tab per indent.
2016-10-17 11:56:42 +02:00
Tomasz Drwięga
238840d74e Fixing evmbin compilation (#2652) 2016-10-17 11:55:47 +02:00
Gav Wood
b5c65e3df5 Fix up ETC EIP-150 transition to 2,500,000. (#2636) 2016-10-16 13:44:56 +02:00
Tomasz Drwięga
709f00ceb7 Fixing compilation without default features (#2638)
* Fixing compilation without default features

* Removing unused import
2016-10-16 00:20:11 +02:00
keorn
303f922ebd steps based on unix epoch 2016-10-15 13:55:10 +01:00
Tomasz Drwięga
cceca916a1 [frontport] CLI to specify queue ordering strategy (#2494) (#2623)
* CLI to specify queue ordering strategy (#2494)

* Alter gas priorities to include gas_price also

* CLI options and tests

* Adding ordering by gas

* whitespace

Conflicts:
	ethcore/src/miner/miner.rs
	ethcore/src/miner/mod.rs
	ethcore/src/miner/transaction_queue.rs
	parity/cli/usage.txt
	parity/configuration.rs

* fix build
2016-10-15 14:46:33 +02:00
Tomasz Drwięga
03c1559ead Support for decryption in Signer (#2421)
* Adding some tests

* Implementing decrypt in queue

* Removing code duplication.

* Printing public key in ethstore

* Bump UI

* Normalizing dapps format for signer.

* Fixing tests compilation

* fix whitespace

[ci:skip]
2016-10-15 14:44:08 +02:00
Gav Wood
85eeb3ea6e EIP150.1c (#2591)
* EIP150.1b first part.

* Add documentation.

[ci:skip]

* Tweak comment

* Fix some tests.

* Fix create

* Add the new EIP150 test. (#2563)

* Fix create some more.

* Another fix for create.

* Final fixes.

* Enable EIP150 test.

* Revert the costly suicides to respect EIP150.1b.

* Fixups for EIP150.1c

* Update tests.

* Updating tests

* Adding state tests

* Updating tests

* Updating HF block

* Removing flushln [ci:skip]

* Commenting out suicide test

* New tests.

* Switch to EIP tests.

* Rename some stuff, combine transition tests.

* Fix U256 overflows.

* Name cleanups and an effort to fix tests.

* Rename back for clarity.

* Fix non-EIP-150 OOG CALLs

* New transition block number & additional EIP150 tests

* Morden transition block set; Tests updated

* Added missing test
2016-10-15 14:39:15 +02:00
Robert Habermeier
8263bd4be2 snapshot: single byte for empty accounts (#2625) 2016-10-14 15:45:45 +03:00
Robert Habermeier
f28b8352c1 Configurable history size in master (#2606)
* split journaldb commit into two functions: journal_under and mark_canonical

* use new commit mechanism in client

* Configurable history size in master

* Reduce DB history

* Configurable history size

* Set min history size

* Test

* Fixed a test and reduced the limit
2016-10-14 15:44:56 +03:00
Arkadiy Paronyan
835cd13c0e Database performance tweaks (#2619) 2016-10-14 15:44:11 +03:00
keorn
8ad1582208 enable suicide json test (#2626) 2016-10-14 14:28:02 +02:00
Robert Habermeier
19e6cbe0b2 Merge pull request #2329 from ethcore/journaldb_commit
Split journaldb commit into two functions: journal_under and mark_canonical
2016-10-14 13:57:17 +02:00
Arkadiy Paronyan
f9440f20b8 Fixed tx queue limit for local transactions (#2616)
* Fixed tx queue limit for local tx

* Fixing test

* Increas gas limit to 20x
2016-10-14 13:56:00 +02:00
Tomasz Drwięga
dbc25cf4e7 Additional logs when transactions is removed from queue (#2617) 2016-10-14 13:55:48 +02:00
Robert Habermeier
4581469e78 mitigate refcell conflict in state diffing (#2601)
* mitigate refcell conflict in state diffing

Also uses RefCell::get_mut in a few places.

* Add test case
2016-10-13 23:28:56 +02:00
Robert Habermeier
92f7f46fd3 Merge branch 'master' into journaldb_commit 2016-10-13 13:02:53 +02:00
Robert Habermeier
4bcc9e3b49 Merge pull request #2516 from ethcore/canon-cache-size
Mostly configurable canonical cache size
2016-10-12 21:48:29 +02:00
Svyatoslav Nikolsky
c9ce25c8f3 Added peers details to ethcore_netPeers RPC (#2580)
* added peers details to ethcore_netPeers RPC

* fixed build (traits autoimplemented)

* - documentation fixes
- spaces -> tabs
- Rust-way Option's handling

* prepare for new protocols in ethcore_netPeers

* commas & documentation
2016-10-12 20:18:59 +02:00
keorn
44f42ac7d3 Merge remote-tracking branch 'parity/master' into auth-round-no-mocknet
Conflicts:
	ethcore/src/state/mod.rs
	ethcore/src/tests/mod.rs
2016-10-12 18:39:31 +01:00
Denis S. Soldatov aka General-Beck
693b0ec402 Update gitlab-ci
copy CI yml beta -> master
2016-10-13 00:21:33 +07:00
Denis S. Soldatov aka General-Beck
559a441701 Update gitlab-ci
correct lint errors
2016-10-12 23:39:58 +07:00
Denis S. Soldatov aka General-Beck
d27924cc6c Update gitlab-ci
beta - > master
2016-10-12 22:37:26 +07:00
Denis S. Soldatov aka General-Beck
eb40750cbe Update gitlab-ci
fix windows installer
2016-10-12 16:20:30 +07:00
keorn
0189096caf Update json test suite (#2574)
* update json test suite

* comment out the incomplete test
2016-10-12 10:06:23 +02:00
Denis S. Soldatov aka General-Beck
c24123e09c Update gitlab-ci
fix errors in windows build
2016-10-12 13:26:37 +07:00
Denis S. Soldatov aka General-Beck
c658171d30 Update gitlab-ci
[ci:skip]
Deny warnings in windows build
2016-10-12 01:50:55 +07:00
Denis S. Soldatov aka General-Beck
0e7508e0c2 Update gitlab-ci
switch to curl in win build
2016-10-12 01:38:23 +07:00
keorn
214916a414 new vote counter 2016-10-11 18:38:05 +01:00
keorn
e343153f06 mixed merge and changes... 2016-10-11 18:37:31 +01:00
Denis S. Soldatov aka General-Beck
327f5e0dd0 Update gitlab-ci
add windows installer
remove arm build from master
2016-10-12 00:09:59 +07:00
Robert Habermeier
ea68546616 Network-specific nodes file (#2569)
* network-specific nodes.json

* save nodes.json periodically

* squash warnings
2016-10-11 18:42:20 +02:00
keorn
5e24a35272 dont close block if is_invalid (#2572) 2016-10-11 16:19:00 +02:00
Robert Habermeier
303654da38 deny compiler warnings in CI (#2570) 2016-10-11 15:53:22 +02:00
Robert Habermeier
86d4e5b94a Merge pull request #2562 from ethcore/bump-bigint-version
update ethcore-bigint crate to 0.1.1
2016-10-11 14:13:12 +02:00
Robert Habermeier
5e22d23994 update bigint crate to 0.1.1 2016-10-11 12:53:50 +02:00
Arkadiy Paronyan
55dbd5bb1f Fixed race condition in trace import (#2555) 2016-10-10 23:07:29 +02:00
Arkadiy Paronyan
193cdb1326 Don't activate peers on connect; Test (#2537) 2016-10-10 23:05:41 +02:00
Arkadiy Paronyan
26d7712d30 TX queue gas limit config and allow local transactions over the gas limit (#2553)
* Gas limit config; Allow local transactions over the limit

* Fix typo

[ci:skip]
2016-10-10 23:04:43 +02:00
Robert Habermeier
91f0c6896c LES boilerplate 2016-10-10 18:48:47 +02:00
keorn
64f6f836ab Remove unwrap from client module (#2554)
* remove unwraps in client

* imporve block hash expect message
2016-10-10 17:43:44 +02:00
Arkadiy Paronyan
ae6c965176 Removing unwarps from sync module (#2551) 2016-10-10 17:43:05 +02:00
Jaco Greeff
06df5357e9 adjust app_id where /api/content/<hash> is called, fixes #2541 (#2543) 2016-10-10 16:34:16 +02:00
keorn
271bcf4d5d Return errors from eth_call RPC (#2498)
* propagate call errors

* add error code for execution error
2016-10-09 11:45:12 +02:00
Arkadiy Paronyan
d6cad29f49 Print backtrace on panic (#2535) 2016-10-08 17:33:38 +02:00
Arkadiy Paronyan
f200eb2cfe Backports to master (#2530)
* Transaction queue limited by gas (#2528)

* Use global state cache when mining (#2529)
2016-10-08 10:35:54 +02:00
Robert Habermeier
4276ab8a5f fix JSON tests 2016-10-07 13:59:50 +02:00
Robert Habermeier
19e5bede7f Merge branch 'master' into canon-cache-size 2016-10-07 13:55:20 +02:00
Arkadiy Paronyan
72ec9366ad Handle reorganizations in the state cache (#2490)
* Handle reorganizations in the state cache

* Renamed and documented a few methods

* Basic test

* Renamed pending to buffered

* Updated cache on sealed block

* More renames and updated documentation

* Minor doc tweaks
2016-10-07 12:34:32 +01:00
Nikolay Volf
5354a0905e terminate after 30 seconds (#2513) 2016-10-07 12:10:53 +01:00
Robert Habermeier
299ceb8092 Merge branch 'master' into canon-cache-size 2016-10-07 12:42:51 +02:00
Robert Habermeier
8a0e98d4cc configurable jump table cache size 2016-10-07 12:18:42 +02:00
Tomasz Drwięga
4655fd04a5 Using pending block only if not old (#2514) 2016-10-07 11:13:15 +01:00
Arkadiy Paronyan
7756031d06 Caching optimizations (#2505) 2016-10-07 11:10:12 +01:00
Arkadiy Paronyan
533af43313 Fixed overflow panic in handshake_panic (#2495) 2016-10-07 10:34:06 +02:00
keorn
5f0ed9ddce Trim password from file (#2503)
* trim password

* indicate trimming in doc
2016-10-07 09:39:16 +02:00
Tomasz Drwięga
d9ca01cb6b Fixing RPC Filter conversion to EthFilter (#2500) 2016-10-07 09:18:32 +02:00
Robert Habermeier
745a50dfdf configurable state cache size 2016-10-07 00:28:42 +02:00
Tomasz Drwięga
0c7a28779d Fixing error message for transactions (#2496) 2016-10-06 20:35:31 +02:00
Nikolay Volf
ac0ae2442f Adjustable stack size for EVM (#2483)
* stack size for io workers & evm threshold

* rust way to remember stack size

* right value

* 24kb size

* some stack reduction
2016-10-06 18:42:54 +02:00
Tomasz Drwięga
75d9174294 Fixing penalization in future (#2499) 2016-10-06 18:40:40 +02:00
Arkadiy Paronyan
6c1b2fbed5 Preserve cache on reverting the snapshot (#2488)
* Preserve cache on reverting the snapshot

* Renamed merge_with into replace_with

* Renamed and documented snapshotting methods
2016-10-06 14:54:05 +01:00
Arkadiy Paronyan
e380955c34 RocksDB version bump (#2492) 2016-10-06 15:24:47 +02:00
Robert Habermeier
5a959c67e4 Merge pull request #2489 from ethcore/txqueuesize
Increase default size of transaction queue
2016-10-06 12:44:16 +02:00
Arkadiy Paronyan
b1ab0d0cbf EVM optimization (#2487) 2016-10-06 11:14:05 +02:00
Tomasz Drwięga
a9391f91f7 Increase size of transaction queue by default 2016-10-06 10:20:05 +02:00
Arkadiy Paronyan
ecf098e9a4 Track dirty accounts in the state (#2461)
* State to track dirty accounts

* Removed clone_for_snapshot

* Renaming stuff

* Documentation and other minor fixes

* Replaced MaybeAccount with Option
2016-10-06 01:53:23 +02:00
Jaco Greeff
33abb47222 update registrar test with generic non-empty test (#2476)
* update registrar test with generic non-empty test

* updated test, length check + parsing
2016-10-05 19:44:09 +02:00
Nikolay Volf
7526b1d44b Derive IPC interface only when ipc feature is on (#2463)
* derive -> ipc

* accident repair

* conditional ipc deriving

* fix test
2016-10-05 19:42:57 +02:00
keorn
1f56588b87 Merge remote-tracking branch 'parity/master' into bft
Conflicts:
	ethcore/src/client/client.rs
2016-10-05 14:57:14 +01:00
Arkadiy Paronyan
eae2466107 Merge pull request #2471 from ethcore/fix-keys
Fix ethstore opening all key files in the directory at once
2016-10-05 15:41:12 +02:00
Robert Habermeier
8d7244c09f light client sync stubs 2016-10-05 15:35:31 +02:00
keorn
096b71feb2 add Vote generation 2016-10-05 14:33:07 +01:00
keorn
cb2c9938a1 keep author as validator 2016-10-05 14:32:15 +01:00
keorn
64d7bcbd0c validators -> authorities 2016-10-05 14:31:31 +01:00
keorn
a03db2ff29 add is_new_best method to engines 2016-10-05 14:30:44 +01:00
keorn
67c24dcb95 use Engine to order blockchain 2016-10-05 14:29:35 +01:00
Nikolay Volf
eddfb475c6 get rid of collects 2016-10-05 14:37:27 +03:00
Robert Habermeier
ed06572bd4 Light provider trait 2016-10-05 13:22:49 +02:00
Robert Habermeier
e3c4695274 stub implementations of light client trait 2016-10-05 13:21:07 +02:00
Nikolay Volf
1782b659d1 Merge pull request #2460 from ethcore/ipc-codegen
Merge IPC codegen attributes into one
2016-10-05 14:30:21 +04:00
Robert Habermeier
8a5576d133 balance rates of draining and importing 2016-10-05 12:10:28 +02:00
Nikolay Volf
02c04a3193 Merge pull request #2464 from svyatonik/master
Close after importing keys from geth
2016-10-05 11:54:15 +04:00
Nikolay Volf
a7e09d8842 Update codegen.rs 2016-10-05 10:36:09 +03:00
Denis S. Soldatov aka General-Beck
ced597e282 Update gitlab-ci
fix windows checksum
2016-10-05 10:53:19 +07:00
svyatonik
0e8dda740f * PR 2464: human-readable error message + struct documentation 2016-10-05 00:13:07 +03:00
Robert Habermeier
abbf3b3c58 verification-rate based thread scaling 2016-10-04 20:09:54 +02:00
Robert Habermeier
b7814fa65c Port a couple more RPC APIs to the new auto args (#2325)
* add auto-args deserialization for RPC

* make block param member public

* change BlockParam to a more generic Trailing<T> mechanism

* define work type

* build_rpc_trait macro, implement eth protocol

* fix up tests

* move eth_filter API to new macro

* port ethcore module to new rpc macro

* port ethcore_set to auto_args

* port net RPC to auto_args

* port rpc meta api to new

* skeleton for async RPC auto_args

* macro implementations for strongly-typed async RPC wrapper

* clarify docs

* reflect new required Rust version in README

[ci skip]
2016-10-04 19:05:46 +02:00
Nikolay Volf
0002bfadab accident repair 2016-10-04 19:22:26 +03:00
Nikolay Volf
2b147616fd derive -> ipc 2016-10-04 19:20:16 +03:00
Robert Habermeier
6e477951ba update rustc for appveyor to 1.12.0 (#2423)
* update rustc for appveyor to 1.12.0

* turn off MIR for windows builds
2016-10-04 17:32:26 +02:00
svyatonik
abc5db0f80 Remove redundant Box-ing. 2016-10-04 16:01:39 +03:00
svyatonik
cb0e0abc4a closes ethcore/parity#1918 2016-10-04 11:44:47 +03:00
Tomasz Drwięga
48bb890045 Better EVM informant & Slow transactions warning (#2436)
* EVM informant. Slow transactions tracking

* Additional feature for tests
2016-10-03 23:29:46 +02:00
Robert Habermeier
2d28c703d6 reuse add_verifier instrumentation, rolling sample of 5 ticks 2016-10-03 20:39:52 +02:00
Robert Habermeier
d205c0800c Merge pull request #2437 from ethcore/signer
Fixing Signer token RPC API
2016-10-03 20:34:55 +02:00
Robert Habermeier
5e382602dd fix logging accuracy 2016-10-03 20:09:57 +02:00
Robert Habermeier
a7b5dff252 ethash unsafety cleanup 2016-10-03 19:47:07 +02:00
Robert Habermeier
2d907f3322 auto-adjust number of verification threads 2016-10-03 19:41:00 +02:00
Arkadiy Paronyan
10d572e24f Fixed FatDB check (#2443) 2016-10-03 19:31:50 +02:00
Tomasz Drwięga
a0a13600ef Fixing Signer token RPC API 2016-10-03 15:01:10 +02:00
Nikolay Volf
e1d3b3fff8 Accounts bloom in master (#2426)
* bloom crate link

* database layout and outdated tests

* state db alterations

* v10 migration run

* using arc

* bloom migration

* migration fixes and mess

* fix tests
2016-10-03 12:02:43 +02:00
Marek Kotewicz
06fe768ac2 Polishing Actually enable fat db pr (#1974) (#2048)
* Actually enable fat db, and do RPCs for it.

* Implement HashDB traits for AccountDB.

* user defaults

* finished user defaults

* user defaults are network-dependent

* added tests for newly added functions, logger is initialized first

* dir cleanup in progress

* user_file is placed next to snapshots

* fixing requested change
2016-10-03 11:13:10 +02:00
Arkadiy Paronyan
0dcdaa7a2a Jumptable cache (#2427)
* Jumptable cache

* Updated registrar address
2016-10-02 18:45:36 +02:00
Arkadiy Paronyan
80afb78c7f Disabling debug symbols due to rustc 1.12 memory usage 2016-10-02 09:40:54 +02:00
Jaco Greeff
b1d8b84eb9 update Morden registry address (#2417) 2016-10-01 15:16:23 +02:00
Nikolay Volf
1029f8438c using arc (#2420) 2016-10-01 14:33:19 +02:00
Nikolay Volf
1d3e242d37 Merge pull request #2395 from ethcore/bloom-crate
Journaling bloom filter crate in util
2016-10-01 01:08:26 +04:00
NikVolf
18630496d5 asterisk space 2016-09-30 21:02:16 +03:00
NikVolf
fa050246af removed redundant memcopy 2016-09-30 20:43:57 +03:00
Denis S. Soldatov aka General-Beck
43e0970a54 Update gitlab-ci
add checksum
2016-09-30 21:02:33 +07:00
keorn
76d7ec84bb new block ordering engine method 2016-09-30 14:43:52 +01:00
keorn
9ca938f740 Merge remote-tracking branch 'parity/master' into bft
Conflicts:
	ethcore/src/client/client.rs
	sync/src/api.rs
2016-09-30 12:44:52 +01:00
keorn
8a51ae02aa simplify seal 2016-09-30 12:22:46 +01:00
Tomasz Drwięga
443eb19739 Fixing logs-receipt matching (#2403) 2016-09-30 11:14:30 +02:00
Robert Habermeier
a37def823e Merge pull request #2405 from ethcore/fix-beta-eq
fix broken beta compilation
2016-09-29 18:58:46 +02:00
keorn
d59e9e816e fix tests compilation 2016-09-29 16:57:52 +01:00
Robert Habermeier
eb4e00114c fix broken beta compilation 2016-09-29 17:55:39 +02:00
keorn
d085146254 separate params out 2016-09-29 15:32:49 +01:00
keorn
6cbb859bd2 add tendermint message types and deserialization 2016-09-29 14:44:42 +01:00
Tomasz Drwięga
01018b417a Fixing transaction queue (#2392) 2016-09-29 12:46:04 +02:00
NikVolf
59c0551ff4 separate mod for tests 2016-09-29 13:39:13 +03:00
NikVolf
b477ca17fe bloom filter crate 2016-09-29 13:19:39 +03:00
Tomasz Drwięga
1c61d7c813 Fixing Delegate Call in JIT (#2378)
* Detecting DELEGATE_CALL in JIT

* Fixing evmjit tests
2016-09-28 23:33:12 +02:00
Tomasz Drwięga
424b46b428 Prioritizing re-imported transactions (#2372)
* Prioritizing re-imported transactions

* Fixing compilation on beta
2016-09-28 23:32:32 +02:00
Gav Wood
bb96849620 Revert #2172, pretty much. (#2387)
* Revert #2172, pretty much.

* Tidy up whitespace.

[ci:skip]

* Force CI.
2016-09-28 23:31:59 +02:00
Robert Habermeier
f4dfbada0a correct sync memory usage calculation (#2385) 2016-09-28 23:00:12 +02:00
Denis S. Soldatov aka General-Beck
6b541bc774 Update gitlab-ci
add RUST_BACKTRACE=1 in test stage
2016-09-29 02:50:37 +07:00
Nikolay Volf
6df1c3d157 Merge pull request #2334 from ethcore/fix-migrations
fix migration system for post-consolidation migrations, better errors
2016-09-28 19:54:34 +04:00
Gav Wood
948b614f40 Fix the traceAddress field in transaction traces. (#2373)
* Fix the traceAddress field in transaction traces.

* Add test

* Fix warning.

* Fix test

* Additional fix.

* Fix tests content.
2016-09-28 17:24:26 +02:00
Tomasz Drwięga
baa2feaca6 Removing extras data from retracted blocks. (#2375)
* Removing extras data from retracted blocks.

* Adding a test case
2016-09-28 15:49:42 +02:00
Marek Kotewicz
c0e72209e8 fixed #2263, geth keys with ciphertext shorter than 32 bytes (#2318)
* fixed #2263, geth keys with ciphertext shorter than 32 bytes

* replace unwrap with more helpful expect

* tests for decrypting short secrets
2016-09-28 15:47:52 +02:00
Gav Wood
15a14a5f49 Expanse compatibility (#2369)
* Add support for Expanse.

* Fix build.

* Refactor to be able to alter the eth subprotocol name

* Fix JSON.

* Support exp hardfork.

* Fix exp json again.

* Fixed test

* Fix tests.
2016-09-28 14:21:59 +02:00
Robert Habermeier
fb92a98451 Specify column cache sizes explicitly; default fallback of 2MB (#2358)
* allow specifying cache sizes for specific columns

* initialize client with correct cache size

* set cache size in client service

* default cache size for unspecified columns

* fix comment

* fix column selection logic

* fix migrations module
2016-09-27 18:16:32 +02:00
Arkadiy Paronyan
ad63780b4d Canonical state cache (master) (#2311)
* State cache

* Reduced copying data between caches

Whitespace and optional symbols

* Reduced copying data between caches

Whitespace and optional symbols

* Set a limit on storage cache

* Style and docs
2016-09-27 18:02:11 +02:00
keorn
7e1d7148c7 block time in decimal 2016-09-27 16:06:13 +01:00
keorn
1c801c99af revert random path drop panic 2016-09-27 15:54:10 +01:00
Robert Habermeier
9d4bee4922 make block queue into a more generic verification queue and fix block heap size calculation (#2095)
* move block queue to own module, a couple readability changes

* make block queue generic over verifiable data

also fixes heap size calculation

* make block queue into a more generic verification queue

* some module reoganization

* implement header queue

* clean up verification error messages
2016-09-27 16:50:24 +02:00
keorn
28cf91c7a5 remove mocknet stuff, clean up debug 2016-09-27 15:50:16 +01:00
Tomasz Drwięga
d7bbc5cc3f Hash Content RPC method (#2355)
* Moving file fetching to separate crate.

* ethcore_hashContent

* Tests running on mocked fetch.

* Limiting size of downloadable assets
2016-09-27 16:27:06 +02:00
keorn
0c69d4a1ce Merge remote-tracking branch 'parity/master' into auth-round
Conflicts:
	devtools/src/random_path.rs
2016-09-27 12:39:25 +02:00
keorn
fd6900bbb3 Merge remote-tracking branch 'parity/master' into bft
Conflicts:
	Cargo.lock
2016-09-27 12:37:43 +02:00
Gav Wood
3fb3f1f54e Reorder transaction_by_hash to favour canon search (#2332)
* Reorder transaction_by_hash to favour canon search

* Fix build.

* Slightly cleaner function.

* Fix test.
2016-09-27 12:17:02 +02:00
keorn
5fac941738 Merge remote-tracking branch 'parity/master' 2016-09-27 12:14:40 +02:00
keorn
cf88641f99 more mocknet tests 2016-09-27 12:13:21 +02:00
keorn
ec058cdb50 reseal on timeout 2016-09-27 12:12:18 +02:00
Arkadiy Paronyan
bc4cbaac2b DIV optimization (#2327) 2016-09-27 11:27:11 +02:00
Tomasz Drwięga
2135ba467c Error when deserializing invalid hex (#2339)
Conflicts:
	rpc/src/v1/types/bytes.rs
2016-09-27 11:26:23 +02:00
sandakersmann
09210269c9 Changed http:// to https:// on some links (#2349)
Changed http:// to https:// on some links in README.md
2016-09-27 08:02:26 +02:00
Marek Kotewicz
56eb97abbf user defaults (#2014)
* user defaults

* finished user defaults

* user defaults are network-dependent

* added tests for newly added functions, logger is initialized first

* dir cleanup in progress

* user_file is placed next to snapshots
2016-09-26 19:21:25 +02:00
Tomasz Drwięga
598e9cea85 Fixing jit feature compilation (#2310) 2016-09-26 18:38:54 +02:00
Robert Habermeier
fe4f10382b Merge pull request #2292 from ethcore/txqueue
Tx Queue improvements
2016-09-26 18:29:29 +02:00
Robert Habermeier
b8b3f066c4 add a test 2016-09-26 18:25:11 +02:00
Robert Habermeier
3ebfbf3342 fix migration system, better errors 2016-09-26 18:08:04 +02:00
Robert Habermeier
e26a16c70c use new commit mechanism in client 2016-09-26 17:27:48 +02:00
Robert Habermeier
238b4962f0 split journaldb commit into two functions: journal_under and mark_canonical 2016-09-26 17:14:44 +02:00
Tomasz Drwięga
92451ef268 Lenient bytes deserialization (#2036)
* Lenient bytes deserialization

* Printing warning
2016-09-26 15:55:44 +02:00
Tomusdrw
4acd6cbe3b Fixing tests 2016-09-26 12:24:52 +02:00
Tomusdrw
ef1c8b1fc7 Merge branch 'master' into txqueue 2016-09-26 12:18:22 +02:00
Denis S. Soldatov aka General-Beck
abcdc8176f Update gitlab-ci
fix
2016-09-24 05:02:26 +07:00
Denis S. Soldatov aka General-Beck
f9d60d19d6 Update gitlab-ci
copy from beta
2016-09-24 04:34:42 +07:00
Tomasz Drwięga
97fcd60e56 saturating add
Conflicts:
	ethcore/src/miner/transaction_queue.rs
2016-09-23 20:59:41 +02:00
Gav Wood
06fc494d03 Remove crufty code 2016-09-23 20:53:37 +02:00
Gav Wood
5e7955b1f1 saturating not overflowing 2016-09-23 20:53:30 +02:00
Tomasz Drwięga
3e474216ac Peek transaction queue via RPC (#2270)
* Handle RLP to string UTF-8 decoding errors (#2217)

* pending transactions

Conflicts:
	rpc/src/v1/impls/ethcore.rs
	rpc/src/v1/traits/ethcore.rs
2016-09-23 20:53:21 +02:00
Tomasz Drwięga
efaef85565 Avoid penalizing legit transactions 2016-09-23 20:51:41 +02:00
Tomasz Drwięga
2874f464aa Penalize transactions with gas above gas limit
Conflicts:
	ethcore/src/miner/transaction_queue.rs
2016-09-23 20:49:02 +02:00
Tomasz Drwięga
62cbf9ce97 Improving txqueue logs 2016-09-23 20:30:12 +02:00
Robert Habermeier
ff0be9f361 Separate RPC serialization from implementation (#2072)
* add auto-args deserialization for RPC

* make block param member public

* change BlockParam to a more generic Trailing<T> mechanism

* define work type

* build_rpc_trait macro, implement eth protocol

* fix up tests

* move eth_filter API to new macro
2016-09-23 19:42:33 +02:00
Gav Wood
84ba75f7cb Add hash as CLI function (#1995)
* Add hash as CLI function

* Use streaming SHA3.
2016-09-23 15:28:09 +02:00
Tomasz Drwięga
aae6d19df9 Separate path for ext code size (#2251)
* Separate path for code size

* Actually use it for EVM

* add extcodesize to TestExt
2016-09-22 19:58:42 +02:00
Robert Habermeier
723d837d05 Snapshot format changes (#2234)
Closes #2213
Omit transaction and receipt roots from abridged block.
No longer use RLP compression.

Make ordered_trie_root generic over an iterator to save an allocation.

Breaks snapshot format backwards compatibility (with other 1.4 snapshots -- it's already been broken with 1.3).

Documentation will need updating
2016-09-22 19:47:03 +02:00
Tomasz Drwięga
862feb7172 Serving content at /api/content/<hash> (#2248) 2016-09-22 18:05:36 +02:00
Tomasz Drwięga
368aca521b Fails when deserializing non-hex uints (#2247) 2016-09-22 18:02:47 +02:00
Tomasz Drwięga
15488b3e40 Fixing output of eth_call and Bytes deserialization (#2230)
* Fixing eth_call to builtins

* Fixing bytes deserialization

* Removing comment
2016-09-22 14:50:00 +02:00
Gav Wood
07b5e9a5c7 Encryption, decryption and public key RPCs. (#1946)
* Fix up pending receipts details.

* Add support for additional params and registry over RPC.

* Fix tests.

* Add test, additional fix.

Fixes #1932.

* Fix up tests.

* Fix test.

* Fix test.

* Remove unused use.

* Add encryption, decryption and public-key RPCs.

* Remove &
2016-09-22 14:48:22 +02:00
Denis S. Soldatov aka General-Beck
5e0dcd0892 Update gitlab-ci
fix x86_64-pc-windows-msvc
2016-09-21 22:37:34 +07:00
Denis S. Soldatov aka General-Beck
79ce410299 Update .gitlab-ci.yml 2016-09-21 21:19:34 +07:00
Denis S. Soldatov aka General-Beck
e0afb8cd53 Update gitlab-ci
update deploy
2016-09-21 20:48:01 +07:00
Denis S. Soldatov aka General-Beck
5d0491f9af Update gitlab-ci
add deploy to S3
2016-09-21 18:45:21 +07:00
Arkadiy Paronyan
0688716af6 Handle RLP to string UTF-8 decoding errors (#2217) 2016-09-21 12:59:46 +02:00
Robert Habermeier
a100b9d09e Remove panickers from trie iterators (#2209)
* port trie iterators to use error handling

* use new trie iterators in snapshot

allows proper recovery from a premature periodic snapshot
2016-09-21 12:56:13 +02:00
Tomasz Drwięga
8c111da70b Limit for logs filter. (#2180)
* Limit for logs filter.

* Moving limit inside the filter object

* Fixing tests
2016-09-21 11:51:10 +01:00
Tomasz Drwięga
2e6684dae8 Various state copy optimizations (#2172)
* Avoid cloning clean stuff

* Don't clone state when closing/locking blocks

* handle errors in commit

* revert `close_and_lock` changes

* defer state root update until post state commit
2016-09-21 11:49:11 +01:00
Tomasz Drwięga
b7e2afd5c0 New signer token RPC & Initial signer connection without token. (#2096)
* Allowing signer to use initial token

* Generating new tokens via RPC

* Fixing RPC tests

* Fixing signer doctest

* whitespace

[ci:skip]

* whitespace

[ci:skip]
2016-09-21 11:44:49 +01:00
keorn
c57e3cefe4 sync check method 2016-09-21 10:29:44 +02:00
Robert Habermeier
93f82a1164 Merge pull request #2161 from ethcore/fixes
Fixing evm-debug
2016-09-20 19:21:25 +02:00
Denis S. Soldatov aka General-Beck
9b6d30f729 Update gitlab-ci
remove -export
2016-09-20 22:01:50 +07:00
Tomasz Drwięga
0921dffd86 Fixing trait definition 2016-09-20 16:25:22 +02:00
Robert Habermeier
28adfc32a1 Merge pull request #2204 from ethcore/sync-fix
Fix syncing with pv63 peers
2016-09-20 15:50:57 +02:00
keorn
9d23915caf more simulation methods 2016-09-20 15:48:17 +02:00
arkpar
302f8a190f Fix syncing with pv63 peers 2016-09-20 17:36:56 +08:00
keorn
44c4845d84 fix up step switching test 2016-09-19 18:40:25 +02:00
keorn
d84f94975f add proposer step to seal 2016-09-19 18:00:39 +02:00
keorn
7f177f27d8 revert dummy_client changes 2016-09-19 14:52:43 +02:00
keorn
49fba0b548 Merge branch 'master' into auth-round
Conflicts:
	ethcore/src/miner/miner.rs
	sync/Cargo.toml
2016-09-19 14:35:44 +02:00
keorn
551b5d7b6c Merge remote-tracking branch 'parity/master' 2016-09-19 14:33:59 +02:00
keorn
ce3e8750c9 additional consensus test 2016-09-19 14:33:11 +02:00
Robert Habermeier
48be60905d Merge pull request #2162 from ethcore/jsonrpc-bump
Bumping jsonrpc-core & jsonrpc-http-server
2016-09-19 13:02:23 +02:00
Tomusdrw
b6df3759c8 Breaking the line 2016-09-19 12:16:22 +02:00
Tomusdrw
98ee2e44f7 Fixing tests 2016-09-19 12:12:50 +02:00
keorn
49b8e144fd initial mocknet with chain notify 2016-09-19 10:43:01 +02:00
keorn
fdcda41280 add tracing 2016-09-19 10:42:36 +02:00
keorn
6af888f9e4 disable TemporaryPath panic 2016-09-19 10:41:35 +02:00
keorn
c6c45db1d0 add devtools dependency 2016-09-19 10:41:01 +02:00
keorn
b31e732ebe temporary is_sealer check disable 2016-09-19 10:39:57 +02:00
keorn
b144bd2b84 add tracing 2016-09-19 10:38:47 +02:00
Tomusdrw
110e58607f Bumping jsonrpc-core & jsonrpc-http-server 2016-09-19 01:54:44 +02:00
Tomusdrw
9bf29a555a Fixing evm-debug 2016-09-19 01:51:59 +02:00
Tomasz Drwięga
7f7e74869c Bump clippy & Fix warnings (#2109)
* Bump clippy

* Fixing warnings
2016-09-16 23:03:26 +02:00
Robert Habermeier
851b639ecb Merge pull request #2102 from ethcore/import-stats
Import command summary
2016-09-16 13:05:03 +02:00
arkpar
0124f985c3 Added docs 2016-09-16 12:18:27 +02:00
Robert Habermeier
f8f39c4369 check for existence of deprecated ethash file before attempting delete (#2103) 2016-09-16 08:57:38 +02:00
arkpar
cc845c61d3 Import summary 2016-09-15 16:56:10 +02:00
Robert Habermeier
c16bf7face Merge pull request #2078 from ethcore/bigint_crates
Get bigint on crates.io
2016-09-15 16:54:30 +02:00
keorn
167cfd4caa Enable sealing if Engine provides internal sealing given author (#2084)
* enable internal sealing based on author

* add tests, keep track of engine sealing status

* method to check if default address is_sealer

* simplify constructors

* fix typo
2016-09-15 12:12:15 +02:00
keorn
3419549c16 revamp dummy_client to take accounts 2016-09-14 17:30:57 +02:00
keorn
44fe864826 new highway to miner, set_author 2016-09-14 17:30:09 +02:00
keorn
d3ec8588c4 new constructor that takes AccountProvider 2016-09-14 17:29:35 +02:00
keorn
bb59c2288e docs on authority spec 2016-09-14 17:28:57 +02:00
keorn
c482b8ffb6 enable sealing only is authority 2016-09-14 17:28:15 +02:00
Robert Habermeier
c8533a31fa Merge pull request #2070 from ethcore/config-files
Config files
2016-09-14 15:16:04 +02:00
keorn
a44e2b0497 Merge remote-tracking branch 'parity/should-seal' into auth-round 2016-09-14 14:38:47 +02:00
keorn
7c82a10ecc fix typo 2016-09-14 14:34:47 +02:00
keorn
c6c951dd15 Merge remote-tracking branch 'parity/should-seal' into auth-round 2016-09-14 14:05:17 +02:00
Denis S. Soldatov aka General-Beck
77a3bf1a62 Update gitlab-ci
add allow_failure: true to rust beta
2016-09-14 19:00:43 +07:00
keorn
68fd862671 simplify constructors 2016-09-14 13:56:28 +02:00
Robert Habermeier
9dbc49b76e adjust targets.sh to new bigint name 2016-09-14 12:26:54 +02:00
kristoffer
2ba4968cd5 Remove old cache data (#2081) 2016-09-14 12:02:52 +02:00
Tomasz Drwięga
9ed9857fba Logs limit & log_index bug (#2073)
* Limiting number of logs

* Test for logs

* Fixing logs ordering and indexing

* Fixing sort

* unwrap -> expect

* Revert "unwrap -> expect"

This reverts commit e99e6e77f37692fe568448e768aa72775de8d0cd.
2016-09-14 12:02:30 +02:00
keorn
b2c0a9d531 introduce ethkey dependency to generate txs 2016-09-14 11:26:39 +02:00
keorn
faa9c7fb1b add new TestNet transaction issuing 2016-09-14 11:25:23 +02:00
keorn
7eac946fdb remove unused original TestNet method 2016-09-14 11:24:38 +02:00
keorn
28a088eea7 add client own_tx import through client 2016-09-14 11:22:43 +02:00
keorn
bedbe6e65e update test spec loading 2016-09-14 11:20:22 +02:00
keorn
ddb6fec171 add new test specs 2016-09-14 11:17:39 +02:00
keorn
7f05021075 Merge remote-tracking branch 'parity/should-seal' into auth-round 2016-09-14 10:59:33 +02:00
keorn
0880d4ad8f method to check if default address is_sealer 2016-09-14 10:49:44 +02:00
Denis S. Soldatov aka General-Beck
21cc368066 Update gitlab-ci
update name
2016-09-14 14:35:09 +07:00
keorn
2bd82269e8 add tests, keep track of engine sealing status 2016-09-14 00:00:26 +02:00
Denis S. Soldatov aka General-Beck
2d96af4229 Delete deploy.sh 2016-09-14 03:06:12 +07:00
Denis S. Soldatov aka General-Beck
06353f2beb Create deploy.sh
move deploy.sh to scripts
2016-09-14 03:05:19 +07:00
keorn
fef94205e3 enable internal sealing based on author 2016-09-13 19:59:34 +02:00
Denis S. Soldatov aka General-Beck
aa949c3f04 Update gitlab-ci 2016-09-14 00:42:02 +07:00
Denis S. Soldatov aka General-Beck
a872484891 Add new file deploy.sh
Deploy binaries
2016-09-13 22:03:50 +07:00
keorn
bdba4230aa Merge remote-tracking branch 'parity/master' 2016-09-13 16:01:51 +02:00
keorn
099468107e Merge remote-tracking branch 'parity/master' into auth-round 2016-09-13 16:01:19 +02:00
keorn
da2f117aef new test_net holding Client 2016-09-13 15:58:32 +02:00
Tomasz Drwięga
325967cadb Fixing removal from gas price when moving future->current (#2076)
* Fixing removal from gas price when moving future->current

* unwrap -> expect
2016-09-13 15:41:38 +02:00
Robert Habermeier
42a8ea0002 prepare bigint for crates.io 2016-09-13 15:27:18 +02:00
keorn
341e06481e Split internal sealing from work preparation (#2071)
* separate block preparation methods

* Split internal sealing from work sealing, add cli option

* replace cli with engine method, simplify

* More docs about sealing types. Bypass work in external txs.

* split requires_reseal, add test and new test miner
2016-09-13 15:09:07 +02:00
keorn
eee6be1ce3 implement new predicate trait 2016-09-13 14:23:52 +02:00
keorn
6a33f8b369 state constructor used only in tests 2016-09-13 14:22:44 +02:00
keorn
67601327af make test helpers not test, add some docs 2016-09-13 14:21:12 +02:00
keorn
8b9e7c0ba5 Merge remote-tracking branch 'parity/split-internal-seal' into auth-round 2016-09-13 12:57:52 +02:00
keorn
e41b6c410f split requires_reseal, add test and new test miner 2016-09-13 12:52:14 +02:00
Robert Habermeier
83ddce011d ensure the target folder doesn't exist before renaming (#2074) 2016-09-13 10:33:03 +02:00
Tomasz Drwięga
27d30fca22 Fixing tests 2016-09-12 14:18:33 +02:00
keorn
1e20716bf9 Merge remote-tracking branch 'parity/split-internal-seal' into auth-round 2016-09-12 12:50:50 +02:00
keorn
4bfdeea9e5 More docs about sealing types. Bypass work in external txs. 2016-09-12 12:46:03 +02:00
Robert Habermeier
bc9b7cbcc1 Merge pull request #2055 from ethcore/dapp-norefresh
Get rid of 'Dapp is being downloaded' page
2016-09-12 11:36:37 +02:00
keorn
d98f69cf58 Merge remote-tracking branch 'parity/split-internal-seal' into auth-round 2016-09-12 11:36:16 +02:00
keorn
d6e5637459 Merge branch 'master' into split-internal-seal 2016-09-12 11:11:42 +02:00
keorn
c0201bd891 replace cli with engine method, simplify 2016-09-12 11:07:40 +02:00
Tomasz Drwięga
d046a7d5d4 no-config flag 2016-09-12 09:01:47 +02:00
Tomasz Drwięga
db59d9a4ae Merge branch 'master' into config-files 2016-09-12 00:57:25 +02:00
Tomasz Drwięga
b7bf10d62d Adding nice error messages for invalid configs. 2016-09-12 00:36:38 +02:00
Robert Habermeier
edcc4080d5 fix failing master build: update tests to new init_restore signature. (#2069) 2016-09-11 20:17:05 +02:00
Robert Habermeier
dcfd7eab6d Local snapshot restore (#2058)
* restore from local snapshot

* update status with chunks done

* rework local restore trigger
2016-09-11 14:05:59 +02:00
Robert Habermeier
fd4361e284 import: keep informant going until finished (#2065) 2016-09-11 14:04:56 +02:00
Robert Habermeier
835460a098 Merge pull request #2059 from ethcore/snap_service_tests
Add a few tests for the snapshot service
2016-09-11 13:27:57 +02:00
keorn
cadca6403a Split internal sealing from work sealing, add cli option 2016-09-11 13:23:32 +02:00
Tomasz Drwięga
62de1c3891 Config files WiP 2016-09-10 22:14:15 +02:00
keorn
4e75686ef8 separate block preparation methods 2016-09-10 14:41:41 +02:00
Tomusdrw
151606e7f4 Merge branch 'master' into dapp-norefresh
Conflicts:
	dapps/src/apps/fetcher.rs
	dapps/src/handlers/fetch.rs
2016-09-10 11:28:23 +02:00
Robert Habermeier
53b22da1c1 Merge pull request #2046 from ethcore/ipc-tweaks-3
IPC tweaks
2016-09-09 17:31:59 +02:00
Robert Habermeier
ff65ac7106 Merge pull request #2064 from General-Beck/master
Update arm* Docker
2016-09-09 17:13:05 +02:00
Denis S. Soldatov aka General-Beck
e59694f60d Update Ubuntu arm Dockerfile
remove CC and CXX
2016-09-09 19:31:54 +07:00
Denis S. Soldatov aka General-Beck
eebdc862dc Update Dockerfile ubuntu-aarch64
remove CC and CXX
2016-09-09 19:31:01 +07:00
keorn
965dde8223 enable TestNet with custom spec 2016-09-09 11:49:03 +02:00
Denis S. Soldatov aka General-Beck
9caafa01d9 Update gitlab-ci
deploy only:
    - master
    - beta
    - tags
    - stable
2016-09-09 16:32:11 +07:00
Robert Habermeier
8b971966b3 Merge pull request #2050 from ethcore/dapps-content
Fetching any content-addressed content
2016-09-08 17:38:37 +02:00
Denis S. Soldatov aka General-Beck
860bc5ff17 Update gitlab-ci
Add test runner
2016-09-08 21:58:18 +07:00
keorn
fc3d01ec71 add tests, fixes, simplifications 2016-09-08 16:27:54 +02:00
Robert Habermeier
bcd96398c6 Merge github.com:ethcore/parity into snapshot_tests 2016-09-08 12:46:15 +02:00
Robert Habermeier
ff17174cf1 also test abort_restore 2016-09-08 12:44:10 +02:00
keorn
747898d8e7 add new engine to spec 2016-09-08 12:28:59 +02:00
Robert Habermeier
756b7a3e67 test folder-deleting guards 2016-09-08 12:27:13 +02:00
Robert Habermeier
c65a5c8e9c add restored_is_equivalent test 2016-09-08 12:14:53 +02:00
keorn
3a68fab066 new simple authority engine 2016-09-08 12:12:24 +02:00
keorn
c31eab53ea add non renewing timer 2016-09-08 10:36:19 +02:00
keorn
9fe62d9750 adjust default timeouts 2016-09-08 10:31:46 +02:00
Denis S. Soldatov aka General-Beck
012a1f328b Update gitlab-ci 2016-09-08 01:50:05 +07:00
Denis S. Soldatov aka General-Beck
ebad54a3a6 Update gitlab-ci
replace test with build and add CXX to armv7
2016-09-08 01:47:34 +07:00
Robert Habermeier
b0f6bf2e78 remove client_db field from snapshot service 2016-09-07 19:38:59 +02:00
Denis S. Soldatov aka General-Beck
a2f475986f Update gitlab-ci
add allow_failure: true to armv7
2016-09-08 00:26:18 +07:00
Denis S. Soldatov aka General-Beck
1c4f5b98a5 Update gitlab-ci 2016-09-07 23:49:44 +07:00
keorn
4ccbec1148 Merge remote-tracking branch 'parity/master' into bft
Conflicts:
	sync/src/api.rs
	sync/src/lib.rs
2016-09-07 16:54:39 +02:00
keorn
ba21bafd7b tests and fixes 2016-09-07 16:25:42 +02:00
Robert Habermeier
57d5c35bb6 Use proper database configuration in snapshots. (#2052)
* use proper database config in snapshot service

* add snapshot path to parity directories struct

* fix RPC tests
2016-09-07 15:27:28 +02:00
Robert Habermeier
541b14a4ab periodic snapshot tweaks (#2054)
* periodic snapshot tweaks

* set SNAPSHOT_HISTORY to 500
2016-09-07 15:27:14 +02:00
Marek Kotewicz
7bde9dc372 Merge pull request #2057 from ethcore/ethkey-cli
ethkey-cli
2016-09-07 14:20:41 +02:00
debris
e9593e0abb ethkey-cli 2016-09-07 13:59:14 +02:00
Marek Kotewicz
e12788f3a4 Merge pull request #2056 from ethcore/ethstore-cli
Forward ethstore-cli feature
2016-09-07 13:52:40 +02:00
arkpar
fca2b1a242 Forward ethstore-cli feature 2016-09-07 13:49:11 +02:00
Robert Habermeier
916ce03c10 Merge pull request #2049 from ethcore/spec_load_errors
handling invalid spec jsons properly, additional tests, closes #1840
2016-09-07 11:52:11 +02:00
debris
61d3d74934 fixed compiling rpc tests 2016-09-07 10:36:18 +02:00
debris
ba806a6359 Merge branch 'master' of github.com:ethcore/parity into spec_load_errors 2016-09-07 10:24:58 +02:00
Tomasz Drwięga
6f88b7f084 Get rid of 'Dapp is being downloaded' page 2016-09-07 00:10:09 +02:00
Robert Habermeier
31cd965d66 Merge pull request #2044 from ethcore/periodic_snapshot
Periodic snapshots
2016-09-06 18:34:31 +02:00
Robert Habermeier
f054a7b8d5 more info on current periodic snapshot 2016-09-06 17:44:11 +02:00
Robert Habermeier
46581e173d check block queue size before taking periodic snapshot 2016-09-06 15:49:44 +02:00
Robert Habermeier
1e2cdedc9b merge with master 2016-09-06 15:41:56 +02:00
Arkadiy Paronyan
5c5d9c8ccd Snapshot sync (#2047)
* PV64 sync

* Tests

* Client DB restore

* Snapshot restoration over IPC

* Upating test

* Minor tweaks

* Upating test
2016-09-06 15:31:13 +02:00
keorn
45e6b4ac9d seal generation and verificatio 2016-09-06 12:26:06 +02:00
Robert Habermeier
09bc675e6a address grumbles 2016-09-05 22:59:34 +02:00
Tomasz Drwięga
8460733e31 Add test for urlhint 2016-09-05 22:31:24 +02:00
Tomasz Drwięga
96778d8e93 Fixing content path creation 2016-09-05 21:58:48 +02:00
Tomasz Drwięga
840b64b813 Merge branch 'master' into dapps-content
Conflicts:
	dapps/src/apps/fetcher.rs
	dapps/src/apps/urlhint.rs
	dapps/src/handlers/client/mod.rs
	dapps/src/handlers/fetch.rs
	dapps/src/lib.rs
	dapps/src/page/local.rs
2016-09-05 20:05:59 +02:00
Tomasz Drwięga
8c86405798 Content resolving 2016-09-05 19:07:13 +02:00
keorn
91fbaf935c Merge remote-tracking branch 'parity/master' into bft
Conflicts:
	ethcore/src/client/client.rs
2016-09-05 18:16:09 +02:00
keorn
0af4bf23a9 add internal timeout service, test proposer switching 2016-09-05 17:51:29 +02:00
debris
aa8b871e49 handling invalid spec jsons properly, additional tests, closes #1840 2016-09-05 17:41:34 +02:00
keorn
8851acec7c fix propose collect locking 2016-09-05 17:06:43 +02:00
Marek Kotewicz
9655920896 Merge pull request #2033 from ethcore/dapps-sync
Nice error pages for Dapps & Signer
2016-09-05 15:33:50 +02:00
Robert Habermeier
46b1224f7c Merge branch 'master' into periodic_snapshot 2016-09-05 14:50:43 +02:00
Robert Habermeier
f0ef5e6943 keep snapshot watcher alive 2016-09-05 14:25:56 +02:00
Robert Habermeier
4e466f09db Add a few small snapshot tests (#2038)
* add manifest data test

* begin tests for io

* add unit tests for snapshot io

* service smoke test

* remove empty service module
2016-09-05 12:24:03 +02:00
Robert Habermeier
2bf235e226 use more mocking in tests 2016-09-05 12:17:21 +02:00
Marek Kotewicz
da2c2e5fc6 facelift for traces, added errors (#2042)
* evm errors facelift

* facelift for traces, added errors with description

* additional tests for traces json serialization
2016-09-05 11:56:44 +02:00
Tomasz Drwięga
e2377dd510 Merge branch 'master' into dapps-sync
Conflicts:
	dapps/src/handlers/fetch.rs
2016-09-05 08:43:07 +02:00
Nikolay Volf
2fc70902e7 further tweaking of ipc entities lifecycle 2016-09-03 11:31:29 +03:00
Tomasz Drwięga
59f18ab958 Fetching content from HTTPS using rustls (#2024)
* Fetching https

* Fetching dispatcher (HTTP, HTTPS)

* Fetching from github

* Chunked encoding parser

* Abort support

* Fixing tests and review comments

* Cargo.lock order [ci skip]

* Relaxed -> SeqCst
2016-09-03 01:34:32 +02:00
Tomasz Drwięga
c0b097832b Skipping log when there are no transactions were sent (#2045) 2016-09-03 01:33:34 +02:00
Robert Habermeier
a0541738ab disabling of periodic snapshots with the --no-periodic-snapshot flag 2016-09-02 20:30:06 +02:00
Robert Habermeier
d9eb87cae7 add guard for temporary directories 2016-09-02 19:00:20 +02:00
Robert Habermeier
1c450f616d register the watcher as a ChainNotify 2016-09-02 18:48:07 +02:00
Robert Habermeier
e3749b3bc4 implement snapshot watcher 2016-09-02 18:28:47 +02:00
Robert Habermeier
04dee54cb3 add take_snapshot to snapshot service 2016-09-02 16:15:25 +02:00
Tomasz Drwięga
b5863cc6ad Merge branch 'master' into dapps-https
Conflicts:
	Cargo.lock
2016-09-02 14:22:37 +02:00
Robert Habermeier
e0feaa9d4d Merge pull request #2034 from ethcore/rlp-crate
rlp as separate crate
2016-09-02 13:48:09 +02:00
Tomasz Drwięga
e2e6b11dc7 Fixing uint serialization (#2037) 2016-09-02 11:38:15 +02:00
Tomasz Drwięga
5b27ea3b4d Fixing new transactions without alternating (#2039) 2016-09-02 11:37:45 +02:00
Tomasz Drwięga
d0bc80e58a Fixign tests 2016-09-02 10:10:51 +02:00
Tomasz Drwięga
cabb028c1c Propagating transactions to peers on timer. (#2035) 2016-09-01 19:07:58 +02:00
Tomasz Drwięga
9f8482e968 Consistent capitalization of titles 2016-09-01 15:33:26 +02:00
Robert Habermeier
bb6243c550 merge with master 2016-09-01 15:07:06 +02:00
Tomasz Drwięga
f93bbe7917 Cargo.lock order [ci skip] 2016-09-01 15:02:14 +02:00
Robert Habermeier
74ffcff99c port parity itself 2016-09-01 14:55:07 +02:00
Robert Habermeier
d763664d16 port network, sync, rpc 2016-09-01 14:49:12 +02:00
Robert Habermeier
5dd56aa070 port ethcore 2016-09-01 14:29:59 +02:00
keorn
83c371e6d4 add non renewing timer 2016-09-01 14:12:26 +02:00
Tomasz Drwięga
36c83a456b Merge branch 'master' into dapps-https
Conflicts:
	Cargo.lock
2016-09-01 13:37:23 +02:00
Robert Habermeier
eb7b62a61c move rlp to separate crate, port ethcore-util to it 2016-09-01 13:36:32 +02:00
Tomasz Drwięga
31dbbf5431 Merge branch 'master' into dapps-sync
Conflicts:
	Cargo.lock
	dapps/src/router/mod.rs
	signer/src/ws_server/session.rs
2016-09-01 13:36:28 +02:00
Robert Habermeier
9a5668f802 get rid of populatable and bytesconvertable traits (#2019) 2016-09-01 12:23:31 +02:00
Nikolay Volf
3439c06a1c Synchronization tweaks for IPC services (#2028)
* using sequentally consistent checks

* making shutdown method synchronous

* redndant line
2016-09-01 12:04:19 +02:00
Tomasz Drwięga
b4f3c4bd7a Asynchronous RPC support (#2017)
* Async RPC

* Limiting number of transactions in queue

* Fixing tests

* Bumping serde and jsonrpc-core

* serde updated to 0.8

* fixed failing tests

* Bumping ipc server

* Fixing API for endpoints

* Experimenting with tests without --release mode
2016-09-01 12:00:00 +02:00
Tomasz Drwięga
a9bc021022 404 pages for dapps resources 2016-09-01 11:54:09 +02:00
Robert Habermeier
ca03cfa58a Merge pull request #2016 from ethcore/archivedb-assert
Disable ArchiveDB counter check
2016-09-01 11:50:48 +02:00
Tomasz Drwięga
055ff91464 Bumping ui 2016-09-01 11:29:40 +02:00
Robert Habermeier
c8f3be2d93 Merge pull request #2025 from ethcore/triedbmut_double_insert
always process trie death row on commit, add more tracing
2016-09-01 11:19:22 +02:00
Tomasz Drwięga
89f1444c51 Displaying special page when syncing. 404 instead of redirection 2016-09-01 11:16:19 +02:00
Tomasz Drwięga
9c4d31f548 Signer errors 2016-09-01 10:26:25 +02:00
Marek Kotewicz
e159b5f413 Merge pull request #2026 from ethcore/fixed_transaction_addresses
fixed transaction addresses mapping, fixes #1971
2016-09-01 10:21:10 +02:00
keorn
0fcbf8d99f fix after merge 2016-08-31 18:43:24 +02:00
keorn
2f3d162f57 Merge remote-tracking branch 'parity/master' into bft 2016-08-31 18:19:24 +02:00
keorn
e475d0bf4c initial timeouts 2016-08-31 18:18:02 +02:00
debris
f5f4736e7c simplified iterator 2016-08-31 17:36:49 +02:00
debris
996b4b9dc0 fixed transaction addresses mapping, fixes #1971 2016-08-31 16:55:43 +02:00
Tomasz Drwięga
2789824a51 Much nicer error pages 2016-08-31 16:53:22 +02:00
Robert Habermeier
c61da07516 always process trie death row on commit, add more tracing 2016-08-31 14:28:56 +02:00
Tomasz Drwięga
99acd4914e Fixing tests and review comments 2016-08-31 13:28:54 +02:00
Arkadiy Paronyan
25e6a4e45f Adding tests for dapps server. (#2021)
* Fixing redirection. Adding tests

* Adding proof
2016-08-31 12:56:53 +02:00
Marek Kotewicz
a88440ebae Merge pull request #2018 from ethcore/builtin_trait
builtin trait refactoring
2016-08-31 12:01:54 +02:00
Tomasz Drwięga
8f13b550d8 Abort support 2016-08-31 11:45:09 +02:00
Tomasz Drwięga
0f0af9c1a5 Merge branch 'master' into dapps-https
Conflicts:
	Cargo.lock
	dapps/src/handlers/fetch.rs
2016-08-31 11:29:23 +02:00
Tomasz Drwięga
bff847b90c Chunked encoding parser 2016-08-31 11:22:25 +02:00
Robert Habermeier
6945dc37de Merge pull request #1967 from gabx/master
Start parity with systemd
2016-08-30 18:25:55 +02:00
Arno Gaboury
0e0e770a5a Merge pull request #1 from arkpar/patch-1
Updated wording
2016-08-30 18:23:32 +02:00
Tomasz Drwięga
dcea5c2526 Adding proof 2016-08-30 16:56:46 +02:00
Tomasz Drwięga
76966ab2fc Fixing redirection. Adding tests 2016-08-30 16:06:20 +02:00
Tomasz Drwięga
2a549386a6 Fetching from github 2016-08-30 15:14:22 +02:00
Nikolay Volf
efc846bb3e Control service for IPC (#2013)
* hypervisor extension

* sorted with shutdown-wait

* hypervisor lifecycle alter
2016-08-30 14:05:02 +02:00
Tomasz Drwięga
6f321d9849 LRU cache for dapps (#2006)
Conflicts:
	dapps/Cargo.toml
	dapps/src/lib.rs
2016-08-30 14:04:52 +02:00
Robert Habermeier
a34bd389ce builtin trait refactoring 2016-08-30 13:55:37 +02:00
Tomasz Drwięga
61879ef144 Fetching dispatcher (HTTP, HTTPS) 2016-08-30 13:27:43 +02:00
Marek Kotewicz
6da60afaba Merge pull request #2005 from ethcore/dapps-hosts
CLI for valid hosts for dapps server
2016-08-29 16:58:09 +02:00
Tomasz Drwięga
25fc919913 Fetching https 2016-08-29 16:34:37 +02:00
keorn
d7499044e3 move seal into commit 2016-08-29 14:32:37 +02:00
keorn
4025645188 accumulate seal in precommit 2016-08-29 12:09:51 +02:00
arkpar
4394c31a21 Disabled counter check 2016-08-29 12:07:49 +02:00
Nipunn Koorapati
4389742ca3 Make the block header struct's internals private (#2000)
* Make the block header struct's internals private

Currently, this involves a lot of explicit cloning, but we
could migrate the return types of the get_* functions to
be copies rather than references since they are mostly copy
types anyway.

I opted to eliminate the constructor in favor of using
Default::default() plus calling a bunch of setters. This
is similar to the model that a Google Protobuf client uses
and I think it looks fine.

* Drop some unnecessary cloning by comparing references

* Fix compiler errors from callsites in tests.
2016-08-29 11:35:23 +02:00
Arkadiy Paronyan
3fa0cfe803 Updated wording
Updating wording a bit and fixed remaining capitalization issues.
2016-08-29 11:33:42 +02:00
Denis S. Soldatov aka General-Beck
2d883c43c9 Update gitlab-ci.yml
add export to see ENV
2016-08-27 02:58:32 +07:00
keorn
a12a764d6c add rounds check, simplify tests 2016-08-26 19:27:50 +02:00
keorn
f60d4645ed move vote with addresses, remove recover check 2016-08-26 19:27:02 +02:00
Denis S. Soldatov aka General-Beck
73958ae8f8 Update gitlab-ci
replace build positions
2016-08-26 23:12:44 +07:00
Denis S. Soldatov aka General-Beck
7b945fcda4 Update gitlab-ci
add test stage
2016-08-26 22:07:05 +07:00
keorn
a4ba7262ad update Signature and ipc usage 2016-08-26 13:16:56 +02:00
keorn
e7a9bf4df8 impl Clone for Signature 2016-08-26 11:27:54 +02:00
keorn
2cc2bd6518 impl Hash for Signature 2016-08-26 10:40:00 +02:00
Robert Habermeier
1c19a807d9 Take control of recovered snapshots, start restoration asynchronously (#2010)
* take control of given snapshot

* start snapshot restoration asynchronously,
2016-08-25 22:20:44 +02:00
keorn
8bd0034ced Merge remote-tracking branch 'parity/master' into bft
Conflicts:
	ethcore/src/error.rs
2016-08-25 19:24:29 +02:00
keorn
fcae03e55f propose message test 2016-08-25 19:22:10 +02:00
Robert Habermeier
2aef81cf90 remove internal locking from DBTransaction (#2003) 2016-08-25 16:43:56 +02:00
Robert Habermeier
b18407b9e3 Snapshot optimizations (#1991)
* apply RLP compression to abridged blocks

* add memorydb consolidate

* code hash optimization

* add warning to snapshot restoration CLI
2016-08-25 14:28:45 +02:00
Marek Kotewicz
09e0842f56 Revert removing ecies (#2009)
* revert removing ECIES without MAC

* removed reverted change in encrypt
2016-08-25 12:11:06 +02:00
Tomasz Drwięga
0baa8a53a5 dapps-hosts configuration 2016-08-25 09:00:05 +02:00
Denis S. Soldatov aka General-Beck
3e07135df3 Update gitlab-ci
remove linker from arm* target
2016-08-25 02:54:23 +07:00
Denis S. Soldatov aka General-Beck
d0a5e9f148 Update gitlab-ci
remove failure from armv7 (pi2)
2016-08-25 02:10:02 +07:00
Robert Habermeier
d47361270a Merge pull request #1998 from ethcore/bloom_optimization
small blooms optimization
2016-08-24 20:39:39 +02:00
Marek Kotewicz
f6b8dd0e78 protection from adding empty traces && assertion in traces db (#1994)
* protection from readding empty traces && assertion in traces db

* simplified assert
2016-08-24 18:35:53 +02:00
Nikolay Volf
d631162440 Stratum IPC service (#1959)
* boot binaries reorg & helpers

* stratum ipc service

* spaces in cli
2016-08-24 18:35:38 +02:00
Marek Kotewicz
b0d462c6c9 Signature cleanup (#1921)
* Address renamed to H160 at bigint library level

* moved uint specific test from util to bigint library

* naming

* unifing hashes in progress

* unifing hashes

* cleanup redundant unwraps in tests

* Removing util/crypto in progress.

* fixed compiling

* signature cleanup in progress

* new module - ethcrypto used by ethstore and ethcore-network

* fixed compiling

* fixed compiling

* fixed merge
2016-08-24 18:35:21 +02:00
Arkadiy Paronyan
f07a1e6baf Fixed neighbours collection (#1996) 2016-08-24 17:00:14 +02:00
Robert Habermeier
190e4db266 Trie query recording and AccountDB factory for no mangling (#1944)
* optionally use no mangling for accountdb

* add the recorder module

* get_recorded for tries, no virtual dispatch on readonly tries

* add recording test
2016-08-24 16:53:36 +02:00
Tomasz Drwięga
33e0a234f2 Validating sha3 of a dapp bundle (#1993)
* Validating sha3 of a file

* sha3 in utils

* Removing devtools
2016-08-24 16:53:07 +02:00
keorn
77f06be7fb fix error propagation 2016-08-24 15:55:47 +02:00
debris
b96d4eaddb bloom optimization 2016-08-24 13:59:50 +02:00
Nipunn Koorapati
3dd1bdda50 Improve eth_getWork timeout test rpc_get_work_should_timeout (#1992) 2016-08-24 13:20:15 +02:00
keorn
1cb3c164da propose step 2016-08-24 11:58:49 +02:00
Gabx
a8d26470e2 capitalize some words 2016-08-23 23:17:06 +02:00
Gabx
ef0bb691bc capitalize some words 2016-08-23 20:10:13 +02:00
Tomasz Drwięga
124a5da75e Resolving URLs from contract (#1964)
* Fetching dapp from github.

* Unpacking dapp

* Removing hardcodes

* Proper Host validation

* Randomizing paths

* Splitting into files

* Serving donwloaded apps from different path

* Extracting URLHint to separate module

* Whitespace and docs

* Resolving from URLHint contract

* Fixing test

* Resolving githubhint url from registrar

* Proper redirections

* Fixing test

* fixing ethstore [ci skip]

* Correct version of registrar

* Removing superfluous Box
2016-08-23 19:28:21 +02:00
Denis S. Soldatov aka General-Beck
dda57d9294 Update gitlab-ci
add allow_failure: true to arm*
2016-08-23 23:18:13 +07:00
keorn
99a143eb37 change broadcast interface, add basic message handling 2016-08-23 17:19:23 +02:00
Nipunn Koorapati
2a550c2adf Add timeout for eth_getWork call (#1975) 2016-08-23 17:07:00 +02:00
Tomasz Drwięga
59ede63eda CLI for Signer interface (#1980)
* # This is a combination of 2 commits.
# The first commit's message is:

CLI to specify signer interface

# This is the 2nd commit message:

Fixing paths on windows

* CLI to specify signer interface
2016-08-23 16:53:24 +02:00
Nikolay Volf
9fc144cc2f timeout multiplied (#1990) 2016-08-23 16:51:23 +02:00
arkpar
207f9d02f2 Started inf networking 2016-08-23 15:52:05 +02:00
keorn
535c502771 delete old test 2016-08-23 15:44:01 +02:00
Nikolay Volf
f2be2aec68 Merge pull request #1983 from ethcore/ipc-rel-dir
Use relative path for IPC sockets
2016-08-23 16:36:23 +04:00
Marek Kotewicz
d4777f9296 fixed #1933 (#1979) 2016-08-23 13:31:03 +02:00
Gav Wood
35ecb396b6 Market-orientated transaction pricing (#1963)
* Market-orientated transaction pricing

Avoid a strict gas-limit and let the market decide through using
a priority queue based around gas pricing for transactions. In
periods of low transaction volume, they'll be processed for a lower
fee.

* Fix tests, add/clarify documentation, fix some logic.

* Change default to reflect CLI.

* Specify type.

* Make test more precise.

* Fix doc test
2016-08-23 13:30:33 +02:00
keorn
3aa862c9c2 add test, start tendermint 2016-08-23 12:58:40 +02:00
Nikolay Volf
2d0a7c33bb address grumbles 2016-08-23 13:41:12 +03:00
Tomasz Drwięga
f4826d1b2a Bump clippy (#1982) 2016-08-23 10:10:19 +02:00
Tomasz Drwięga
6cb439fbc8 Fixing serde overflow error (#1977) 2016-08-23 10:10:12 +02:00
Tomasz Drwięga
81ac3a1936 Merge pull request #1984 from wdv4758h/fix-open
Fix open on FreeBSD
2016-08-23 08:54:33 +02:00
Chiu-Hsiang Hsu
869803f60e Fix open on FreeBSD 2016-08-23 13:53:27 +08:00
keorn
3515a72fa0 proposal vote collector 2016-08-22 20:00:41 +02:00
Nikolay Volf
7c5435d3bb fix to use relative socket path 2016-08-22 19:41:58 +03:00
keorn
89011dcc34 fix locking patterns, add simple test 2016-08-22 17:33:04 +02:00
Nipunn Koorapati
880b7b811e Upgrade hyper dependency to 0.9 (#1973) 2016-08-22 15:16:23 +02:00
keorn
2f5aeda44f reusable voting on hashes 2016-08-22 13:19:23 +02:00
Gabx
32530c61ed fix typos 2016-08-21 19:41:54 +02:00
keorn
a20a0de48f add spec 2016-08-21 15:28:40 +02:00
keorn
74939a43d6 fix types and lifetimes 2016-08-21 15:27:39 +02:00
Tomasz Drwięga
f69b3f8522 Create network-specific nodes files (#1970) 2016-08-21 11:23:47 +02:00
Nikolay Volf
fcfacc76d5 Merge pull request #1965 from ethcore/removing-syntex
Getting rid of syntex
2016-08-19 20:17:50 +04:00
keorn
8da38fa98b intro simple seal bft engine 2016-08-19 17:18:30 +02:00
Gabx
87b882dec1 start parity with systemd 2016-08-19 16:53:38 +02:00
Nikolay Volf
34de330ed9 remove binaries from hypervisor (#1960) 2016-08-19 14:49:58 +02:00
Tomasz Drwięga
d996754927 Getting rid of syntex 2016-08-19 14:26:03 +02:00
Gabx
a41db5469a add systemd service file 2016-08-19 13:38:32 +02:00
Nikolay Volf
070a2157e6 Stratum protocol general (#1954)
* stratum stub

* basic subscription

* workers, authorizations stubs

* push messages

* authorizing workers

* push tests (failing)

* traits.rs forgotten

* version bump

* parking lot rwlock

* trace for else

* various fixes

* fix last test

* bump version

* logger under test mod

* dependencies dependant

* extra line demolition
2016-08-19 10:20:39 +02:00
Robert Habermeier
0e0cc20d84 keep track of first block in blockchain (#1937) 2016-08-18 22:01:57 +02:00
Nikolay Volf
d7c184bd72 Merge pull request #1953 from ethcore/state_module
introduce ethcore/state module
2016-08-18 21:56:08 +04:00
Nikolay Volf
0c38197b43 Merge pull request #1956 from ethcore/db-cache
Apply settings to column families
2016-08-18 21:55:53 +04:00
Denis S. Soldatov aka General-Beck
32d07c7339 update gitlab-ci
Defines the names of branches and tags for which the job will be built
  only:
    - master
    - beta
    - tags
    - stable
2016-08-18 23:41:33 +07:00
Robert Habermeier
9adf77581c move column family constants into db module (#1955) 2016-08-18 18:24:49 +02:00
Robert Habermeier
8c9f7a3e64 fix up tests, remove dead code 2016-08-18 18:17:21 +02:00
Robert Habermeier
eed7d006f1 Fix up tests, remove dead state-diff code 2016-08-18 18:13:32 +02:00
Arkadiy Paronyan
8159d743ef ECIES without MAC (#1948)
* Use random IV for ECIES AES

* ECIES encrypt/decrypt for a single message

* Derive IV from shared secret
2016-08-18 18:08:02 +02:00
arkpar
f0cb835f44 Apply settings to column families 2016-08-18 18:04:54 +02:00
Robert Habermeier
b5c64da612 file moving 2016-08-18 17:56:05 +02:00
Nikolay Volf
d279794c32 remove unused imports (#1951) 2016-08-18 15:01:24 +02:00
Tomasz Drwięga
0620a03e56 Fetchable dapps (#1949)
* Fetching dapp from github.

* Unpacking dapp

* Removing hardcodes

* Proper Host validation

* Randomizing paths

* Splitting into files

* Serving donwloaded apps from different path

* Extracting URLHint to separate module

* Whitespace and docs
2016-08-18 12:19:09 +02:00
Robert Habermeier
57dbdaada9 remove impossible panickers related to infallible db transaction (#1947) 2016-08-18 09:43:56 +02:00
Arkadiy Paronyan
108024e98d Cache address hash (#1943) 2016-08-18 09:42:46 +02:00
Robert Habermeier
eed3ef403a remove randomness from bigint benches, fix warnings (#1945) 2016-08-17 22:36:55 +02:00
Gav Wood
ccdf80f4dc Fix several RPCs (#1926)
* Fix up pending receipts details.

* Add support for additional params and registry over RPC.

* Fix tests.

* Add test, additional fix.

Fixes #1932.

* Fix up tests.

* Fix test.

* Fix test.
2016-08-17 19:25:02 +02:00
Tomasz Drwięga
bcf6b0b7d8 Bump clippy, fix warnings (#1939)
* Bumping clippy

* Fixing warnings
2016-08-17 16:06:41 +02:00
Arkadiy Paronyan
e2cf8a894f DB WAL size limit (#1935)
* Limit WAL size

* Check pruning by db modification date (#1924)
2016-08-17 15:55:26 +02:00
Nikolay Volf
46f029e65c Use explicit global namespaces in codegen (#1928)
* ipc as a deault feature

* first part of purge

* second part of ns purge
2016-08-17 15:54:24 +02:00
Nikolay Volf
e01ba60dd9 add drop with timeout (#1934) 2016-08-17 15:53:34 +02:00
Nikolay Volf
8710b4a3f4 ipc as a deault feature (#1927) 2016-08-17 15:52:57 +02:00
NikVolf
b45020fc7f add doc for address 2016-08-16 11:47:12 +03:00
Nikolay Volf
9e88acb8c8 fix benches compilation (#1931) 2016-08-15 22:02:53 +02:00
Denis S. Soldatov aka General-Beck
751c76917d Update gitlab-ci (#1929)
[ci skip] remove CC&CXX from arm* builds
2016-08-15 19:29:50 +02:00
Arkadiy Paronyan
72a546e22e Update README.md 2016-08-15 17:37:52 +02:00
Marek Kotewicz
c39761c042 ethkey and ethstore use hash structures from bigint (#1851)
* Address renamed to H160 at bigint library level

* moved uint specific test from util to bigint library

* naming

* unifing hashes in progress

* unifing hashes

* cleanup redundant unwraps in tests

* fixed compiling
2016-08-15 15:09:00 +02:00
Tomasz Drwięga
e6d9fb2ad3 Bumping Parity UI [ci skip] (#1920) 2016-08-12 11:21:18 +02:00
Tomasz Drwięga
f5a8c73be5 Adding entrypoints to docker images (#1909) 2016-08-12 09:18:42 +02:00
Arkadiy Paronyan
0e7b06d3eb Save nodes removed from backing_overlay until commit (#1917) 2016-08-11 18:58:11 +02:00
Gav Wood
ca54b8e493 RPC for importing geth keys (#1916)
* Address book for local addresses.

* Simple disk-backed address book.

* Add test and keep file with keys.

* View and import Geth keys.

* Fix test.

* Fix up author info.

[ci:skip]
2016-08-11 18:31:28 +02:00
Tomasz Drwięga
f114a933a3 Peers RPC + UI displaying active/connected/max peers (#1915)
* Peers API

* Bumping Parity-UI

* Fixing tests
2016-08-11 17:19:20 +02:00
Tomasz Drwięga
07844d611e Merge pull request #1912 from ethcore/rpc-address-from-phrase
RPC for deriving address from phrase.
2016-08-11 10:49:36 +02:00
Gav Wood
6ab78a0091 RPC for deriving address from phrase.
Fixed #1911
2016-08-10 21:23:17 +02:00
Nikolay Volf
588529e578 polling & connection timeouts (#1910) 2016-08-10 21:07:01 +02:00
Arkadiy Paronyan
417b70f90f Don't return deleted nodes that are not yet flushed (#1908) 2016-08-10 20:49:26 +02:00
Gav Wood
286b67d54b Wallet rpcs (#1898)
* Add wallet RPCs.

* Add wordlist file.

* Add standard brain wallet tests.

* Allow import of JSON wallets.

* Address grumble.
2016-08-10 17:57:40 +02:00
Nikolay Volf
c32244ea4a Fix binary serialization bug (#1907)
* fix compilation and add it to the ci run

* no separator?

* use quotes and spaces

* literal macro and some tests

* reproduced in a failing test

* fix

* literal macro and some tests

* reproduced in a failing test

* fix
2016-08-10 16:50:23 +02:00
Marek Kotewicz
464516d01d fixed #1889, .DS_Store is no longer treated as key file (#1892)
* fixed #1889, .DS_Store is no longer treated as key file

* ethstore filters directories, hidden files and common system files

* fixed compiling
2016-08-10 16:42:15 +02:00
Tomasz Drwięga
a427208f79 Purging .derefs, fixing clippy warnings. (#1890)
* Fixing clippy warnings

* Purging derefs

* Simplifying engine derefs

* Simplifying more engine derefs
2016-08-10 16:29:40 +02:00
Robert Habermeier
8018b69440 Merge pull request #1904 from ethcore/db-repair
RocksDB version bump
2016-08-10 14:58:39 +02:00
arkpar
0a06c9d3aa RocksDB version bump 2016-08-10 13:23:39 +02:00
Nikolay Volf
4ae83f3004 Fix ipc compilation and add ipc feature to test targets (#1902)
* fix compilation and add it to the ci run

* no separator?

* use quotes and spaces
2016-08-10 13:06:24 +02:00
Robert Habermeier
4efddb9c50 Merge pull request #1896 from ethcore/fix-geth-2
Autocreating geth dir if none and geth mode on
2016-08-09 22:15:18 +02:00
NikVolf
26ff6af948 Merge branch 'fix-geth-2' of github.com:ethcore/parity into fix-geth-2 2016-08-09 19:00:36 +03:00
NikVolf
dcdd42fec4 fix regression with geth dir 2016-08-09 18:59:01 +03:00
NikVolf
0fb318e982 fix regression with geth dir 2016-08-09 18:38:44 +03:00
Nikolay Volf
7f5c178b1c Merge pull request #1886 from ethcore/ver-bump
v1.4.0 in master
2016-08-09 17:15:01 +03:00
Nikolay Volf
8bc92dacee Merge pull request #1891 from ethcore/miner-log
Adding more details to miner log
2016-08-09 17:13:59 +03:00
Marek Kotewicz
3b6bc974f3 Merge pull request #1827 from ethcore/move_hash
moved hash.rs to bigint library
2016-08-09 14:57:57 +02:00
Marek Kotewicz
505a054d10 Merge pull request #1877 from ethcore/cache_manager_order
fixed cache_manager lock order
2016-08-09 14:12:58 +02:00
Tomasz Drwięga
73c19fd4b5 Fixing miner deadlock (#1885) 2016-08-09 11:45:07 +02:00
arkpar
69d1c1f237 v1.4.0 2016-08-09 11:40:57 +02:00
debris
974d537849 Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-09 09:58:18 +02:00
Marek Kotewicz
ab8b763ea5 Merge pull request #1882 from ethcore/ws-rs
Updating WS + Increasing token validity
2016-08-09 09:39:03 +02:00
Tomasz Drwięga
3f076869c5 Fixing test 2016-08-08 22:53:54 +02:00
Tomasz Drwięga
fe8a57451a Merge branch 'master' into ws-rs 2016-08-08 21:24:52 +02:00
Tomusdrw
74e66c3f0e ws-rs update 2016-08-08 21:24:10 +02:00
Robert Habermeier
2f1ade8116 take snapshot at specified block and slightly better informants (#1873)
* prettier informant for snapshot creation

* allow taking snapshot at a given block

* minor tweaks

* elaborate on cli
2016-08-08 18:41:30 +02:00
Tomasz Drwięga
59b0f8c7a3 RPC errors & logs (#1845)
* Refactoring errors in RPC

* Updating jsonrpc-core

* Fixing code_at

* Avoid mentioning obvious segments in proof

[ci:skip]
2016-08-08 17:25:15 +02:00
Arkadiy Paronyan
7ed4bded52 Reduce max open files (#1876) 2016-08-08 17:18:29 +02:00
Arkadiy Paronyan
2e5a6ea1ff Send new block hashes to all peers (#1875) 2016-08-08 17:18:10 +02:00
Arkadiy Paronyan
6762447229 Use UntrustedRlp for block verification (#1872) 2016-08-08 16:56:35 +02:00
Robert Habermeier
9732da5101 replace cache manager with mutex; reduce lock hold times 2016-08-08 16:25:48 +02:00
debris
c5a0024eeb fixed cache_manager lock order 2016-08-08 16:14:37 +02:00
Arkadiy Paronyan
35451e31d4 Update cache usage on commiting block info (#1871) 2016-08-08 13:47:00 +02:00
Marek Kotewicz
3f261690a5 Merge pull request #1870 from ethcore/evm-mem
Validating conversion U256->usize when doing gas calculation (for 32bits)
2016-08-08 11:32:54 +02:00
debris
8269887949 parse().unwrap() -> into() 2016-08-08 11:18:48 +02:00
debris
e9b42d59e8 Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-08 10:49:16 +02:00
Tomasz Drwięga
10b18db833 Validating u256->usize conversion 2016-08-08 10:26:28 +02:00
Tomasz Drwięga
bdf6a5660e Fixing gas conversion 2016-08-08 09:59:00 +02:00
Arkadiy Paronyan
4f32a9ccc1 Sync to peers with confirmed fork block only (#1863) 2016-08-07 22:42:35 +02:00
debris
88c5f555a9 Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-06 00:03:07 +02:00
Robert Habermeier
e72fc5398a miner and client take spec reference (#1853)
* miner and client take spec reference

* fix tests
2016-08-05 23:33:55 +02:00
Arkadiy Paronyan
2f52425387 Unlock account with timeout for geth compatibility (#1854)
* Unlock account with timeout for geth compatibility

* Fixed test
2016-08-05 23:33:14 +02:00
Arkadiy Paronyan
46a988ddd4 Fixed reported max height and transaction propagation (#1852)
* Fixed max height and transaction propagation

* Fixed tests
2016-08-05 17:01:08 +02:00
Robert Habermeier
76a7246369 Snapshot creation and restoration (#1679)
* to_rlp takes self by-reference

* clean up some derefs

* out-of-order insertion for blockchain

* implement block rebuilder without verification

* group block chunk header into struct

* block rebuilder does verification

* integrate snapshot service with client service; flesh out implementation more

* initial implementation of snapshot service

* remove snapshottaker trait

* snapshot writer trait with packed and loose implementations

* write chunks using "snapshotwriter" in service

* have snapshot taking use snapshotwriter

* implement snapshot readers

* back up client dbs when replacing

* use snapshot reader in snapshot service

* describe offset format

* use new get_db_path in parity, allow some errors in service

* blockchain formatting

* implement parity snapshot

* implement snapshot restore

* force blocks to be submitted in order

* fix bug loading block hashes in packed reader

* fix seal field loading

* fix uncle hash computation

* fix a few bugs

* store genesis state in db. reverse block chunk order in packed writer

* allow out-of-order import for blocks

* bring restoration types together

* only snapshot the last 30000 blocks

* restore into overlaydb instead of journaldb

* commit version to database

* use memorydbs and commit directly

* fix trie test compilation

* fix failing tests

* sha3_null_rlp, not H256::zero

* move overlaydb to ref_overlaydb, add new overlaydb without on-disk rc

* port archivedb to new overlaydb

* add deletion mode tests for overlaydb

* use new overlaydb, check state root at end

* share chain info between state and block snapshotting

* create blocks snapshot using blockchain directly

* allow snapshot from arbitrary block, remove panickers from snapshot creation

* begin test framework

* blockchain chunking test

* implement stateproducer::tick

* state snapshot test

* create block and state chunks concurrently, better restoration informant

* fix tests

* add deletion mode tests for overlaydb

* address comments

* more tests

* Fix up tests.

* remove a few printlns

* add a little more documentation to `commit`

* fix tests

* fix ref_overlaydb test names

* snapshot command skeleton

* revert ref_overlaydb renaming

* reimplement snapshot commands

* fix many errors

* everything but inject

* get ethcore compiling

* get snapshot tests passing again

* instrument snapshot commands again

* fix fallout from other changes, mark snapshots as experimental

* optimize injection patterns

* do two injections

* fix up tests

* take snapshots from 1000 blocks efore

* address minor comments

* fix a few io crate related errors

* clarify names about total difficulty

[ci skip]
2016-08-05 17:00:46 +02:00
debris
74c9ecbfd6 fixed compiling 2016-08-05 14:09:21 +02:00
debris
e79623704e Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-05 14:05:51 +02:00
Marek Kotewicz
725d32083a Merge pull request #1850 from ethcore/deprecated-typo
fix deprecated typo
2016-08-05 11:25:42 +02:00
keorn
b6f827e3c8 fix deprecated typo 2016-08-05 11:06:01 +02:00
debris
316c9093db Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-05 10:53:34 +02:00
Arkadiy Paronyan
05bfdc508e Split IO and network crates (#1828)
* Abort on panic

* Split IO and network crates

* Restore panic handler

* Fixed doc tests
2016-08-05 10:32:04 +02:00
debris
df29fcff1a Merge branch 'split_hash' into move_hash 2016-08-05 09:56:36 +02:00
Marek Kotewicz
08f30fc1a8 updated classic JSON spec with classic bootnodes, fixes #1842 (#1847) 2016-08-05 09:51:57 +02:00
debris
1ed2de1d9b Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-05 09:30:01 +02:00
Robert Habermeier
b20833154e protect unsafety in plainhasher; do more hashing (#1841) 2016-08-05 09:15:55 +02:00
Robert Habermeier
8702a29e6f use mutex in dbtransaction (#1843) 2016-08-04 23:54:26 +02:00
Nikolay Volf
aa59aa439d Fix state not using "account_starting_nonce" (#1830)
* failng test

* use account_starting_nonce instead of zero

* simplier test

* jsons are getting closer

* incorrect test client and incorrect tests fix

* null_morden is using 0x0 starting nonce

* replaced json with the correct one

* superwhatever line
2016-08-04 18:17:39 +02:00
Tomasz Drwięga
25aabe6e52 Supporting blockid in eth_call and trace_call/trace_raw (#1837)
* Supporting blockid in eth_call and trace_call/trace_raw

* Nicer state diff handling

* Purging deref.deref
2016-08-04 18:17:21 +02:00
Tomasz Drwięga
979f4e0617 eth_checkTransaction renamed to eth_checkRequest (#1817)
* Making ConfirmationsQueue a bit more generic [WiP]

* Generalizing cofirmations

* New confirmations types - tests

* Separating transaction type in queue. Closes #1310

* Handling sign requests

* Speeding up tests

* Renaming methods

* eth_postSign

* Bumping ui

* Renaming checkRequest methods, adding tests

* Removing duplicate method [ci skip]

* Remove `_posted`

[ci:skip]

* Remove `_posted`
2016-08-04 16:42:29 +02:00
Nikolay Volf
03ba0cc498 Bump json-ipc-server again (#1839)
* bump ipc version

* bumping once more
2016-08-04 16:42:12 +02:00
debris
a1867a7ba6 bloomable trait 2016-08-04 15:38:16 +02:00
debris
24c7392500 removed redundant helper methods 2016-08-04 14:48:09 +02:00
debris
efca92b766 Merge branch 'master' into move_hash 2016-08-04 14:22:16 +02:00
Marek Kotewicz
ab079fd7bf Merge pull request #1833 from ethcore/trace-deadlock-fix
Fixing another deadlock in trace db
2016-08-04 10:36:45 +02:00
Marek Kotewicz
dd60146c24 Merge pull request #1829 from ethcore/fix-vm-trace
Fix up the VM trace.
2016-08-04 10:36:20 +02:00
Marek Kotewicz
d1fc57d15c Merge pull request #1834 from ethcore/fixed_export_hex
fixed parsing export params, fixes #1826
2016-08-04 10:34:08 +02:00
debris
5da24e5dc3 fixed parsing export params, fixes #1826 2016-08-04 09:22:54 +02:00
arkpar
8b3836a7d6 Another deadlock in trace db 2016-08-04 08:56:28 +02:00
debris
4051524462 improved naming 2016-08-04 08:52:31 +02:00
debris
03c3d16744 Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-08-04 08:41:30 +02:00
Gav Wood
9bb9a84d40 Fix test. 2016-08-03 23:23:45 +02:00
Arkadiy Paronyan
7093651d70 More performance optimizations (#1814)
* Buffered DB

* Use identity hash for MemoryDB

* Various tweaks

* Delayed DB compression

* Reduce last_hashes cloning

* Keep state cache

* Updating tests

* Optimized to_big_int

* Fixing build with stable

* Safer code
2016-08-03 22:03:40 +02:00
Gav Wood
52355855fc Fix up the VM trace. 2016-08-03 20:07:30 +02:00
Tomasz Drwięga
deceb5fd56 Bumping clippy & fixing warnings (#1823)
* Bumping clippy

* Fixing clippy warnings

* Cargo.lock (latest nightly?)
2016-08-03 19:01:48 +02:00
Marek Kotewicz
531bc79edc removed unused code from util and unnecessary dependency of FixedHash (#1824) 2016-08-03 18:36:45 +02:00
Robert Habermeier
11b65ce53d Remove (almost all) panickers from trie module (#1776)
* memorydb ub patch and other cleanup

* fix denote invocations

* move trie traits into trie module

* replace "denote" with shim

* triedb returns results and no longer panics

* fix warnings

* get ethcore compiling

* warn on trie errors in ethcore

* remove unsafety from node decoder

* restore broken denote behavior for this branch

* fix overlayrecent fallout

* fix triedb tests

* remove unwrap in state

* alter Trie::get to return Result<Option<_>>

* fix refcell error in require

* fix test warnings

* fix json tests

* whitespace

[ci:skip]

* Avoid unneeded match/indentation

* whitespace

* prettify map_or_else

* remove test warning
2016-08-03 18:35:48 +02:00
debris
e8c451ac82 cleaning up hash reexports 2016-08-03 18:05:17 +02:00
Tomasz Drwięga
40a304b177 Fixing account naming (#1810)
* Fixing account naming

* Using geth format for files. Avoid re-importing existing keys with different names.

* Adding expect for time format
2016-08-03 17:58:22 +02:00
debris
573e775ef9 Merge branch 'fixed_hash_util' into move_hash 2016-08-03 16:35:55 +02:00
Robert Habermeier
8c88e2a8cc JournalDB inject (#1806)
* add inject to journaldb

* adjust docs

* add test; fix refcounteddb impl

* fewer panics, fail on invalid insertions or deletions
2016-08-03 16:34:32 +02:00
debris
cad7125acc Merge branch 'master' of github.com:ethcore/parity into fixed_hash_util 2016-08-03 16:31:13 +02:00
debris
17bfc113c1 removed unused code from util and unnecessary dependency of FixedHash 2016-08-03 16:29:36 +02:00
Tomasz Drwięga
c5ffb5af79 No block number in get work while in geth-compat mode. (#1821) 2016-08-03 15:31:00 +02:00
Marek Kotewicz
6ba1e66d32 Import wallet fix (#1820)
* fixed importing presale wallet with encseed longer than 96 bytes

* fixed incorrect pkcs unpadding in decrypting presale wallet
2016-08-03 15:24:09 +02:00
Tomasz Drwięga
9fb5623569 Supporting eth_sign in Signer (#1787)
* Making ConfirmationsQueue a bit more generic [WiP]

* Generalizing cofirmations

* New confirmations types - tests

* Separating transaction type in queue. Closes #1310

* Handling sign requests

* Speeding up tests

* Renaming methods

* eth_postSign

* Bumping ui
2016-08-03 10:36:54 +02:00
Arkadiy Paronyan
087ebcf94e Fixing cache update after reorg (#1816) 2016-08-03 10:35:04 +02:00
Tomasz Drwięga
0c7ab34c32 Development mode for Signer UI (#1788)
* Development mode for Signer

* CLI option for signer-dev

* Renaming CLI option

* Make obvious that CLI option is insecure.

[ci:skip]

* Additional warning over security
2016-08-02 17:53:53 +01:00
Gav Wood
9de579366a Miner tweaks (#1797)
* Mining fixes.

- Use queue to determine whether we're mining
- Kick stale hash rates

Fixes #1794
Fixes #1641

* Fix tests.

* Address grumbles.
2016-08-02 17:53:32 +01:00
Nikolay Volf
1b507e0147 Util & ipc clenup (#1807)
* removed frombytes stuff

* removed jsonrpc handler from nano
2016-08-02 15:02:47 +01:00
Tomasz Drwięga
b165059327 Fixing unlock parsing (#1802) 2016-08-02 06:12:33 -07:00
Marek Kotewicz
326a51a5c2 fixed importing presale wallet with encseed longer than 96 bytes (#1801) 2016-08-02 05:57:57 -07:00
Nikolay Volf
93b4b15c15 Merge pull request #1795 from ethcore/ipc-codegen-dry
DRYing build scripts
2016-08-02 15:25:54 +03:00
NikVolf
62df81f9fe add dot 2016-08-02 10:54:34 +02:00
Nikolay Volf
21c65a99ea Merge pull request #1790 from ethcore/spec-code
Allow code from spec json
2016-08-01 21:41:46 +03:00
NikVolf
fbfcd48483 drying sync 2016-08-01 19:55:38 +02:00
NikVolf
1809961f94 drying hypervisor 2016-08-01 19:53:53 +02:00
NikVolf
d8a3137ce8 drying ethcore 2016-08-01 19:39:53 +02:00
NikVolf
86db5c08fc drying tests 2016-08-01 19:31:52 +02:00
Nikolay Volf
27d9964001 nano-tests (ipc transport) to the CI (#1793)
* fix nano interface

* add nano tests to target
2016-08-01 10:15:05 -07:00
Gav Wood
de531c9a1e Minor simplification 2016-08-01 10:14:12 -07:00
Arkadiy Paronyan
d891e80ad7 Commit best block after closing transaction (#1791) 2016-08-01 10:10:13 -07:00
Gav Wood
b26f8c3f33 Place thread name in the log output (#1792)
* Place thread name in the log output

...But only when more than info.
Closes #1463

* simpler method
2016-08-01 10:07:09 -07:00
NikVolf
1732cc7a40 add nano tests to target 2016-08-01 17:54:38 +02:00
NikVolf
7b72463845 Merge branch 'master' into ipc-nano-tests 2016-08-01 17:54:03 +02:00
NikVolf
f7b7d317fe fix nano interface 2016-08-01 17:53:23 +02:00
Nikolay Volf
4e72608441 Fix ipc tests and bring to CI (#1789)
* fixed compilation

* Fix warnings

* fix remaining tests

* add to ci and fix test.sh
2016-08-01 06:32:07 -07:00
keorn
e99753d6e3 deserialized to pod_account conversion 2016-08-01 13:35:45 +02:00
keorn
7dbf23829e improve ethjson tests, add code deserialization 2016-08-01 12:33:21 +02:00
Nikolay Volf
f19b00b6ca Merge pull request #1779 from ethcore/dynamic_keys_pickup
dynamic keys pickup
2016-07-31 19:20:46 +03:00
Nikolay Volf
beb6f651af Merge pull request #1783 from ethcore/ipc-bump-4
ipc version bump
2016-07-31 18:34:45 +03:00
Robert Habermeier
7c015f023f Merge pull request #1780 from ethcore/trace-deadlock-fix
Prevent deadlock on trace GC
2016-07-31 15:24:44 +02:00
NikVolf
034fa4d615 ipc version bump 2016-07-31 14:42:45 +02:00
Marek Kotewicz
dbfc5cd31c fixed trace_transaction crash when block contained suicide (#1781) 2016-07-31 13:47:29 +02:00
arkpar
b0b7a3aa39 Prevent deadlock on trace GC 2016-07-31 12:43:16 +02:00
debris
489722b83f dynamic keys pickup 2016-07-31 10:46:28 +02:00
Arkadiy Paronyan
9e5e57fdcd Fix block body migration (#1777) 2016-07-30 17:33:08 -07:00
Marek Kotewicz
bcf8cd6dc0 cache manager and clearing tracing cache (#1769)
* removed configure_cache method

* generic cache_manager struct

* fixed #1743, tracing caches are cleared

* removed deadlocks in garbage_collect, implemented HeapSizeOf for traces

* trace cache config

* fixed carbage typo
2016-07-30 15:19:27 -07:00
Gav Wood
b29329c3c5 Return storage as H256 from RPC. (#1774)
* Return storage as H256 from RPC.

* Fix test.
2016-07-30 14:42:52 -07:00
keorn
b672d51a74 Instant sealing engine (#1767)
* add an instant sealing engine

* add sealing engine tests

* rename to InstantSeal

* update name in json

* whitespace

[ci:skip]
2016-07-30 14:42:31 -07:00
Robert Habermeier
53f1d7b6ff fix state unsafety with a mostly-guaranteed handle (#1755)
* fix state unsafety with a mostly-guaranteed handle

* ensure_cached takes a closure directly
2016-07-30 06:45:16 -07:00
Tomasz Drwięga
f56b89010d Gas for mem optimization (#1768)
* Optimizing mem_gas_cost calculations

* Memoizing current mem gas cost

* Optimizing jump destinations
2016-07-30 06:38:44 -07:00
debris
e9b3740ea8 Merge branch 'master' of github.com:ethcore/parity into move_hash 2016-07-30 14:14:25 +02:00
Marek Kotewicz
85c471b905 Merge pull request #1771 from ethcore/peer-opts
Min and Max peers setting
2016-07-30 13:36:06 +02:00
arkpar
8c47240248 Min and Max peers setting 2016-07-29 17:30:02 +02:00
Arkadiy Paronyan
57faa37623 Disable WAL (#1765)
* Disable WAL

* Make WAL optional

* Fix tests.

* Update cli.rs
2016-07-29 15:36:00 +02:00
keorn
29e07755e9 add new line when printing start strings (#1766) 2016-07-29 13:35:27 +02:00
Tomasz Drwięga
5d4925d582 Merge pull request #1764 from ethcore/log-tweak
Log tweak
2016-07-29 12:39:19 +02:00
Gav Wood
24c6561bc1 Add test. 2016-07-29 10:48:05 +02:00
Gav Wood
a44ef73b33 Whitespacey lines are not invalid in reserved peers file.
Fixes #1622
2016-07-29 10:22:51 +02:00
Gav Wood
360ed1a1f1 Remove bad error message.
Closes #1759
2016-07-29 10:04:05 +02:00
Arkadiy Paronyan
b37086722a Don't call update_sealing on importing own block (#1762) 2016-07-29 09:56:55 +02:00
Gav Wood
4304f4a2a4 Minor tweak to logging. Fix CLI help. 2016-07-29 00:22:46 +02:00
Tomasz Drwięga
e4f0c0b215 Single DB (#1741)
* Consolidation migration

* Started db amalgamation

* Using client constants for columns

* Adding with_columns constructor

* Migrating to single db

* Fixing tests.

* test.sh without verbose

* Fixing warnings

* add migration tests that catch the bug

* make multiple migrations more robust

* add moved v9

* Merge branch 'noop-migrations' into single-db

* spurious line

* clean up migrations ordering

* update comment [ci skip]

* Bumping default number of max_open_files & re-ordering columns.

* fix merge

* fix ignored analysis tests

* Caching best block content

* Faster best_block_header

* Adding progress to v8 migration

* clean up warnings

* Separate hashes and bodies in the DB

* Separate hashes and bodies in the DB

* Fixed tests
2016-07-28 23:46:24 +02:00
Gav Wood
0934a283b2 Tweak format of log so it's not so verbose. (#1758) 2016-07-28 23:45:56 +02:00
Gav Wood
297d25dd65 Combine mining queue and enabled into single locked datum (#1749)
* Combine mining queue and enabled into single locked datum

Additional tracing.

* Fix bug uncovered by test.

* Fix typo

* Remove unneeded log initialisation in test.

[ci:skip]
2016-07-28 21:06:36 +02:00
keorn
11cb544c24 Collect consensus/null engines into a single module (#1754)
* collect consesnsus engine code into module

* move Engine to mod

* fix json test
2016-07-28 20:32:20 +02:00
keorn
b62a5c8f7d fix failing test (#1756) 2016-07-28 20:31:56 +02:00
Marek Kotewicz
9746b944f1 Stackoverflow fix (#1742)
* executive tracer builds flat traces without intermediate struct

* temporarilt commented out tests for traces

* fixed new way of building trace address

* fixed new way of building trace address

* updating state tests with flat tracing in progress

* fixed flat tracing tests

* fixed compiling ethcore-rpc with new flat traces

* removed warnings from ethcore module

* remove unused data structures
2016-07-28 20:31:29 +02:00
Marek Kotewicz
f33cd60dc2 compaction profile used during migration, fixes #1750 (#1751)
* compaction profile used during migration, fixes #1750

* whitespace

[ci:skip]
2016-07-28 20:29:58 +02:00
Tomasz Drwięga
171244a471 Splitting documentation into separate build job (#1752)
* Splitting documentation into separate build job

* Updating rust to stable [ci skip]
2016-07-28 20:27:10 +02:00
Marek Kotewicz
80a7e4b964 handle keys deserialization errors, fixes #1592 (#1701)
* handle keys deserialization errors, fixes #1592

* warning on unsuccesfull geth accounts import
2016-07-28 20:26:07 +02:00
Denis S. Soldatov aka General-Beck
3199576416 add gitlab-ci yaml (#1753)
* add gitlab-ci yaml

Build script for Gitlab CI
[ci-skip]

* Update gitlab-ci

remove .lib and .exp

* Update gitlab-ci

remove CCX and clang
2016-07-28 17:34:32 +02:00
keorn
30ba10e10c Better handling of multiple migrations (#1747)
* add migration tests that catch the bug

* make multiple migrations more robust

* clean up migrations ordering

* update comment [ci skip]

* remove explicit iter
2016-07-28 12:05:41 +02:00
Arkadiy Paronyan
6b1e722a6b Disconnect peers on a fork (#1738) 2016-07-27 21:38:22 +02:00
Gav Wood
eaa41ea568 Add RPC & client call to replay a transaction. (#1734)
* Add RPC & client call to replay a transaction.

* Address grumbles
2016-07-27 21:34:32 +02:00
Nikolay Volf
b9a08c36aa another version bump for jsonrpc-ipc (#1744) 2016-07-27 21:13:21 +02:00
Gav Wood
ccb62d3b55 Trace other types of calls (#1727)
* Trace through DELEGATECALL and CALLCODE

Add them to the JSON output and RLP database store.

* Fix tests.

* Fix all tests.

* Fix one more test.
2016-07-27 17:41:21 +02:00
Tomasz Drwięga
edda0b2380 Fixing compilation on latest nightly (#1736) 2016-07-27 17:12:14 +02:00
keorn
02cf48681d Blocks and snapshot compression (#1687)
* new Compressible rlp trait

* new Compressible rlp trait

* make compressed rlp iterable

* make compressed rlp iterable

* invalid rlp slice swapper

* switch compress to swapper, add reverse swapper test case

* add basic account compression test

* add new rlp trait

* new Compressible rlp trait

* make compressed rlp iterable

* invalid rlp slice swapper

* invalid rlp slice swapper

* switch compress to swapper, add reverse swapper test case

* switch compress to swapper, add reverse swapper test case

* add account compress/ decompress test

* make compressor cleaner, use hashmaps for swapper

* improve compression tests

* add a DecompressingDecoder, change Decoder to take refernce

* separate rlp compression related stuff

* new Compressible rlp trait

* new Compressible rlp trait

* new Compressible rlp trait

* make compressed rlp iterable

* make compressed rlp iterable

* make compressed rlp iterable

* invalid rlp slice swapper

* invalid rlp slice swapper

* invalid rlp slice swapper

* switch compress to swapper, add reverse swapper test case

* switch compress to swapper, add reverse swapper test case

* switch compress to swapper, add reverse swapper test case

* add basic account compression test

* add new rlp trait

* add account compress/ decompress test

* make compressor cleaner, use hashmaps for swapper

* improve compression tests

* add a DecompressingDecoder, change Decoder to take refernce

* separate rlp compression related stuff

* DecompressingDecoder test

* initial compressing HashDB wrapper

* remove unused test

* change CompressedDB to struct wrapper with overlay

* simplify compressor

* failed RefCell attempt

* use denote to return reference

* compiled compresseddb

* compressdb test, add overlay emplace

* fix overlay reference count handling

* add immutable compresseddb, make account use hashdb

* simplify using trait objects

* enable hashdb for account

* initial state compression attempt

* wrap state db

* add tests for analyzing db

* add account predicate

* try to compress data fields as rlp too

* remove compression for storage trie

* add a compressing migration

* more compression stats tests

* fix migration import

* nested encoding compression test

* fix decompression, move db stats tests to rlpcompression

* added malformed rlp tests, cover a few edge cases

* new CompressingEncoder struct

* extend migrations to state

* first version working on the whole db

* clean up Compressible impl

* tests cleanup

* add a testing migration

* refactor deep compression using option, add simple compression

* put tests in a module

* fix compressed overlay loading

* simple compression for snapshots

* remove unused DecompressingDecoder

* add a general compressing migration

* add more common rlps to compress

* use static slices for swapper

* add precomputed hashes and invalid rlps

* make decoder private again

* cover more cases with tests

* style

* fix weird indentation

* remove possible panic in payload_info

* make prefix checking safe

* fix db existence check

* remove db dir from test

* pass usize by value [ci skip]

* Improve comment on panic removal.

* add common blocks db rlps

* add compression to blockchain db

* add blocks db migration

* fix the migrations

* remove state compression

* add a separate snapshot swapper

* ability to use different swappers and traversal

* update tests to new interface

* clean up code ordering

* update usage

* fix compilation

* remove unnecessary changes

* move methods to functions to reduce interface

* move test to module

* update common rlps to blocks db

* move tests to tests modules

* remove redundant &
2016-07-27 17:11:41 +02:00
Nikolay Volf
4907c5028f Merge pull request #1739 from ethcore/ipc-fix-macos
bump json-ipc-server version
2016-07-27 17:50:34 +03:00
NikVolf
c5ddacc3ee bump json-ipc-server version 2016-07-27 15:48:23 +03:00
Arkadiy Paronyan
c65ee93542 Use std::sync::Condvar (#1732)
test
2016-07-27 11:39:24 +02:00
Nikolay Volf
4cb4344542 Bump json-ipc-server version (#1733)
* bump json-ipc-server version

* polished json-ipc version
2016-07-27 00:03:01 +02:00
Nikolay Volf
a9ae6e3b58 bump json-ipc-server version (#1731) 2016-07-26 20:31:46 +02:00
Tomasz Drwięga
3f41186b2e Fixing some clippy warnings (#1728)
* Fixing warnings

* Fixing unnecessary ref

* Removing unnecessary operation
2016-07-26 20:31:25 +02:00
Tomasz Drwięga
01e33ffb61 Bumping Parity UI [ci skip] (#1682) 2016-07-26 16:51:28 +02:00
Gav Wood
7cf807d1b4 Various improvements to tracing & diagnostics. (#1707)
* Various improvements to tracing & diagnostics.

- Manage possibility of `Account` not having code for `PodAccount`
- New RPC: `trace_sendRawTransaction`
- See raw transaction dump when inspecting over RPC

* Fix test

* Remove one of the dupe error messages

* Remove unneeded `&`s

* Reformat and extremely minor optimisation

* Minor optimisation

* Remove unneeded let

* Fix tests.

* Additional fix.

* Minor rename.

[ci:skip]

* Bowing to the pressure.
2016-07-26 16:48:50 +02:00
Arkadiy Paronyan
53a975d1dc Fixed reading chunked EIP8 handshake (#1712)
* Fixed reading chunked EIP8 handshake

* Added missing break
2016-07-26 16:04:14 +02:00
Arkadiy Paronyan
6c15a47acc Fix importing blocks from a pipe file (#1724) 2016-07-26 10:44:01 +02:00
Nikolay Volf
1cc6b2b976 Proper errors for binary serializer (#1714)
* proper error typing

* error management

* tests effort
2016-07-26 10:33:52 +02:00
Arkadiy Paronyan
22a87b1203 Use transaction for writing blocks (#1718) 2016-07-26 00:25:49 +02:00
Nikolay Volf
67a9a40243 Exclude generated code from coverage (#1720)
* exclude target/(release|debug)/build path

* comma
2016-07-26 00:21:49 +02:00
Nikolay Volf
f614a69929 moving to the single binary (#1710) 2016-07-26 00:21:08 +02:00
Gav Wood
856657e39a Log a chain-reorg. (#1715)
* Log a chain-reorg.

* Nicer output

* Use imported rather than enacted.

Enacted can include previously imported blocks which makes the
info incorrect.
2016-07-26 00:20:37 +02:00
Arkadiy Paronyan
431ba5e260 Restore new block informant message (#1716) 2016-07-26 00:19:37 +02:00
debris
4dc1d42a93 moving hash.rs to bigint in progress 2016-07-25 20:19:33 +02:00
Arkadiy Paronyan
d0e79be5c6 Parallel block body download (#1659) 2016-07-25 18:38:36 +02:00
Arkadiy Paronyan
898f1410a5 Rotate blockchain cache (#1709) 2016-07-25 18:17:45 +02:00
Gav Wood
b220e07feb Fix broken internal names. (#1711) 2016-07-25 17:45:55 +02:00
Marek Kotewicz
226fe8e0bb cli overhaul (#1600)
* cli commands

* cleanup parity/signer

* cleanup parity/signer

* remove redundant import of signer crate from main.rs

* cli cleanup in progress

* cli cleanup in progress

* moved few commonly used functions to separate methods with tests

* cleaning up blockchain import in progress

* cleaning up blockchain import in progress2

* cleaning up blockchain import in progress3

* tests for database compaction profile parsing

* cleaning up blockchain import in progress4

* cleaning up blockchain import in progress5

* blockchain import

* export blockchain in progress

* cleanup execute_export

* Configuration::to_duration cleaned up

* removed unused code, tests for to_duration

* cleanup Configuration::mode function

* parsing some of the cli params in params.rs

* rpc and signer are no longer optional

* move importing extern crates to main.rs file

* swipe dies from rpc module

* swipe dies from dapps

* finding deprecated

* several tests and fixes for parity

* parity cleanup in progress

* cleanup price parsing

* parity cleanup in progress

* swiped all dies

* parity cleanup in progress

* replace usages of from_str with parse() in parity/params.rs

* removed few more from_str

* split parity/params.rs into params and helpers

* removed wildcard import from configuration.rs

* cleanup directories/path creation

* cleaning up run cmd

* moved LoggerConfig

* defaults for cli params

* fixed indention in raise_fd_limit

* tests for rpc_apis

* tests for default ipc and rpc settings

* ipc socket

* cleanup in progress

* account service

* cleanup miner config

* BlockChain commands use Directiores structure now

* client_config

* network settings and dapps configuration

* removing warnings

* default logger config

* fixed client_path

* overhaul

* fixing export && import

* default export DataFormat

* import and export also upgrade db

* fixed export && import

* polishing pr

* polishing pr

* fixed custom bootnodes

* fixed daemonize on windows

* fixed setting up enable network

* finished pr

* fixed compiling on windows

* Fixed warning; windows build

* Better cache management

* Fixed tests on windows

* Fixed test

* Restored pruning method names

* --cache alias

* Fixed more tests

* Ensure default options actually listed as valid

[ci:skip]
2016-07-25 16:09:47 +02:00
Gav Wood
435ba186f8 Key files include timestamp in name. (#1700)
* Key files include timestamp in name.

Introduce timestamp into new key files; keep filename around, so
that we don't accidentally duplicate keys.

* Remove unnecessary clone

* Fix test code.

* Remove log module from ethstore
2016-07-25 10:45:45 +02:00
Arkadiy Paronyan
f048839a4b Fixing warnings (#1705) 2016-07-25 10:21:02 +02:00
Gav Wood
e734810293 Ethereum classic (#1706)
* Add Ethereum Classic support

(Rename homestead-dogmatic -> classic)

* Additional change needed.

* More needed changes.

* Separate database path for known forks.

* Address minor grumble.
2016-07-25 10:20:22 +02:00
Anthony Tatowicz
8574bfd546 Docker Arguments (#1703)
Allows args to be passed in for more flexibility.
2016-07-24 17:40:38 +02:00
Gav Wood
9cdd2d265a Informant tidyup. (#1699)
* Informant tidyup.

Clean indent.
Don't skip skipping.

* Move string to right place

[ci:skip]
2016-07-24 17:38:29 +02:00
Gav Wood
3f841cc578 Name and meta in accounts (#1695)
* Introduce persistent name() and meta() in SecretStore.

* Quick stash.

* Fix build.

* Add ethcore_set methods.

* Bug fixes for default values.

* Move to personal to ensure set API exposed.

* Add UUID to accounts info.

* Add tests.
2016-07-24 17:38:21 +02:00
Marek Kotewicz
a76981a61d Stackoverflow #1686 (#1698)
* flat trace serialization

* tracing finds transaction which creates contract

* flatten traces before inserting them to the db
2016-07-24 00:20:21 +02:00
Marek Kotewicz
1fbef3289b filtering transactions toAddress includes contract creation (#1697)
* tracing finds transaction which creates contract

* comma cleanup

Remove when following `}`s, add to final entries.
2016-07-23 18:50:20 +02:00
Arkadiy Paronyan
247495fba2 Prevent syncing to ancient blocks (#1693)
* Don't try to sync to ancient blocks

* Fixed test
2016-07-23 17:27:23 +02:00
Arkadiy Paronyan
9a8fdeead9 Enable WAL and disable DB repair (#1696)
* Enable WAL

* Disable rewind
2016-07-23 17:05:34 +02:00
Tomasz Drwięga
aafb014d01 Returning error when transaction is rejected (for consistency) (#1667) 2016-07-22 14:48:05 +02:00
Tomasz Drwięga
10bdfe6926 Disabling signer when in geth-compatibility mode (#1676) 2016-07-22 14:47:31 +02:00
Marek Kotewicz
63dbb527cc Suicides tracing (#1688)
* tracing suicide

* fixed #1635

* fixed typo
2016-07-22 14:47:23 +02:00
Marek Kotewicz
ce00c13c7a Merge pull request #1685 from ethcore/substate_cleanup
small cleanup of substate.rs
2016-07-21 19:23:28 +02:00
Marek Kotewicz
1372f870d5 Merge pull request #1684 from jesuscript/#411-move-scripts
resolve #411: remove install scripts
2016-07-21 17:39:00 +02:00
debris
a1857bf139 cleaning up substate 2016-07-21 16:50:24 +02:00
debris
77babe6226 added suicide details 2016-07-21 16:26:49 +02:00
Nikolay Volf
8ab56ea3d1 IPC (feature-gated) (#1654)
* moving ipc deriving to trait

* refactoring of the client

* all compiled

* proved all working

* warnings purged

* allow hypervisor to specify initialization payload in two ways

* using binary initialisation payload for sync

* some docs

* logger to separate crate

* log settings for sync bin

* forwarding logging arguments to the sync
2016-07-20 18:13:56 +02:00
Tomasz Drwięga
7ae9e61d6c Bumping JSONRPC-http-server (#1678) 2016-07-20 18:05:22 +02:00
KKudryavtsev
52b1bc5ff6 resolve #411: remove install scripts 2016-07-20 16:46:30 +01:00
Tomasz Drwięga
46b5801730 Fixing hash deserialisation (#1674) 2016-07-20 12:42:12 +02:00
Arkadiy Paronyan
7dd29825c4 Ping discovery nodes gradually (#1671) 2016-07-20 12:41:31 +02:00
Arkadiy Paronyan
8a8cfb133f Deadlock on incoming connection (#1672) 2016-07-20 12:40:26 +02:00
Tomasz Drwięga
9c7395a6be Fixing errors returned by sendTransaction* method family (#1665) 2016-07-20 12:37:49 +02:00
Arkadiy Paronyan
b007770ba8 Moved syncing log out of the client (#1670) 2016-07-20 12:36:20 +02:00
Tomasz Drwięga
0cba70fba3 Host validation (again) (#1666)
* Revert "Revert "Validating Host headers in RPC requests" (#1663)"

This reverts commit 3cc3dbef66.

* Fixing binding on MacOS
2016-07-20 12:34:17 +02:00
Nikolay Volf
9c8b80f998 Update install-deps.sh (#1664) 2016-07-20 12:31:27 +02:00
gregg dourgarian
d67369a01c fix typos (#1644) 2016-07-19 20:42:23 +02:00
Gav Wood
861c8d0701 Size for blocks (#1668)
* Add size field for blocks.

* Ignore invalid test.
2016-07-19 20:40:18 +02:00
Gav Wood
3cc3dbef66 Revert "Validating Host headers in RPC requests" (#1663) 2016-07-19 13:15:25 +02:00
Tomasz Drwięga
6e79a36ef6 Validating Host headers in RPC requests (#1658)
* Validating Host headers in RPC requests

* Fixing convention [ci skip]

* Remove extra indent.

[ci:skip]
2016-07-19 12:53:58 +02:00
Marek Kotewicz
615fca5dc5 Merge pull request #1662 from ethcore/fixed_failing_master
fixed failing master
2016-07-19 10:54:57 +02:00
debris
f31e7d54af fixed failing master 2016-07-19 10:54:25 +02:00
Tomasz Drwięga
038862fa9d Fixing clippy warnings (#1660) 2016-07-19 09:25:51 +02:00
Arkadiy Paronyan
340f0b6f58 Don't ping all nodes on start (#1656)
* Don't ping all nodes on start

* Fixed test
2016-07-19 09:24:19 +02:00
Arkadiy Paronyan
4e447ccc68 More performance optimizations (#1649)
* Use tree index for DB

* Set uncles_hash, tx_root, receipts_root from verified block

* Use Filth instead of a bool

* Fix empty root check

* Flush block queue properly

* Expunge deref
2016-07-19 09:23:53 +02:00
Nikolay Volf
459dcbcef1 Removing unused client code (#1645)
* moving ipc deriving to trait

* refactoring of the client
2016-07-19 09:21:41 +02:00
Gav Wood
3ba3dd3805 Asynchronous transactions (polling based for now). (#1652)
* Asynchronous transactions (polling based for now).

- Alter eth_sendTransaction to be async, returning one of:
  - Transaction hash (signed and submitted).
  - Transaction promise ID (< 32 bytes).
  - Zero hash (will never be signed).
- Introduce new JSONRPC eth_checkTransaction.

The new API call takes a single argument - a promise ID. It returns
either:
- Transaction hash (signed and submitted).
- null (still pending, call again later),
- Zero hash (will never be signed).

* New RPC eth_postTransaction

- Restore previous semantics of sendTransaction.
- Introduce eth_postTransaction.
- Some refactoring.

* Fix minor lockup.

* Use TransientHashMap to prevent leak.
2016-07-19 09:19:58 +02:00
Nikolay Volf
18f16616fe Merge pull request #1637 from ethcore/sync-svc
Sync stand-alone binary and feature-gated dependencies refactoring
2016-07-18 16:32:13 +02:00
NikVolf
028d6f6853 Merge branch 'master' into sync-svc 2016-07-18 15:20:57 +02:00
NikVolf
6a47fd176b remove import glob 2016-07-18 15:20:25 +02:00
Tomasz Drwięga
605d9d24a4 Adding more details to miner log 2016-07-18 13:50:45 +02:00
Marek Kotewicz
3d00a912b5 Merge pull request #1627 from ethcore/new-ui
Re-enabling Parity UI
2016-07-18 12:16:37 +02:00
Tomasz Drwięga
3005b394f3 Verbose compilation 2016-07-18 10:39:57 +02:00
Arkadiy Paronyan
dd17c766b8 Blockchain repair on missing state root (#1646)
* BC locking; Recovery batch

* Missing state root recovery

* Test
2016-07-17 23:03:29 +02:00
Gav Wood
0d2f516ad7 Multi-mode logging. (#1643)
* Multi-mode logging.

Better for miners (they get immediate notification of new block).
Better for general use (less superfluous information shown).

* Remove comment.

[ci:skip]

* Minor string change

[ci:skip]

* Minor message tweak.

* Minor tweaks and indentation fix.
2016-07-17 23:00:57 +02:00
Gav Wood
34b7cf2e0a Pro paths (#1650)
* Util funtions to get OS-standard config path.

* Build fix.
2016-07-17 23:00:47 +02:00
Tomasz Drwięga
a2735308b9 Merge branch 'master' into new-ui 2016-07-17 17:41:58 +02:00
NikVolf
a44e95b0ec hashing secret on the sync side 2016-07-17 10:39:35 +02:00
Arkadiy Paronyan
5ab18d1313 Performance optimizations (#1642)
* Optimize ethash verification

* disable WAL for puts

* Clear account cache after commit

* Commit only modified accounts

* Optimize existing block check

* Cache last hashes
2016-07-17 09:18:15 +02:00
Arkadiy Paronyan
5dba43178b Removed DAO soft fork traces (#1639) 2016-07-16 19:49:52 +02:00
NikVolf
9eed51ed20 comments - 2016-07-16 19:25:28 +02:00
NikVolf
c3ef5c10a3 got rid of the generic parameter for ipc interface 2016-07-16 19:24:45 +02:00
NikVolf
77bbab009e got rid of Arc<T> dispatch 2016-07-16 19:09:14 +02:00
Arkadiy Paronyan
d8472a8031 1.2.2 2016-07-16 19:06:26 +02:00
NikVolf
8e26977693 review fixes 2016-07-16 18:51:06 +02:00
Nikolay Volf
72a8f56e51 appveyor rustc version update (#1638) 2016-07-16 18:37:03 +02:00
NikVolf
a74b72faa2 submodules update 2016-07-16 16:51:03 +02:00
NikVolf
ac8db8f101 redundant crate 2016-07-16 16:00:14 +02:00
NikVolf
be25e930e5 Merge branch 'master' into sync-svc 2016-07-16 15:57:30 +02:00
NikVolf
fea05dc594 toml file fix 2016-07-16 15:55:07 +02:00
NikVolf
4cb1c906b0 rpc dependencies relayout 2016-07-16 15:51:06 +02:00
Arkadiy Paronyan
64417594c7 Delete values immediately from DB overlay (#1631)
* Delete values immediately from DB overlay

* Match remove behaviour; test

* Warning fixed
2016-07-16 14:48:54 +02:00
NikVolf
98ddff1326 dependancies layout 2016-07-16 14:24:57 +02:00
Gav Wood
799c69c8d5 DAO hard-fork (#1483)
* Minor additions to allow resetting of code.

* Add test.

* Provisional DAO hard-fork proposal.

* Change to reflect latest HF spec.

* Include extradata restrictions and overrides.

* Introduce new tests.

* Update tests to new spec format.

* Allow JSON chain spec fields to be optional.

* Remove superfluous definitions. Fix overflow risk.

* Fix build.

* Add missing file.

* Remove old flag.

* Update to latest address set.

* Update tests and test spec to latest.

Change the mining default to release only on own transactions.
2016-07-16 13:02:56 +02:00
Nikolay Volf
7b5d39e0a1 fix network_start regression (#1629)
* fix network_start regression

* network io handler

* move registration to the network start
2016-07-16 11:31:59 +02:00
keorn
78007cf80b Die if the DB is newer than the one supported. (#1630)
* die on DB from the future

* use error type to print messages, print db path
2016-07-16 10:41:09 +02:00
NikVolf
b1a67bf18f hypervisor refactoring 2016-07-15 19:50:17 +02:00
NikVolf
4a9d57d2ce flush work 2016-07-15 17:39:59 +02:00
NikVolf
507a4ea26c basic layout of sync executable and minor fixes in the api 2016-07-15 15:32:29 +02:00
Tomasz Drwięga
e74ab38e29 Enabling tests in release 2016-07-15 11:14:49 +02:00
Tomasz Drwięga
3d35529016 Precompiled JS features 2016-07-15 10:34:33 +02:00
Gav Wood
d14b6871a5 Cleanup of colour code. Use is_a_tty. (#1621)
* Cleanup of colour code. Use is_a_tty.

* Fix test build.

* Another fix.
2016-07-15 10:11:14 +02:00
Tomasz Drwięga
66f8038b6b Updating UI 2016-07-14 19:32:15 +02:00
Robert Habermeier
d5d0cb0b47 don't batch best block for branches (#1623) 2016-07-14 19:16:01 +02:00
Robert Habermeier
517c705ab5 In-memory trie operations (#1408)
* small cleanups in trie

* Memory trie skeleton

* decode nodes from RLP

* memorytrie -> memorytriedb

* implement Trie for MemoryTrie

* partially implement insert

* implement trie insertion

* don't load whole trie into memory, lookup across memory and db

* re-implement insertion and lazily load necessary nodes from DB

* node removal w/o fixing

* reduce churn in node storage

* finish remove implementation

* committing the in-memory trie

* reload root node after commit

* generate elastic arrays when converting nodes to rlp

* port triedbmut tests over to memorytriedb, fix a few bugs.

* hash count and dirty flag

* initial attempt for node inspection

* back to skeleton

* inspection framework

* implement insertion

* no panic paths in insert

* implement deletion without fixing

* node fixing

* commit nodes to db

* tracing targets and bugfix

* get tests to pass with a lot of tracing

* set playpen iterations to 10

* remove some tracing statements

* make TrieMut::root take &mut self

* replace triedbmut with memorytriedb

* treat empty insert value as removal

* add test for null insert

* fix some style concerns

* trie: use nodehandle for root_node, minor cleanup
2016-07-14 18:06:46 +02:00
Gav Wood
598833d1ea Fix "pending" parameter on RPC block requests (#1602)
* Initial commit.

* Pending blocks work.

* Address grumbles.

* Fix up for new API.
2016-07-14 15:24:12 +02:00
Gav Wood
2b193f00d4 Allow RPC to use solc to compile solidity (#1607)
* Allow use to use solc to compile solidity.

* Remove unneeded commemt.

[si:skip]

* Address grumble and disable incorrect tests.
2016-07-14 14:25:44 +02:00
Nikolay Volf
be7c771efd IPC RPC deriving for traits (#1599)
* sorting out the multi-interface dispatch scenario

* codegen expansion for traits

* fix rwlock
2016-07-14 14:25:18 +02:00
Robert Habermeier
e0efe577b3 Merge pull request #1619 from ethcore/kcov-cache
Utilize cached kcov if exists
2016-07-14 13:29:40 +02:00
Tomasz Drwięga
facbb93c62 Fixing no-ui feature (#1618)
* Fixing no-ui feature

* Extra line
2016-07-14 12:52:24 +02:00
Nikolay Volf
06e8ae19e3 Merge pull request #1614 from ethcore/cache-pref
Couple of rocksdb optimizations
2016-07-14 12:37:08 +02:00
NikVolf
c60e02d151 fix rwlock 2016-07-14 12:32:55 +02:00
NikVolf
f380340a9b codegen expansion for traits 2016-07-14 12:29:08 +02:00
NikVolf
2310ecb480 sorting out the multi-interface dispatch scenario 2016-07-14 12:29:05 +02:00
Tomasz Drwięga
6c205067b1 Miner tests (#1597)
* Un-ignoring RPC test

* Additional tests for importing transactions
2016-07-14 12:16:53 +02:00
Nikolay Volf
44bc8a08fb Sync IPC interface (#1584)
* chain notify trait

* replaced network service with io service

* fix ethcore crate warnings

* refactored network service without generic

* ethcore fix

* ethsync refactoring

* proper linking of notify

* manage network interface

* rpc crate rebinding

* full rewire

* sync internal io service

* fix deadlock

* fix warnings and removed async io

* sync imported message propagation

* fix rpc warnings

* binart warnings

* test fixes

* rpc mocks and tests

* fix util doctest

* fix message name and removed empty notifier

* pointers mess & dark mode fixed

* fixed sync doctest

* added few warnings

* fix review

* new convention match

* fix error unwraps

* doctest fix

* basic library re-layout

* missing files to relayout

* duplicating network config on sync level

* binary serializers for config

* ipc endpoint for manage

* ipc endpoint for sync

* handshake sorting out

* sorting out the multi-interface dispatch scenario

* fixing tests

* fix doctest
2016-07-14 12:07:33 +02:00
Tomasz Drwięga
80c734efe2 Utilize cached kcov if exists 2016-07-14 11:20:19 +02:00
Arkadiy Paronyan
8d0e05adb7 Make sure reserved peers are in the node table (#1616) 2016-07-14 10:38:53 +02:00
Nikolay Volf
50c43bd819 Merge pull request #1610 from ethcore/db-repair
Fix bloomchain on blockchain repair
2016-07-14 01:14:57 +02:00
Marek Kotewicz
1053f3610c fixed #1606 (#1615) 2016-07-13 21:10:20 +02:00
Robert Habermeier
a7511b6b02 fix benchmark compilation (#1612) 2016-07-13 20:45:15 +02:00
Tomasz Drwięga
1b86f8368d Updating jsonrpc-http-server (#1611) 2016-07-13 20:19:48 +02:00
Robert Habermeier
36d3d0d7d7 replace synchronization primitives with those from parking_lot (#1593)
* parking_lot in cargo.toml

* replace all lock invocations with parking_lot ones

* use parking_lot synchronization primitives
2016-07-13 19:59:59 +02:00
NikVolf
9fd95e6694 wiping also for non-prefixed db 2016-07-13 19:51:03 +02:00
Robert Habermeier
4226c0f631 Merge pull request #1604 from ethcore/noui
ui compilation feature
2016-07-13 19:20:10 +02:00
NikVolf
9a0a5b4c22 disable wal & set block based cache when prefix specified 2016-07-13 19:05:06 +02:00
NikVolf
3ac33ceda0 block options for prefixed 2016-07-13 18:43:24 +02:00
Robert Habermeier
0f83ef6a0b Merge pull request #1608 from ethcore/pow-opt
is_zero() and pow() optimisations for uint
2016-07-13 17:33:11 +02:00
Tomasz Drwięga
fc6e598b40 Merge branch 'master' into noui
Conflicts:
	.travis.yml
2016-07-13 17:20:50 +02:00
Nikolay Volf
691e55227d Merge pull request #1591 from tomusdrw/optimizing-build
Optimizing & Cleaning the build
2016-07-13 17:15:46 +02:00
Tomasz Drwięga
6738fe8268 Merge branch 'noui' of github.com:ethcore/parity into noui 2016-07-13 16:39:19 +02:00
Tomasz Drwięga
507a638762 Disabling ethcore-dapps testing (for a while) 2016-07-13 16:39:03 +02:00
arkpar
80d59949ff Fix bloomchain on blockchain repair 2016-07-13 14:28:46 +02:00
Tomasz Drwięga
29a5c1785c Disabling building UI 2016-07-13 12:39:51 +02:00
Tomasz Drwięga
91ae781f05 Disabling building UI 2016-07-13 11:59:47 +02:00
NikVolf
e75274df66 more pow opts 2016-07-13 11:58:08 +02:00
Tomasz Drwięga
e0f6709f05 Merge branch 'master' into noui
Conflicts:
	Cargo.toml
2016-07-13 11:48:04 +02:00
NikVolf
02ecb6b37b pow uses shifts and zero comp 2016-07-13 11:29:18 +02:00
Tomasz Drwięga
29076da4b7 UI feature 2016-07-13 11:10:43 +02:00
Gav Wood
420f2ad6c4 Update parity-dapps to be able tobuild on mac. 2016-07-13 09:10:46 +02:00
Gav Wood
3abe3e1fbc Fix logging (#1590)
* Strip colour for everywhere except the terminal.

* Log to file.

Fixes #1560.

* Fix indentation.

[ci:skip]

* Remove unnecessary clone()ing.

* Update setup_log.rs

* remove unnecessary mutex in logging (#1601)
2016-07-13 09:05:26 +02:00
Tomasz Drwięga
cc19f11c4d Merge branch 'master' into optimizing-build
Conflicts:
	.travis.yml
2016-07-12 20:22:35 +02:00
Tomasz Drwięga
11cae70cdd No-ui compilation feature 2016-07-12 20:15:36 +02:00
Robert Habermeier
b37ceccf02 Merge pull request #1566 from ethcore/streamlined-ui
Using streamlined parity-ui repository
2016-07-12 19:24:16 +02:00
Robert Habermeier
ab44168e1c Merge pull request #1595 from ethcore/evm-instructions
Optimizing InstructionInfo access.
2016-07-12 19:21:41 +02:00
Tomasz Drwięga
4cf8df87e5 Merge pull request #1594 from rphmeier/migration_progress
V7 Migration progress indicator
2016-07-12 17:23:03 +02:00
Tomasz Drwięga
a784240734 Fixing formatting for coverage 2016-07-12 16:22:05 +02:00
Nikolay Volf
d956b7cea3 Merge pull request #1577 from ethcore/pv64
bring snapshotting work into master
2016-07-12 13:46:55 +02:00
Tomasz Drwięga
c3925a494d Fixing coverage reports generation 2016-07-12 13:25:55 +02:00
Robert Habermeier
60302acb94 merge with master 2016-07-12 13:09:42 +02:00
Robert Habermeier
c26627d968 Merge branch 'master' into migration_progress 2016-07-12 12:46:34 +02:00
Robert Habermeier
86df371a72 dots on same line 2016-07-12 12:20:43 +02:00
Tomasz Drwięga
174e142ad9 Updating UI 2016-07-12 12:06:17 +02:00
Tomasz Drwięga
61c405a014 Merge branch 'master' into streamlined-ui 2016-07-12 12:06:01 +02:00
Tomasz Drwięga
fbc0e0039a Bump clippy (#1587)
* Bumping clippy

* Fixing warnings
2016-07-12 10:34:08 +02:00
Nikolay Volf
636ecf306a handshake sorting out (#1586) 2016-07-12 10:33:20 +02:00
Tomasz Drwięga
2746c1c18c Merge branch 'master' into evm-instructions
Conflicts:
	evmbin/bench.sh
2016-07-12 10:32:40 +02:00
Tomasz Drwięga
fd6d66fc86 Fixing coverage reports 2016-07-12 10:30:59 +02:00
Tomasz Drwięga
c7a11418bb Getting rid of get_info 2016-07-12 10:28:42 +02:00
Robert Habermeier
7200cfcbc9 expunge &Vec<T> pattern (#1579)
* expunge &Vec<T> pattern

* fix travis
2016-07-12 10:28:35 +02:00
Tomasz Drwięga
92fd00f41e EVM gas for memory tiny optimization (#1578)
* EVM bin benches

* Optimizing mem gas cost

* Removing overflow_div since it's not used

* More benchmarks
2016-07-12 09:49:16 +02:00
Robert Habermeier
4269867ca4 remove unnecessary assertion 2016-07-11 19:56:27 +02:00
Tomasz Drwięga
29a2238299 Going back to standard builds 2016-07-11 19:53:26 +02:00
Robert Habermeier
7e13ce6185 v7 migration progress 2016-07-11 19:39:06 +02:00
Tomasz Drwięga
cb2ace82db Uploading to coveralls 2016-07-11 19:33:39 +02:00
Tomasz Drwięga
d9aeafa40e Removing --verify [ci skip] 2016-07-11 19:11:42 +02:00
Tomasz Drwięga
3159e20814 Build fixes 2016-07-11 18:56:28 +02:00
Tomasz Drwięga
ab1c6cd655 New GCC 2016-07-11 18:55:00 +02:00
Tomasz Drwięga
d65a1d2b2a Fixing coverage script. 2016-07-11 18:41:26 +02:00
Robert Habermeier
673cde6c7f add block tests 2016-07-11 18:31:18 +02:00
Tomasz Drwięga
248428657d Fixing travis.yml 2016-07-11 18:23:24 +02:00
Tomasz Drwięga
9eeafecd76 Build & Scripts optimization 2016-07-11 18:19:00 +02:00
Marek Kotewicz
c5ed363bba cleaned up parity/signer (#1551)
* cleanup parity/signer

* remove redundant import of signer crate from main.rs

* rpc and signer are no longer optional

* move importing extern crates to main.rs file
2016-07-11 17:11:49 +02:00
Nikolay Volf
d3695d0b72 Major sync <-> client interactions refactoring (#1572)
* chain notify trait

* replaced network service with io service

* fix ethcore crate warnings

* refactored network service without generic

* ethcore fix

* ethsync refactoring

* proper linking of notify

* manage network interface

* rpc crate rebinding

* full rewire

* sync internal io service

* fix deadlock

* fix warnings and removed async io

* sync imported message propagation

* fix rpc warnings

* binart warnings

* test fixes

* rpc mocks and tests

* fix util doctest

* fix message name and removed empty notifier

* pointers mess & dark mode fixed

* fixed sync doctest

* added few warnings

* fix review

* new convention match

* fix error unwraps

* doctest fix
2016-07-11 17:02:42 +02:00
Robert Habermeier
49ba117f13 add account tests 2016-07-11 16:54:50 +02:00
Tomasz Drwięga
3647628ae2 Merge branch 'evm-bench' into evm-instructions 2016-07-11 16:41:14 +02:00
Tomasz Drwięga
2d5d632d74 Optimizing instruction info 2016-07-11 16:18:27 +02:00
Tomasz Drwięga
fbdde8f0e6 More benchmarks 2016-07-11 16:17:30 +02:00
Tomasz Drwięga
986c28efb7 Updating UI 2016-07-11 15:45:47 +02:00
Marek Kotewicz
2382d779ca failing state root with overlayrecent pruning (#1567) 2016-07-11 15:22:08 +02:00
Robert Habermeier
24ec696062 rebuild uncles hash from uncle headers 2016-07-11 15:19:01 +02:00
Tomasz Drwięga
cca4efb861 Removing overflow_div since it's not used 2016-07-11 14:52:56 +02:00
Tomasz Drwięga
f1edd3d683 Optimizing mem gas cost 2016-07-11 13:22:25 +02:00
Robert Habermeier
da9e9692dc remove outdated comment; prove panickers; update manifest 2016-07-11 13:17:26 +02:00
Arkadiy Paronyan
da4b1c36cb Enable state queries for overlayrecent db (#1575) 2016-07-11 12:34:29 +02:00
Tomasz Drwięga
edaf24a2ce EVM bin benches 2016-07-11 12:15:22 +02:00
Robert Habermeier
b91d339bf2 merge with master 2016-07-11 11:19:19 +02:00
Robert Habermeier
c7af950992 ignore warnings temporarily 2016-07-11 11:10:08 +02:00
Robert Habermeier
3dd7ce5566 merge accountdb_migration 2016-07-11 11:08:41 +02:00
Tomasz Drwięga
803682d9b8 Installing node on appveyor 2016-07-11 10:43:02 +02:00
Tomasz Drwięga
002d808a8a Merge branch 'master' into streamlined-ui 2016-07-11 10:40:16 +02:00
Robert Habermeier
bdf4446173 have AccountDB use address hash for uniqueness (#1533)
* partially done alternate migration scheme

* finish altering migration framework

* migrate tests to new migration framework

* address comments

* remove superfluous newline
[ci skip]

* TempIdx -> TempIndex
[ci skip]

* modify account_db to work on address hash, not address

* add a database migration for new accountdb

* preserve first 96 bits of keys when combining

* handle metadata keys in migration and preserve first 96 bits

* fix comments and hash address instead of hash

* different migrations based on pruning

* migrations mutably borrow self

* batch abstraction for migration

* added missing licence headers

* overlay recent v7 migration

* better error handling, migrate version key as well

* fix migration tests

* commit final batch and migrate journaled insertions

* two passes on journal to migrate all possible deleted keys
2016-07-11 09:46:33 +02:00
Tomasz Drwięga
2ed09de38e Very basic EVM binary. (#1574)
* EVM binary - initial version

* Adding missing documentation

* Fixing warnings

* Basic evmbin options

* EVMbin crate.
2016-07-11 09:42:41 +02:00
Robert Habermeier
c8b565805e merge with master 2016-07-10 21:43:16 +02:00
Nikolay Volf
e15f631ec7 Some obvious evm & uint optimizations (#1576)
* fix name and tests for endians

* using renamed func

* zero and sign opt
2016-07-10 20:18:23 +02:00
Tomasz Drwięga
d7caae2241 Fixing clippy warnings (#1568)
* Fixing clippy warnings

* Fixing more warnings
2016-07-10 13:18:33 +02:00
Nikolay Volf
ae757afe15 Merge pull request #1570 from ethcore/dynamic-gas-price
Miner's gas price gets updated dynamically
2016-07-10 00:08:29 +02:00
Robert Habermeier
895b027527 two passes on journal to migrate all possible deleted keys 2016-07-09 17:56:09 +02:00
Robert Habermeier
36dfa4743e merge accountdb migration 2016-07-09 17:33:14 +02:00
Gav Wood
ee253c7a3f Fix tests again. 2016-07-09 17:22:20 +02:00
Nikolay Volf
32a4a060d6 bringing hypervisor as a crate in ipc dir (#1565)
* resurrecting hypervisor in ipc namespace

* get rid of the quotes

* target: hypervisor
2016-07-09 17:18:34 +02:00
Gav Wood
716de21873 Address review grumble. 2016-07-09 16:59:15 +02:00
Gav Wood
172553c81e Fix test. 2016-07-09 16:39:59 +02:00
Robert Habermeier
2e24348c2d Merge pull request #1573 from ethcore/net-init
Init public interface with IO message
2016-07-09 15:42:00 +02:00
Robert Habermeier
1f885254e1 commit final batch and migrate journaled insertions 2016-07-09 15:22:59 +02:00
Gav Wood
9a70f717ad Merge remote-tracking branch 'origin/master' into dynamic-gas-price 2016-07-09 12:29:23 +02:00
Gav Wood
d4d63a5688 Merge branches 'kill_unwraps' and 'dynamic-gas-price' of github.com:ethcore/parity into dynamic-gas-price 2016-07-09 12:29:06 +02:00
arkpar
f48d030f0b Init public interface with IO message 2016-07-09 11:48:52 +02:00
Tomasz Drwięga
b304ce5838 Uncommenting simple Miner tests (#1571) 2016-07-09 11:23:06 +02:00
Nikolay Volf
5fe14e172e Merge pull request #1558 from ethcore/kill_unwraps
Kill lock unwraps
2016-07-09 00:08:59 +02:00
Gav Wood
9b1d1dc336 Merge remote-tracking branch 'origin/master' into kill_unwraps 2016-07-08 20:42:11 +02:00
Gav Wood
c648171f91 Fix the HTTP client for getting price. 2016-07-08 20:01:20 +02:00
Robert Habermeier
274e7767b4 fix migration tests 2016-07-08 18:28:11 +02:00
Gav Wood
ef0a41c7b3 Merge remote-tracking branch 'origin/master' into dynamic-gas-price 2016-07-08 17:36:21 +02:00
Gav Wood
9afbc9816d Merge branch 'master' into kill_unwraps 2016-07-08 17:31:30 +02:00
Gav Wood
25e6b2b827 Initial implementation of dynamic gas pricer. 2016-07-08 17:26:06 +02:00
Tomasz Drwięga
eef9586c57 Fixing deadlock in miner (#1569)
* Fixing deadlock in miner

* Adding more comments [ci skip]
2016-07-08 17:19:14 +02:00
Robert Habermeier
3b0b1375f2 better error handling, migrate version key as well 2016-07-08 16:45:04 +02:00
Robert Habermeier
aaf9490c91 Merge branch 'master' into accountdb_migration 2016-07-08 16:14:53 +02:00
Robert Habermeier
171e93752c overlay recent v7 migration 2016-07-08 16:07:06 +02:00
Robert Habermeier
fe027e872c added missing licence headers 2016-07-08 15:58:36 +02:00
Robert Habermeier
a160adadaa batch abstraction for migration 2016-07-08 15:37:37 +02:00
Tomasz Drwięga
598ad4d5da Updating node version for appveyor. 2016-07-08 15:25:24 +02:00
Tomasz Drwięga
0467bfc9ed Using parity-ui repository for builds 2016-07-08 13:37:09 +02:00
Robert Habermeier
3e61d6f3f9 migrations mutably borrow self 2016-07-08 13:08:51 +02:00
Gav Wood
57c14eedfa Place ideal peers in the log output. (#1563) 2016-07-07 15:25:58 +02:00
Gav Wood
43d931de12 Minor indent fix. (#1561) 2016-07-07 13:18:09 +02:00
Nikolay Volf
f023d7a17f Merge pull request #1559 from ethcore/client-ipc-tests
Enum variants serialisation test&fix
2016-07-07 14:15:46 +04:00
Gav Wood
d7077c8ef7 Fix build. 2016-07-07 11:28:33 +02:00
NikVolf
b33cb32a11 Merge branch 'master' into client-ipc-tests 2016-07-07 11:16:57 +03:00
NikVolf
3c046556b5 fix test url 2016-07-07 11:14:37 +03:00
NikVolf
326ea59258 enum fix & block query test 2016-07-07 11:07:27 +03:00
Tomasz Drwięga
7af366c5b1 Supporting /api/ping for dapps server (#1543)
* Refactoring dapps to support API endpoints.

* Using ContentHandler for unauthorized requests

* Extracting url stuff

* Adding ping endpoint

* CORS support for ping request

* Fixing url.is_none()

* minor formatting fix

[ci:skip]
2016-07-07 09:42:49 +02:00
Gav Wood
9f43526c88 Merge branch 'master' into kill_unwraps 2016-07-07 09:40:12 +02:00
Nikolay Volf
8282c7dd50 Client IPC Interface (#1493)
* btree map serializer

* serde tests

* state diff serialization

* basic layout

* more missing serializaers

* uncle returns rlp

* block queue info

* sorting with transaction result

* sorting out util imports

* transaction import result sorting also

* sorting filters & ranges

* error sorting out

* deriving ipc service compiling

* rpc & sync recompile

* sorting rpc using uncles

* fix compilation

* fix merging bugs

* fix unused imports

* fix all warnings

* tests stub

* some merge bugs

* ethcore compilation

* fix rpc compilation

* deriving attribute

* tests (and fixes)

* rpc test working

* fix warnings again

* rs.in -> rs

* missing attribute

* refactored tree changes

* paste reformat mess fix

* pub mod actually

* intendation fix
2016-07-07 09:39:32 +02:00
Gav Wood
3b662c285f Switch out .X().unwrap() for .unwrapped_X 2016-07-07 09:37:31 +02:00
NikVolf
1f1b420230 Merge branch 'client-ipc-refact' into client-ipc-tests 2016-07-07 10:00:41 +03:00
Gav Wood
456ad9e21b Remove .lock().unwrap() idiom into locked(). 2016-07-06 19:52:34 +02:00
NikVolf
f06cff48b9 intendation fix 2016-07-06 20:33:20 +03:00
NikVolf
b1ca41dea8 pub mod actually 2016-07-06 20:31:48 +03:00
NikVolf
5dd5983568 paste reformat mess fix 2016-07-06 20:25:42 +03:00
NikVolf
2abf1df667 Merge branch 'master' into client-ipc-refact 2016-07-06 20:20:44 +03:00
Arkadiy Paronyan
d7e225c0af Kill timers when removing IO handler (#1554) 2016-07-06 19:14:53 +02:00
NikVolf
1ac2987437 refactored tree changes 2016-07-06 20:07:24 +03:00
Gav Wood
cd7b046d80 Fix and add info messages (#1552)
* Display information on journal database on startup.

* Minor restyling.

* Client handles the enode message to avoid repeats.

* Avoid unneeded copies *and* reduce code.

* Fix up typo.
2016-07-06 18:28:11 +02:00
Gav Wood
095e51c39c Fix indent of #1541 (#1555) 2016-07-06 17:42:01 +02:00
Nipunn Koorapati
4a9b9dc305 Update sealing just once when externally importing many blocks (#1541)
Fixes Issue #1372
2016-07-06 17:15:59 +02:00
NikVolf
baababea02 missing attribute 2016-07-06 14:49:27 +03:00
NikVolf
b25a37eb38 Merge branch 'master' into client-ipc-refact 2016-07-06 14:43:36 +03:00
Robert Habermeier
f8b56317b4 Merge pull request #1548 from ethcore/remove-soft
Remove soft-fork stuff.
2016-07-06 13:05:43 +02:00
Robert Habermeier
4b93773c4f Merge pull request #1550 from ethcore/fix-warning
fix codegen warning
2016-07-06 12:46:06 +02:00
Robert Habermeier
aaad0e87ae merge with latest master 2016-07-06 12:26:03 +02:00
Robert Habermeier
a7103e2870 different migrations based on pruning 2016-07-06 12:15:03 +02:00
Robert Habermeier
e151fbb071 fix comments and hash address instead of hash 2016-07-06 12:15:03 +02:00
Robert Habermeier
e411399f13 handle metadata keys in migration and preserve first 96 bits 2016-07-06 12:15:03 +02:00
Robert Habermeier
0bbdcb13b3 preserve first 96 bits of keys when combining 2016-07-06 12:15:03 +02:00
Robert Habermeier
9b28e97ca8 add a database migration for new accountdb 2016-07-06 12:15:03 +02:00
Robert Habermeier
7df0aa2b60 modify account_db to work on address hash, not address 2016-07-06 12:15:03 +02:00
Robert Habermeier
b7d243368b Extend migration framework (#1546)
* partially done alternate migration scheme

* finish altering migration framework

* migrate tests to new migration framework

* address comments

* remove superfluous newline
[ci skip]

* TempIdx -> TempIndex
[ci skip]
2016-07-06 12:05:23 +02:00
Robert Habermeier
21d5e105c1 TempIdx -> TempIndex
[ci skip]
2016-07-06 11:56:36 +02:00
Robert Habermeier
908104e365 remove superfluous newline
[ci skip]
2016-07-06 11:49:22 +02:00
NikVolf
9783c93564 Merge branch 'master' into client-ipc-refact 2016-07-06 12:47:52 +03:00
NikVolf
29de69e39d failing blockid test 2016-07-06 12:40:10 +03:00
Tomasz Drwięga
a8b26e2cb5 Refactoring dapps to support API endpoints. (#1542)
* Refactoring dapps to support API endpoints.

* Using ContentHandler for unauthorized requests
2016-07-06 11:24:29 +02:00
Marek Kotewicz
bcb63bce12 serde is no longer util dependency (#1534)
* removed old json-tests

* simplify folds in triehash.rs

* removed unused json_aid

* removed unused squeeze.rs

* json branching tests for trie

* removing todos from util

* separated UsingQueue and Table

* further cleanup, removing unused code

* serde serialization of hash moved to rpc module

* uint wrapper for rpc in progress

* serialization of uint moved to rpc module

* updated eth-secp256k1

* updated igd, serde is no longer dependency of util

* loading trie consensus tests

* renamed aliases in rpc imports
2016-07-06 11:23:29 +02:00
NikVolf
fa44532a1e span unused variable 2016-07-06 12:15:00 +03:00
Gav Wood
a084969d55 Fix tests. 2016-07-06 10:40:45 +02:00
Marek Kotewicz
cb1808d53d Merge pull request #1549 from ethcore/wiki-readme
mention wiki in README
2016-07-05 19:43:34 +02:00
Robert Habermeier
eb6617f9d4 mention wiki in README
[ci skip]
2016-07-05 19:26:22 +02:00
Robert Habermeier
fd62944efc address comments 2016-07-05 18:54:58 +02:00
Gav Wood
488ff88562 Remove soft-fork stuff. 2016-07-05 18:18:35 +02:00
Tomasz Drwięga
b8b55be0be Skipping transactions with invalid nonces when pushing to block. (#1545)
* Changing some logging levels

* Skipping invalid nonce errors
2016-07-05 17:51:41 +02:00
Gav Wood
c26cfc1c5a Silent running operating modes (#1477)
* Command=line options.

* Keep alive for the eth protocol.

* Wire up final pieces.

* No network when dark.

* Passive and dark mode work.

* Ensure all RPCs keep alive.

* Fix tests.

* Fix minor bug.

* Minor whitespace.

* Split out some of the sleep-state.

* Fix help text.
2016-07-05 17:50:46 +02:00
Robert Habermeier
d4c9c7cc23 migrate tests to new migration framework 2016-07-05 17:15:01 +02:00
Robert Habermeier
1b759c1462 finish altering migration framework 2016-07-05 17:15:01 +02:00
Robert Habermeier
2ea7a8d666 partially done alternate migration scheme 2016-07-05 17:15:01 +02:00
NikVolf
747818a349 rs.in -> rs 2016-07-05 17:12:06 +03:00
Marek Kotewicz
62b9c1b14f util cleanup (#1474)
* removed old json-tests

* simplify folds in triehash.rs

* removed unused json_aid

* removed unused squeeze.rs

* json branching tests for trie

* loading trie consensus tests
2016-07-05 15:16:27 +02:00
Tomasz Drwięga
4c1b74a42e Calculating gas using usize (if supplied gaslimit fits in usize) (#1518)
* Spliting gasometer out of interpreter

* Choosing right gas calculations implementation based on supplied gas

* Moving verification out of gasometer

* MemGasCost benchmark.

Conflicts:
	ethcore/src/evm/benches/mod.rs

* Some simple benchmarks

* Benchmark for simple loop

* Calculating gas_for_memory only when it's actually needed

* Removing superfluous newline [ci skip]
2016-07-05 15:15:44 +02:00
Nikolay Volf
45d532368d Merge pull request #1536 from rphmeier/nibblevec
add owning NibbleVec
2016-07-05 14:20:22 +04:00
NikVolf
fb0076d262 fix warnings again 2016-07-05 12:50:42 +03:00
NikVolf
78e7101f85 rpc test working 2016-07-05 12:48:32 +03:00
NikVolf
8052824f3f tests (and fixes) 2016-07-05 12:23:56 +03:00
NikVolf
c96686620a deriving attribute 2016-07-05 11:49:29 +03:00
NikVolf
ce1a4c8952 fix rpc compilation 2016-07-05 11:47:23 +03:00
NikVolf
a9a671dfc0 ethcore compilation 2016-07-05 11:45:31 +03:00
NikVolf
b58754cd26 some merge bugs 2016-07-05 11:33:38 +03:00
NikVolf
b873d3befb Merge branch 'master' into client-ipc-refact 2016-07-05 11:29:46 +03:00
Nikolay Volf
bbf20c3637 Merge pull request #1538 from ethcore/bc-restore
Attempt to fix blochchain/extras DBs sync
2016-07-05 12:16:15 +04:00
Nikolay Volf
a2b4997888 Merge pull request #1525 from ethcore/client-api-refact2
Client API refactoring - limiting errors to crate-level error types
2016-07-05 12:15:38 +04:00
Nikolay Volf
1ab2060afa add void method support (#1540) 2016-07-05 10:11:09 +02:00
Marek Kotewicz
a25eb4b046 Merge pull request #1539 from ethcore/dapps-windows-fix
Fixing serving nested files for dapps.
2016-07-05 09:55:57 +02:00
Robert Habermeier
d1e6e3d642 Merge pull request #1537 from ethcore/public-address
Fixed public address config
2016-07-04 22:37:37 +02:00
Tomasz Drwięga
0242c66a1b Bump parity-dapps 2016-07-04 19:21:40 +02:00
arkpar
548b4e164e Attempt to fix blochchain DB sync 2016-07-04 18:24:14 +02:00
arkpar
24f09de60e Fixed public address config 2016-07-04 18:21:22 +02:00
Robert Habermeier
39a46eee8f add owning NibbleVec 2016-07-04 17:45:01 +02:00
Tomasz Drwięga
bb2a631885 Fixing compilation&clippy warnings (#1531)
* Fixing compilation&clippy warnings

* Adding spaces
2016-07-04 13:53:55 +02:00
NikVolf
cfcf061e41 tests stub 2016-07-04 14:51:50 +03:00
Robert Habermeier
465aae71e7 merge branch accountdb_migration into pv64 2016-07-04 12:53:01 +02:00
Robert Habermeier
601ebcf3cc add a database migration for new accountdb 2016-07-04 12:47:03 +02:00
Nikolay Volf
bb36a594c5 creating ethereum dir while in geth mode (#1530)
* creating ethereum dir while in geth mode

* fix warning

* more descriptive error
2016-07-04 11:53:21 +02:00
Tomasz Drwięga
5c438cc58a Bumping clippy (#1532) 2016-07-04 11:52:59 +02:00
Gav Wood
1aee197d79 Make signer default as long as --unlock isn't used. (#1524) 2016-07-03 17:11:31 +01:00
NikVolf
8f6e48e4c3 fix tests 2016-07-02 20:08:52 +03:00
Nikolay Volf
ff7fcd0992 add client timeout (#1526) 2016-07-02 10:16:31 +01:00
Nipunn Koorapati
8e98f06ce5 Fix gitter-url link in README.md (#1528) 2016-07-02 10:15:44 +01:00
petevine
316fae2cc4 Fix error message. (#1527) 2016-07-02 07:58:32 +02:00
NikVolf
43027b36ea Merge branch 'master' into client-api-refact2 2016-07-01 22:43:51 +03:00
NikVolf
0f7b66f557 fixed compilation & warnings 2016-07-01 22:40:54 +03:00
NikVolf
edb8663195 ethcore finished 2016-07-01 22:34:50 +03:00
Nikolay Volf
fa73ae17d9 BTreeMap binary serialization (#1489)
* btree map serializer

* serde tests

* fix styling
2016-07-01 21:27:50 +02:00
NikVolf
46b0af6121 flush work 2016-07-01 22:13:56 +03:00
Arkadiy Paronyan
d91e8ccd34 Save the block reference in the queue on notification (#1501) 2016-07-01 19:38:37 +01:00
Nikolay Volf
789b903de6 bigint tests in targets (#1522) 2016-07-01 19:37:42 +01:00
Nikolay Volf
8102fb9306 Client api cleaning - uncles are returned as rlp (#1516)
* uncle as rlp in the api

* uncle rlp in block view

* fix warning
2016-07-01 19:37:17 +01:00
NikVolf
07521c17b4 dedicated types 2016-07-01 21:33:59 +03:00
Marek Kotewicz
d8a4cca817 Fatdb integration with CLI (#1464)
* fatdb integration

* --fat-db

* rerun with --pruning=archive comment
2016-07-01 19:29:56 +01:00
Nikolay Volf
0a513ad06e Merge pull request #1517 from ethcore/shr-opt
Optimizing/simplifying shr
2016-07-01 17:58:01 +04:00
NikVolf
0907722fc8 fix warning 2016-07-01 16:34:15 +03:00
NikVolf
d4ff3e51e9 uncle rlp in block view 2016-07-01 16:33:37 +03:00
Arkadiy Paronyan
b30e7c7ba4 Merge pull request #1500 from ethcore/ipc-enh
change IPC codegen to allow attributes
2016-07-01 14:54:01 +02:00
Robert Habermeier
d42ea6b69e modify account_db to work on address hash, not address 2016-07-01 14:36:07 +02:00
Tomasz Drwięga
654cd570b4 Optimizing shr 2016-07-01 13:07:41 +02:00
Nikolay Volf
c71dff04c5 Merge pull request #1514 from ethcore/fix-warnings
Fix warnings
2016-07-01 14:55:17 +04:00
Nikolay Volf
b53442953a Merge pull request #1452 from ethcore/fatdb
FatDB
2016-07-01 14:29:51 +04:00
NikVolf
7ad8599324 uncle as rlp in the api 2016-07-01 13:26:44 +03:00
debris
ef09902508 Merge branch 'fatdb' of github.com:ethcore/parity into fatdb 2016-07-01 10:22:35 +02:00
debris
9f5abd01b5 Merge branch 'master' of github.com:ethcore/parity into fatdb 2016-07-01 10:17:08 +02:00
Arkadiy Paronyan
7ae0eb8137 Merge pull request #1513 from ethcore/fixmining
Fix the reseal mechanism.
2016-07-01 08:09:06 +02:00
Tomasz Drwięga
52f4034bdd Formatting 2016-07-01 02:21:22 +02:00
Tomasz Drwięga
5c2ca9a0cb Fixing warnings 2016-07-01 02:08:14 +02:00
Gav Wood
1d780f456a Fix is_new. 2016-06-30 23:14:54 +02:00
Gav Wood
29b6ba4a87 Fix the reseal mechanism. 2016-06-30 22:35:59 +02:00
Arkadiy Paronyan
cf7830fa8f Merge pull request #1509 from General-Beck/patch-15
Update Dockerfile ubuntu-aarch64
2016-06-30 22:34:24 +02:00
Arkadiy Paronyan
1dc56fc3e1 Merge pull request #1510 from General-Beck/patch-16
Update Ubuntu-arm Dockerfile
2016-06-30 22:34:18 +02:00
Arkadiy Paronyan
91efef8497 Merge pull request #1511 from General-Beck/patch-17
Update Ubuntu-jit Dockerfile
2016-06-30 22:34:15 +02:00
Arkadiy Paronyan
6962e1d211 Merge pull request #1512 from General-Beck/patch-18
Update Ubuntu Dockerfile
2016-06-30 22:34:13 +02:00
Arkadiy Paronyan
dd62e2d43b Merge pull request #1508 from General-Beck/patch-14
Update CentOS Dockerfile
2016-06-30 22:33:55 +02:00
Denis S. Soldatov aka General-Beck
038ef2b3c3 Update Ubuntu Dockerfile
[ci skip]
2016-07-01 03:29:45 +07:00
Denis S. Soldatov aka General-Beck
c8c7fbbf27 Update Ubuntu-jit Dockerfile
[ci skip]
2016-07-01 03:29:00 +07:00
Denis S. Soldatov aka General-Beck
6bbd237711 Update Ubuntu-arm Dockerfile
[ci skip]
2016-07-01 03:28:18 +07:00
Denis S. Soldatov aka General-Beck
6bdbc2cb93 Update Dockerfile ubuntu-aarch64
[ci skip]
2016-07-01 03:27:36 +07:00
Denis S. Soldatov aka General-Beck
f370e17a54 Update CentOS Dockerfile
[ci skip]
2016-07-01 03:26:56 +07:00
Arkadiy Paronyan
30f2e8f60c Merge pull request #1502 from ethcore/bump-status-page
bump status page v0.5.1
2016-06-30 22:16:32 +02:00
Nikolay Volf
4a60407c2a Merge pull request #1507 from General-Beck/patch-13
Update CentOS Dockerfile
2016-07-01 00:16:09 +04:00
Nikolay Volf
5dd3c6196c Merge pull request #1506 from General-Beck/patch-12
Update Dockerfile ubuntu-aarch64
2016-07-01 00:15:56 +04:00
Nikolay Volf
a681566967 Merge pull request #1505 from General-Beck/patch-11
Update Ubuntu-arm Dockerfile
2016-07-01 00:15:41 +04:00
Nikolay Volf
ff0d8ea868 Merge pull request #1504 from General-Beck/patch-10
Update Ubuntu-jit Dockerfile
2016-07-01 00:15:21 +04:00
Nikolay Volf
489ddd1d6f Merge pull request #1503 from General-Beck/patch-9
Update Ubuntu Dockerfile
2016-07-01 00:15:00 +04:00
NikVolf
d4f0f2c80e Merge branch 'master' into fatdb 2016-06-30 23:13:20 +03:00
Denis S. Soldatov aka General-Beck
90a4475f52 Update CentOS Dockerfile
[ci skip]
2016-07-01 03:10:58 +07:00
Denis S. Soldatov aka General-Beck
bee2102424 Update Dockerfile ubuntu-aarch64
[ci skip]
2016-07-01 03:09:48 +07:00
Denis S. Soldatov aka General-Beck
bb70cd889e Update Ubuntu-arm Dockerfile
[ci skip]
2016-07-01 03:08:58 +07:00
Denis S. Soldatov aka General-Beck
8134a89b87 Update Ubuntu-jit Dockerfile
[ci skip]
2016-07-01 03:08:07 +07:00
Denis S. Soldatov aka General-Beck
d3cb79833b Update Ubuntu Dockerfile
[ci skip]
2016-07-01 03:07:22 +07:00
Robert Habermeier
456619001a parallelize account trie creation 2016-06-30 20:43:54 +02:00
NikVolf
ba38cc0ccc fix all warnings 2016-06-30 21:00:52 +03:00
NikVolf
cdd1c6dd90 fix unused imports 2016-06-30 20:57:07 +03:00
NikVolf
bad02d65a1 fix merging bugs 2016-06-30 20:44:24 +03:00
NikVolf
97eb311cb0 Merge branch 'master' into client-ipc-refact 2016-06-30 20:32:13 +03:00
NikVolf
080b50809a fix compilation 2016-06-30 20:27:53 +03:00
NikVolf
95538ac42c sorting rpc using uncles 2016-06-30 20:06:24 +03:00
Arkadiy Paronyan
673c5afd4d Update install-parity.sh 2016-06-30 18:56:16 +02:00
NikVolf
ef8dd23254 rpc & sync recompile 2016-06-30 19:53:57 +03:00
goldylucks
6616b5e17d bump status page v0.5.1 2016-06-30 18:14:20 +02:00
Arkadiy Paronyan
24e73f3aec Merge pull request #1497 from ethcore/clone-work
Optionally clone block behind work-package
2016-06-30 15:50:27 +02:00
Gav Wood
6ae467252c Fix no colour on windows. (#1498) 2016-06-30 15:49:00 +02:00
NikVolf
08048a7377 redundant space 2016-06-30 16:26:37 +03:00
NikVolf
eb56e74340 unused test 2016-06-30 16:24:46 +03:00
NikVolf
5c5f52c017 tests for client_ident 2016-06-30 16:23:10 +03:00
NikVolf
6e8df6a6ce attribute parsing 2016-06-30 15:33:34 +03:00
NikVolf
6259a5a737 versions sorting 2016-06-30 14:42:11 +03:00
NikVolf
427d54f341 versions sorting 2016-06-30 14:41:56 +03:00
NikVolf
86c85bdd9e post expansion pass 2016-06-30 14:34:49 +03:00
Gav Wood
9c58ebf2d2 Merge branch 'master' into clone-work 2016-06-30 13:16:48 +02:00
Arkadiy Paronyan
ff29c82c9e Merge pull request #1495 from ethcore/work-notify
Workaround for hyper panic
2016-06-30 13:14:24 +02:00
Gav Wood
dff7d9603c Fix for fake new work packages. 2016-06-30 13:12:15 +02:00
Gav Wood
9c07e5c355 Optionally clone block behind work-package. 2016-06-30 12:56:58 +02:00
Gav Wood
5665083e20 UsingQueue can clone rather than just take. 2016-06-30 12:21:04 +02:00
Arkadiy Paronyan
30fad64621 Merge pull request #1488 from ethcore/notification-on-mine
Colourful notification on mine
2016-06-30 11:42:43 +02:00
arkpar
51c6b85f80 Workaround hyper panic 2016-06-30 10:07:33 +02:00
Tomasz Drwięga
af65945b58 Specifying max open files (#1494) 2016-06-30 08:24:01 +02:00
Gav Wood
5a794b21cf Make output less green. 2016-06-30 08:20:34 +02:00
Gav Wood
6ca2e6b29b Remove extraneous messages. 2016-06-30 08:20:34 +02:00
Gav Wood
93a89049ed More colour! 2016-06-30 08:20:34 +02:00
Gav Wood
92edf7f511 Safe coloured logging. 2016-06-30 08:20:34 +02:00
Gav Wood
4a6206c514 Log for when we mine a block with lots of info.
Fixes #1468
2016-06-30 08:20:34 +02:00
Arkadiy Paronyan
60270083e5 Merge pull request #1491 from ethcore/work-notify
Work notification over HTTP
2016-06-30 08:19:45 +02:00
Arkadiy Paronyan
946c1fd76a Merge pull request #1478 from ethcore/seal-import
Sealed block importing and propagation optimization
2016-06-30 08:13:07 +02:00
NikVolf
8fc03e2dc2 deriving ipc service compiling 2016-06-30 01:09:35 +03:00
NikVolf
3c061857c4 error sorting out 2016-06-30 00:56:12 +03:00
NikVolf
2891b7b4ea sorting filters & ranges 2016-06-30 00:15:34 +03:00
Gav Wood
86ba6f1912 Fix test compilation. 2016-06-29 22:05:00 +02:00
arkpar
ee01ad1324 Shortcut sealed block into the chain 2016-06-29 21:49:22 +02:00
NikVolf
d5be0fae54 transaction import result sorting also 2016-06-29 21:48:22 +03:00
NikVolf
f6ec1eae4a sorting out util imports 2016-06-29 21:37:23 +03:00
NikVolf
a14f2391ff sorting with transaction result 2016-06-29 21:35:22 +03:00
NikVolf
f31ddec3a8 block queue info 2016-06-29 21:28:21 +03:00
Gav Wood
f24ba94fbd Merge branch 'work-notify' of github.com:ethcore/parity into work-notify 2016-06-29 20:14:32 +02:00
Gav Wood
dc24448900 Include number in eth_getWork. 2016-06-29 20:09:13 +02:00
NikVolf
5337de8d42 uncle returns rlp 2016-06-29 21:08:34 +03:00
arkpar
b3f37f3cb4 HTTP work notifier 2016-06-29 20:07:21 +02:00
Gav Wood
e24f9c9936 Add CLI option and route to MinerOptions. 2016-06-29 20:06:03 +02:00
arkpar
19d83a9074 Merge branch 'work-notify' of github.com:ethcore/parity into work-notify 2016-06-29 20:05:11 +02:00
arkpar
5958c87e56 HTTP work notifier 2016-06-29 20:04:52 +02:00
NikVolf
562e591ed3 more missing serializaers 2016-06-29 20:59:13 +03:00
NikVolf
dec083a5ed basic layout 2016-06-29 20:25:05 +03:00
NikVolf
3cca6c869e state diff serialization 2016-06-29 19:56:47 +03:00
NikVolf
9aef8ba063 serde tests 2016-06-29 19:41:28 +03:00
Robert Habermeier
6ecd6eaa12 batch state trie writes 2016-06-29 18:37:17 +02:00
NikVolf
bfbcb8d551 btree map serializer 2016-06-29 19:35:36 +03:00
Robert Habermeier
83c967c082 Merge pull request #1487 from ethcore/vm-fact
vm factory to mining client
2016-06-29 18:00:54 +02:00
Adam Goldman
aec4130dca topbar dialog fix (#1479)
* topbar dialog fix

* push goldylucks changes to ethcore umbrella
2016-06-29 17:19:04 +02:00
Gav Wood
98ae9cad6f Minor additions to allow resetting of code. (#1482)
* Minor additions to allow resetting of code.

* Add test.
2016-06-29 16:29:04 +02:00
Gav Wood
5d1ff3d7ba Introduce options for fine-grained management of work queue. (#1484)
* Introduce options for fine-grained management of work queue.

- Minimum reseal period between non-mandatory (transaction) reseals.
- Maximum historical cached block size.

Defaults changed to reflect real-world scenarios (2s, 20 blocks).

* Fix test bug.

* 50 -> 20.
2016-06-29 16:26:19 +02:00
NikVolf
580913fa7d vm factory to mining client 2016-06-29 17:23:29 +03:00
Robert Habermeier
6977d335e9 Merge branch 'master' into pv64 2016-06-29 16:11:06 +02:00
Gav Wood
05927eba1f Include number in eth_getWork. 2016-06-29 15:43:34 +02:00
Gav Wood
7c27f9dfed Add CLI option and route to MinerOptions. 2016-06-29 15:37:11 +02:00
Gav Wood
c096c087df Ensure we don't reject our own transactions for gasprice. (#1485)
* Ensure we don't reject our own transactions for gasprice.

* Add test.
2016-06-29 15:23:41 +02:00
Robert Habermeier
49024a4f28 Merge with master 2016-06-29 14:46:29 +02:00
Arkadiy Paronyan
78ebc8b975 Merge pull request #1481 from ethcore/av-signing
Signing parity executable & windows installer in appveyor
2016-06-29 10:39:33 +02:00
Gav Wood
e3214c63c6 Rearrange fork CLI options. (#1476)
* Rearrange fork CLI options.

* Fixed compilation
2016-06-29 09:28:56 +02:00
NikVolf
2138a53067 Merge branch 'master' into av-signing 2016-06-29 02:02:02 +03:00
NikVolf
72771bd833 signing executable also 2016-06-29 01:58:15 +03:00
Nikolay Volf
91aee536ca Merge pull request #1475 from ethcore/appveyor_choking
give appveyor some breath
2016-06-29 02:35:12 +04:00
NikVolf
ebcbb19aef sign command 2016-06-28 21:02:15 +03:00
Gav Wood
a3758161ac Ensure we always get the latest work when mining on submitted. (#1469)
* Ensure we always get the latest work when mining on submitted.

* Build fix.

* Smaller timeslices for the wait.
2016-06-28 18:46:09 +02:00
Marek Kotewicz
38870fb3e4 Merge pull request #1471 from ethcore/tests_for_views
Tests for views
2016-06-28 17:37:27 +02:00
NikVolf
3ae8ccf8c6 signing installer 2016-06-28 18:13:21 +03:00
Nikolay Volf
477fdefb55 json ipc version bump (#1470)
* bump version once

* version bump 2
2016-06-28 16:22:05 +02:00
debris
8dbf182618 give appveyor some breath 2016-06-28 16:10:21 +02:00
debris
2462193df8 Merge branch 'master' of github.com:ethcore/parity into tests_for_views 2016-06-28 14:28:54 +02:00
debris
0b86723e68 tests for HeaderView and BlockView, fixed #144 2016-06-28 14:28:42 +02:00
Marek Kotewicz
af891f65a7 verifier is no longer a template type of client (#1467)
* verifier is no longer a template type of client

* added missing ,
2016-06-28 13:23:15 +02:00
Arkadiy Paronyan
39307b2bea Merge pull request #1460 from ethcore/miner-improvements
Allow configuration of when to reseal blocks.
2016-06-28 13:11:24 +02:00
debris
4ecf23df9a tests for TransactionView 2016-06-28 12:08:30 +02:00
Marek Kotewicz
4f56f8b27c removed unsafe code (#1466) 2016-06-28 11:52:59 +02:00
Tomasz Drwięga
6895a56099 Adding default for value (#1465) 2016-06-28 11:10:39 +02:00
Gav Wood
599a6104b7 Minor renaming. 2016-06-28 10:40:35 +02:00
Gav Wood
31de739122 U256 instead of Option<U256>. Fix up tests. 2016-06-28 10:21:29 +02:00
Gav Wood
af935df553 Merge branch 'master' into miner-improvements 2016-06-28 10:02:33 +02:00
Gav Wood
d0cec2434e Merge branch 'miner-improvements' of github.com:ethcore/parity into miner-improvements 2016-06-28 10:00:51 +02:00
Gav Wood
c221f69ccd Clean up some of the FP stuff. 2016-06-28 10:00:28 +02:00
Arkadiy Paronyan
a3a68a20f4 Merge pull request #1461 from ethcore/db-repair
Attempt DB repair if corrupted
2016-06-28 07:37:49 +02:00
Arkadiy Paronyan
993f707fbe Merge pull request #1454 from ethcore/db-config-ext
Database configuration extended
2016-06-28 07:07:05 +02:00
NikVolf
f94f061f6a disable wal when commiting transactions 2016-06-27 22:12:23 +03:00
Gav Wood
ff788e4199 Fix another typo
[ci:skip]
2016-06-27 21:06:40 +02:00
Gav Wood
5919c660e5 Fix typo
[ci:skip]
2016-06-27 21:06:10 +02:00
Gav Wood
495e56034f Merge branch 'master' into miner-improvements 2016-06-27 21:02:55 +02:00
arkpar
ed153995f9 Attempt DB repair if corrupted 2016-06-27 20:41:02 +02:00
arkpar
150d7c1c78 Merge remote-tracking branch 'origin/master' into db-config-ext 2016-06-27 20:33:07 +02:00
arkpar
5d67a32cef Merge remote-tracking branch 'origin/master' into miner-improvements 2016-06-27 20:31:57 +02:00
Gav Wood
10aa32b0f5 Include RPC configurability for max tx gas limit.
Also Move the gas limit into the transaction queue from the miner.
2016-06-27 20:19:01 +02:00
Arkadiy Paronyan
a83def78b3 Merge pull request #1459 from ethcore/stable-ws
Updating WS-RS server
2016-06-27 19:53:24 +02:00
Arkadiy Paronyan
60b70dada1 Reduced IO messages; removed panics on IO notifications (#1457) 2016-06-27 19:30:13 +02:00
Gav Wood
dc79e63db7 Update configuration.rs 2016-06-27 19:22:54 +02:00
Gav Wood
7b5eeb1dd7 Update cli.rs
[ci:skip]
2016-06-27 19:22:28 +02:00
Gav Wood
a102015ecf Fix doc test. 2016-06-27 19:16:26 +02:00
Gav Wood
2a51a30d41 Fix up the pending set stuff. 2016-06-27 19:06:54 +02:00
Nikolay Volf
9f4bfd9e7a fix tests 2016-06-27 18:47:50 +02:00
Gav Wood
1667808ecb More miner options.
- Optional limit for the amount of gas transactions may have;
- option to restruct transactions returned/queried to only those
which have been executed.
2016-06-27 18:27:06 +02:00
Gav Wood
6c1802e412 Allow configuration of when to reseal blocks. 2016-06-27 17:23:54 +02:00
Tomasz Drwięga
222404f801 Updating WS version 2016-06-27 16:34:46 +02:00
Tomasz Drwięga
044bf5511a Fixing HTTP file serving on ws-rs 2016-06-27 16:34:39 +02:00
Tomasz Drwięga
1fdbfa14ad Handle errors when starting parity (#1451) 2016-06-27 16:00:16 +02:00
Arkadiy Paronyan
6859152c21 Fixed losing queued blocks on ancient block error (#1453) 2016-06-27 15:59:45 +02:00
Nikolay Volf
f9f25fd147 cli config 2016-06-27 14:25:50 +02:00
debris
06cf2a3f41 updated FatDB description 2016-06-27 14:01:17 +02:00
debris
7904464d24 use mem::replace instead of mem::swap in ArchiveDB, add aux_remove() 2016-06-27 14:01:06 +02:00
Nikolay Volf
2e5d5f12dd ethcore client config 2016-06-27 13:58:12 +02:00
Nikolay Volf
627b67db0a jdb to new settings config 2016-06-27 13:23:50 +02:00
Nikolay Volf
07098fd16f extra helpers for prefix 2016-06-27 13:14:40 +02:00
Nikolay Volf
e4763e90bc compaction struct and helpers 2016-06-27 13:03:34 +02:00
Marek Kotewicz
6b51dffca0 Merge pull request #1450 from ethcore/rpc-server-fix
Updated to latest hyper with patched mio
2016-06-27 11:36:37 +02:00
debris
36626f96a8 separated TrieMut from Trie, added Generic Trie type to TrieFactory 2016-06-27 11:19:27 +02:00
debris
5ecbeaa82f trie factory in progress 2016-06-27 10:59:59 +02:00
arkpar
c21550a663 Updated to latest hyper with patched mio 2016-06-27 10:39:37 +02:00
Gav Wood
4f1f33d1b8 Retweak BASE and MULTIPLIER in rocksdb config. (#1445) 2016-06-27 09:20:38 +02:00
Marek Kotewicz
b3398cec33 Merge pull request #1410 from ethcore/miner-no-default
Removing Miner::default.
2016-06-27 09:18:42 +02:00
debris
f3a6da7c1e Merge branch 'master' of github.com:ethcore/parity 2016-06-27 09:16:45 +02:00
debris
1b4f67151f fatdb and fatdb iterator module 2016-06-27 09:16:34 +02:00
Tomasz Drwięga
593d947fcd Using stable version of ws-rs 2016-06-26 23:48:59 +02:00
Tomasz Drwięga
2bd0c5ebcb Unwrap or default 2016-06-26 22:48:09 +02:00
Tomasz Drwięga
6bbaced3cd Merge branch 'master' into miner-no-default
Conflicts:
	ethcore/src/miner/miner.rs
	parity/main.rs
2016-06-26 22:44:34 +02:00
Gav Wood
516b015325 Don't mine without --author (#1436)
Requires --author to be set before mining is allowed to happen.
2016-06-26 22:02:17 +02:00
Arkadiy Paronyan
2ef929dcbd Merge pull request #1437 from ethcore/revertrescuedaoed
Revert the rescuedao extradata.
2016-06-26 14:27:56 +02:00
Gav Wood
2400001675 More conservative settings for rocksdb. (#1440) 2016-06-25 23:13:34 +02:00
Gav Wood
2574d000a3 Revert the rescuedao extradata. 2016-06-25 14:35:43 +02:00
Arkadiy Paronyan
a72d8ee0e7 v1.3.0 (#1421) 2016-06-25 10:32:05 +02:00
Arkadiy Paronyan
482d910b15 Merge pull request #1429 from General-Beck/patch-7
Update Ubuntu-arm Dockerfile
2016-06-24 22:53:33 +02:00
Arkadiy Paronyan
b02d7a4311 Merge pull request #1430 from General-Beck/patch-8
Create Dockerfile ubuntu-aarch64
2016-06-24 22:53:11 +02:00
Denis S. Soldatov aka General-Beck
ab0d280232 Create Dockerfile ubuntu-aarch64
Create Dockerfile ubuntu-aarch64
[ci skip]
2016-06-25 03:51:05 +07:00
Denis S. Soldatov aka General-Beck
4fd0a95112 Update Ubuntu-arm Dockerfile
Update Ubuntu-arm Dockerfile
[ci skip]
2016-06-25 02:58:06 +07:00
Arkadiy Paronyan
59d1a82814 Merge pull request #1424 from General-Beck/patch-4
Update CentOS Dockerfile
2016-06-24 21:55:45 +02:00
Arkadiy Paronyan
83af81f443 Merge pull request #1426 from General-Beck/patch-5
Update Ubuntu Dockerfile
2016-06-24 21:52:58 +02:00
Arkadiy Paronyan
6c40cdf5c6 Merge pull request #1427 from General-Beck/patch-6
Update Ubuntu-jit Dockerfile
2016-06-24 21:52:35 +02:00
Denis S. Soldatov aka General-Beck
a109a4a72b Update Ubuntu-jit Dockerfile
Update Ubuntu-jit Dockerfile
[ci skip]
2016-06-25 02:03:36 +07:00
Denis S. Soldatov aka General-Beck
102626f2c2 Update Ubuntu Dockerfile
Update Ubuntu Dockerfile
[ci skip]
2016-06-25 01:57:29 +07:00
Denis S. Soldatov aka General-Beck
8cc349bcb0 Update Dockerfile
Update CentOS Dockerfile
[ci skip]
2016-06-25 00:59:03 +07:00
Arkadiy Paronyan
3c63244c00 Merge pull request #1418 from ethcore/newblocknumber
Update SF blocknumber to 1800000.
2016-06-24 17:50:03 +02:00
Arkadiy Paronyan
a9b757a75c Update install-parity.sh 2016-06-24 17:27:43 +02:00
Arkadiy Paronyan
92bc21ba9c Update README.md 2016-06-24 17:04:40 +02:00
Arkadiy Paronyan
313d9048bf Merge pull request #1417 from ethcore/ui
Signer enabled by default for UI
2016-06-24 16:31:14 +02:00
Arkadiy Paronyan
29e2ba91a7 Merge pull request #1415 from ethcore/removebadpruningoptions
Remove experimental pruning options.
2016-06-24 16:16:48 +02:00
Gav Wood
bf11fb6633 Fix up selection. 2016-06-24 16:12:15 +02:00
arkpar
3e7edb2665 More cases 2016-06-24 14:29:15 +02:00
Gav Wood
60d259c9d5 Update SF blocknumber to 1800000. 2016-06-24 14:20:50 +02:00
arkpar
568dc90769 Signer enabled by default for UI 2016-06-24 14:20:39 +02:00
Arkadiy Paronyan
b9649c0e78 Merge pull request #1414 from ethcore/uifix
Fixing interface and port for parity ui
2016-06-24 14:08:06 +02:00
Arkadiy Paronyan
4e0d6f735a Merge pull request #1405 from ethcore/sfedgecase
Configurable gas limit cap.
2016-06-24 13:36:40 +02:00
Gav Wood
44d6e1f443 Remove experimental pruning options. 2016-06-24 13:32:43 +02:00
Arkadiy Paronyan
031a91ebc6 Merge pull request #1413 from ethcore/dapps-bump
Bumping TopBar, Minimal SignerUI and wallet
2016-06-24 13:00:29 +02:00
Tomasz Drwięga
4ece68349c Fixing sync doctests 2016-06-24 12:41:48 +02:00
Tomasz Drwięga
653a368783 Changing macos impl 2016-06-24 12:30:54 +02:00
Tomasz Drwięga
566bb030ec Fixing detecting if dapps are off 2016-06-24 12:21:21 +02:00
Tomasz Drwięga
23732fa516 Fixing interface and port for parity ui 2016-06-24 12:10:36 +02:00
Gav Wood
84ce5af2b0 max/min incorrect 2016-06-24 11:40:25 +02:00
Tomasz Drwięga
e3e10335f9 Bumping TopBar, Minimal SignerUI and wallet 2016-06-24 11:26:04 +02:00
Nikolay Volf
54fc5a533b Merge pull request #1411 from ethcore/sync
Sync: Update highest block for progress reporting
2016-06-24 12:21:01 +03:00
Tomasz Drwięga
dc7c53d59a Fixing json tests 2016-06-24 10:57:44 +02:00
Tomasz Drwięga
34c89e5841 fixing json_tests 2016-06-24 10:49:13 +02:00
arkpar
e77cce66a1 Update highest block progress 2016-06-23 22:40:44 +02:00
Tomasz Drwięga
6edb981bfa Merge branch 'master' into miner-no-default
Conflicts:
	sync/src/lib.rs
2016-06-23 21:18:43 +02:00
Arkadiy Paronyan
416781a8d4 Tweaked cli options (#1407) 2016-06-23 18:57:42 +02:00
Nikolay Volf
27b18df3dd further rocksdb tuning (#1409) 2016-06-23 18:56:43 +02:00
Nikolay Volf
1d31cee524 Merge pull request #1406 from ethcore/jit
Fixing jit compilation
2016-06-23 18:32:14 +03:00
Tomasz Drwięga
19585947a5 Fixing jit compilation 2016-06-23 14:46:33 +02:00
Gav Wood
bca9e1f31a Merge branch 'master' into sfedgecase 2016-06-23 14:43:42 +02:00
Gav Wood
41e0769e63 Fix tests, 2016-06-23 14:43:20 +02:00
Gav Wood
8fcec20398 Gas limit ceiling option. 2016-06-23 14:29:16 +02:00
Robert Habermeier
082294fe81 Merge pull request #1403 from ethcore/bump-clippy
Bump clippy
2016-06-23 14:23:46 +02:00
Arkadiy Paronyan
f3486c48ea Merge pull request #1401 from ethcore/sfedgecase
Shortcut SF condition when canon known
2016-06-23 13:08:30 +02:00
Robert Habermeier
fb7ca8539e Merge pull request #1402 from ethcore/txqueue-assert
Additional assertions for internal state of queue
2016-06-23 12:52:56 +02:00
Tomasz Drwięga
5bf906625b Fixing warnings 2016-06-23 12:19:38 +02:00
Gav Wood
129ce97ad5 Constants for SF# and update. 2016-06-23 11:30:48 +02:00
Gav Wood
4f39fb2551 Merge branch 'master' into sfedgecase 2016-06-23 11:19:19 +02:00
keorn
be8f922b3f Replace deprecated hashdb trait names (#1394)
* replace deprecated hashdb method names

* spaces -> tabs
2016-06-23 11:16:11 +02:00
Tomasz Drwięga
a76e3a134f Bumping clippy 2016-06-23 10:54:25 +02:00
Robert Habermeier
9ac30ad409 Merge pull request #1400 from ethcore/ipc-rpc-api-fix
rpc api by default for ipc
2016-06-23 10:32:25 +02:00
Gav Wood
8a867262ad Build fix. 2016-06-23 02:42:56 +02:00
Gav Wood
fc9ceb9131 Merge branch 'master' into sfedgecase 2016-06-22 21:38:56 +02:00
Gav Wood
1602906b56 Shortcut SF condition when canon known 2016-06-22 21:37:29 +02:00
Gav Wood
230c6c889a Ensure judging the SF trigger by relative branch (#1399)
Rather than just the canon chain.
2016-06-22 21:33:10 +02:00
Tomasz Drwięga
9a1e1b7c89 Signer with Unlocked Account (#1398) 2016-06-22 21:32:26 +02:00
Gav Wood
e346cbc7f9 Make --signer default. (#1392) 2016-06-22 21:32:17 +02:00
Arkadiy Paronyan
cb9b1e2ad5 Merge pull request #1376 from ethcore/presale_wallet
Presale wallet
2016-06-22 20:14:35 +02:00
Tomasz Drwięga
d53306382d Removing signer connection limit (#1396) 2016-06-22 19:52:18 +02:00
NikVolf
cc7038383a rpc api by default for ipc 2016-06-22 20:51:36 +03:00
Gav Wood
5302a7dd58 Ensure judging the SF trigger by relative branch
Rather than just the canon chain.
2016-06-22 19:49:07 +02:00
debris
9547324b46 ethstore cli loads passwords from files 2016-06-22 17:02:58 +02:00
debris
927ffa7e9c Merge branch 'master' into presale_wallet 2016-06-22 16:14:02 +02:00
Robert Habermeier
f947a9cb71 Optional gas price in transactions come from statistics (#1388)
* use gas price statistics for default transaction gas price

* create new signing queue client properly

* replace one more usage of sensible_gas_price

* fill_optional_fields as a free function

* keep test client alive
2016-06-22 15:55:07 +02:00
Marek Kotewicz
78cc5a6ed1 Update README.md (#1389) 2016-06-22 15:53:39 +02:00
Tomasz Drwięga
bc1f603e0c Fixing overflow during multiplication (#1381) 2016-06-22 15:37:41 +02:00
Gav Wood
353b9e91e6 Update SF to latest spec (#1386)
* Introduce whitelist for softfork

* Use extradata for fork id.

* Fix condition.
2016-06-22 15:37:25 +02:00
Arkadiy Paronyan
11314a660d Sync optimization (#1385)
* Minor sync fixes

* Fixed session count sub

* handle NewBlock when downloading

* Accept new blocks right away

* block collection update fixed
2016-06-22 12:10:26 +02:00
Tomasz Drwięga
e2de1987c7 Fixing order of if statements to avoid overflows. (#1384)
* Removing old transactions

* Explanation comment [ci skip]
2016-06-22 11:15:22 +02:00
Tomasz Drwięga
e7d96484a1 New topbar & signer UI (#1383) 2016-06-22 11:14:00 +02:00
Arkadiy Paronyan
7c94b1495e Merge pull request #1329 from ethcore/softforktrigger
Install trigger for DAO-rescue soft-fork.
2016-06-21 22:25:24 +02:00
Arkadiy Paronyan
0e9ffff8ea Merge pull request #1375 from ethcore/rocksdb-flush-limit
Rocksdb flush/compact limit
2016-06-21 22:24:57 +02:00
Arkadiy Paronyan
1646a82ecc Merge pull request #1377 from General-Beck/patch-3
CentOS Dockerfile
2016-06-21 21:08:35 +02:00
Denis S. Soldatov aka General-Beck
b82b44bc1a Create Dockerfile
Dockerfile to build parity for CentOS
2016-06-22 02:05:10 +07:00
Arkadiy Paronyan
0ba9782bb2 Merge pull request #1371 from ethcore/txcount-rpc
RPC method to return number of unconfirmed transactions...
2016-06-21 20:07:30 +02:00
debris
bbe5cd001a presale wallet cli for parity 2016-06-21 17:50:22 +02:00
Arkadiy Paronyan
6e4ddde005 Merge pull request #1369 from rphmeier/update-rpc-http
bump jsonrpc-http-server
2016-06-21 17:41:49 +02:00
Arkadiy Paronyan
613d4c95f6 Merge pull request #1364 from ethcore/miner-lock
Fix lock order when updating sealing
2016-06-21 17:41:44 +02:00
Tomasz Drwięga
fe09d8d291 Merge branch 'master' into txqueue-assert
Conflicts:
	ethcore/src/miner/transaction_queue.rs
2016-06-21 16:35:18 +02:00
NikVolf
de079ebe31 Merge branch 'master' into rocksdb-flush-limit 2016-06-21 17:32:07 +03:00
NikVolf
9132895d0e limit flush rate 2016-06-21 17:20:47 +03:00
Arkadiy Paronyan
b2891fcdda Update sealing on new transactions (#1365) 2016-06-21 16:00:34 +02:00
Arkadiy Paronyan
bca4e23df6 Fixed panic on aborted connection (#1370) 2016-06-21 15:56:00 +02:00
arkpar
3aaf938add Fixed build 2016-06-21 15:24:17 +02:00
debris
94a0193047 Merge branch 'master' of github.com:ethcore/parity into presale_wallet 2016-06-21 15:19:31 +02:00
Tomasz Drwięga
a8bc86151e Merge branch 'master' into txcount-rpc
Conflicts:
	rpc/src/v1/tests/mocked/ethcore.rs
2016-06-21 15:13:41 +02:00
debris
7136cd7057 improved import wallet test 2016-06-21 15:07:15 +02:00
debris
be03a6acbd import-wallet option for ethstore executable 2016-06-21 15:04:36 +02:00
Tomasz Drwięga
7cfb9a2b0b RPC for number of unconfirmed transactions 2016-06-21 14:57:35 +02:00
Marek Kotewicz
57e9ed3f08 importing presale wallet (#1368)
* importing presale wallet in progress

* PresaleWallet data structure
2016-06-21 14:42:27 +02:00
Gav Wood
840f961dc2 don't bother assigning queue. 2016-06-21 14:34:22 +02:00
Nikolay Volf
c5f6250668 Set default database file size large enough (#1363)
* make default 100mb file size

* update again

* fix type

* little less extreme file sizes
2016-06-21 13:57:06 +02:00
Robert Habermeier
951512f9c9 Reserved peers rpc API (#1360)
* reserved peers: lock them, use a hashset, and provide to networkcontext

* adding and removing reserved peer service API

* add NonReservedPeerMode, and setters in host

* setting non reserved mode, restriction accepted connections

* implement RPC apis

* fix deadlock

* fix rpc tests
2016-06-21 13:56:33 +02:00
Robert Habermeier
878298f061 bump jsonrpc-http-server 2016-06-21 13:56:06 +02:00
Tomasz Drwięga
e0b4eab819 Fixing replacing transaction with lower gas_price in one of the edge cases (#1343) 2016-06-21 13:55:26 +02:00
debris
a8a731ba11 PresaleWallet data structure 2016-06-21 13:30:32 +02:00
Gav Wood
70db48961a Fix up flag struct. 2016-06-21 13:18:07 +02:00
debris
c2ffa90478 importing presale wallet in progress 2016-06-21 13:11:32 +02:00
Tomasz Drwięga
3de482a431 Additional assertions for internal state of queue 2016-06-21 12:31:50 +02:00
Robert Habermeier
06ba7e258e Merge pull request #1362 from ethcore/fix_migration
fixed migration of empty pruning dir
2016-06-21 12:21:31 +02:00
Gav Wood
d2057a3f72 Make names slightly less contentious. 2016-06-21 11:30:30 +02:00
arkpar
b667378820 Release lock while pushing transactions 2016-06-21 11:26:43 +02:00
NikVolf
d42f8eac1e little less extreme file sizes 2016-06-21 12:07:07 +03:00
arkpar
c912bb8c17 Fix lock order 2016-06-20 23:48:47 +02:00
Arkadiy Paronyan
f58e211b11 Merge pull request #1335 from ethcore/tx_perf
Transaction processing queue
2016-06-20 23:47:35 +02:00
Arkadiy Paronyan
7e424d2713 Merge pull request #1359 from ethcore/lastnonce-fix
Fixing last nonce values in case transaction is replaced
2016-06-20 23:03:09 +02:00
debris
7aa73f300a fixed migration of empty pruning dir 2016-06-20 22:35:59 +02:00
NikVolf
1f599ac6f9 fix type 2016-06-20 23:01:09 +03:00
NikVolf
f4f842f48e update again 2016-06-20 22:52:31 +03:00
NikVolf
d874555310 make default 100mb file size 2016-06-20 22:45:24 +03:00
Arkadiy Paronyan
05583c2cd7 Merge pull request #1358 from ethcore/no_docopt_deps
docopt is an optional dependency of ethkey and ethstore
2016-06-20 21:37:52 +02:00
Arkadiy Paronyan
855ae91c4c Merge pull request #1354 from ethcore/warnings-fix
Fixing clippy warnings
2016-06-20 21:21:51 +02:00
Arkadiy Paronyan
5705ecf95f Merge pull request #1357 from ethcore/sync
Reduce locking when syncing
2016-06-20 21:21:47 +02:00
Tomasz Drwięga
beedbd5126 Merge pull request #1356 from ethcore/clean_parity_start
removed unnecessary logs
2016-06-20 21:15:32 +02:00
Gav Wood
72debeebcf Update code hash. 2016-06-20 20:47:07 +02:00
Tomasz Drwięga
69c29fce84 Updating parity-dapps (#1353) 2016-06-20 18:51:36 +02:00
Marek Kotewicz
71bfda3534 moved keystore tests files from util to ethstore (#1352) 2016-06-20 18:51:11 +02:00
arkpar
09b8116cde TX processing queue 2016-06-20 18:42:50 +02:00
Tomasz Drwięga
8fa9a240cc Fixing last nonce values in case transaction is replaced 2016-06-20 18:37:59 +02:00
debris
0716eaa036 docopt is an optional dependency of ethkey and ethstore 2016-06-20 17:50:38 +02:00
Arkadiy Paronyan
38b9264de6 Merge pull request #1351 from ethcore/removed_bigint_deps
removed redundant bigint deps
2016-06-20 17:36:33 +02:00
Arkadiy Paronyan
5f7bdc028d Merge pull request #1350 from ethcore/revert-1349-revert-1347-reserved-peers
Reopen "reserved peers and reserved-only flag"
2016-06-20 17:29:39 +02:00
Arkadiy Paronyan
8b845e56da Merge pull request #1348 from ethcore/db-cache-size
Configurable rocksdb cache size
2016-06-20 17:29:18 +02:00
arkpar
1ffe0c185c Reduce locking 2016-06-20 17:28:48 +02:00
debris
7b9db37d84 removed unnecessary logs 2016-06-20 16:29:04 +02:00
Marek Kotewicz
75a38500f1 Merge pull request #1346 from ethcore/txqueue-future
Fixing future order and errors when reaching limit.
2016-06-20 15:31:39 +02:00
Marek Kotewicz
e9900be6ea Merge pull request #1342 from ethcore/txqueue-local-noprio
Removing priority on local transactions
2016-06-20 15:31:06 +02:00
Tomasz Drwięga
da7b30628b Fixing warnings 2016-06-20 15:20:55 +02:00
debris
71c49eaaa2 removed redundant bigint deps 2016-06-20 14:19:02 +02:00
Robert Habermeier
7a6fa97d98 Revert "Revert "Reserved peers, reserved-only flag"" 2016-06-20 14:13:33 +02:00
Robert Habermeier
b05c218338 Merge pull request #1349 from ethcore/revert-1347-reserved-peers
Revert "Reserved peers, reserved-only flag"
2016-06-20 14:10:30 +02:00
Robert Habermeier
3d3041d418 Revert "Reserved peers, reserved-only flag" 2016-06-20 14:09:41 +02:00
Arkadiy Paronyan
f5682737d3 Merge pull request #1345 from ethcore/sync-bodies
Sync attack defense: Deactivate peers on invalid block bodies
2016-06-20 14:03:53 +02:00
Marek Kotewicz
a6713467a7 Merge pull request #1347 from rphmeier/reserved-peers
Reserved peers, reserved-only flag
2016-06-20 14:03:47 +02:00
Marek Kotewicz
09253ef19c Merge pull request #1341 from ethcore/new_libs_integration
CI for ethkey and ethstore
2016-06-20 14:01:12 +02:00
Nikolay Volf
c6616431b0 fix tests 2016-06-20 14:20:13 +03:00
Nikolay Volf
deb20c6249 fix docopt 2016-06-20 14:02:09 +03:00
Arkadiy Paronyan
e97f62e33c Merge pull request #1340 from ethcore/sync
Fixed empty block body composition
2016-06-20 12:57:29 +02:00
Arkadiy Paronyan
a4b35180d1 Merge pull request #1334 from ethcore/givetoken
Provide a signer UI token by default.
2016-06-20 12:53:42 +02:00
Robert Habermeier
8d61c0298c indentation fix
[ci skip]
2016-06-20 12:48:00 +02:00
Nikolay Volf
7e452ab2e0 configurable cache size 2016-06-20 13:42:04 +03:00
Robert Habermeier
06a3557e3e reserved_only CLI flag 2016-06-20 12:17:06 +02:00
Tomasz Drwięga
c348508b40 Fixing future order and drops because of limit errors 2016-06-20 12:14:19 +02:00
debris
1bad0783fe ethkey and ethstore added to hook.sh 2016-06-20 11:37:37 +02:00
Tomasz Drwięga
edd43cd5c3 Fixing local transactions prioritization 2016-06-20 11:32:29 +02:00
Arkadiy Paronyan
18c35a031b Merge pull request #1344 from ethcore/docker_rustup
docker uses rustup, fixes #1337
2016-06-20 11:17:30 +02:00
arkpar
5e9c8db4c9 Deactivate peers on invalid block bodies 2016-06-20 11:07:22 +02:00
debris
7393de94f7 docker uses rustup, fixes #1337 2016-06-20 11:02:31 +02:00
arkpar
1dd87a39f5 Fixed tests 2016-06-20 10:44:15 +02:00
Tomasz Drwięga
d0b2df07db Removing priority on local transactions 2016-06-20 10:32:52 +02:00
Marek Kotewicz
3bf67486ae Merge pull request #1339 from ethcore/net-dispose
Fixed network service dispose
2016-06-20 10:30:02 +02:00
Tomasz Drwięga
a2f24a0083 Removing Default from Miner 2016-06-20 10:28:38 +02:00
debris
91acb22bd4 updated .travis.yml 2016-06-20 10:18:53 +02:00
debris
ca35f116a6 added new libraries: ethkey and ethstore to cov.sh, doc.sh and test.sh 2016-06-20 10:13:14 +02:00
debris
03cd1c0494 added license headers to ethkey and ethstore 2016-06-20 10:06:49 +02:00
debris
074311d95b Updated ethkey to the latest version 2016-06-20 10:02:02 +02:00
arkpar
6d435d038f Fixed empty block body composition 2016-06-20 01:26:40 +02:00
arkpar
4b3f23f0ac Fixed network service dispose 2016-06-20 01:16:15 +02:00
Arkadiy Paronyan
bf6308312e Sync: Cache last sync round block parents (#1331)
* Cache last sync round block parents

* Limit incoming transactions and new hashes
2016-06-20 00:40:11 +02:00
Gav Wood
3ee3171b8c Merge branch 'master' into softforktrigger 2016-06-20 00:37:40 +02:00
Marek Kotewicz
6b074e8fb2 secret store separated from util (#1304)
* bump rust-crypto

* initial version of account provider utilizing secret store

* update lazy_static to latest version

* AccountProvider accounts method

* new AccountProvider tests in progress

* basic tests for new AccountProvider

* ethcore compiles with new account provider and secret store

* ethcore-rpc build now compiling with new AccountProvider

* most rpc tests passing with new accounts_provider

* fixed basic_authority tests

* fixed eth_transaction_count rpc test

* fixed mocked/eth.rs tests

* fixed personal tests

* fixed personal signer rpc tests

* removed warnings

* parity compiling fine with new sstore

* fixed import direction

* do not unlock temporarily when we have the password

* removed TODO in account import

* display warning on auto account import failure

* fixed compiling of ethstore on windows

* ethstore as a part of parity repo

* added ethkey
2016-06-20 00:10:34 +02:00
Robert Habermeier
ab4561b5bc fix compilation errors 2016-06-19 21:34:02 +02:00
Robert Habermeier
2ea45134ab prefer pinned nodes when establishing peer connections. 2016-06-19 20:58:02 +02:00
Robert Habermeier
d8fca91a2f add daoRescueSoftFork to failing rpc and json tests 2016-06-19 17:12:14 +02:00
Robert Habermeier
a4dacca262 CLI option and network configuration 2016-06-19 15:59:12 +02:00
Gav Wood
08522eec37 --geth prevent getTransactionReceipt from using pending. (#1325)
This mimics the fucntionality of Geth and the current unratified
JSONRPC spec (but not the functionality of eth and the ratified
spec).
2016-06-19 14:51:51 +02:00
Gav Wood
5ceb1b084c Add missing args and some new JSONs for testing. 2016-06-19 14:49:06 +02:00
Gav Wood
2245baaaab Provide CLI options to disable aspects of soft-fork.
Soft-fork will remain default behaviour, but you can now disable
either the whole mechanism (you'll lose money if you mine with this
when the majority network doesn't) or just vote against it but
otherwise go with the flow.
2016-06-19 13:20:14 +02:00
Tomasz Drwięga
8fad728e9b Fixing locks order (#1328) 2016-06-19 12:33:50 +02:00
Gav Wood
7430cf72e2 Minor typo. 2016-06-19 12:29:39 +02:00
Gav Wood
46d588dcae CLI option and colour. 2016-06-19 12:28:24 +02:00
debris
026bfd6741 fixed incomplete merge 2016-06-19 02:09:17 +02:00
Gav Wood
bff1c5bdcb Merge branch 'master' into softforktrigger 2016-06-18 20:55:50 +02:00
Gav Wood
d915eae7f7 Remove comment. 2016-06-18 20:54:44 +02:00
Gav Wood
2582253f95 Install trigger for DAO-rescue soft-fork.
Soft-fork should only be primed to trigger if the gas-limit of
block #1760000 is at most 4,000,000.

To accomplish this we pass in the gas limit of that block to
EnvInfo so it can inform Schedule. This gets marshalled through
`OpenBlock`/`ClosedBlock` and the `enact` functions much like
`last_hashes`. `block.rs`'s `env_info()` takes care to ensure
that if the current block happens to be #1760000, then we
populate with the current `gas_limit`.
2016-06-18 20:26:44 +02:00
Marek Kotewicz
3617923d3c Merge pull request #1324 from ethcore/renamefield
Update default gas limit, rename field
2016-06-18 20:22:05 +02:00
Edward Wang
2b65011706 Use constants for DatabaseConfig (#1318)
Closes #1157
2016-06-18 17:58:28 +02:00
Gav Wood
47cd9ff34c Remove code no longer in master :-S 2016-06-18 15:18:36 +02:00
Gav Wood
7208f9f95c Unsaved file. Duh. 2016-06-18 15:12:13 +02:00
Tomasz Drwięga
81df97a737 Fixing warnings (#1321) 2016-06-18 15:11:10 +02:00
Tomasz Drwięga
c1c64bedc2 Bumping topbar. Fixing ws server closing when suspending (#1312)
* More meaningful errors when sending transaction

* Fixing returned value

* Consolidating all RPC error codes

* Fixed loosing peers on incoming connections. (#1293)

* Deactivate peer if it has no new data

* Fixed node table timer registration

* Fixed handshake timeout expiration

* Extra trace

* Fixed session count calculation

* Only deactivate incapable peers in ChainHead state

* Timer registration is not needed

* x64 path

* firewall rules

* Fix read-ahead bug.

Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.

* Refactor to use a const.

* Update README.md

* Gas price statistics. (#1291)

* Gas price statistics.

Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.

Closes #1265

* Fix a bug in eth_gasPrice

* Fix tests.

* Revert minor alteration.

* Tests for gas_price_statistics.

- Tests;
- Additional infrastructure for generating test blocks with
transactions.

* Key load avoid warning (#1303)

* avoid warning with key

* fix intendations

* more intendation fix

* ok() instead of expect()

* Appveyor config for windows build+installer (#1302)

* appveyor

* proper dist name

* quote

* win-build config

* proper build section

* tests in release

* plugin dir

* cache binaries

* quotes

* escaped quotes

* forces user dir

* fixes

* syntax

* proper cahce dir

* quotes?

* root nsis instead of bin

* submodules init

* artifact path fix

* no submodule

* raw link here

* another way to force cargo cache

* include vc++ 2015 redist

* fix name of the dist

* ETHCORE -> Ethcore

* Bumping topbar. Fixing ws server closing when suspending
2016-06-18 15:10:36 +02:00
Arkadiy Paronyan
ec654feaf8 Syncing fix (#1320)
* Fixed aborting peer for expired session

* Don't ban for usesless
2016-06-18 15:10:24 +02:00
Gav Wood
d416e5d9bc Merge branch 'master' into renamefield 2016-06-18 15:05:43 +02:00
Gav Wood
22e390f922 Rename block_dao -> reject_dao. 2016-06-18 15:00:12 +02:00
Gav Wood
c9f8eff92d Change CLI default for gas floor target. 2016-06-18 14:59:52 +02:00
Tomasz Drwięga
5e1e3ce857 Filling-in optional fields of TransactionRequest... (#1305)
* More meaningful errors when sending transaction

* Fixing returned value

* Consolidating all RPC error codes

* Fixed loosing peers on incoming connections. (#1293)

* Deactivate peer if it has no new data

* Fixed node table timer registration

* Fixed handshake timeout expiration

* Extra trace

* Fixed session count calculation

* Only deactivate incapable peers in ChainHead state

* Timer registration is not needed

* x64 path

* firewall rules

* Fix read-ahead bug.

Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.

* Refactor to use a const.

* Update README.md

* Gas price statistics. (#1291)

* Gas price statistics.

Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.

Closes #1265

* Fix a bug in eth_gasPrice

* Fix tests.

* Revert minor alteration.

* Tests for gas_price_statistics.

- Tests;
- Additional infrastructure for generating test blocks with
transactions.

* Key load avoid warning (#1303)

* avoid warning with key

* fix intendations

* more intendation fix

* ok() instead of expect()

* Filling-in optional fields of TransactionRequest.

* Adding reference to miner
2016-06-18 14:55:46 +02:00
Tomasz Drwięga
91dc31fd70 Removing Maker and DAO dapps (#1319) 2016-06-18 13:08:55 +02:00
Tomasz Drwięga
e957565144 Disabling ethcore_set* APIs by default (+ Status page update) (#1315)
* More meaningful errors when sending transaction

* Fixing returned value

* Consolidating all RPC error codes

* Fixed loosing peers on incoming connections. (#1293)

* Deactivate peer if it has no new data

* Fixed node table timer registration

* Fixed handshake timeout expiration

* Extra trace

* Fixed session count calculation

* Only deactivate incapable peers in ChainHead state

* Timer registration is not needed

* x64 path

* firewall rules

* Fix read-ahead bug.

Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.

* Refactor to use a const.

* Update README.md

* Gas price statistics. (#1291)

* Gas price statistics.

Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.

Closes #1265

* Fix a bug in eth_gasPrice

* Fix tests.

* Revert minor alteration.

* Tests for gas_price_statistics.

- Tests;
- Additional infrastructure for generating test blocks with
transactions.

* Key load avoid warning (#1303)

* avoid warning with key

* fix intendations

* more intendation fix

* ok() instead of expect()

* Appveyor config for windows build+installer (#1302)

* appveyor

* proper dist name

* quote

* win-build config

* proper build section

* tests in release

* plugin dir

* cache binaries

* quotes

* escaped quotes

* forces user dir

* fixes

* syntax

* proper cahce dir

* quotes?

* root nsis instead of bin

* submodules init

* artifact path fix

* no submodule

* raw link here

* another way to force cargo cache

* include vc++ 2015 redist

* fix name of the dist

* ETHCORE -> Ethcore

* Disabling ethcore_set* APIs (+ Status page)
2016-06-18 12:33:45 +02:00
Marek Kotewicz
75a7cf2860 fixed #1180 (#1282) 2016-06-18 12:09:29 +02:00
Arkadiy Paronyan
591fa9625d Merge pull request #1313 from ethcore/net
Network start/stop
2016-06-18 11:04:24 +02:00
Gav Wood
42478add64 DAO Rescue soft fork (#1309)
* DAO Rescue soft fork

* Address minor issues.

* Fix tests.
2016-06-18 10:54:15 +02:00
Nikolay Volf
76b413b5f7 Appveyor config for windows build+installer (#1302)
* appveyor

* proper dist name

* quote

* win-build config

* proper build section

* tests in release

* plugin dir

* cache binaries

* quotes

* escaped quotes

* forces user dir

* fixes

* syntax

* proper cahce dir

* quotes?

* root nsis instead of bin

* submodules init

* artifact path fix

* no submodule

* raw link here

* another way to force cargo cache

* include vc++ 2015 redist

* fix name of the dist

* ETHCORE -> Ethcore
2016-06-18 10:54:15 +02:00
Nikolay Volf
b4aae6bd9c Key load avoid warning (#1303)
* avoid warning with key

* fix intendations

* more intendation fix

* ok() instead of expect()
2016-06-18 10:54:15 +02:00
Tomasz Drwięga
1baa150086 Consolidating all RPC error codes 2016-06-18 10:54:15 +02:00
Tomasz Drwięga
defe688797 Fixing returned value 2016-06-18 10:54:15 +02:00
Tomasz Drwięga
2c9a5fc0a9 More meaningful errors when sending transaction 2016-06-18 10:54:12 +02:00
Gav Wood
335bce85e8 Gas price statistics. (#1291)
* Gas price statistics.

Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.

Closes #1265

* Fix a bug in eth_gasPrice

* Fix tests.

* Revert minor alteration.

* Tests for gas_price_statistics.

- Tests;
- Additional infrastructure for generating test blocks with
transactions.
2016-06-18 10:52:50 +02:00
Arkadiy Paronyan
6026dd3657 Update README.md 2016-06-18 10:52:50 +02:00
Gav Wood
d6701065ea Refactor to use a const. 2016-06-18 10:52:50 +02:00
Gav Wood
da058d0e86 Fix read-ahead bug.
Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.
2016-06-18 10:52:50 +02:00
NikVolf
232274546b firewall rules 2016-06-18 10:52:50 +02:00
NikVolf
55fec2dcc3 x64 path 2016-06-18 10:52:50 +02:00
Arkadiy Paronyan
29e286572c Fixed loosing peers on incoming connections. (#1293)
* Deactivate peer if it has no new data

* Fixed node table timer registration

* Fixed handshake timeout expiration

* Extra trace

* Fixed session count calculation

* Only deactivate incapable peers in ChainHead state

* Timer registration is not needed
2016-06-18 10:52:46 +02:00
arkpar
3f77f7ce1f Removed RPC methods 2016-06-18 09:50:05 +02:00
Gav Wood
16412eb0c9 DAO Rescue soft fork (#1309)
* DAO Rescue soft fork

* Address minor issues.

* Fix tests.
2016-06-17 22:15:18 +02:00
arkpar
fc60ed92e6 Removed info 2016-06-17 18:28:19 +02:00
arkpar
c340d8a34f Tests 2016-06-17 18:26:54 +02:00
arkpar
67ffac1df9 Check for session expiration on peer registration 2016-06-17 16:01:33 +02:00
arkpar
b38488dd07 Network shutdown 2016-06-17 12:58:28 +02:00
Robert Habermeier
3850ee64bb have StateRebuilder take a JournalDB and commit post-chunk 2016-06-17 12:56:57 +02:00
Robert Habermeier
f3c1643090 encode the account storage rlp with "append_raw" 2016-06-16 19:47:05 +02:00
Robert Habermeier
e4867d7cb9 properly rebuild state trie 2016-06-16 18:30:18 +02:00
Nikolay Volf
2a101baf1d Appveyor config for windows build+installer (#1302)
* appveyor

* proper dist name

* quote

* win-build config

* proper build section

* tests in release

* plugin dir

* cache binaries

* quotes

* escaped quotes

* forces user dir

* fixes

* syntax

* proper cahce dir

* quotes?

* root nsis instead of bin

* submodules init

* artifact path fix

* no submodule

* raw link here

* another way to force cargo cache

* include vc++ 2015 redist

* fix name of the dist

* ETHCORE -> Ethcore
2016-06-16 17:02:55 +02:00
Robert Habermeier
f45254d485 create chunks using append_raw 2016-06-16 16:39:42 +02:00
Robert Habermeier
ce87691a2e bump rocksdb version 2016-06-16 16:24:02 +02:00
Robert Habermeier
0e917b9fa3 use ZST error type for snappy, use new snappy compression methods 2016-06-16 15:35:49 +02:00
Nikolay Volf
07641b8f0a Key load avoid warning (#1303)
* avoid warning with key

* fix intendations

* more intendation fix

* ok() instead of expect()
2016-06-16 14:14:22 +02:00
Nikolay Volf
10bbe8c8a2 Merge pull request #1290 from ethcore/send-tx-errors
More meaningful errors when sending transaction
2016-06-16 15:27:21 +04:00
Robert Habermeier
53db9921d6 alter snappy methods to do vec resizing themselves 2016-06-16 12:57:57 +02:00
Gav Wood
88b03580ff Gas price statistics. (#1291)
* Gas price statistics.

Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.

Closes #1265

* Fix a bug in eth_gasPrice

* Fix tests.

* Revert minor alteration.

* Tests for gas_price_statistics.

- Tests;
- Additional infrastructure for generating test blocks with
transactions.
2016-06-16 12:44:08 +02:00
Arkadiy Paronyan
1e9da1e0fa Update README.md 2016-06-16 11:21:35 +02:00
Nikolay Volf
5a0d367e0b Merge pull request #1298 from ethcore/fiximport
Fix read-ahead bug.
2016-06-16 13:17:13 +04:00
Gav Wood
80e56cb8d7 Refactor to use a const. 2016-06-15 23:12:43 +02:00
Gav Wood
9603597da7 Fix read-ahead bug.
Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.
2016-06-15 21:31:19 +02:00
Marek Kotewicz
77c3e10b6a Merge pull request #1297 from ethcore/nsis-firewall
firewall rules for windows installer
2016-06-15 21:12:48 +02:00
NikVolf
7649037e51 firewall rules 2016-06-15 21:40:41 +03:00
Arkadiy Paronyan
87e9ca7517 Merge pull request #1296 from ethcore/nsis-path
x64 program files path for installer
2016-06-15 19:53:52 +02:00
NikVolf
5538527016 x64 path 2016-06-15 20:52:00 +03:00
Robert Habermeier
7ca5c115d8 validate all compressed buffers 2016-06-15 19:18:49 +02:00
Robert Habermeier
b38f33531e validate_compressed_buffer binding 2016-06-15 19:14:46 +02:00
Arkadiy Paronyan
7284df9bf5 Fixed loosing peers on incoming connections. (#1293)
* Deactivate peer if it has no new data

* Fixed node table timer registration

* Fixed handshake timeout expiration

* Extra trace

* Fixed session count calculation

* Only deactivate incapable peers in ChainHead state

* Timer registration is not needed
2016-06-15 19:01:58 +02:00
Robert Habermeier
25f1f22c86 use account_pair in feed 2016-06-15 18:41:02 +02:00
Tomasz Drwięga
6803375301 Consolidating all RPC error codes 2016-06-15 18:32:21 +02:00
Tomasz Drwięga
dcd64f73d4 Merge branch 'master' into send-tx-errors 2016-06-15 18:27:56 +02:00
Robert Habermeier
0e3a15cadb add a state rebuilder 2016-06-15 17:46:40 +02:00
Robert Habermeier
d7498c1dd5 rename AccountReader to Account, give a separate module 2016-06-15 16:42:49 +02:00
Robert Habermeier
a2bb3f2832 account storage decoding implemented 2016-06-15 16:34:11 +02:00
Marek Kotewicz
549647b6f2 fixed #1261, overflow when calculating work (#1283)
* fixed #1261, overflow when calculating work

* tests for difficulty_to_boundary

* return !U256::zer() for boundary <= 1
2016-06-15 16:33:38 +02:00
Robert Habermeier
d26e038dc7 fix bug in account code storage, add to_thin_rlp for AccountReader 2016-06-15 15:59:21 +02:00
Robert Habermeier
9badb310ae remove snappy_buffer_size constant in favor of max_compressed_len 2016-06-15 13:05:00 +02:00
Robert Habermeier
6b852a0635 Merge pull request #1287 from rphmeier/update_readme
clarify build instructions
2016-06-15 12:48:54 +02:00
Robert Habermeier
2527130831 indentation (renders the same)
[ci skip]
2016-06-15 12:46:02 +02:00
Robert Habermeier
53b3a6f0a1 use UntrustedRlp in to_block 2016-06-15 12:45:04 +02:00
Robert Habermeier
3d86d099bb remove either/or commands, keep it simple
[ci skip]
2016-06-15 12:22:36 +02:00
Marek Kotewicz
0f1e2f5d2f Merge pull request #1280 from ethcore/1255
fixed #1255
2016-06-15 11:39:39 +02:00
Tomasz Drwięga
818b87e311 Fixing returned value 2016-06-15 09:01:57 +02:00
Marek Kotewicz
79bd168267 bump rust-crypto (#1289) 2016-06-15 01:27:47 +02:00
Gav Wood
be6c572449 Update eth.rs 2016-06-15 01:26:58 +02:00
Robert Habermeier
44ed899fb3 address comments
[ci skip]
2016-06-15 01:16:16 +02:00
debris
dac387fac1 changed rpc error message to Still Syncing, when mining is not ready 2016-06-15 01:12:46 +02:00
Arkadiy Paronyan
71131c41e5 Security audit issues fixed (#1279)
* Restrict network key file permissions

* Check for overflow in str to bigint conversion

* RLP decoder overflow check
2016-06-15 00:58:08 +02:00
Tomasz Drwięga
b562480173 Fixing origin/host validation (#1273) 2016-06-15 00:57:49 +02:00
Tomasz Drwięga
b89888eda1 Merge branch 'master' into send-tx-errors
Conflicts:
	Cargo.lock
2016-06-15 00:30:54 +02:00
Tomasz Drwięga
efa8f661e5 More meaningful errors when sending transaction 2016-06-15 00:17:23 +02:00
Arkadiy Paronyan
f7536876d5 Merge pull request #1284 from ethcore/win-nsis
windows installer + parity start ui cli option
2016-06-14 23:33:30 +02:00
Arkadiy Paronyan
aeae4670f1 Merge pull request #1285 from ethcore/ipc-bump
ipc lib version bump
2016-06-14 23:29:08 +02:00
Robert Habermeier
58948c53ff clarify windows instructions
[ci skip]
2016-06-14 19:37:51 +02:00
Robert Habermeier
17a60920cb adjust comments 2016-06-14 19:14:41 +02:00
Nikolay Volf
f5cc3db4da fixes with buffered writes 2016-06-14 20:12:42 +03:00
Robert Habermeier
3290f393bd block rlp compression 2016-06-14 18:34:27 +02:00
Robert Habermeier
874bc808cb add some missing header setters 2016-06-14 18:12:05 +02:00
Nikolay Volf
7b89d6a263 bump further 2016-06-14 18:45:12 +03:00
Nikolay Volf
a26a4edc85 version bump 2016-06-14 18:37:04 +03:00
Nikolay Volf
91bb6c5d43 final fix 2016-06-14 18:26:40 +03:00
NikVolf
37260d7cf5 fix build and remove .cargo regs 2016-06-14 18:16:41 +03:00
NikVolf
8ced25b36c remove some comments from sample 2016-06-14 18:12:41 +03:00
NikVolf
39e2f6c891 cfg attrs 2016-06-14 17:37:01 +03:00
NikVolf
5920a7068f installer initial, ui option for executable 2016-06-14 17:12:46 +03:00
Robert Habermeier
8ed2b9c7d9 refactor out common parts of write_chunk 2016-06-14 15:32:49 +02:00
debris
7610d308e8 fixed #1255 2016-06-14 15:17:17 +02:00
Arkadiy Paronyan
a03da30510 Merge pull request #1274 from ethcore/sync
Syncing improvements
2016-06-14 15:01:31 +02:00
arkpar
65d42d6a5a Fixed valid response condition 2016-06-14 13:25:06 +02:00
Robert Habermeier
dfb603dd08 compress into reusable buffers 2016-06-14 13:22:15 +02:00
NikVolf
b3caeee758 Merge branch 'master' of github.com:ethcore/parity 2016-06-14 14:18:31 +03:00
Marek Kotewicz
9940432051 Merge pull request #1270 from ethcore/redundant_if_condition
removed redundant if condition
2016-06-14 04:06:08 -07:00
Robert Habermeier
16e58958c9 use snappy compression on buffers 2016-06-14 12:32:51 +02:00
Robert Habermeier
75013003f7 simple snappy bindings, enabling alloc free code 2016-06-14 12:29:05 +02:00
Tomasz Drwięga
dbddb6a566 Fixing generating new token while another parity instance is running. (#1272) 2016-06-14 12:23:01 +02:00
arkpar
9ed2122ae2 Style + comments 2016-06-14 12:18:20 +02:00
Robert Habermeier
b88eef5374 use append_empty_data rather than fibbing it 2016-06-14 11:48:34 +02:00
arkpar
5c019b74e4 Validate header response 2016-06-14 11:30:51 +02:00
debris
0b8710a2a1 removed redundant if condition 2016-06-14 03:04:06 +02:00
Marek Kotewicz
ca33f7c18d Merge pull request #1266 from ethcore/arkpar-patch-1
README: rustup and windows instructions
2016-06-13 12:44:22 -07:00
Robert Habermeier
835b158069 store account code if it exists 2016-06-13 21:05:06 +02:00
arkpar
1dac2e3b23 Fixed NewHashes response 2016-06-13 20:57:15 +02:00
arkpar
8c7bcdafdb Continue reading session data in the same iteration if available 2016-06-13 20:57:04 +02:00
arkpar
925869d462 Fix returning non-canonical headers 2016-06-13 20:56:55 +02:00
arkpar
bee3669e9b Deactivate peers giving us invalid/empty headers 2016-06-13 20:56:44 +02:00
Robert Habermeier
5cc6a681c9 push pair onto block chunker buffer 2016-06-13 20:48:12 +02:00
Arkadiy Paronyan
4c812169d1 Update README.md 2016-06-13 20:26:17 +02:00
Robert Habermeier
5b6ea41d9d no longer lock the state db 2016-06-13 20:02:20 +02:00
Robert Habermeier
c36f47bbbf rename pv64_snapshot trace target to snapshot 2016-06-13 20:00:47 +02:00
Robert Habermeier
22a19819c6 rename pv64 module to snapshot 2016-06-13 20:00:00 +02:00
Arkadiy Paronyan
f5efd444f5 rustup and windows instructions 2016-06-13 19:22:54 +02:00
Arkadiy Paronyan
6b12334136 Windows build (#1253)
* Networking refactoring

* Fixed typo

* Trace logging

* Updated dependencies for windows build

* Windows fixes

* use mio 0.5

* nix build

* Windows build fix

* style

* removed unused import

* ipc crate version bump

* ipc config for named pipes

* tweaks and fixes

* tweaks and fixes

* final version bump

* Fixed tests

* Disable color output on windows

* Added missing doc
2016-06-13 18:55:24 +02:00
Marek Kotewicz
4ef4819bf9 removed try_seal from MinerClient interface (#1262) 2016-06-13 18:51:14 +02:00
Robert Habermeier
6ec282fe98 Merge with latest master 2016-06-13 16:35:59 +02:00
Robert Habermeier
98c7677ce1 expose only chunk_blocks and chunk_state APIs 2016-06-13 16:29:26 +02:00
Robert Habermeier
446d59426a io error handling and slight blockchunker refactoring 2016-06-13 16:21:23 +02:00
Marek Kotewicz
a8831fe896 Merge pull request #1232 from ethcore/simplified_block_opening
simplified block opening
2016-06-13 06:56:24 -07:00
Robert Habermeier
f478812441 remove spammy account trace 2016-06-13 15:36:02 +02:00
Robert Habermeier
4ded1cc3d4 chunk remainder at end of each stage 2016-06-13 15:25:06 +02:00
debris
12a76597d4 Merge branch 'master' into simplified_block_opening 2016-06-13 15:11:14 +02:00
Robert Habermeier
10c2302b55 create an AccountDB to extract account storage 2016-06-13 14:43:27 +02:00
Robert Habermeier
f400da405a state chunk creation tracing 2016-06-13 14:17:47 +02:00
Robert Habermeier
d9743f166f AccountReader -> to_fat_rlp implementation 2016-06-13 13:22:42 +02:00
Robert Habermeier
e5ca5e0926 [REQUIRES DB UPGRADE] have account_db use address hash 2016-06-13 12:48:19 +02:00
Robert Habermeier
d696a66d71 add account reader. trie walking not functional yet 2016-06-13 12:39:09 +02:00
Arkadiy Paronyan
b33482ce74 Merge pull request #1259 from ethcore/clippy-bump
Clippy bump
2016-06-13 11:57:07 +02:00
Arkadiy Paronyan
b1849bd1ad Merge pull request #1258 from ethcore/uint-fix
Fixing uint ASM macros compilation
2016-06-13 11:57:01 +02:00
Arkadiy Paronyan
7064624b6f Merge pull request #1252 from ethcore/dapps-bump
Signer port returned from RPC + Topbar showing count of unconfirmed transactions.
2016-06-12 12:02:48 +02:00
Arkadiy Paronyan
7f9e8d0b48 Merge pull request #1250 from ethcore/codegen-unwraps
codegen - avoid unwraps leading to compilation crash
2016-06-12 12:02:26 +02:00
Arkadiy Paronyan
070aae6562 Merge pull request #1257 from ethcore/dapps-bump2
Dapps bump
2016-06-12 12:02:02 +02:00
Tomasz Drwięga
fca22e92ce Bumping clippy 2016-06-12 11:26:07 +02:00
Tomasz Drwięga
9260d44362 Fixing uint ASM macros 2016-06-12 10:30:44 +02:00
Tomasz Drwięga
c2b226ec57 Dapps bump 2016-06-12 10:23:16 +02:00
Robert Habermeier
c9846b8f48 skeleton for StateChunker 2016-06-11 19:28:18 +02:00
Robert Habermeier
5c252f2a60 output manifest to correct file 2016-06-11 13:08:22 +02:00
NikVolf
833dc16040 cargo dev config to gitignore 2016-06-11 12:21:12 +03:00
Robert Habermeier
3b1cca5622 add manifestdata struct, write manifest file at the end 2016-06-10 17:19:55 +02:00
Tomasz Drwięga
6d9baef12c Bumping minimal sysui [ci skip] 2016-06-10 15:59:03 +02:00
Tomasz Drwięga
89a77149bf Removing clone 2016-06-10 15:48:22 +02:00
Tomasz Drwięga
e5e238746b Bumping sysui & topbar. personal_signerEnabled returns port 2016-06-10 15:39:34 +02:00
Tomasz Drwięga
036b324804 Bumping dapps 2016-06-10 15:23:18 +02:00
Robert Habermeier
b047eb29a1 removed size tolerance 2016-06-10 15:05:20 +02:00
Robert Habermeier
f689792481 added tracing 2016-06-10 14:43:01 +02:00
Arkadiy Paronyan
3e7d8bf1a8 Merge pull request #1236 from rphmeier/hash_unsafety
remove unsafety from util/hash.rs and util/bigint/uint.rs
2016-06-10 14:11:36 +02:00
Arkadiy Paronyan
e633cd2f75 Merge pull request #1247 from ethcore/rpc-cors-fix
Fixing CORS settings for special values: * & null.
2016-06-10 14:09:10 +02:00
Robert Habermeier
c6e83caddf fix warning 2016-06-10 13:33:43 +02:00
Robert Habermeier
f12add6958 take_snapshot now chunks blocks 2016-06-10 13:10:12 +02:00
Robert Habermeier
997fd93016 finish implementing basic block chunking 2016-06-10 12:45:46 +02:00
Robert Habermeier
5e0ba1c310 take_snapshot and block chunking skeleton 2016-06-10 12:19:50 +02:00
Nikolay Volf
383b7a3cab avoid unwraps 2016-06-10 09:56:13 +03:00
debris
2a92e10fcd Merge branch 'master' of github.com:ethcore/parity into simplified_block_opening 2016-06-09 11:09:12 -07:00
Tomasz Drwięga
d54d3a2c60 Fixing match 2016-06-09 15:19:48 +02:00
Nikolay Volf
6e7828fa71 Merge pull request #1246 from ethcore/jsonsertests
JSONRPC test strings avoid using \ char
2016-06-09 15:48:44 +04:00
Tomasz Drwięga
2e52c99042 Fixing CORS settings 2016-06-09 10:02:52 +02:00
Gav Wood
c6369a4ae7 Merge branch 'master' into jsonsertests 2016-06-08 12:46:34 -07:00
Gav Wood
2e56fbad2c Use nicer strings for tests. 2016-06-08 12:41:29 -07:00
Gav Wood
293d9f15d5 Tests for JSON serialisation of statediff/vmtrace (#1241)
* Splitting RPC Apis into more fine-grained sets

* Remove old code/comment.

* Add test for VMTrace ser.

* Add StateDiff ser test.
2016-06-08 12:40:55 -07:00
Marek Kotewicz
a72ee5c16a Merge pull request #1245 from ethcore/updating-topbar
Bumping Dapps & TopBar to newest version.
2016-06-08 21:29:49 +02:00
Tomasz Drwięga
cfaa0389e1 Bumping dapps 2016-06-08 17:27:21 +02:00
Gav Wood
becf1d7b28 Merge branch 'master' into jsonsertests 2016-06-08 06:18:44 -07:00
Nikolay Volf
b4b883b341 keys import (#1240)
* pattern importing

* tests for import

* cli options for account import

* [options] for import also

* removed globbing

* removed glob crate refs
2016-06-08 06:17:37 -07:00
Tomasz Drwięga
be435cde99 Splitting RPC Apis into more fine-grained sets (#1234) 2016-06-07 13:52:48 -07:00
Gav Wood
c5d8f5e136 Add StateDiff ser test. 2016-06-07 12:44:57 -07:00
Gav Wood
446c9096f4 Add test for VMTrace ser. 2016-06-07 12:30:44 -07:00
Gav Wood
5397da0c93 Remove old code/comment. 2016-06-07 12:30:35 -07:00
Robert Habermeier
13968aaa38 Refactor triedb constructors to error on invalid state root (#1230)
* add TrieError, refactor Trie DB creation

* remove Result type alias due to glob import conflicts

* fix fallout in state.rs

* add debug, display impl for TrieError

* fix fallout in account.rs

* ethcore::Error::TrieError variant

* fix remaining fallout in ethcore crate

* added From<TrieError> impl for Error, removed map_err calls

* fix test breakages

* fix doc tests

* update docs

[ci skip]
2016-06-07 11:44:09 -07:00
Gav Wood
2abe8cc5dd Merge branch 'master' into apis-split 2016-06-07 10:42:09 -07:00
Tomasz Drwięga
fdc22db3f4 Signer RPC method to check if signer is enabled (#1238)
* API to check if signer is enabled

* Fixing compilation warnings
2016-06-07 10:33:32 -07:00
Tomasz Drwięga
bf9173e673 Fixing signer behaviour when confirming transaction with wrong password. (#1237)
* Avoid removing transactions when trying to confirm and the password is invalid

* Fix order
2016-06-07 08:25:01 -07:00
Tomasz Drwięga
f61ee1a5f1 SystemUIs authorization (#1233)
* Initial implementation of AuthCodeStore for SystemUIs

* SystemUIs authorization

* Renaming SystemUI -> SignerUI

* Fixing clippy warnings

* Lowering time threshold

* Bumping sysui

* Fixing test
2016-06-07 08:21:19 -07:00
Nikolay Volf
e6d141e14f fixed path for testnet config (#1231) 2016-06-07 08:14:03 -07:00
Robert Habermeier
5168a1c851 remove some unsafety from uint.rs 2016-06-07 16:42:07 +02:00
Robert Habermeier
db869fcdd1 remove unnecessary reference 2016-06-07 16:18:50 +02:00
Robert Habermeier
e46c9f67ab remove outdated comments 2016-06-07 16:16:23 +02:00
Robert Habermeier
482fe3b211 fixed indentation 2016-06-07 16:11:34 +02:00
Robert Habermeier
9ae93d6962 remove unsafety from util/hash.rs 2016-06-07 16:04:26 +02:00
Nikolay Volf
ef39eed12f Merge pull request #1225 from ethcore/serdestatediff
StateDiff and VMTrace uses serde preprocessor.
2016-06-07 15:06:50 +04:00
Tomasz Drwięga
62e37aef8f Splitting RPC Apis into more fine-grained sets 2016-06-07 13:01:37 +02:00
Gav Wood
3db2328f52 Merge branch 'txtracingforcall' into serdestatediff 2016-06-06 19:24:07 -07:00
Gav Wood
4efd658577 Merge branch 'master' into txtracingforcall 2016-06-06 19:19:32 -07:00
Gav Wood
0cb1affd48 Use serialize framework for VMTrace JSON. 2016-06-06 15:18:38 -07:00
Nikolay Volf
e408b7ac99 Merge pull request #1227 from ethcore/warnings
Removing compilation warnings
2016-06-07 00:33:33 +04:00
Robert Habermeier
b4899f4d47 Merge pull request #1226 from ethcore/signer-auth
Allowing connections only from chrome-extension and self-hosted client
2016-06-06 17:36:36 +02:00
debris
79919bdc3c simplified block opening 2016-06-06 14:34:23 +02:00
Tomasz Drwięga
18ffd94674 Fixing warnings 2016-06-06 12:18:17 +02:00
Tomasz Drwięga
1dae61f22f Merge branch 'master' into signer-auth 2016-06-06 12:12:38 +02:00
Tomasz Drwięga
302126ebcf Allowing connections only from chrome-extension and self-hosted client 2016-06-06 12:03:01 +02:00
Arkadiy Paronyan
98d9752097 Merge pull request #1219 from ethcore/clippy-bump
Clippy bump & fixing warnings
2016-06-06 11:46:59 +02:00
Marek Kotewicz
b93c83b8a0 Merge pull request #1216 from ethcore/serde-bump
Bumping serde & syntex
2016-06-06 11:32:13 +02:00
Marek Kotewicz
54c20f6f9c Merge pull request #1211 from ethcore/signer-ui
Minimal Signer UI (System UI) exposed over websockets.
2016-06-06 11:31:45 +02:00
Marek Kotewicz
a460813788 Merge pull request #1208 from ethcore/switchrpcns
Switch RPC namespace form ethcore_ to trace_
2016-06-06 11:30:36 +02:00
Marek Kotewicz
ba8c7bc959 Merge pull request #1217 from rphmeier/state_at_state_root
Verify the state root exists before creating a State
2016-06-06 11:29:39 +02:00
Tomasz Drwięga
a7de430193 Merge branch 'master' into clippy-bump
Conflicts:
	dapps/Cargo.toml
2016-06-06 10:13:42 +02:00
Tomasz Drwięga
67b9e08ff0 Ignoring tests 2016-06-06 10:13:01 +02:00
Tomasz Drwięga
a063a63ac7 Merge branch 'master' into serde-bump
Conflicts:
	ethcore/src/types/state_diff.rs
2016-06-06 10:10:06 +02:00
Tomasz Drwięga
9572f6e5fc Merge branch 'master' into signer-ui 2016-06-06 10:06:48 +02:00
Gav Wood
1fa8f108d9 StateDiff uses serde preprocessor. 2016-06-06 00:24:21 +02:00
Robert Habermeier
64b74eae43 fix travis build 2016-06-05 23:50:27 +02:00
Robert Habermeier
3dff5a9f3f add early exit for pruned blocks 2016-06-05 22:14:40 +02:00
Robert Habermeier
e6921144dc simplify conditional in state_at 2016-06-05 22:05:01 +02:00
Gav Wood
f775606c37 Merge branch 'switchrpcns' into txtracingforcall 2016-06-05 21:38:11 +02:00
Gav Wood
bbd024d646 Merge branch 'master' into switchrpcns 2016-06-05 21:37:56 +02:00
Gav Wood
4675b7408f Merge branch 'switchrpcns' into txtracingforcall 2016-06-05 21:35:58 +02:00
Marek Kotewicz
c8c47ebe32 Merge pull request #1206 from ethcore/diffing
Integrate state diffing into the ethcore JSONRPC
2016-06-05 21:35:36 +02:00
Gav Wood
ec61c7534c Merge branch 'diffing' into switchrpcns 2016-06-05 21:35:03 +02:00
Gav Wood
d39b9506d2 Minor code refactor. 2016-06-05 18:24:17 +02:00
Gav Wood
4153052148 Fix fn call in miner.rs same as client.rs. 2016-06-05 17:23:27 +02:00
Tomasz Drwięga
d5048967e2 Updating topbar to latest version (#1220) 2016-06-03 17:52:39 +02:00
Robert Habermeier
aa465fa2cd conditional style fix 2016-06-03 12:15:27 +02:00
Robert Habermeier
6f850ebdac does_pruning -> is_pruned 2016-06-03 12:10:10 +02:00
Gav Wood
4dc9aedfb5 Merge branch 'master' into txtracingforcall 2016-06-03 12:06:39 +02:00
Tomasz Drwięga
bb1b8cc08a Loading local Dapps from FS. (#1214)
* apps list to separate module

* Preparing to support serving files from disk

* Serving files from disk

* Using dapps path from CLI

* Adding more docs
2016-06-03 11:51:11 +02:00
Tomasz Drwięga
3905717d5d Fixing warnings 2016-06-03 11:36:30 +02:00
Tomasz Drwięga
ae2deaaf72 Bumping clippy version 2016-06-03 11:15:38 +02:00
Robert Habermeier
1e10445f82 exists -> contains 2016-06-02 21:23:43 +02:00
Robert Habermeier
6c6229c963 check if state root is valid for old blocks 2016-06-02 20:52:21 +02:00
Robert Habermeier
d7b79c1274 don't return a state in state_at if the db prunes and the block is before guaranteed history 2016-06-02 20:34:38 +02:00
Tomasz Drwięga
3ba15f6c64 Updating httpserver and core 2016-06-02 20:32:48 +02:00
Tomasz Drwięga
8752a60018 Merge branch 'serde-bump' of github.com:ethcore/parity into serde-bump
Conflicts:
	Cargo.lock
	dapps/Cargo.toml
	rpc/Cargo.toml
	signer/src/lib.rs
2016-06-02 20:28:23 +02:00
Tomasz Drwięga
3e2479cf40 Merge branch 'master' into signer-ui 2016-06-02 20:00:25 +02:00
Nikolay Volf
81d8dafd9e Ipc serialization & protocol fixes (#1188)
* serialization and codegen fixes from branch

* nano lib fixes

* fixes error encoding & comment

* another comment fix

* client timeout -> const
2016-06-02 19:04:42 +02:00
Robert Habermeier
0318bb9fe9 Have Ext::ret take self by value (#1187)
* refactor externalities::ret to take self by-value, add GasLeft enum, and alter evm::Result.

* remove unused imports, StopExecutionWithGasLeft variant

* adjust tests

* remove extraneous call to reserve

* update json_tests Ext to match new trait

* adjust executive json_test

* have evms own their memory for their entire lifetime

* make finalize API more friendly

* indentation fix

[ci skip]
2016-06-02 19:04:15 +02:00
Tomasz Drwięga
18dac64abb Simple WebSockets notification about new request (#1202)
* Splitting methods requiring signing into separate trait

* Single place where RPC apis are created.

* Separating eth_filter

* Separating eth_signing

* Stubs for Personal Signer methods

* Test for EthSigningQueueClient

* TransactionConfirmation API

* Exposing PersonalSigner API

* Defining ApiSets dependent on context

* Removing types

* Supporting sending notification to WS connected SystemUIs

* Sending a notification on every new messages

* Adding logs to signing queue

* Shutting down broadcaster

* Refactoring the signing queue

* Fixing wait loop in case of spurious wake-ups.
2016-06-02 17:05:13 +02:00
Gav Wood
f357274ced Merge branch 'master' into txtracingforcall 2016-06-02 16:44:11 +02:00
Gav Wood
7dc05f1bcc Unify tracing interface into a single call. 2016-06-02 16:30:28 +02:00
Tomasz Drwięga
35753f22f7 Removing leftovers of ethminer (#1207) 2016-06-02 15:58:21 +02:00
Nikolay Volf
c3404c9b59 Merge pull request #1205 from ethcore/fixed_1204
fixed #1204
2016-06-02 14:06:08 +02:00
Gav Wood
a132fefcc7 Transaction tracing for eth_call. 2016-06-02 13:50:50 +02:00
Tomasz Drwięga
cce18cb4c5 Enabling DAOdapp 2016-06-02 13:34:26 +02:00
Tomasz Drwięga
79a60e157b Merge branch 'signer-wsnotification' into signer-ui 2016-06-02 13:25:38 +02:00
Tomasz Drwięga
ee3f608204 Fixing wait loop in case of spurious wake-ups. 2016-06-02 13:19:44 +02:00
Gav Wood
c202abe09d Switch RPC namespace form ethcore_ to trace_ 2016-06-02 13:14:49 +02:00
Tomasz Drwięga
d40504caa5 Merge branch 'signer-wsnotification' into signer-ui 2016-06-02 13:09:11 +02:00
Tomasz Drwięga
77942c0b48 Merge branch 'master' into signer-wsnotification 2016-06-02 13:02:10 +02:00
Gav Wood
4c44994807 Merge branch 'master' into diffing 2016-06-02 12:44:38 +02:00
debris
9a626c84bc fixed #1204 2016-06-02 12:44:05 +02:00
Gav Wood
29e18cfc4d Merge branch 'vmtracing' 2016-06-02 12:43:14 +02:00
Gav Wood
401bdca153 Merge branch 'master' of github.com:ethcore/parity 2016-06-02 12:42:16 +02:00
Gav Wood
b17581d7de VM tracing and JSON RPC endpoint for it. (#1169)
* Groundwork for basic VM tracing.

* RPC endpoint for VM tracing and ser/de types ready.

* Create VMTracer trait.

* Rearchitected VM tracing to reflect existing tracing.

Should more or less work now.

* Integrated VM tracing into JSONRPC.

* Fix ethcore module tests.

* Add tests for VM tracing.

* Fix consensus test code.

* Fix mock tests.

* Added VM trace information for post-execution stuff.

* Fix max-value calls and add "creates" field to getTransaction.

* Tests for VM tracing.

* Don't implement the trait with unimplemented.

* Remove invlaid comment.

* Fix tests.
2016-06-02 12:40:31 +02:00
Gav Wood
b9ec87548d Minor renaming diff -> state_diff 2016-06-02 12:39:25 +02:00
Gav Wood
bc5c3da2af Merge branch 'vmtracing' into diffing 2016-06-02 12:28:09 +02:00
Tomasz Drwięga
716c9bb43c Merge branch 'master' into signer-wsnotification
Conflicts:
	rpc/src/v1/impls/mod.rs
2016-06-02 12:22:52 +02:00
Tomasz Drwięga
e9bcce05a1 Refactoring the signing queue 2016-06-02 12:17:28 +02:00
Nikolay Volf
7ad9c73c75 devtools helpers extended (#1186)
* devtools extensions

* some doc effort
2016-06-02 11:51:03 +02:00
Arkadiy Paronyan
8596a347ea Networking refactoring (#1172)
* Networking refactoring

* Make sure the same socket is reused

* Safer atomic ordering

* Replaced eq with ==
2016-06-02 11:49:56 +02:00
Gav Wood
d40a038f37 Fix tests. 2016-06-02 11:49:27 +02:00
Gav Wood
26da38a439 Merge remote-tracking branch 'origin/master' into vmtracing 2016-06-02 11:40:39 +02:00
Robert Habermeier
e170916563 Merge pull request #1195 from ethcore/client-refact
Client & Miner refactoring
2016-06-01 20:54:19 +02:00
Tomasz Drwięga
5f68b81f68 Updating jsonrpc-core 2016-06-01 20:32:16 +02:00
Tomasz Drwięga
89deaef809 Merge branch 'signer-wsnotification' into signer-ui 2016-06-01 20:13:36 +02:00
Nikolay Volf
626acda6a3 fix warnings 2016-06-01 20:11:05 +02:00
Robert Habermeier
b7ada4dee0 update readme (#1201)
* update readme

[ci skip]

* minor fixes

* mention dapps server.

[ci skip]
2016-06-01 20:10:51 +02:00
Gav Wood
5c63311268 Add missing types. 2016-06-01 20:02:23 +02:00
Tomasz Drwięga
555555e6f7 Merge branch 'master' into signer-wsnotification
Conflicts:
	parity/signer.rs
	rpc/src/v1/helpers/signing_queue.rs
	rpc/src/v1/impls/eth_signing.rs
	rpc/src/v1/impls/personal_signer.rs
	signer/src/ws_server/mod.rs
2016-06-01 20:00:43 +02:00
Nikolay Volf
c370bcaded merge fixes 2016-06-01 19:57:34 +02:00
Nikolay Volf
6676c6cf7e Merge branch 'master' into client-refact 2016-06-01 19:42:32 +02:00
Tomasz Drwięga
99e26b8480 Simple signing queue, confirmation APIs exposed in signer WebSockets. (#1182)
* Splitting methods requiring signing into separate trait

* Single place where RPC apis are created.

* Separating eth_filter

* Separating eth_signing

* Stubs for Personal Signer methods

* Test for EthSigningQueueClient

* TransactionConfirmation API

* Exposing PersonalSigner API

* Defining ApiSets dependent on context

* Removing types

* Fixing default impl

* Fixing un-mocked tests

* Update signing_queue.rs

[ci skip]

* Removing unused import [ci skip]
2016-06-01 19:37:34 +02:00
Tomasz Drwięga
a7a2b55362 Using ethcore http server 2016-06-01 19:32:05 +02:00
Tomasz Drwięga
d601e11d59 Removing typeS 2016-06-01 19:05:27 +02:00
Tomasz Drwięga
4742860b2e Using ethcore http server 2016-06-01 18:00:40 +02:00
Tomasz Drwięga
1fd9110829 Serde bump 2016-06-01 17:59:21 +02:00
Robert Habermeier
b9b0ce8d65 Merge pull request #1199 from ethcore/ordered-dapps
Using ordered hashmap to keep the order of dapps on home screen
2016-06-01 16:19:00 +02:00
Nikolay Volf
1ef4db82e8 doctest fixes 2016-06-01 14:50:06 +02:00
Tomasz Drwięga
ae572cb8f5 Using ordered hashmap to keep the order of dapps on home screen 2016-06-01 13:25:20 +02:00
Marek Kotewicz
ee77fc3bc3 Merge pull request #1197 from ethcore/x-frame
Disabling `ethcore` by default, adding x-frame-options header to dapps.
2016-06-01 13:20:46 +02:00
Nikolay Volf
985d412c48 fix merges again 2016-06-01 13:03:26 +02:00
Nikolay Volf
c00b84e10b merge fixes 2016-06-01 12:54:47 +02:00
Nikolay Volf
0c782bf34b Merge branch 'master' into client-refact 2016-06-01 12:45:04 +02:00
Arkadiy Paronyan
f41466c8b5 Merge pull request #1196 from rphmeier/rpc-tests
transaction count verifier tests
2016-06-01 12:44:51 +02:00
Nikolay Volf
db749dc564 fix remaining tests & doctest 2016-06-01 12:44:11 +02:00
Arkadiy Paronyan
e743972102 Merge pull request #1192 from rphmeier/x_macros
expunge x! and xx! from the codebase
2016-06-01 12:43:15 +02:00
Nikolay Volf
cee31f9e8d fix travis 2016-06-01 03:19:20 +02:00
Nikolay Volf
d45a676dc0 all tests fixed 2016-05-31 22:24:32 +02:00
Tomasz Drwięga
67421fc69e Adding explanatory comment for safe_to_embed 2016-05-31 21:56:41 +02:00
Tomasz Drwięga
ae1bcd6a5b Disabling ethcore APIs for RPC and IPC 2016-05-31 21:53:20 +02:00
Robert Habermeier
5fd4b9d7bd formatting fix 2016-05-31 21:50:25 +02:00
Nikolay Volf
dad61bb7cf test and travis fix for absent crate 2016-05-31 21:40:26 +02:00
Tomasz Drwięga
9957328607 DENY frames from other origins to prevent clickjacking 2016-05-31 21:39:11 +02:00
Nikolay Volf
c33b1caf21 executable all issues resolved 2016-05-31 21:38:07 +02:00
Robert Habermeier
bbb858b386 address small syntax breakages 2016-05-31 21:38:05 +02:00
Nikolay Volf
77cef76518 rpc bindings resolved 2016-05-31 21:31:42 +02:00
Robert Habermeier
4146e1f02b add empty rule to map macros 2016-05-31 21:18:54 +02:00
Nikolay Volf
2a08fb8fe3 and conditional dispatch 2016-05-31 21:17:46 +02:00
Nikolay Volf
495e7feb62 dispatching message return 2016-05-31 21:13:32 +02:00
Gav Wood
34edecd59d State diffing, exposed through JSONRPC. 2016-05-31 21:03:44 +02:00
Robert Habermeier
ec7af964ab correct map macro invocation 2016-05-31 21:01:47 +02:00
Nikolay Volf
10d914d6c6 restored chain_new_blocks 2016-05-31 20:58:33 +02:00
Nikolay Volf
f5ed31792f fixed sync with client only 2016-05-31 20:54:02 +02:00
Nikolay Volf
a845e08bc6 rename of the trait 2016-05-31 20:33:26 +02:00
Tomasz Drwięga
ed0d60bc16 Fixing clippy warnings 2016-05-31 20:21:46 +02:00
Tomasz Drwięga
4d29508b4c Minimal System UI 2016-05-31 20:12:47 +02:00
Nikolay Volf
8e252d5f1b refactored to merge client & client 2016-05-31 19:52:53 +02:00
Robert Habermeier
c81e4e24b3 add ability to have heavy tests 2016-05-31 19:51:24 +02:00
Robert Habermeier
4ccaabde40 add transaction count verifier tests 2016-05-31 19:30:40 +02:00
Nikolay Volf
4f732972bc refactoring to hold miner within the client 2016-05-31 19:01:37 +02:00
Robert Habermeier
da9d6bf8d5 rename [hash_]mapx to [hash_]map_into 2016-05-31 17:29:01 +02:00
Robert Habermeier
c62bfcddef finish purging x! from parity, remove x! and xx! macros 2016-05-31 17:25:25 +02:00
Robert Habermeier
3abaeadcf3 finish purging x! from ethcore 2016-05-31 17:18:21 +02:00
Nikolay Volf
3dd642abe9 Merge pull request #1185 from ethcore/ipc-fixes
Database service upgrade (from the ipc branch)
2016-05-31 17:00:07 +02:00
Robert Habermeier
ff7c755930 mostly purge x! from ethcore 2016-05-31 16:59:01 +02:00
Nikolay Volf
0cd8644292 split interfaces 2016-05-31 16:41:15 +02:00
Robert Habermeier
3788b3a149 expunge x! from util 2016-05-31 16:40:48 +02:00
Robert Habermeier
b729a381f8 rewrite map macros not to use an intermediate allocation 2016-05-31 16:29:53 +02:00
Robert Habermeier
5cb58c4269 use Miner in rpc tests, remove chain_harness 2016-05-31 15:25:14 +02:00
Robert Habermeier
266b4eedaa correct locked_account_secret docs 2016-05-31 15:25:14 +02:00
Robert Habermeier
1465b0d34c refactor Miner to not wrap accounts in an RwLock, and to take a generalized AccountProvider 2016-05-31 15:25:14 +02:00
Nikolay Volf
a944638b5e version lock 2016-05-31 13:17:45 +02:00
Nikolay Volf
1d5f407a29 database & write que import 2016-05-31 13:08:15 +02:00
Nikolay Volf
134f48cdfb lib import 2016-05-31 13:05:43 +02:00
Nikolay Volf
d0b32f8d42 trait import from branch 2016-05-31 13:02:53 +02:00
Gav Wood
2d604324b9 Merge branch 'vmtracing' into diffing 2016-05-31 13:00:47 +02:00
Gav Wood
f9a0cc47a0 Enable PoD sutff. 2016-05-31 12:59:00 +02:00
Gav Wood
12547ecd37 Remove invlaid comment. 2016-05-31 12:58:47 +02:00
Gav Wood
1fdb1de218 Don't implement the trait with unimplemented. 2016-05-31 12:58:10 +02:00
Gav Wood
649767b911 Merge remote-tracking branch 'origin/master' into vmtracing 2016-05-31 12:05:23 +02:00
Gav Wood
5766354c19 Tests for VM tracing. 2016-05-31 12:04:53 +02:00
Tomasz Drwięga
d49152c8b0 Merge branch 'master' into signer-wsnotification 2016-05-31 11:41:03 +02:00
Robert Habermeier
b036f1de98 stop eth_syncing from returning true forever (#1181) 2016-05-31 10:31:36 +02:00
Arkadiy Paronyan
6d25e7f8b4 Merge pull request #1164 from ethcore/sync
Sync fixes and tweaks
2016-05-30 22:29:29 +02:00
Gav Wood
8082fdb3ff Fix max-value calls and add "creates" field to getTransaction. 2016-05-30 22:27:28 +02:00
Tomasz Drwięga
70cecb49b0 Merge branch 'signer-signing' into signer-wsnotification
Conflicts:
	rpc/src/v1/impls/mod.rs
	signer/src/lib.rs
2016-05-30 22:06:27 +02:00
Tomasz Drwięga
fb5efa2ffc Merge branch 'master' into signer-signing
Conflicts:
	rpc/src/v1/impls/eth.rs
	rpc/src/v1/tests/mocked/eth.rs
	rpc/src/v1/traits/eth.rs
2016-05-30 21:46:37 +02:00
Marek Kotewicz
43348c1629 Merge pull request #1167 from ethcore/signer-rpc
Exposing RPC over Signer WebSockets
2016-05-30 21:31:20 +02:00
Tomasz Drwięga
baa2f7c5bb Shutting down broadcaster 2016-05-30 20:39:20 +02:00
Tomasz Drwięga
b4bc395c6e Adding logs to signing queue 2016-05-30 20:23:19 +02:00
Tomasz Drwięga
84882922b4 Sending a notification on every new messages 2016-05-30 19:30:16 +02:00
Tomasz Drwięga
ba296408d5 Supporting sending notification to WS connected SystemUIs 2016-05-30 18:50:11 +02:00
Nikolay Volf
13e5c19be7 Merge pull request #1171 from rphmeier/rpc-unimplemented
implement missing rpc methods and tests
2016-05-30 18:15:24 +02:00
Arkadiy Paronyan
68e62030d5 Merge pull request #1170 from ethcore/ipc-server-bump
json ipc server version bump
2016-05-30 18:11:52 +02:00
Gav Wood
79503e4f14 Added VM trace information for post-execution stuff. 2016-05-30 17:19:15 +02:00
Arkadiy Paronyan
e037f32408 Merge pull request #1173 from ethcore/deps
Updated dependencies for windows build
2016-05-30 16:21:27 +02:00
arkpar
76bb0729ba Updated dependencies for windows build 2016-05-30 15:38:23 +02:00
Robert Habermeier
16432129b5 move transaction import error warning into miner implementation 2016-05-30 13:14:32 +02:00
Robert Habermeier
ea26deaab1 mocked test for eth_syncing 2016-05-30 12:33:49 +02:00
Gav Wood
11f4e8cb73 Fix mock tests. 2016-05-30 11:53:20 +02:00
Robert Habermeier
bbe6a287f8 add mocked test for eth_coinbase 2016-05-29 17:18:37 +02:00
Robert Habermeier
89659606dd add mocked test for eth_sendRawTransaction 2016-05-29 17:07:39 +02:00
Robert Habermeier
be1ec93271 implement eth_sign 2016-05-29 15:46:57 +02:00
Robert Habermeier
7cea3eb5ed move rpc_unimplemented into impls module 2016-05-29 15:21:23 +02:00
Robert Habermeier
191bae5cd4 add stubs for missing eth_* rpc methods 2016-05-29 15:21:23 +02:00
Robert Habermeier
fb2ea765d5 remove default implementations using rpc_unimplemented!() 2016-05-29 15:21:23 +02:00
Gav Wood
af05939d74 Fix consensus test code. 2016-05-29 14:01:34 +02:00
Tomasz Drwięga
1176f6acec fixing test 2016-05-29 13:25:31 +02:00
Nikolay Volf
7dfd7e883f another bump 2016-05-29 13:22:45 +02:00
Nikolay Volf
a8cf0ddf50 json ipc server version bump 2016-05-29 13:09:51 +02:00
Gav Wood
22c4298bee Add tests for VM tracing. 2016-05-29 13:05:41 +02:00
Gav Wood
c20eaf98ec Fix ethcore module tests. 2016-05-29 11:37:35 +02:00
Gav Wood
a5808833b1 Merge remote-tracking branch 'origin/master' into vmtracing 2016-05-29 11:13:48 +02:00
Gav Wood
cd16828fef Integrated VM tracing into JSONRPC. 2016-05-29 00:58:52 +02:00
Arkadiy Paronyan
b9f7ed9185 Merge pull request #1141 from rphmeier/rpc-tests
Framework for improved RPC unit tests
2016-05-29 00:50:19 +02:00
arkpar
7f3ba85a3f Fixed block/hashes propagation 2016-05-29 00:38:10 +02:00
Gav Wood
86fdcabd0e Rearchitected VM tracing to reflect existing tracing.
Should more or less work now.
2016-05-28 23:57:16 +02:00
Robert Habermeier
ea08dd76a5 remove all possible unsafe code in crypto (#1168)
* use #[repr(C)] for all hash types

* use a zeroed buffer in crypto::ec::sign

* eliminate most usages of unsafe in crypto::ecdh::agree

* eliminate all possible unsafety in crypto module
2016-05-28 21:48:42 +02:00
Tomasz Drwięga
1ba39538a7 Removing types 2016-05-28 19:50:57 +02:00
Tomasz Drwięga
f339b6a491 Merge branch 'signer-rpc' into signer-signing 2016-05-28 19:40:34 +02:00
Tomasz Drwięga
d74fc2c285 Merge branch 'master' into signer-rpc
Conflicts:
	dapps/src/lib.rs
	parity/main.rs
	parity/signer.rs
	signer/Cargo.toml
	signer/src/lib.rs
2016-05-28 19:36:57 +02:00
Tomasz Drwięga
87d0f09a44 Base for Signer Websockets server (#1158)
* Basic signing queue

* Adding docs

* WebSockets server for signer

* Removing TODO

* Shortening the syntax

* Exposing types from RPC

* Fixing indentation

* Update main.rs
2016-05-28 19:30:31 +02:00
Tomasz Drwięga
d4e66ba52f Defining ApiSets dependent on context 2016-05-28 19:26:01 +02:00
Tomasz Drwięga
1607478405 Merge branch 'signer-rpc' into signer-signing
Conflicts:
	parity/signer.rs
2016-05-28 19:13:04 +02:00
Tomasz Drwięga
50e5c88b7b Fixing compilation 2016-05-28 19:10:17 +02:00
Tomasz Drwięga
30362bfebe Merge branch 'master' into signer-rpc 2016-05-28 19:09:45 +02:00
Tomasz Drwięga
a7dfa83da1 Exposing PersonalSigner API 2016-05-28 19:05:23 +02:00
Tomasz Drwięga
99f9747a3f TransactionConfirmation API 2016-05-28 18:50:00 +02:00
Gav Wood
d4a06b27ed Create VMTracer trait. 2016-05-28 17:50:20 +02:00
Tomasz Drwięga
8c3b56511a Test for EthSigningQueueClient 2016-05-28 17:22:43 +02:00
arkpar
1e8bf8c89d More tweaks 2016-05-28 17:17:10 +02:00
arkpar
0e905a06d9 Tweaked propagation order 2016-05-28 17:17:10 +02:00
arkpar
d1fc5a5611 Tweaked some constansts for slower machines 2016-05-28 17:17:10 +02:00
arkpar
f85e409ff7 Make sure downloaded blocks are unmarked on send error 2016-05-28 17:17:10 +02:00
Tomasz Drwięga
6d5ba59515 Stubs for Personal Signer methods 2016-05-28 17:07:40 +02:00
Gav Wood
c1ed520de0 RPC endpoint for VM tracing and ser/de types ready. 2016-05-28 16:52:33 +02:00
Tomasz Drwięga
f794018e95 Separating eth_signing 2016-05-28 14:32:31 +02:00
Tomasz Drwięga
ffa113511b Separating eth_filter 2016-05-28 14:21:43 +02:00
Tomasz Drwięga
07399d377f Single place where RPC apis are created. 2016-05-28 13:42:53 +02:00
Gav Wood
42e4c2d51c Groundwork for basic VM tracing. 2016-05-27 20:41:29 +02:00
Tomasz Drwięga
129ad0bbcb Splitting methods requiring signing into separate trait 2016-05-27 20:24:46 +02:00
Arkadiy Paronyan
468d761e5c Merge pull request #1163 from ethcore/warnings
Fixing few clippy warnings
2016-05-27 19:06:37 +02:00
Gav Wood
098f9b6ebb Merge branch 'master' of github.com:ethcore/parity 2016-05-27 19:02:19 +02:00
Robert Habermeier
5197ca87ee merge with master 2016-05-27 18:55:01 +02:00
Tomasz Drwięga
20846c11c9 Merge branch 'signer-server' into signer-rpc
Conflicts:
	parity/signer.rs
	signer/Cargo.toml
	signer/src/lib.rs
	signer/src/ws_server/mod.rs
2016-05-27 18:53:01 +02:00
Tomasz Drwięga
f60097ddb6 Merge branch 'master' into signer-server
Conflicts:
	rpc/src/v1/types/bytes.rs
2016-05-27 18:50:47 +02:00
Tomasz Drwięga
6f93ecf1d2 Exposing types from RPC 2016-05-27 18:50:04 +02:00
Marek Kotewicz
325a257f7d Merge pull request #1154 from rphmeier/personal_sign_and_send
Change eth_signAndSendTransaction to personal_SignAndSendTransaction
2016-05-27 18:45:20 +02:00
Robert Habermeier
c021ecd13b move "integration" tests out into main module 2016-05-27 18:40:48 +02:00
Robert Habermeier
9d4cd7b73e assert the transaction is being signed correctly 2016-05-27 18:21:27 +02:00
Robert Habermeier
e7791c220a rebase fixes and address style concern 2016-05-27 18:21:26 +02:00
Robert Habermeier
7ee23240f0 fix travis test build 2016-05-27 18:19:18 +02:00
Robert Habermeier
4c55e4968e add eth_blockNumber, eth_TransactionCount integration tests.
also adds an EthTester struct for more test flexibility.
2016-05-27 18:18:44 +02:00
Robert Habermeier
1de7ea090c add informative comment on transaction::Action 2016-05-27 18:18:44 +02:00
Robert Habermeier
f67486e31f have miner service update the pending nonces on transaction import 2016-05-27 18:18:42 +02:00
Robert Habermeier
688790f13f re-export AccountProvider trait 2016-05-27 18:14:43 +02:00
Robert Habermeier
cf18c4bb0a make MinerService object-safe 2016-05-27 18:14:43 +02:00
Robert Habermeier
d370a86b43 More flexible chain extraction, get_balance test 2016-05-27 18:13:53 +02:00
Robert Habermeier
152bb6f21b create integration test harness for eth RPC API 2016-05-27 18:13:49 +02:00
Robert Habermeier
56b020987e refine tests for call deserialization 2016-05-27 18:09:32 +02:00
Tomasz Drwięga
58039fb420 Fixing few clippy warnings 2016-05-27 17:56:25 +02:00
Tomasz Drwięga
c4e2f65051 Exposing RPC over websockets 2016-05-27 17:55:12 +02:00
Robert Habermeier
b28a8411a4 refactor dispatch_transaction and sign_and_dispatch into impls module
this has the added benefit of allowing the removal of redundant upgrades.
2016-05-27 16:50:25 +02:00
Robert Habermeier
ba600ac06a have parity create the PersonalClient properly 2016-05-27 16:45:26 +02:00
Robert Habermeier
194ca19720 move tests to personal 2016-05-27 16:45:26 +02:00
Robert Habermeier
c9efb56e19 move sign_and_send_transaction implementation to personal 2016-05-27 16:45:26 +02:00
Robert Habermeier
db2efe8485 move signAndSendTransaction to Personal trait. 2016-05-27 16:45:26 +02:00
Arkadiy Paronyan
72031d6f95 Merge pull request #1149 from rphmeier/rpc-earliest-specific
Support "earliest" and specific block parameters in RPC where possible
2016-05-27 16:39:08 +02:00
Robert Habermeier
a272f8570c correct indentation 2016-05-27 16:35:42 +02:00
Robert Habermeier
3f89362630 rename x_latest to latest_x in BlockChainClient 2016-05-27 16:35:42 +02:00
Robert Habermeier
30eee76767 use new nonce function in eth_TransactionCount 2016-05-27 16:35:42 +02:00
Robert Habermeier
c2a4ed6fc4 change nonce, balance, storage_at to *_latest counterparts 2016-05-27 16:35:41 +02:00
Robert Habermeier
a3b1cdb175 add docs for nonce_latest 2016-05-27 16:35:41 +02:00
Robert Habermeier
5afa4621f9 added balance_latest, storage_at_latest utilities
with modus ponens panickers
2016-05-27 16:35:41 +02:00
Robert Habermeier
3c7e4b8c6c added nonce, nonce_latest 2016-05-27 16:35:41 +02:00
Robert Habermeier
86eab79d9d consolidate [balance/storage]_at and _at_id functionality 2016-05-27 16:35:41 +02:00
Robert Habermeier
3405f3eab1 implement storage_at_id 2016-05-27 16:35:41 +02:00
Robert Habermeier
2b7fae8fa6 add state_at_id and balance_at_id, integrate with RPC 2016-05-27 16:35:41 +02:00
Tomasz Drwięga
cf19e38663 Exposing types from RPC 2016-05-27 15:46:07 +02:00
Tomasz Drwięga
d0ae713b29 Shortening the syntax 2016-05-27 13:05:54 +02:00
Tomasz Drwięga
e2db4972be Removing TODO 2016-05-27 13:04:54 +02:00
Tomasz Drwięga
b77fdcdd68 WebSockets server for signer 2016-05-27 13:03:00 +02:00
Tomasz Drwięga
945ebcbf9b Merge branch 'master' into signer-server 2016-05-27 10:53:30 +02:00
Gav Wood
aa9e4af783 Merge branch 'master' of github.com:ethcore/parity 2016-05-27 08:29:28 +02:00
Marek Kotewicz
ca008fb541 migration fixes (#1155)
* dont use system temp for migration, do backup

* fixed issue with number of open files on osx

* fixed compilation of util tests
2016-05-27 08:23:29 +02:00
Robert Habermeier
637f4eeb12 Merge pull request #1150 from ethcore/signer-crate
Empty trusted signer crate with it's general purpose described.
2016-05-26 22:36:09 +02:00
Arkadiy Paronyan
8872558e0d Merge pull request #1153 from ethcore/mordenbootnodes
More bootnodes for morden.
2016-05-26 21:49:09 +02:00
Arkadiy Paronyan
1a1467169d Merge pull request #1151 from rphmeier/move-rpc-tests
move existing rpc tests into mocked module
2016-05-26 21:48:50 +02:00
Robert Habermeier
e0e722784c move existing rpc tests into mocked module 2016-05-26 20:37:08 +02:00
Gav Wood
946ee8f8c4 Merge branch 'master' of github.com:ethcore/parity 2016-05-26 19:37:58 +02:00
Tomasz Drwięga
a7bf13f23f Merge branch 'signer-crate' into signer-server 2016-05-26 19:30:52 +02:00
Tomasz Drwięga
977ad428ae Merge branch 'master' into signer-crate
Conflicts:
	.travis.yml
	Cargo.toml
	cov.sh
	doc.sh
	fmt.sh
	hook.sh
	test.sh
2016-05-26 18:58:25 +02:00
Tomasz Drwięga
a61bf90c17 Adding docs 2016-05-26 18:34:23 +02:00
Marek Kotewicz
7370776af1 Bloomchain (#1014)
* use bloomchain crate in blockchain module. remove obsole chainfilter submodule

* update database version to 6.0

* removed redundant line

* simple db migration

* make migration slightly more functional

* bloomchain migration

* migration version is just a single unsigned integer

* updated migration v6

* parity migration

* db migration

* removed hardcoded migration dir

* replace ptr::copy with clone_from_slice, removed potential endianess problem from trace/db.rs

* removed superfluous line

* blockchains log blooms config is not exposed any more
2016-05-26 18:24:51 +02:00
Tomasz Drwięga
cc1a334ba7 Renaming dapps repos. Updating dapps (#1142)
* Renaming dapps repos. Updating dapps

* Skipping legacy options for compatibility. Fixing tabs

* Fixing CLI options
2016-05-26 18:21:15 +02:00
Gav Wood
33f187eeee Merge branch 'master' of github.com:ethcore/parity 2016-05-26 18:18:07 +02:00
Tomasz Drwięga
28391d2f52 Basic signing queue 2016-05-26 17:46:44 +02:00
Tomasz Drwięga
09d9697985 Fixing docs 2016-05-26 16:49:14 +02:00
Tomasz Drwięga
28545d706f Empty trusted signer crate with it's general purpose 2016-05-26 16:43:04 +02:00
Marek Kotewicz
3a5e7fc2ed Merge pull request #1147 from ethcore/fixed_pending_transactions
fixed pending transactions
2016-05-26 15:53:36 +02:00
Marek Kotewicz
94ec245187 Merge pull request #1148 from ethcore/fixing-warnings
Fixing clippy warnings
2016-05-26 13:44:19 +02:00
debris
6fd9780e60 do not clone pending transaction hashes 2016-05-26 12:44:17 +02:00
Gav Wood
049537e470 Merge branch 'master' of github.com:ethcore/parity 2016-05-26 12:34:45 +02:00
Tomasz Drwięga
5b0c936fee Fixing clippy warnings 2016-05-26 11:49:58 +02:00
debris
f811fdc2cd fixed pending transactions 2016-05-26 11:42:27 +02:00
Arkadiy Paronyan
32298cad6b Merge pull request #1143 from rphmeier/raw-mut-sig
correct signature of SecTrieDB::raw_mut
2016-05-25 23:10:27 +02:00
Robert Habermeier
e24ab5a4f1 correct signature of SecTrieDB::raw_mut
&mut T is invariant over its type parameter, so we need to specify the trait's lifetime explicitly rather than coerce it to the elided lifetime
2016-05-25 17:10:01 +02:00
Tomasz Drwięga
fa6b35ec8d Bumping clippy. Fixing warnings (#1139)
* Bumping clippy. Fixing warnings

* Removing unused import

* Fixing complexity and arguments warning on two functions
2016-05-25 17:03:58 +02:00
Gav Wood
75d0606bc0 More bootnodes for morden. 2016-05-25 11:37:19 +02:00
Gav Wood
a0bc1f9dae Display progress when importing (#1136)
* Display progress when importing

* Additional polish.

* Fix strange yielding behaviour.

* Allow colour to be disabled.

Fixed #1135
2016-05-25 09:57:31 +02:00
Marek Kotewicz
1741597a20 foundation of simple db migration (#1128)
* simple db migration

* make migration slightly more functional

* migration version is just a single unsigned integer
2016-05-24 22:38:11 +02:00
Marek Kotewicz
ebd0cdbc7a Fixpending (#1074)
* Fix --geth IPC for MacOS.

* fix pending_* methods in MinerService, add pending_receipts

* pending logs

* include pending logs when polling

* fixed returning pending logs multiple timees

* log type

* transactionHash is supplied to pending logs

* miner returns receipts together with hashes

* bring back miners all_transactions used by sync module
2016-05-24 21:56:32 +02:00
Arkadiy Paronyan
fba5082b00 Propagate uncles (#1134) 2016-05-24 21:56:17 +02:00
Gav Wood
27380cdadb Coloured, padding logging. (#1133)
* Add info message for mined block.

* Coloured, padding logging.

* Remove superfluous logs.

* Use better term colour module.
2016-05-24 20:30:21 +02:00
Gav Wood
2969d015ed Importing (#1132)
* Basic hex block exporting.

* Export formats and to file.

* First bits.

* Block importing.

* Fix error text.

* Wait for queue to empty before shutting down after import.
2016-05-24 20:29:19 +02:00
Marek Kotewicz
bf46531372 Merge pull request #1116 from rphmeier/die_display
Have `die_with_error` use `fmt::Display` rather than Debug
2016-05-24 20:00:50 +02:00
Gav Wood
90a272c519 Merge branch 'master' of github.com:ethcore/parity 2016-05-24 16:46:08 +02:00
Arkadiy Paronyan
f484beb7e1 Merge pull request #1129 from ethcore/exporting
Exporting
2016-05-24 15:06:19 +02:00
Gav Wood
78d3dfbfa6 Fix error text. 2016-05-24 13:31:03 +02:00
Nikolay Volf
503a5aea19 Merge pull request #1124 from ethcore/sign-and-send
Sign and send transaction
2016-05-24 12:03:57 +02:00
Nikolay Volf
31b6b59f20 Merge pull request #1125 from ethcore/warnings
Fixing unused imports warnings
2016-05-24 12:02:40 +02:00
Tomasz Drwięga
1def165c0b Adding info messages on mined blocks (#1127) 2016-05-23 18:47:11 +02:00
Gav Wood
11f1aeb36e Add info message for mined block. 2016-05-23 18:46:08 +02:00
Gav Wood
6c64aec137 Export formats and to file. 2016-05-23 18:42:59 +02:00
Tomasz Drwięga
b1cfbc460e Using signAndSend in topbar 2016-05-23 12:56:18 +02:00
Tomasz Drwięga
fb0be9e730 Updating status page (new docs) 2016-05-23 11:55:10 +02:00
Tomasz Drwięga
256557d3cc Removing warnings 2016-05-23 11:46:01 +02:00
Tomasz Drwięga
5579582a52 Sign and send transaction 2016-05-23 11:30:11 +02:00
Gav Wood
564a996620 Basic hex block exporting. 2016-05-23 09:51:36 +02:00
Robert Habermeier
49899d0dee trace error in die_with_io_error 2016-05-22 12:48:40 -04:00
Robert Habermeier
6fb54f4c9d remove extraneous braces in ExecutionError Display impl 2016-05-22 12:47:42 -04:00
Robert Habermeier
1251315b28 use fmt::Display in die_with_io_error printing 2016-05-22 12:43:21 -04:00
Robert Habermeier
5d997ef099 address match style concerns 2016-05-22 12:41:45 -04:00
Arkadiy Paronyan
f738f5e032 Merge pull request #1123 from ethcore/fixstyling
Fix styling - don't mix spaces with tabs!!!
2016-05-22 13:41:41 +02:00
Gav Wood
0c4cd00c1f Fix styling - don't mix spaces with tabs!!! 2016-05-22 12:42:22 +02:00
Gav Wood
c8d2237f0a Fix is_syncing so it's false as long as the update is trivial. (#1122) 2016-05-22 11:47:17 +02:00
Gav Wood
b53d0050dd Relock unlocked accounts after first use (#1120)
* Add `SecretStore::unlock_account_temp` function.

* Test for relocking accounts.
2016-05-21 22:23:16 +02:00
Gav Wood
9f84326ca7 Avoid importing keys into wrong place. (#1119)
* Avoid importing keys into wrong place.

- Now a `--no-import-keys` option;
- `--testnet` now alters the import location for keys and the store path.

Fixes #1112 and #1089.

* Avoid double-bools.
2016-05-21 18:46:18 +02:00
Gav Wood
9706f78a09 Merge branch 'master' of github.com:ethcore/parity 2016-05-21 17:26:03 +02:00
Marek Kotewicz
e952d62950 Merge pull request #1118 from ethcore/implementreceiptgasused
Implement receipt's gasUsed field
2016-05-21 16:30:40 +02:00
Gav Wood
33e7f5e390 Merge branch 'master' of github.com:ethcore/parity 2016-05-21 15:30:44 +02:00
Tomasz Drwięga
f8553ef90a New dapps & query parameter handling (#1113)
* DAO dapp

* Adding Maker OTC dapp

* Updating makerotc to contain topbar

* Updating daodapp

* Bumping versions after authors has been updated

* Adding webapps to tests

* Enabling all accounts in wallet
2016-05-21 15:27:55 +02:00
Gav Wood
828bf7cb9e Make receipt's gasUsed property work properly.
Fixes #1111
2016-05-21 14:49:21 +02:00
Gav Wood
399dfc4c2e Merge remote-tracking branch 'origin/master' 2016-05-21 14:49:09 +02:00
Robert Habermeier
3cba91bdd5 alter die_with_error to use fmt::Display, not Debug 2016-05-20 18:13:30 -04:00
Robert Habermeier
a7d7cb9ecb add Display impl for ethcore::Error, UtilError 2016-05-20 18:13:16 -04:00
Robert Habermeier
b0452cf309 add DIsplay impl for ExecutionError, CryptoError, and NetworkError 2016-05-20 18:12:51 -04:00
Robert Habermeier
5e1229366d add Display impl for Mismatch 2016-05-20 15:27:20 -04:00
Robert Habermeier
cf9b6e9e07 Add Display impl for OutOfBounds 2016-05-20 15:19:26 -04:00
Marek Kotewicz
852155959d Merge pull request #1098 from ethcore/trace_err
pretty print trace error
2016-05-19 18:00:39 +02:00
Marek Kotewicz
f383af093c Merge pull request #1095 from ethcore/sync-hashes
New syncing strategy
2016-05-19 17:59:53 +02:00
arkpar
ca6c91f591 New sync algorithm 2016-05-19 16:16:11 +02:00
debris
5ec096d57e Fixed ethcore-rpc compilation errors. 2016-05-19 15:48:40 +02:00
Nikolay Volf
dfac17538f ethcore-db crate (#1097)
* trait

* implentated, lifetime issue still

* full api

* test mod

* working open

* get/retrieve

* fix warnings and bug

* working serialization of &[u8] parameters

* client attributes

* fix empty payload ser/de

* [ci skip] debug assert out

* extra deserialization test

* extra serialization test

* extra serialization test

* serialization fixes, nupdate rocksdb

* open test working

* result bug & remove some scaffolds

* fix warnings

* more simple tests

* consistent quotes

* get rid of dedicated is_open flag

* hashmap -> btreemap
2016-05-19 14:36:15 +02:00
debris
95365670e4 Merge branch 'master' of github.com:ethcore/parity into trace_err 2016-05-19 14:15:05 +02:00
Nikolay Volf
1946346711 Merge pull request #1107 from ethcore/defaultarchive
Fix the default for pruning.
2016-05-19 14:06:39 +03:00
Nikolay Volf
f084399d4b Merge pull request #1105 from ethcore/consistent_db
Make Id/ID and db/Db/DB usage consistent
2016-05-19 12:49:31 +03:00
Gav Wood
bfdbff5ac7 basic pruning method still experimental. 2016-05-19 11:40:43 +02:00
debris
506ca15a15 Merge branch 'master' of github.com:ethcore/parity into trace_err 2016-05-19 11:07:53 +02:00
debris
634679966e Make Id/ID and db/Db/DB usage consistent 2016-05-19 11:00:32 +02:00
Gav Wood
306315e3e5 Default to archive mode. 2016-05-19 10:03:45 +02:00
Gav Wood
0ac41975a4 Merge branch 'master' of github.com:ethcore/parity 2016-05-19 10:03:31 +02:00
Marek Kotewicz
7d873b2c81 Merge pull request #1091 from ethcore/miner-spec-refact
Miner holds it's own copy of spec/engine
2016-05-19 09:40:30 +02:00
Marek Kotewicz
bb56c5827b Merge pull request #1101 from ethcore/apps-api
Apps listing API & Home webapp.
2016-05-19 09:38:43 +02:00
Nikolay Volf
6c6bbe9c57 Merge branch 'master' into miner-spec-refact
Conflicts:
	ethcore/src/client/client.rs
	ethcore/src/client/mod.rs
	ethcore/src/client/test_client.rs
	miner/src/miner.rs
2016-05-19 03:51:05 +03:00
debris
7f0d1173ba fixed weird line breaking 2016-05-19 01:05:24 +02:00
debris
55ebab2392 Merge branch 'master' of github.com:ethcore/parity into trace_err 2016-05-19 01:03:55 +02:00
Marek Kotewicz
6cff58055d CLI option for using JITEVM (#1103)
* easily configurable vm (in progress)

* completely removed vm_factory from engine

* --jitvm command line flag
2016-05-19 00:44:49 +02:00
Gav Wood
46f3b5f913 Fix up the seal fields in RPC output. (#1096)
Make Ethash::extra_info() work.
Seal fields now decode the RLP.
2016-05-19 00:41:41 +02:00
debris
8f6febae18 fixed docs compilation error 2016-05-18 16:44:11 +02:00
debris
407f046b9c fixed compilation errors 2016-05-18 13:49:23 +02:00
Marek Kotewicz
01db310cea Merge pull request #1102 from ethcore/fixing-warnings
Fixing some warnings
2016-05-18 13:43:49 +02:00
Tomasz Drwięga
ef38d9c769 Updating idmanager 2016-05-18 12:19:40 +02:00
Tomasz Drwięga
44c29ece17 Merge branch 'master' into fixing-warnings 2016-05-18 11:59:55 +02:00
Tomasz Drwięga
b9febdda34 Home page 2016-05-18 11:54:15 +02:00
debris
57b0be2a0b pretty print trace error 2016-05-18 11:44:55 +02:00
debris
14b6b389f2 propagate trace error to the top 2016-05-18 11:34:15 +02:00
Tomasz Drwięga
361d36f7d6 Webapps details 2016-05-17 16:55:08 +02:00
Gav Wood
53308b4deb Merge remote-tracking branch 'origin/master' 2016-05-17 16:29:51 +02:00
Marek Kotewicz
dcc695dda5 Merge pull request #1094 from ethcore/seal_fields_fix
fixed incorrect decoding of header seal_fields. added tests. #1090
2016-05-17 11:47:07 +02:00
Marek Kotewicz
f9604892ce Merge pull request #1093 from ethcore/bump-clippy
Bumping Clippy
2016-05-17 11:14:11 +02:00
debris
28fc0aacc0 header seal fields should be post-RLP-encoded, not pre 2016-05-17 11:07:51 +02:00
debris
fa7944ce3d fixed incorrect decoding of header seal_fields. added tests. #1090 2016-05-17 10:50:11 +02:00
Tomasz Drwięga
a950b81ee8 Fixing clippy warnings 2016-05-17 10:32:05 +02:00
Tomasz Drwięga
f7929ffdd4 Disabling some lints to clear the output 2016-05-17 09:38:21 +02:00
Tomasz Drwięga
9b9ea93ff7 Bumping clippy & crossbeam 2016-05-17 09:33:01 +02:00
Nikolay Volf
00ae3cf218 Merge pull request #1092 from ethcore/idmanager
Injectable topbar support.
2016-05-17 00:14:35 +03:00
Nikolay Volf
d249918fe7 Merge pull request #1088 from ethcore/sync-hashes-collection
New syncing part 1: Block collection
2016-05-16 23:19:16 +03:00
Nikolay Volf
d424194bbf test spec explicitly 2016-05-16 22:32:18 +03:00
Tomasz Drwięga
2ef6f756d0 Merge branch 'master' into idmanager
Conflicts:
	webapp/src/apps.rs
	webapp/src/page/mod.rs
	webapp/src/proxypac.rs
	webapp/src/router/mod.rs
2016-05-16 20:22:19 +02:00
Tomasz Drwięga
6363b0f69f Bumping status&idmanager 2016-05-16 20:10:43 +02:00
arkpar
9d2823da89 style 2016-05-16 19:46:09 +02:00
Nikolay Volf
f3f45a1dd9 ethsync tests fixed 2016-05-16 20:25:05 +03:00
Nikolay Volf
caec38d533 Merge branch 'master' into miner-spec-refact
Conflicts:
	ethcore/build.rs
2016-05-16 19:46:56 +03:00
Nikolay Volf
8cc321fe24 fix warnings 2016-05-16 19:45:16 +03:00
Nikolay Volf
7c28b1cef9 removed engine retrieval from client public api 2016-05-16 19:43:48 +03:00
Nikolay Volf
4e41cbca81 Moving all Client public API types to separate mod & binary serialization codegen for that mod (#1051)
* transaction moved

* trash remove

* ids move

* receipt

* tree-route

* blockchain info

* log_entry move

* trace filter moved

* executed & trace moved

* localized trace moved

* block status moved

* build scripts and codegen refs

* Cargo.lock update

* binary for blockstatus, blockchaininfo

* binary for trace

* trace filters binary ser

* binary for log entries & executed

* binary for receipt

* special case for u8 & transaction binary attribute

* resolved remaining issues & error binary serialization

* json-tests util import

* fix warnings

* ids attr

* add missing attributes

* Update build.rs
2016-05-16 18:33:32 +02:00
Nikolay Volf
994d056922 miner will use separate spec 2016-05-16 19:16:56 +03:00
Nikolay Volf
71278def5e Merge branch 'master' into types-binary 2016-05-16 17:48:18 +03:00
Tomasz Drwięga
9301963d98 Subdomains support in content server (webapps server). (#1082)
* Proxy.pac serving

* Subdomains router for dapps

* Proper handling of prefixed and non-prefixed apps

* Changing dapps domain to parity
2016-05-16 16:08:52 +02:00
Arkadiy Paronyan
ab06c9209b Merge pull request #1087 from ethcore/fixuncle
Fix uncle getter
2016-05-16 14:55:11 +02:00
arkpar
b5e10a53af Sync block collection 2016-05-16 14:42:04 +02:00
Gav Wood
56c705968b Fix typo. 2016-05-16 13:33:29 +02:00
Tomasz Drwięga
2d18bc936f Merge branch 'content-server' into idmanager
Conflicts:
	webapp/src/lib.rs
2016-05-16 13:15:18 +02:00
Tomasz Drwięga
237bd37030 Changing dapps domain to parity 2016-05-16 13:01:56 +02:00
Tomasz Drwięga
d94030294a Bumping idmanager version 2016-05-16 13:00:55 +02:00
Gav Wood
f4d5c7b48e Fix uncle getter
Uncle blocks don't necessarily have BlockDetails, so can't get total
difficulty directly.
Closes #1057
2016-05-16 12:46:09 +02:00
Nikolay Volf
96e92f1c38 add missing attributes 2016-05-15 02:34:27 +03:00
Nikolay Volf
d67d1eb355 ids attr 2016-05-15 02:32:53 +03:00
Nikolay Volf
9e7968c92e fix warnings 2016-05-15 02:13:45 +03:00
Nikolay Volf
326e1b3a42 json-tests util import 2016-05-15 01:56:18 +03:00
Nikolay Volf
483687b6bf resolved remaining issues & error binary serialization 2016-05-15 00:51:02 +03:00
Nikolay Volf
2d992d0c29 Merge branch 'master' into types-binary
Conflicts:
	ethcore/src/error.rs
2016-05-14 23:12:18 +03:00
Nikolay Volf
52e22b8a51 Merge pull request #1085 from ethcore/fix1073
Provide fallback for usd-per-eth option when offline.
2016-05-14 22:02:35 +03:00
Nikolay Volf
05f00a946d Merge pull request #1083 from ethcore/path-man
path centralized
2016-05-14 22:01:37 +03:00
Nikolay Volf
3ea26fcb0a merged out function return 2016-05-14 20:43:29 +03:00
Nikolay Volf
93aa6c613a Merge branch 'master' into path-man
Conflicts:
	parity/configuration.rs
2016-05-14 20:22:59 +03:00
Gav Wood
33248528b9 Provide fallback for usd-per-eth option when offline.
Fixes #1073.
2016-05-14 14:53:46 +01:00
Nikolay Volf
354ac7d6e5 Limiting result of the execution to execution-specific errors (#1071)
* execution error/result limiting

* missing trailing comma

* fix executive tests

* adding original error as string to the generic transaction error

* 'mallformed'-s all around
2016-05-14 13:28:44 +01:00
Nikolay Volf
2b78e511c9 Configurable keys security (#1080)
* adding options & cli flags

* adding it to the key deriving

* removed duplicated option
2016-05-14 12:30:25 +01:00
Marek Kotewicz
9b91444638 comma delimeting multiple cors headers (#1078) 2016-05-14 12:29:26 +01:00
Tomasz Drwięga
72b1b41748 Supporting topbar injection 2016-05-13 18:40:20 +02:00
Nikolay Volf
96496d6349 by ref 2016-05-13 18:36:18 +03:00
Nikolay Volf
7c19930efa creating all in one place 2016-05-13 18:32:32 +03:00
Nikolay Volf
9150538ac4 refactoring in configuration 2016-05-13 13:53:33 +03:00
Nikolay Volf
d5d5b0918c mod for paths & ethereum default paths 2016-05-13 13:12:32 +03:00
Tomasz Drwięga
0a85df10e8 Proper handling of prefixed and non-prefixed apps 2016-05-13 10:21:41 +02:00
Arkadiy Paronyan
effa2cf96d Merge pull request #1081 from poppingtonic/fix-drop-impl-error-message
Update error message
2016-05-12 20:43:32 +02:00
Brian Muhia
4a8fe6c99d Update error message 2016-05-12 18:39:12 +03:00
Tomasz Drwięga
3fc7faf24c Subdomains router for dapps 2016-05-12 15:53:04 +02:00
Tomasz Drwięga
f62d058186 Proxy.pac serving 2016-05-12 14:45:09 +02:00
Marek Kotewicz
06aefb54bc Merge pull request #1076 from ethcore/wallet-bump
Updating dapp-wallet
2016-05-12 07:46:35 +03:00
Tomasz Drwięga
a22f0a0d03 Updating dapp-wallet 2016-05-11 18:10:42 +02:00
Nikolay Volf
889642c3d4 special case for u8 & transaction binary attribute 2016-05-11 13:23:11 +03:00
Arkadiy Paronyan
89b1b25fde Merge pull request #1070 from ethcore/net-local-connect-fix
Fixed connecting to local nodes on startup
2016-05-11 11:28:50 +02:00
Nikolay Volf
6c74bfb153 Merge branch 'master' into types-binary 2016-05-11 11:55:43 +03:00
arkpar
9836c79962 Fixed connecting to local nodes on startup 2016-05-11 00:08:35 +02:00
Arkadiy Paronyan
ab288268bc Validate signature in Tx queue (#1068)
* moving deps to ethcore/hyper and bumping jsonrpc-http-server version

* Validate signature in tx queue
2016-05-10 11:43:26 +01:00
Arkadiy Paronyan
80e48f3672 Merge pull request #1067 from ethcore/hyper-update-3
moving deps to ethcore/hyper and bumping jsonrpc-http-server version
2016-05-10 11:34:06 +02:00
Nikolay Volf
16395a820f moving deps to ethcore/hyper and bumping jsonrpc-http-server version 2016-05-10 11:38:21 +03:00
Nikolay Volf
6d8749fbdd Merge branch 'master' into types-binary 2016-05-10 11:01:14 +03:00
Nikolay Volf
152afbcbf7 Merge pull request #1064 from ethcore/status-bump
Updating status page. Bringing back wallet
2016-05-10 10:59:36 +03:00
Tomasz Drwięga
7f26b5cbba Updating status page. Bringing back wallet 2016-05-09 14:40:46 +02:00
Gav Wood
2a19f91e99 Fix --geth IPC for MacOS. (#1062) 2016-05-09 12:04:00 +01:00
Tomasz Drwięga
49cc40708d Fixing formatter for defaultExtraData (#1060) 2016-05-08 21:34:15 +01:00
Nikolay Volf
a4dcbceb10 Merge pull request #1059 from ethcore/gethcompat
--geth IPC compatibility
2016-05-08 16:13:14 +03:00
Gav Wood
c75348392c Merge branch 'master' of github.com:ethcore/parity 2016-05-08 13:34:14 +01:00
Gav Wood
04f7322f06 --geth compatibility option 2016-05-08 13:34:01 +01:00
Arkadiy Paronyan
f5e44e373e Merge pull request #1050 from ethcore/syntex-lib-update
Moving dependencies to ethcore & uniforming syntax libs through all crates
2016-05-07 22:12:11 +02:00
Nikolay Volf
da6a8b98e2 Merge branch 'master' into syntex-lib-update
Conflicts:
	Cargo.lock
2016-05-07 18:23:01 +04:00
Marek Kotewicz
5bf047825f Merge pull request #1054 from ethcore/hyper-update-2
update hyper branch mio
2016-05-07 13:41:50 +01:00
Nikolay Volf
2e76def295 update hyper branch mio 2016-05-07 11:22:20 +04:00
Nikolay Volf
79d6c84a43 binary for receipt 2016-05-06 17:41:17 +04:00
Nikolay Volf
e7c4e5273a binary for log entries & executed 2016-05-06 17:38:00 +04:00
Nikolay Volf
f9c08df235 trace filters binary ser 2016-05-06 17:30:36 +04:00
Nikolay Volf
c622fc62d5 binary for trace 2016-05-06 17:19:53 +04:00
Nikolay Volf
29531ae72f binary for blockstatus, blockchaininfo 2016-05-06 17:16:03 +04:00
Nikolay Volf
96a4eb5b9e Cargo.lock update 2016-05-06 17:01:33 +04:00
Nikolay Volf
8721f868a6 Merge branch 'syntex-lib-update' into types-binary 2016-05-06 16:59:47 +04:00
Nikolay Volf
0d642f3109 removing unused externs 2016-05-06 16:43:29 +04:00
Nikolay Volf
d9acbbb027 finalizing deps rearrange 2016-05-06 16:40:24 +04:00
Nikolay Volf
c16a46dca7 all to ethcore 2016-05-06 14:58:37 +04:00
Nikolay Volf
2cb085db91 fixing issues with syntax 2016-05-06 02:25:58 +04:00
Nikolay Volf
aa6db4e69d placing right versions 2016-05-06 01:54:15 +04:00
Nikolay Volf
00ce4aaa26 build scripts and codegen refs 2016-05-06 01:10:50 +04:00
Nikolay Volf
14bcca54d2 block status moved 2016-05-06 00:47:47 +04:00
Nikolay Volf
e95f610195 localized trace moved 2016-05-06 00:38:13 +04:00
Nikolay Volf
25c88b7529 executed & trace moved 2016-05-06 00:33:43 +04:00
Nikolay Volf
2a721b4eda trace filter moved 2016-05-06 00:17:03 +04:00
Nikolay Volf
a8affa6dee log_entry move 2016-05-05 23:57:10 +04:00
Nikolay Volf
beb33672bd blockchain info 2016-05-05 23:47:07 +04:00
Nikolay Volf
b6d1801e12 tree-route 2016-05-05 23:04:59 +04:00
Nikolay Volf
7e9779e334 receipt 2016-05-05 22:56:44 +04:00
Nikolay Volf
271d3f3e57 ids move 2016-05-05 22:37:30 +04:00
Nikolay Volf
7d27aceee4 trash remove 2016-05-05 22:21:40 +04:00
Nikolay Volf
23f1a8fd48 transaction moved 2016-05-05 22:20:34 +04:00
Gav Wood
e74c333819 Merge branch 'master' of github.com:ethcore/parity 2016-05-05 10:56:17 +02:00
Nikolay Volf
a51bc6cd36 bump ipc lib version (#1047) 2016-05-05 10:55:32 +02:00
Tomasz Drwięga
75981ec0ab Updating hyper-mio commit (#1048) 2016-05-05 10:55:06 +02:00
Gav Wood
0bb5167fda Merge branch 'master' of github.com:ethcore/parity 2016-05-04 23:04:08 +02:00
Nikolay Volf
b99825bcac bump lib version (#1046) 2016-05-04 22:45:17 +02:00
Gav Wood
0d507922ce Tidy up CLI options and make JSONRPC & webapps on by default. (#1045)
* Tidy up CLI options and make JSONRPC & webapps on by default.

* Fix test.
2016-05-04 22:44:42 +02:00
Gav Wood
5a1564a63b Fix test. 2016-05-04 22:09:30 +02:00
Gav Wood
4dd63c81a6 Tidy up CLI options and make JSONRPC & webapps on by default. 2016-05-04 19:26:47 +02:00
Nikolay Volf
ad00bd7bc8 Merge pull request #1044 from ethcore/clippy-warnings
Fixing clippy warnings
2016-05-04 18:10:03 +03:00
Arkadiy Paronyan
0b1442faa2 Merge pull request #1041 from ethcore/rpc_modules
Fixing RPC modules compatibility
2016-05-04 15:48:07 +02:00
Arkadiy Paronyan
4480cf512a Merge pull request #1043 from ethcore/hyper-mio
Fixing hyper-mio revision
2016-05-04 15:46:45 +02:00
Tomasz Drwięga
b32e2f9549 Updating locations of webapp stuff (#1040) 2016-05-04 15:37:29 +02:00
Nikolay Volf
c449bf5663 JSON-RPC over IPC (#1039)
* moving namespaces for http/rpc

* cli options for ipc

* jsonrpc exposed fully

* updating json-ipc-server & removing non-standart traces api from defaults

* spelling & format
2016-05-04 15:37:09 +02:00
Tomasz Drwięga
15a8860e8a Fixing clippy warnings 2016-05-04 15:22:22 +02:00
Tomasz Drwięga
0a49efd018 Fixing hyper-mio revision 2016-05-04 15:10:04 +02:00
Tomasz Drwięga
c3f33aefdd Fixing RPC modules compatibility 2016-05-04 14:03:29 +02:00
petevine
58fd0175bf Update Cargo.toml (#1036) 2016-05-03 19:24:19 +02:00
Gav Wood
ac73b2628a Basic Authority (#991)
* Firt commit.

* First non-functional but correct implementation of BasicAuthority.

Still needs:
- Sealing infrastructure.

* Punch a hole to give miner access to key store.

* Fix test built.

* Basic version of synchronous mining.

This will seal a block whenever a new transaction comes through.
To be made better we need a timer which will wait for one second after the
last block before sealing a new one - better still would be to cooperatively
interleave blocks with other sealing nodes.

* Add tests.

* Fix minor issues from repotting.

* Address grumbles.
2016-05-03 17:23:53 +02:00
Tomasz Drwięga
1583f7d434 Prioritizing of local transaction (#1023)
* Changing is_local flag to TransactionOrigin enum

* Prioritize local transactions
2016-05-03 16:14:33 +02:00
Arkadiy Paronyan
8f56b21ca9 Merge pull request #1030 from ethcore/master-version
Version 1.2
2016-05-03 10:05:28 +02:00
Arkadiy Paronyan
59ed67a3f7 Update install-parity.sh 2016-05-02 18:35:10 +02:00
Arkadiy Paronyan
b49e652ae7 Merge pull request #1033 from ethcore/status-bump
Bumping status page
2016-05-02 17:47:01 +02:00
Arkadiy Paronyan
9b13dd7216 Merge pull request #1032 from ethcore/default-extra-data
Exposing default extra data via ethcore RPC
2016-05-02 17:12:25 +02:00
Tomasz Drwięga
1e117d1ee5 Bumping status page 2016-05-02 16:41:14 +02:00
arkpar
0595caf50c Flush password prompt 2016-05-02 16:28:15 +02:00
Tomasz Drwięga
2ac438a82d Exposing default extra data 2016-05-02 16:12:01 +02:00
arkpar
008d009e3e Version 1.2 2016-05-02 15:02:26 +02:00
Arkadiy Paronyan
c34e3535e0 Net etiquette: Track useless peers, Send out disconnect packet (#1028) 2016-05-02 14:48:30 +02:00
Tomasz Drwięga
e2465b1eab Bumping clippy & fixing warnings (#1024)
* Bumping clippy

* Fixing warnings found by clippy
2016-05-02 13:13:12 +02:00
Marek Kotewicz
7c2adc4137 Tracedb interface && cli (#997)
* traces cli and jsonrpc api

* missing if in docs

* adding traces to modules
2016-05-02 12:17:30 +02:00
Tomasz Drwięga
e22e4b9b8b Switching to geth-attach supporting version of rpc core and server (#1022) 2016-04-30 19:41:56 +01:00
Tomasz Drwięga
fdd030d101 Fixing status page displaying homestead (#1020)
* Fixing status page displaying homestead when running with --testnet switch

* Putting cli parsing logic in single place. Adding tests
2016-04-30 18:58:28 +01:00
Marek Kotewicz
66477a9476 Core tracedb functionality. (#996)
* fixed encoding 0u8

* simplified if else stmt

* tracedb core

* more comprehensive tracedb tests

* fixed minor review issues

* addresses filter

* fixed typos

* replace malformed with corrupted

* trace switch

* db key is generic and can be made smaller

* smaller tracedb keys

* tracedb version

* fixed ignored tests

* rename Tracedb -> TraceDB

* fixed typos

* proves

* trace only top level calls to builtins to avoid DDoS attacks

* fixed tracedb config switches

* fix comments fat replaced with trace

* vector-addressing scheme for localized traces

* removed comments

* removed first, redundant 0 from trace address

* updated db.trace method

* additional tests for tracedb.trace()
2016-04-30 16:41:24 +01:00
Tomasz Drwięga
e942f86bd7 Modules RPC (#1019) 2016-04-29 19:52:08 +01:00
Tomasz Drwięga
4fe99b7dea Updating status page (#1015)
* Updating status page

* Bump

* Bumping version of status page
2016-04-29 19:50:07 +01:00
Tomasz Drwięga
0ab9775561 Disabling wallet (#1017)
* Disabling wallet

* Fixing compilation
2016-04-28 20:48:13 +01:00
Arkadiy Paronyan
f83a8f3ba1 More detailed fatal error reporting (#1016) 2016-04-28 20:48:00 +01:00
Arkadiy Paronyan
8f7624f5cb Support 'pending' block in RPC (#1007)
* Support `pending` block in RPC

* Forward calls from miner to client in case no pending block is available
2016-04-28 20:47:44 +01:00
Tomasz Drwięga
ea669ac6b6 Enable pending block when there is local transaction pending. (#1005)
* Enabling sealing while importing own transaction

* Fixing import transaction deadlock

* Checking if there are local transactions in queue

* Updating hyper-mio

* Switching to rust-url#1.0.0
2016-04-28 16:36:53 +01:00
Nikolay Volf
d238b5e578 updating key files permissions on save (#1010)
* chmod when saving keyfile content

* to func

* returning error upstream instead of panic
2016-04-28 15:59:40 +01:00
Nikolay Volf
a86c39f7fa IPC JSON RPC (for external interface) (#1009)
* initial

* rpc file

* compiling nano part

* remove from rpc lib so far

* drop & stop improved

* ok(0)
2016-04-28 15:58:18 +01:00
Arkadiy Paronyan
0260e9322a Merge pull request #1013 from ethcore/ff-fix
Fixing Firefox authorization issues
2016-04-28 13:21:01 +02:00
Tomasz Drwięga
5ef2605cbc Fixing Firefox authorization issues 2016-04-28 11:50:45 +02:00
Arkadiy Paronyan
d1f123967c Merge pull request #1012 from ethcore/rustup
cargo update
2016-04-28 11:49:34 +02:00
debris
6cd4724901 cargo update 2016-04-28 10:21:58 +02:00
Marek Kotewicz
aed9c79237 Merge pull request #1011 from ethcore/url-update
Switching to rust-url@1.0.0
2016-04-28 10:09:13 +02:00
Tomasz Drwięga
6a544b7d8e Router refactoring 2016-04-28 10:06:41 +02:00
Marek Kotewicz
7068901649 Merge pull request #988 from ethcore/rpc-exception-handling
Exception handling in RPC & WebApps
2016-04-28 10:02:12 +02:00
Tomasz Drwięga
ea4346e945 Switching to rust-url#1.0.0 2016-04-27 22:41:46 +02:00
Nikolay Volf
c2787d80c8 Merge pull request #1008 from ethcore/uint-deserialization
Fixed uint deserialization from hex
2016-04-27 20:18:09 +03:00
arkpar
bf62357731 Fixed uint deserialization 2016-04-27 14:39:46 +02:00
Arkadiy Paronyan
b16fa5cc34 Merge pull request #1004 from ethcore/sync-timeout
Tweak timeout and packet size to handle slow networks better
2016-04-27 12:01:31 +02:00
Arkadiy Paronyan
3865e4cdba Merge pull request #998 from ethcore/ipc-new-serialization
IPC with new serialization
2016-04-26 15:52:38 +02:00
arkpar
45b908f6ba Inrease timeout, decrease number of requested blocks 2016-04-26 14:04:00 +02:00
Tomusdrw
2f52699c9b Merge branch 'master' into rpc-exception-handling 2016-04-26 11:30:37 +02:00
Tomusdrw
940dda885b Updating cargo.lock 2016-04-26 11:20:07 +02:00
Marek Kotewicz
9ecbc160dc Merge pull request #1001 from ethcore/jsonrpc_engine_agnostic
make jsonrpc api engine agnostic
2016-04-25 23:26:31 +02:00
Marek Kotewicz
b9d956c69b Merge pull request #1002 from ethcore/updated_cargolock
updated cargo.lock
2016-04-25 18:19:04 +02:00
Tomusdrw
36104edc63 Merge branch 'master' into rpc-exception-handling 2016-04-25 17:37:55 +02:00
debris
5aaa8e439f updated cargo.lock 2016-04-25 16:42:16 +02:00
Nikolay Volf
922400f191 ipc fixes 2016-04-25 17:21:54 +03:00
debris
d4a0ad0a60 make jsonrpc api engine agnostic 2016-04-25 16:06:08 +02:00
arkpar
fe14f6f160 Track import errors and restart sync 2016-04-25 10:53:28 +02:00
Arkadiy Paronyan
1e9b64a786 Merge pull request #993 from ethcore/parityup
updated parity dependencies
2016-04-25 10:04:42 +02:00
Nikolay Volf
9a3e6a6135 hypervisor fix 2016-04-25 06:34:11 +03:00
Nikolay Volf
7cacdba191 fixing codegen links 2016-04-25 06:29:20 +03:00
Nikolay Volf
020b490a72 some commas 2016-04-25 02:43:21 +03:00
Nikolay Volf
2d6f9af612 Merge pull request #980 from ethcore/binary-serializer
Auto (with codegen) binary serializer
2016-04-25 02:37:21 +03:00
Nikolay Volf
22e6e3f995 Merge pull request #995 from ethcore/tx-queue-fix
Fixing transaction queue last_nonces update
2016-04-25 02:37:00 +03:00
Nikolay Volf
a73323e64c Merge pull request #994 from ethcore/ommited
import route contains ommited blocks
2016-04-25 02:36:51 +03:00
Gav Wood
242b986196 Fix spelling of "omitted" 2016-04-24 22:16:34 +01:00
Gav Wood
0810de4415 Fix spelling of "omitted" 2016-04-24 22:16:06 +01:00
Marek Kotewicz
80a28b9b72 fixed encoding 0u8 (#992)
* fixed encoding 0u8

* simplified if else stmt
2016-04-24 22:12:49 +01:00
Gav Wood
b4fc75828e Update transaction_queue.rs
Avoid extraneous `U256` operations and split-state local.
2016-04-24 22:08:27 +01:00
Nikolay Volf
2947a91c3e commas 2016-04-24 21:34:19 +03:00
Tomasz Drwięga
0f4fbadd36 Fixing transaction queue last_nonces update 2016-04-24 19:45:01 +02:00
debris
d5555de1b9 import route contains ommited blocks 2016-04-24 19:40:04 +02:00
debris
3417b27832 updated parity dependencies 2016-04-24 19:10:56 +02:00
Arkadiy Paronyan
0b78a1ead9 Use latest netstats (#989) 2016-04-24 13:24:38 +01:00
Nikolay Volf
4670fd43ed and some more spaces 2016-04-23 18:53:09 +03:00
Nikolay Volf
5d06b04e41 final space 2016-04-23 18:52:12 +03:00
Nikolay Volf
4709edefff another fixed spaces 2016-04-23 18:50:12 +03:00
Nikolay Volf
53281a9454 fixed spaces 2016-04-23 18:49:39 +03:00
Nikolay Volf
fb82d185c7 refactored to new serialization 2016-04-23 18:15:50 +03:00
Tomasz Drwięga
8956d7e02b Exception handling in RPC & WebApps 2016-04-23 12:29:12 +02:00
Nikolay Volf
dcb7546d6d refactored to new serialization 2016-04-22 19:45:09 +03:00
Nikolay Volf
3c6669bd98 Merge pull request #984 from ethcore/rpc-shared-miner
RPC shared external miner
2016-04-22 16:46:36 +03:00
Nikolay Volf
6b1db6a656 merge bugs and fix warnings 2016-04-22 16:46:09 +03:00
Nikolay Volf
4c5425dbde Merge branch 'master' into binary-serializer
Conflicts:
	ipc/codegen/src/codegen.rs
2016-04-22 16:40:16 +03:00
Nikolay Volf
c97cb5d665 struct with reference serialization 2016-04-22 16:37:22 +03:00
Tomasz Drwięga
8b84b4f128 Merge branch 'master' into rpc-shared-miner
Conflicts:
	parity/main.rs
2016-04-22 12:16:15 +02:00
Arkadiy Paronyan
11b0daf6cb Merge pull request #983 from ethcore/rpc-settings
Additional RPC methods for settings
2016-04-22 11:37:24 +02:00
Nikolay Volf
04e704603f fixed warnings 2016-04-21 23:23:06 +03:00
Nikolay Volf
729f9c803d codegen updated 2016-04-21 23:03:05 +03:00
Nikolay Volf
bb6d47d0cd finished with io 2016-04-21 22:18:13 +03:00
Tomasz Drwięga
08a0d42ed3 Compilation fix 2016-04-21 20:53:44 +02:00
Arkadiy Paronyan
5fc944ae1d Merge pull request #985 from ethcore/tx-queue-deadlock
Fixing transaction_queue deadlock
2016-04-21 20:45:29 +02:00
Tomasz Drwięga
bacac7d0af Fixing transaction_queue deadlock 2016-04-21 20:42:36 +02:00
Tomasz Drwięga
0458a3378c Additional RPC methods for settings 2016-04-21 19:24:10 +02:00
Marek Kotewicz
5ccf653841 Merge pull request #981 from ethcore/main-refactor
Refactoring of `parity/main.rs`
2016-04-21 18:43:02 +02:00
Tomasz Drwięga
ef9b49f0b2 Merge branch 'main-refactor' into rpc-shared-miner 2016-04-21 17:38:21 +02:00
Tomasz Drwięga
ffc5d726bd Merge branch 'master' into main-refactor
Conflicts:
	parity/main.rs
2016-04-21 17:35:54 +02:00
Tomasz Drwięga
f5c2bea134 Shared instance of ExternalMiner 2016-04-21 17:32:53 +02:00
Arkadiy Paronyan
8381e79da6 Merge pull request #982 from ethcore/warnings
Fixing clippy warnings.
2016-04-21 17:28:30 +02:00
Tomasz Drwięga
3e280a3386 Splitting Configuration to separate module 2016-04-21 16:45:07 +02:00
Tomasz Drwięga
f5fcada5ba Getting rid of generated code warnings 2016-04-21 16:32:44 +02:00
Tomasz Drwięga
ee474b425b Fixing hook. 2016-04-21 16:19:47 +02:00
Tomasz Drwięga
c47d08e308 Fixing warnings 2016-04-21 16:06:54 +02:00
Tomasz Drwięga
69af2de3ba Fixing clippy warning 2016-04-21 16:02:11 +02:00
Tomasz Drwięga
bad735a8e6 Separating 2016-04-21 15:41:25 +02:00
Tomasz Drwięga
3e4adcb3b6 Splitting informant,io_handler and webapps 2016-04-21 13:57:27 +02:00
Tomasz Drwięga
09b2d7b3a6 Separating RPC 2016-04-21 13:12:43 +02:00
Arkadiy Paronyan
3c665f7640 Merge pull request #977 from ethcore/status-bump
Bumping status page
2016-04-21 11:26:35 +02:00
Arkadiy Paronyan
f2a5630fdf Merge pull request #972 from ethcore/db_writer
querying extras separated to its own module
2016-04-21 11:26:13 +02:00
Tomasz Drwięga
26ed38ecc2 Version 0.2.2 of status page 2016-04-21 09:43:42 +02:00
Nikolay Volf
ffc10fec8b read from bytes finished 2016-04-20 23:07:01 +03:00
Nikolay Volf
a61ab6d40f vec serialization 2016-04-20 23:06:48 +03:00
Nikolay Volf
e3c20e1c64 fix for raw struct 2016-04-20 23:06:35 +03:00
Nikolay Volf
8b1197b335 working serialization gen 2016-04-20 23:06:23 +03:00
Nikolay Volf
3908ddf609 compilation fixed 2016-04-20 23:06:08 +03:00
Nikolay Volf
59e18ad659 making this work 2016-04-20 23:05:53 +03:00
Nikolay Volf
e0ae0724e2 initial commit 2016-04-20 23:05:40 +03:00
Marek Kotewicz
e149402d81 Merge pull request #976 from ethcore/rpc-logs
Exposing application logs via RPC.
2016-04-20 18:47:30 +02:00
Arkadiy Paronyan
e47af7f745 Merge pull request #966 from ethcore/from-bytes-extend
Addressing binary serialization for db types
2016-04-20 18:17:00 +02:00
debris
273e4d6f32 removed db/module, a single file is enoguh 2016-04-20 15:53:01 +02:00
debris
bffa1e1ec9 simplified writing and reading from database with cache 2016-04-20 15:45:42 +02:00
debris
9ce9fd390d Merge branch 'master' of github.com:ethcore/parity into db_writer 2016-04-20 13:45:53 +02:00
Tomasz Drwięga
4b82fc1d1f Bumping status page 2016-04-20 10:07:02 +02:00
Tomasz Drwięga
c56a67a55a Adding tests for RotatingLogger 2016-04-20 00:47:56 +02:00
Tomasz Drwięga
f2a08d57e4 Merge branch 'master' into rpc-logs
Conflicts:
	rpc/src/v1/tests/ethcore.rs
	rpc/src/v1/traits/ethcore.rs
2016-04-19 19:59:50 +02:00
Marek Kotewicz
225a5ee825 removed redundant unwraps (#935)
* removed redundant unwraps

* fixed compilation error, removed warnings

* fixed transaction queue merge conflict

* fixed failing ethminer doc test
2016-04-19 10:35:32 -07:00
Tomasz Drwięga
407ab30503 Using ArrayVec to store logs 2016-04-19 19:22:14 +02:00
Tomasz Drwięga
a21f2a0998 Exposing loggin via RPC 2016-04-19 18:27:12 +02:00
Arkadiy Paronyan
2f174a6441 Merge pull request #975 from ethcore/fixed_tq_merge_conflict
fixed transaction queue merge conflict
2016-04-19 18:24:35 +02:00
debris
314ced57c8 fixed transaction queue merge conflict 2016-04-19 16:20:04 +02:00
Marek Kotewicz
46c8324c52 Merge pull request #974 from ethcore/tx-limit-conf
Configurable limit for transaction queue (CLI & Ethcore-RPC)
2016-04-19 16:02:28 +02:00
Marek Kotewicz
b8eb3d07ba Merge pull request #973 from ethcore/tx-limit-bug
Enforce limit caused `last_nonce` to return incorrect values.
2016-04-19 16:02:08 +02:00
Tomasz Drwięga
3c67ac636b Merge branch 'master' into tx-limit-conf
Conflicts:
	miner/src/transaction_queue.rs
2016-04-19 00:03:20 +02:00
Tomasz Drwięga
10e2659600 Fixing last_nonces updating when transactions are removed because of the limit 2016-04-19 00:00:55 +02:00
Tomasz Drwięga
98b3962412 RPC methods to set the limits 2016-04-18 23:13:38 +02:00
Tomasz Drwięga
5df817c8e0 Setting limit from CLI 2016-04-18 23:03:41 +02:00
Tomasz Drwięga
cd044ec096 Merge branch 'master' into tx-limit-bug
Conflicts:
	miner/src/transaction_queue.rs
2016-04-18 21:58:19 +02:00
Tomasz Drwięga
caf4d179a2 Even more detailed errors for transaction queue (#969)
* Even more detailed errors for transaction queue

* Small rename

* Removing macros in favour of functions+try!()
2016-04-18 10:34:59 -07:00
Tomasz Drwięga
58c47069d8 Enforce-limit + last_nonces bug 2016-04-18 18:39:14 +02:00
debris
60157e6f6c Merge branch 'master' of github.com:ethcore/parity into db_writer 2016-04-18 18:15:10 +02:00
debris
62455a4094 separated from blockchain and made reusable db reader and batch writer 2016-04-18 18:15:03 +02:00
Tomasz Drwięga
41153dd37c Removing macros in favour of functions+try!() 2016-04-18 17:20:35 +02:00
Arkadiy Paronyan
55051951f8 Merge pull request #970 from ethcore/blockchain_panic_fix
temporary fix of panic in blockchain garbage collection
2016-04-18 15:30:04 +02:00
debris
524a495ffd temporary fix of panic in blockchain garbage collection 2016-04-18 15:18:14 +02:00
Tomasz Drwięga
2812f8cae6 Small rename 2016-04-18 13:35:19 +02:00
Tomasz Drwięga
881678b613 Even more detailed errors for transaction queue 2016-04-18 13:16:46 +02:00
Arkadiy Paronyan
5aa54e0c1a Merge pull request #967 from ethcore/ipc-codegen-upgrades
IPC codegen - some minor fixes & enhancements
2016-04-18 12:55:10 +02:00
Arkadiy Paronyan
5b8ca74d65 Merge pull request #968 from ethcore/tx-tracing
Additional logging for transactions
2016-04-18 10:41:30 +02:00
Tomasz Drwięga
d093c5755e Moving own transaction tracing to miner create 2016-04-17 20:36:37 +02:00
Nikolay Volf
3c1c3ac156 Merge pull request #963 from ethcore/dbkeys
refactored blockchain extras keys building
2016-04-17 20:48:06 +03:00
Tomasz Drwięga
8389f771e9 Tracing whole transaction 2016-04-17 18:36:07 +02:00
Nikolay Volf
3c88e70270 upgrades from try-migration branch 2016-04-17 19:30:23 +03:00
Tomasz Drwięga
5086880093 Additional logging for transactions 2016-04-17 18:26:15 +02:00
Nikolay Volf
bde0a5b811 test for triples and bug fix 2016-04-17 19:12:10 +03:00
Nikolay Volf
3138584320 generalized fixedsized structs with macro 2016-04-17 18:52:44 +03:00
Nikolay Volf
17f26ad588 finished for BlockLocation 2016-04-17 18:30:42 +03:00
Nikolay Volf
bd2149406d from/to for BlockLocation 2016-04-17 18:18:25 +03:00
Arkadiy Paronyan
5547b44e5a Merge pull request #957 from ethcore/webapps-mio
Using hyper-mio branch in webapps.
2016-04-17 15:36:23 +02:00
Arkadiy Paronyan
6826712861 Merge pull request #965 from ethcore/build-remove-nano
Remove nanomsg from build-dependencies
2016-04-17 13:52:54 +02:00
Nikolay Volf
0ffc222fba no need for ipc in build-dependencies 2016-04-17 14:11:45 +03:00
Nikolay Volf
ef34b3d9aa convertables 2016-04-17 14:06:14 +03:00
Nikolay Volf
3e2875f3d5 removing redundant implements 2016-04-17 11:13:25 +03:00
Nikolay Volf
060e4bcd32 adding docs 2016-04-17 11:06:59 +03:00
Nikolay Volf
2812dee8d4 ongoing change 2016-04-17 10:40:35 +03:00
Nikolay Volf
799f1b7b08 Merge pull request #964 from petevine/master
Fix build for --target=armv7-unknown-linux-gnueabihf
2016-04-17 04:42:40 +03:00
petevine
763d78af87 Update dependencies 2016-04-17 01:50:04 +02:00
Nikolay Volf
119ae94816 raw bytes refactoring 2016-04-16 20:11:18 +03:00
Tomasz Drwięga
7516b737ee Fixing compilation errors 2016-04-16 00:57:13 +02:00
debris
5c4086bf8e log errors when db queries fails 2016-04-15 19:32:30 +02:00
debris
295efdba55 refactored blockchain extras keys building 2016-04-15 18:54:35 +02:00
Arkadiy Paronyan
ca4ddfb963 Merge pull request #962 from ethcore/ipc-nested-interfaces
IPC RPC codegen extra feature
2016-04-15 17:46:30 +02:00
Tomasz Drwięga
13c25c5d49 Merge branch 'master' into webapps-mio
Conflicts:
	Cargo.lock
	parity/main.rs
2016-04-15 17:14:39 +02:00
NikVolf
29b0bb1184 ipc-nested-interfaces 2016-04-15 17:50:10 +03:00
Arkadiy Paronyan
59f98a2a20 Merge pull request #961 from ethcore/ipc-nested-interfaces
IPC RPC codegen for generic implementation
2016-04-15 16:30:57 +02:00
Arkadiy Paronyan
38fa25edbe Merge pull request #960 from ethcore/upgrade-path
using db_path directory when upgrading
2016-04-15 16:30:44 +02:00
NikVolf
099e57c4e3 fix warning 2016-04-15 16:33:42 +03:00
NikVolf
d5b6f42965 Merge branch 'master' into ipc-nested-interfaces 2016-04-15 16:17:25 +03:00
NikVolf
058ef59b13 codegen for service with generics 2016-04-15 16:16:58 +03:00
arkpar
d84f382ab8 fixed build 2016-04-15 14:45:49 +02:00
arkpar
e7d8cfb8e0 update nanomsg-sys 2016-04-15 13:56:24 +02:00
Arkadiy Paronyan
b441750cc9 Merge pull request #958 from ethcore/ipc-hypervisor
IPC hypervisor
2016-04-15 10:31:19 +02:00
Tomasz Drwięga
00372cf747 Removing a transaction from queue now removes all from this sender with lower nonces. (#950)
* Changing  to wipe-out all transactions from particular sender lower then given nonce.

* Changing given nonce to be client_nonce

* Fixing test_client to support proper nonces when transactions are added to blockchain

* Fixing logic for transactions from new blocks in chain
2016-04-14 22:38:23 -07:00
Gav Wood
0b589915b9 Update auth.rs 2016-04-14 22:24:13 -07:00
Gav Wood
16ad086e7f Update mod.rs 2016-04-14 22:23:20 -07:00
Gav Wood
264c9bfd3c Update lib.rs 2016-04-14 22:16:58 -07:00
Gav Wood
77a535865b Update api.rs 2016-04-14 22:16:21 -07:00
Gav Wood
99b8e28051 Update mod.rs 2016-04-14 22:13:38 -07:00
Adam Goldman
c4c17aa1da bump status page version 0.1.7 (#955) 2016-04-14 22:07:46 -07:00
NikVolf
222a1bd29b using db_path directory 2016-04-15 02:49:42 +03:00
NikVolf
b7798d3869 updating nanomsg-sys 2016-04-15 00:01:20 +03:00
Arkadiy Paronyan
9b2f545391 Merge pull request #956 from ethcore/cors-option
Changing cors header to be optional
2016-04-14 21:16:57 +02:00
Arkadiy Paronyan
b7ab2c4da8 Merge pull request #959 from General-Beck/patch-1
Update ARM Dockerfile
2016-04-14 21:12:40 +02:00
Denis S. Soldatov aka General-Beck
1708a0e3b4 Update Dockerfile
switch to RUST 1.8 stable
remove cargo update
2016-04-15 02:04:35 +07:00
Gav Wood
d909bc05c4 Sensible gas limits for eth_sendTransaction (#953)
* Sensible gas limits for eth_sendTransaction

Fixes #859

* Compile fix.

* Remove !.
2016-04-14 12:01:12 -07:00
NikVolf
dc7e105ef8 Merge branch 'master' into ipc-hypervisor 2016-04-14 21:57:24 +03:00
NikVolf
edb8f1fd7e doc effort 2016-04-14 21:50:35 +03:00
NikVolf
6f4a98333e child processes spawn 2016-04-14 21:45:53 +03:00
Tomasz Drwięga
f81914351d Rewriting webapps to use hyper-mio branch 2016-04-14 20:38:48 +02:00
NikVolf
7ac985dded fix warnings 2016-04-14 20:56:06 +03:00
NikVolf
1b2ef60bbe working tests including warmup 2016-04-14 20:43:14 +03:00
Tomasz Drwięga
313e77fc3b Bumping jsonrpc-http-server 2016-04-14 19:30:53 +02:00
NikVolf
4d527e152c hypervisor-service chain 2016-04-14 18:49:25 +03:00
NikVolf
4931a300f2 first tests 2016-04-14 18:22:31 +03:00
Tomasz Drwięga
5b2d726a02 Changing cors header to be optional 2016-04-14 14:38:07 +02:00
Arkadiy Paronyan
01e7d2d872 Merge pull request #954 from ethcore/fixupgrade
Fix upgrade script and make parity run when no .parity dir.
2016-04-14 11:17:30 +02:00
Gav Wood
f5985bbffc Fix upgrade script and make parity run when no .parity dir. 2016-04-13 18:02:16 -07:00
Gav Wood
32ca8066e9 Tracing and docs. (#952) 2016-04-13 11:26:41 -07:00
NikVolf
405e3e2e7d initial setup 2016-04-13 19:03:57 +03:00
Tomasz Drwięga
30dc58ce49 Some tuning of rustfmt 2016-04-13 17:39:20 +02:00
Arkadiy Paronyan
cb4288b861 Merge pull request #946 from ethcore/numbers-serde-bin
IPC serialization for custom parameters
2016-04-13 14:10:12 +02:00
NikVolf
08874e8483 little test 2016-04-13 13:46:49 +03:00
NikVolf
987b84c530 cosmetic changes 2016-04-13 13:34:41 +03:00
NikVolf
1e1e567435 fix namespaces 2016-04-13 13:30:58 +03:00
NikVolf
f5f79ee0a9 [ci-skip] fix warnings 2016-04-13 13:29:49 +03:00
Nikolay Volf
293722a179 Merge pull request #948 from ethcore/filter_from_default
default filter from block should be Latest, not Earliest
2016-04-13 13:08:58 +03:00
debris
fd2d55934b default filter from block should be Latest, not Earliest 2016-04-13 11:32:28 +02:00
NikVolf
158f75b65d compiles with custom bytes convertable arguments 2016-04-13 12:09:47 +03:00
NikVolf
3f5382d52c finally compiled codegen/typegen 2016-04-13 09:57:35 +03:00
Nikolay Volf
dca67a3c85 Merge pull request #943 from kobigurk/master
README.md: removes sudo from multirust installation
2016-04-13 03:50:47 +03:00
NikVolf
a9cceefaa4 mapping and custom serializers 2016-04-13 03:46:36 +03:00
Tomasz Drwięga
3ce2374aeb Disable long lines formatting (#939) 2016-04-12 15:06:02 -07:00
Tomasz Drwięga
fbc28ce493 Additional methods for ethcore-specific rpc. Altering miner parameters (#934) 2016-04-12 15:04:40 -07:00
Tomasz Drwięga
f88498dad0 Merge pull request #941 from ethcore/ipc-nanomsg-local
Use ethcore nanomsg bindings
2016-04-13 00:02:47 +02:00
Kobi Gurkan
4b9aa76f1a README.md: removes sudo from multirust installation 2016-04-12 14:44:40 -07:00
Tomasz Drwięga
9892e43c4e Getting rid of iron dependency 2016-04-12 22:44:53 +02:00
Arkadiy Paronyan
f858a38d3b Merge pull request #938 from ethcore/ipc-update-syntax-libs
Update IPC codegen to latest syntax libs
2016-04-12 21:07:23 +02:00
arkpar
a19629e2d2 Use ethcores' nanomsg bindings 2016-04-12 20:37:09 +02:00
NikVolf
6149423e47 Merge branch 'ipc-update-syntax-libs' into numbers-serde-bin 2016-04-12 18:41:38 +03:00
NikVolf
3ce71171b6 serde helper crate 2016-04-12 18:41:23 +03:00
NikVolf
fc4dbe8713 remove from this pr 2016-04-12 18:16:59 +03:00
Arkadiy Paronyan
87c2d27a5a Merge pull request #937 from ethcore/ipc-doc-effort
IPC documentation
2016-04-12 17:14:54 +02:00
NikVolf
b191d3517d update versions and fix bugs 2016-04-12 18:03:58 +03:00
Arkadiy Paronyan
c7d6444ae0 Merge pull request #936 from ethcore/bumping-clippy
Bumping clippy and fixing warnings.
2016-04-12 16:49:30 +02:00
Nikolay Volf
bdb35cfaed Merge pull request #927 from ethcore/pruning_auto
Pruning auto
2016-04-12 16:00:39 +03:00
NikVolf
5a5f13205e Merge branch 'master' into ipc-doc-effort 2016-04-12 15:16:05 +03:00
Nikolay Volf
f1f81777cc Merge pull request #933 from ethcore/ipc-prs-client
IPC persistent client link
2016-04-12 15:13:06 +03:00
NikVolf
dab16af018 Merge branch 'master' into ipc-doc-effort 2016-04-12 15:10:47 +03:00
Tomasz Drwięga
7fbe3f4721 Fixing clippy warnings 2016-04-12 13:54:34 +02:00
Tomasz Drwięga
6b03a3218c Bumping clippy version 2016-04-12 13:51:39 +02:00
NikVolf
99c7e1efed Merge branch 'ipc-doc-effort' of github.com:ethcore/parity into ipc-doc-effort 2016-04-12 14:23:31 +03:00
NikVolf
8af86aae84 some docs 2016-04-12 14:22:47 +03:00
NikVolf
b1330b9375 removed global paths and fix warn 2016-04-12 14:22:47 +03:00
NikVolf
806f5b9064 working client spawn 2016-04-12 14:22:47 +03:00
NikVolf
cb1096d1e1 adding init wait 2016-04-12 14:22:47 +03:00
NikVolf
9a82607385 client & server dual tests (not working) 2016-04-12 14:22:47 +03:00
NikVolf
40e0d370c2 client spawner 2016-04-12 14:22:47 +03:00
NikVolf
5609b555d2 removed ready func 2016-04-12 14:22:47 +03:00
NikVolf
0c42126b8f client handshake tests, errors 2016-04-12 14:22:47 +03:00
NikVolf
fa47f1c28b codegen for client handshake 2016-04-12 14:22:47 +03:00
NikVolf
9adb79ed0e handshake dispatch test 2016-04-12 14:22:47 +03:00
NikVolf
a6d140616b server handshake 2016-04-12 14:22:47 +03:00
NikVolf
c5dc281934 reserved message ids and little endian for client 2016-04-12 14:22:47 +03:00
NikVolf
f836e07fd3 reserved message ids and little endian for client 2016-04-12 14:22:47 +03:00
NikVolf
c351bcd5a2 ipcconfig trait 2016-04-12 14:22:47 +03:00
Nikolay Volf
41f15929b9 Merge pull request #928 from ethcore/ipc-handshake
IPC handshake (negotiating protocol/api version)
2016-04-12 14:19:35 +03:00
NikVolf
14241c8d14 line breaks 2016-04-12 13:05:13 +03:00
Arkadiy Paronyan
283ce13454 Merge pull request #914 from ethcore/upgrades
Upgrade logic between versions
2016-04-12 11:30:52 +02:00
Arkadiy Paronyan
6af8e5f7e7 Merge pull request #903 from ethcore/tracing
executive tracing cleanup
2016-04-12 11:30:18 +02:00
NikVolf
ef3e9489a8 missing space 2016-04-12 12:18:48 +03:00
NikVolf
a232aabda3 some docs 2016-04-12 11:53:41 +03:00
NikVolf
36515570b4 removed global paths and fix warn 2016-04-12 11:41:26 +03:00
NikVolf
9b329296e4 working client spawn 2016-04-12 11:34:56 +03:00
NikVolf
593ccd2510 adding init wait 2016-04-12 11:13:27 +03:00
arkpar
54300b136c ARM Dockerfile 2016-04-12 10:06:54 +02:00
NikVolf
98ab30d102 client & server dual tests (not working) 2016-04-12 10:41:17 +03:00
NikVolf
c0e7b859d7 client spawner 2016-04-12 10:18:39 +03:00
NikVolf
93822bd2a2 Merge branch 'master' into ipc-handshake 2016-04-12 08:22:52 +03:00
NikVolf
60ea89ca1c removed ready func 2016-04-12 07:17:57 +03:00
NikVolf
a8bd7d07df client handshake tests, errors 2016-04-12 07:13:31 +03:00
NikVolf
edba351335 codegen for client handshake 2016-04-12 07:07:12 +03:00
NikVolf
be7eb63d1c handshake dispatch test 2016-04-12 06:43:45 +03:00
NikVolf
8ecbb53e99 reducing code 2016-04-12 06:19:15 +03:00
Gav Wood
fa95419c27 --pruning=auto option. 2016-04-11 18:42:50 -07:00
Gav Wood
6e97496b27 Support for --pruning=auto. 2016-04-11 15:51:14 -07:00
Tomasz Drwięga
3fe21f5931 Ethcore-specific RPC methods (#923)
* Ethcore-specific rpc methods

* Initializing ethcore-rpc
2016-04-11 12:06:32 -07:00
Gav Wood
c48374dbc6 Parameter to allow user to force the sealing mechanism (#918)
* Allow block sealing mechanism to be forced, even when not mining.

* Fix deadlock in dispatch_transaction. Fix tests.

* Horrible workaround for transaction importing.

* Reduce tracing. Cleanups.

* Remove logging.

* Remove broken code inherited from dodgy implementation.

* pre-query tx queue nonce also if any

* remove outside nonce queries

* remove queue nonces
2016-04-11 11:52:33 -07:00
NikVolf
1d09844950 Merge branch 'master' into upgrades 2016-04-11 21:43:07 +03:00
Arkadiy Paronyan
edf4735542 Update install-parity.sh 2016-04-11 19:52:42 +02:00
Marek Kotewicz
2d9db0cf67 Merge pull request #921 from ethcore/rustup
updated dependencies
2016-04-11 14:39:59 +02:00
debris
dfa8196543 updated dependencies 2016-04-11 13:21:55 +02:00
Marek Kotewicz
2004f1b5e5 Merge pull request #920 from ethcore/fixed_send_transaction_deadlock
Fixed send transaction deadlock
2016-04-11 13:20:59 +02:00
debris
dc6ade4ae3 fixed transaction deadlock 2016-04-11 12:44:57 +02:00
debris
4bfbb56701 added explanatory comments 2016-04-11 11:36:39 +02:00
debris
610251fdf7 Merge branch 'master' into tracing 2016-04-11 11:35:07 +02:00
debris
66e63ee081 Merge branch 'master' of github.com:ethcore/parity 2016-04-11 11:32:34 +02:00
Gav Wood
587862a370 Merge branch 'master' of github.com:ethcore/parity 2016-04-10 15:35:53 -07:00
Gav Wood
6c35c5e604 --unlock is comma-delimited. (#916) 2016-04-10 14:01:41 -07:00
Marek Kotewicz
fed853593b fixed eth_getLogs (#915)
* fixed eth_getLogs

* removed empty lines
2016-04-10 11:42:03 -07:00
debris
8340f135fc fixed eth_getLogs 2016-04-10 19:43:42 +02:00
NikVolf
26e23da4c0 some newver/oldver logics 2016-04-10 17:15:40 +03:00
NikVolf
d3411a50a4 locked ver.lock upgrade 2016-04-10 16:42:33 +03:00
NikVolf
69add61174 basic upgrade scenario 2016-04-10 16:12:20 +03:00
Nikolay Volf
032d29ec86 Merge pull request #912 from ethcore/keys-path-fix-create
create provided custom dir for keys if none
2016-04-10 17:01:51 +04:00
NikVolf
5f7cc437dd removing lower-level defaults 2016-04-10 14:38:57 +03:00
NikVolf
219e88a023 create provided custom dir for keys if none 2016-04-10 14:20:48 +03:00
Gav Wood
6ebd5009fc --unlock is comma-delimited. 2016-04-09 12:58:13 -07:00
Marek Kotewicz
373284ca0a spec loading cleanup (#858)
* spec loading cleanup in progress

* changed engine field in json spec

* refactored engine params

* polishing spec loading refactor

* fixed compiling json tests

* fixed compiling parity

* removed warnings

* removed commented out code

* fixed failing test

* bringing back removed TODO in spec.
2016-04-09 10:20:35 -07:00
Gav Wood
d823fd7685 Merge pull request #906 from ethcore/webapps-auth
WebApps HTTP Basic Auth Support
2016-04-09 10:19:59 -07:00
Tomasz Drwięga
a63be702e1 Merge pull request #888 from ethcore/h256
Removing match on constant
2016-04-09 11:28:01 +02:00
Tomasz Drwięga
04d5b5cbe6 Merge branch 'master' into h256
Conflicts:
	ethcore/src/account.rs
2016-04-09 11:27:19 +02:00
Tomasz Drwięga
e839404bd2 Merge pull request #907 from ethcore/gavofyork-patch-1
Update auth.rs
2016-04-09 11:25:05 +02:00
Gav Wood
1d5b29fb48 Update auth.rs 2016-04-08 17:51:20 -07:00
Gav Wood
60875905ac Merge pull request #904 from ethcore/webapp-default
Enabling webapps compilation by default
2016-04-08 17:43:13 -07:00
Gav Wood
0ef6de930f Update account.rs 2016-04-08 17:42:17 -07:00
Gav Wood
215973c7ab Merge pull request #898 from ethcore/fixed_895
fixed #895
2016-04-08 17:41:54 -07:00
Tomasz Drwięga
dab54cf2a7 HTTP Basic Authorization for WebApps server. 2016-04-08 16:11:58 +02:00
Tomasz Drwięga
8f16515d82 HTTP Authorization support in router 2016-04-08 15:25:20 +02:00
NikVolf
80d04ead33 server handshake 2016-04-08 14:07:25 +03:00
debris
fcf7f392f0 fixed failing tests 2016-04-08 11:48:37 +02:00
Tomasz Drwięga
508daad011 Enabling webapps by default 2016-04-08 11:18:46 +02:00
Arkadiy Paronyan
f9f11b6f74 Merge pull request #899 from ethcore/webapps2
Support for compile-time included WebApplications.
2016-04-08 10:54:40 +02:00
Tomasz Drwięga
f129126a82 Adding couple of missing commas 2016-04-08 10:13:42 +02:00
debris
64294853cc separated tracing logic to its own trait 2016-04-08 01:50:55 +02:00
NikVolf
c4727ac021 reserved message ids and little endian for client 2016-04-07 23:32:41 +03:00
NikVolf
2560640b29 reserved message ids and little endian for client 2016-04-07 23:32:33 +03:00
NikVolf
72acd67644 ipcconfig trait 2016-04-07 23:18:48 +03:00
Tomasz Drwięga
6395095659 Updating version of parity-status 2016-04-07 18:42:51 +02:00
Tomasz Drwięga
1852f1b462 REST-API PoC 2016-04-07 18:22:53 +02:00
Tomasz Drwięga
9bd41761fc Reverting back to old-hyper version of rpc 2016-04-07 16:31:42 +02:00
Tomasz Drwięga
b7c790d741 Disabling rpc until we switch to async hyper 2016-04-07 16:22:02 +02:00
Tomasz Drwięga
bf4ab6daa8 Merge branch 'master' into webapps2
Conflicts:
	parity/main.rs
2016-04-07 16:13:58 +02:00
Tomasz Drwięga
4569c25127 Specifying webapp interface 2016-04-07 15:59:45 +02:00
Arkadiy Paronyan
46a25b31ab Merge pull request #894 from ethcore/send-transactions
Propagate transaction queue
2016-04-07 15:36:01 +02:00
Marek Kotewicz
08980dabd6 Merge pull request #901 from ethcore/rpc
Use new json RPC server
2016-04-07 15:31:35 +02:00
Tomasz Drwięga
ed633bd0b7 Adding StatusPage and main page support 2016-04-07 15:14:39 +02:00
arkpar
8074fee28c Use new json RPC server 2016-04-07 14:32:44 +02:00
Arkadiy Paronyan
8e64379ed4 Merge pull request #900 from ethcore/fixing-rpc
Gracefully dying when trying to enable RPC and app is compiled without it.
2016-04-07 14:25:22 +02:00
Tomasz Drwięga
6279237c86 Adding documentation 2016-04-07 13:15:59 +02:00
Tomasz Drwięga
db2354a252 Merge branch 'fixing-rpc' into webapps2
Conflicts:
	parity/main.rs
2016-04-07 13:09:58 +02:00
Tomasz Drwięga
2adeb9fe88 Removing Option from setup_rpc_server method return type 2016-04-07 12:55:06 +02:00
Tomasz Drwięga
d1e3c633e5 Fixing compilation with rpc feature disabled 2016-04-07 12:50:35 +02:00
Arkadiy Paronyan
123a0f0b40 Merge pull request #893 from ethcore/closing
Additional logging and friendlier error messages
2016-04-07 12:36:19 +02:00
Tomasz Drwięga
1e0a787012 Merge branch 'closing' of github.com:ethcore/parity into closing 2016-04-07 12:30:48 +02:00
Tomasz Drwięga
ccd417f713 Reverting order of shutdown event 2016-04-07 12:27:54 +02:00
Tomasz Drwięga
91f1f4c174 Changing default setup to be safer for now 2016-04-07 12:20:35 +02:00
Tomasz Drwięga
1e9e0c32fa Disabling webapp server by default 2016-04-07 12:15:39 +02:00
Tomasz Drwięga
da05aa51fe Adding all APIs to webapp rpc server 2016-04-07 12:12:26 +02:00
Tomasz Drwięga
ad37b7fd2a Adding webapps router 2016-04-07 12:10:26 +02:00
Tomasz Drwięga
5d6ca1498e CLI options to run webapp server 2016-04-07 11:06:49 +02:00
Tomasz Drwięga
e3ce5d94e1 Adding webapps crate 2016-04-07 10:49:00 +02:00
Tomasz Drwięga
12d1dcddeb Updating rpc comments 2016-04-07 10:31:42 +02:00
Arkadiy Paronyan
0668f91b0c Merge pull request #897 from ethcore/closing-panic
Avoid signalling readiness when app is about to be closed.
2016-04-07 02:34:07 +02:00
debris
d1d3d847ab fixed #895 2016-04-07 00:33:55 +02:00
Tomasz Drwięga
730d60e5e4 Avoid signalling readiness when app is about to be closed 2016-04-07 00:20:03 +02:00
Tomasz Drwięga
f27d88f6ab More descriptive message when closing 2016-04-06 23:58:23 +02:00
Tomasz Drwięga
d4f0902968 Tracing shutdown and changed order of IoManager shutdown process 2016-04-06 23:45:19 +02:00
arkpar
3438cda432 Propagate transaction queue 2016-04-06 23:03:07 +02:00
debris
09beeaba8e trace result is a structure; 2016-04-06 21:23:52 +02:00
Tomasz Drwięga
fd03f58eae Rewriting messages 2016-04-06 19:22:10 +02:00
Tomasz Drwięga
a52043d5b3 Removing additional thread from JSON-RPC 2016-04-06 19:14:05 +02:00
Tomasz Drwięga
1f9eb97d0a Merge branch 'master' into closing 2016-04-06 19:07:56 +02:00
Tomasz Drwięga
dc91e57c2f Additional logging and error messages 2016-04-06 19:07:27 +02:00
Arkadiy Paronyan
5685fde606 Merge pull request #890 from ethcore/fix_875
fixed #875 and added tests for eth_sendTransaction
2016-04-06 16:24:32 +02:00
Marek Kotewicz
a8eb34ddb8 Merge pull request #891 from ethcore/issue-882
passing key path to all invocations
2016-04-06 15:05:47 +02:00
Nikolay Volf
b671cbd71f Merge pull request #892 from ethcore/eth-call-fix
Fixed eth_call nonce and gas handling
2016-04-06 15:54:58 +04:00
Arkadiy Paronyan
460d5bffd7 Merge pull request #886 from ethcore/ipc-nano
ipc rpc with nano transport (simple duplex)
2016-04-06 13:22:59 +02:00
Arkadiy Paronyan
ca17644289 Merge pull request #889 from ethcore/clippy
Bumping clippy and fixing warnings
2016-04-06 13:22:34 +02:00
NikVolf
e6be5016f9 replacing /home/nikky also 2016-04-06 14:21:19 +03:00
arkpar
9b7c48110a Fixed eth_call nonce and gas handling 2016-04-06 13:05:58 +02:00
NikVolf
8b3e84f7fe passing key path to all invocations 2016-04-06 14:03:53 +03:00
debris
d14d590c2b fixed #875 and added tests for eth_sendTransaction 2016-04-06 12:15:20 +02:00
Tomasz Drwięga
d5f9cccf5e Removing match on constant 2016-04-06 11:10:04 +02:00
Tomasz Drwięga
405a6bfc04 Removing match on constant 2016-04-06 10:58:51 +02:00
Tomasz Drwięga
1105b74174 Fixing match on constant 2016-04-06 10:58:07 +02:00
Tomasz Drwięga
85da55a537 Fixing warnings 2016-04-06 10:55:40 +02:00
Tomasz Drwięga
e8fa429438 Bumping clippy 2016-04-06 09:53:56 +02:00
NikVolf
aea185471a using nanomsg polling 2016-04-06 00:10:24 +03:00
NikVolf
47cfab2bbf loop size 2016-04-05 12:37:05 +03:00
NikVolf
6d425bb5bb fix doc 2016-04-05 12:35:45 +03:00
NikVolf
201d47a483 fixing url 2016-04-05 12:11:05 +03:00
NikVolf
0d7e52ac6f dispatch buf and proper polling 2016-04-05 12:08:42 +03:00
NikVolf
4cde01d81a guarding endpoints 2016-04-04 20:47:16 +03:00
Marek Kotewicz
d01a79f58f Merge pull request #878 from ethcore/expect-text
More descriptive expectations to transaction queue consistency.
2016-04-04 12:33:44 +02:00
Marek Kotewicz
963b82afe9 Merge pull request #879 from ethcore/fix-another-uint
uint bug - replace add with or
2016-04-04 11:59:00 +02:00
Nikolay Volf
9d8feff28d replace add with or 2016-04-04 11:06:16 +02:00
NikVolf
952a834e43 savework 2016-04-04 10:55:06 +03:00
Marek Kotewicz
d8179ceeb2 Merge pull request #877 from ethcore/uint-fix
Fixing typo in bigint
2016-04-04 09:54:37 +02:00
Tomasz Drwięga
919c185021 Fixing fn arguments indentation 2016-04-04 09:13:24 +02:00
Tomasz Drwięga
18503eaa53 Fixing typo in bigint 2016-04-04 09:00:22 +02:00
Tomasz Drwięga
2a185963a9 More descriptive expectations to transaction queue consistency. 2016-04-04 08:56:59 +02:00
Gav Wood
072a8e0105 Merge pull request #874 from ethcore/NikVolf-patch-1
update misleading cli help msg for author
2016-04-03 21:59:44 -04:00
Nikolay Volf
167f61bef0 [ci skip] update misleading cli help msg for author 2016-04-04 04:03:20 +04:00
NikVolf
35465debd6 flush 2016-04-04 01:52:19 +03:00
NikVolf
fa63d9e34a non-working test for dispatching 2016-04-04 01:44:30 +03:00
NikVolf
675af841e8 dummy service 2016-04-04 00:54:30 +03:00
NikVolf
1395d58d39 actual test flag 2016-04-04 00:42:00 +03:00
NikVolf
99d127bb34 duplex & tests 2016-04-04 00:33:30 +03:00
NikVolf
5cd6a04082 to pollng also 2016-04-04 00:00:57 +03:00
NikVolf
326855dc3a basic polling 2016-04-03 23:58:18 +03:00
NikVolf
b04d8196c7 dispatch_buf 2016-04-03 23:39:49 +03:00
Arkadiy Paronyan
ebd9eb1715 Merge pull request #871 from rphmeier/geth_keystore
Find geth data store cross-platform.
2016-04-03 21:39:57 +02:00
Robert Habermeier
2f02b43352 Find geth data store cross-platform.
Fixes #869
2016-04-03 14:54:13 -04:00
NikVolf
0a60da622f new crate 2016-04-03 21:43:35 +03:00
Gav Wood
8c447dcce2 Merge pull request #872 from ethcore/geth-import
Import geth 1.4.0 keys
2016-04-03 09:19:40 -04:00
arkpar
2fd23dc18f Handle geth keys with lowercase crypto key 2016-04-03 15:07:52 +02:00
Gav Wood
da315845ff Merge pull request #854 from ethcore/ipc-prox
Syntax helpers for IPC RPC (part 2)
2016-04-03 07:24:09 -04:00
Gav Wood
f29c59404f Merge pull request #870 from ethcore/fix-bootnode
Fixed bootnode URL and error message
2016-04-03 07:23:31 -04:00
Arkadiy Paronyan
54d594c486 Merge pull request #867 from ethcore/fix-861
replace popcnt with mov (861)
2016-04-02 19:08:09 +02:00
arkpar
67d04c5952 Fixed bootnode URL and error message 2016-04-02 19:01:41 +02:00
arkpar
4854f6923b Full restart on bad block 2016-04-02 09:29:12 +02:00
arkpar
a8772ed5c1 Track import errors and restart sync 2016-04-02 09:01:53 +02:00
Marek Kotewicz
3468b9a8c0 Merge pull request #865 from ethcore/depsup
weekly dependencies update
2016-04-01 21:22:34 +02:00
NikVolf
123287d977 replace popcnt with mov 2016-04-01 17:56:29 +03:00
Arkadiy Paronyan
0f7e3cdfe2 Merge pull request #866 from rphmeier/unused_mut
Remove unused mut
2016-04-01 16:19:12 +02:00
Robert Habermeier
12f4b5ea8a Remove unused mut 2016-04-01 09:33:12 -04:00
debris
f23f35aa13 weekly dependencies update 2016-04-01 12:04:04 +02:00
Marek Kotewicz
71dd9fb2df Merge pull request #864 from ethcore/fixed_855
fixed #855
2016-04-01 11:55:38 +02:00
Marek Kotewicz
7f1a1b7b96 Merge pull request #862 from ethcore/trace_styles
simplified trace from functions, removed clippy warnings
2016-04-01 11:49:05 +02:00
debris
0681346201 fixed #855 2016-04-01 11:26:14 +02:00
debris
239e2c82e6 simplified trace from functions, removed clippy warnings 2016-04-01 03:08:42 +02:00
Gav Wood
d681b96a7b Merge pull request #857 from rphmeier/hashdb_deprecated_docs
Update deprecated HashDB methods in docs.
2016-03-31 16:10:02 +02:00
NikVolf
97fbc11a8f more doc effort 2016-03-30 19:31:09 +03:00
NikVolf
92feabf3e7 fixed sig/body 2016-03-30 19:27:39 +03:00
NikVolf
3bbfcefb0b client method generation documented 2016-03-30 19:20:39 +03:00
NikVolf
ba30234397 codegen proxy->client 2016-03-30 18:27:31 +03:00
NikVolf
054fa71b52 dried namespaces 2016-03-30 18:25:31 +03:00
NikVolf
0291b9a1c3 fixed tests 2016-03-30 18:19:03 +03:00
NikVolf
71de6b8849 proxy -> client 2016-03-30 18:17:49 +03:00
Robert Habermeier
40d3301c68 Update deprecated HashDB methods in docs. 2016-03-30 01:36:35 -04:00
Nikolay Volf
3e09f99845 Merge pull request #853 from ethcore/json_tx_refactor
refactored loading transaction json tests
2016-03-30 03:32:41 +04:00
NikVolf
7097451323 forgotten upper files 2016-03-30 02:21:47 +03:00
NikVolf
be40553674 extra test and method encode fix 2016-03-30 02:20:01 +03:00
NikVolf
198613a854 redundant tab 2016-03-29 22:40:38 +03:00
NikVolf
fc3d424315 cleanup 2016-03-29 22:31:20 +03:00
NikVolf
579d2b1f02 final static functions 2016-03-29 22:29:43 +03:00
NikVolf
34f6c1f2f1 replaced hand-written with generated 2016-03-29 22:15:45 +03:00
NikVolf
bd377e1f28 almost valid signature (re)generation 2016-03-29 22:00:23 +03:00
Arkadiy Paronyan
bf5023f4d4 Update install-parity.sh 2016-03-29 18:05:41 +02:00
debris
94ec102d67 fixed homestead transition block number in transaction json-tests 2016-03-29 14:34:03 +02:00
debris
3d578bec76 removed unused code 2016-03-29 13:34:12 +02:00
debris
3a2f5954d7 refactored loading json tests 2016-03-29 13:01:39 +02:00
NikVolf
3de46a31d9 extracting type info for args 2016-03-29 01:55:04 +03:00
NikVolf
44ea98801b invoke with hand-written code and tests 2016-03-29 01:40:43 +03:00
NikVolf
15ecbaf59c invoke with hand-written code and tests 2016-03-29 01:40:30 +03:00
Nikolay Volf
02b336ee29 Merge pull request #852 from peterjoel/price_info_refactor
reorganised price info lookup
2016-03-29 01:53:25 +04:00
Peter
40b97045f0 Reorganised price info lookup
This helped stop my eyes from hurting.

Further simplification
2016-03-28 22:11:28 +01:00
Gav Wood
6399c0a2c7 Merge pull request #850 from ethcore/pubtxs
Publish locally-made transactions to peers.
2016-03-28 19:41:53 +02:00
Gav Wood
5d626c7dd3 Use sensible gas price. 2016-03-28 18:53:33 +02:00
Gav Wood
9592ccc0df Publish locally-made transactions to peers. 2016-03-28 18:11:00 +02:00
Arkadiy Paronyan
b1cf44a88c Merge pull request #847 from ethcore/ymltoken
Add generalbeck's token
2016-03-28 16:35:59 +02:00
Gav Wood
6da9e19f73 Add generalbeck's token 2016-03-28 15:47:57 +02:00
Gav Wood
cd6a09c0df Merge pull request #846 from ethcore/fixmining
Fix response for mining.
2016-03-28 12:43:05 +02:00
Gav Wood
6a7c25e2be Fix response for mining. 2016-03-28 11:23:22 +02:00
Gav Wood
c20ca0fa4e Merge pull request #843 from ethcore/usdgaspricing
USD-based pricing of gas.
2016-03-28 10:53:38 +02:00
Gav Wood
3ebfd0183a Merge pull request #811 from ethcore/bettermining
Parity can accept older work packages
2016-03-28 10:48:35 +02:00
Gav Wood
63a9fa172c Avoid openssl dep. 2016-03-28 10:25:19 +02:00
Gav Wood
d7c377dea6 Fix build. 2016-03-28 10:12:15 +02:00
Gav Wood
75b23aac02 Merge remote-tracking branch 'origin/master' into bettermining 2016-03-28 09:44:34 +02:00
Gav Wood
ad86feb667 Rename spawn -> boxed_clone 2016-03-28 09:42:50 +02:00
Arkadiy Paronyan
2178f09eec Merge pull request #841 from peterjoel/ethcompute
Caching for computing seed hashes (#541)
2016-03-28 01:43:45 +02:00
Gav Wood
b606fb68cf USD-based pricing of gas. 2016-03-28 00:49:35 +02:00
Gav Wood
d150529730 Merge remote-tracking branch 'origin/master' into bettermining 2016-03-27 22:16:24 +02:00
Peter
9655ce8dbf Caching for computing seed hashes (#541)
Code review changes
2016-03-27 20:42:24 +01:00
Gav Wood
7c5b171e3f Differentiate between ClosedBlock (can be reopened) and LockedBlock (cannot).
`ClosedBlock`s still keep the pre-finalised state (i.e. state after the last transaction).
`LockedBlock`s do not. New mining algo needs to reopen these `ClosedBlock`s, however enactment
system does not (and `ClosedBlock`s are slower & more hungry), hence the distinction.
2016-03-27 20:33:23 +02:00
Gav Wood
6b8e7bdfb3 Merge pull request #838 from ethcore/tx-queue-resp
checking transaction queue for pending transaction
2016-03-27 19:51:37 +02:00
NikVolf
a8c725a891 test for pending 2016-03-27 17:16:15 +03:00
Gav Wood
6cac296366 Remove comments. 2016-03-27 15:39:45 +02:00
Gav Wood
8bb49f05d0 Merge pull request #817 from ethcore/state_tests
refactored loading of state tests
2016-03-27 15:35:16 +02:00
Nikolay Volf
8b7e0a0dbe Merge pull request #837 from ethcore/835
tests for deserialization of transaction from issue #835
2016-03-27 17:13:21 +04:00
NikVolf
254ac6f253 checking tx queue 2016-03-27 16:12:21 +03:00
Gav Wood
43e1d89067 Fix State cloning. 2016-03-27 14:35:27 +02:00
debris
0d453e52ad tests for deserialization of issue #835 2016-03-27 14:14:05 +02:00
Gav Wood
f608db3a68 Merge pull request #834 from ethcore/unlock-pass
unlocks with no expiration [on top of 833]
2016-03-27 11:53:06 +02:00
NikVolf
6db02134e9 Merge branch 'master' into unlock-pass 2016-03-27 04:49:02 +03:00
Nikolay Volf
bdd6674958 Merge pull request #833 from ethcore/unlockcli
Unlock accounts on CLI.
2016-03-27 05:47:34 +04:00
Gav Wood
156a2336de Allow passwords on multiple lines in --password files. 2016-03-27 03:15:41 +02:00
NikVolf
cbe1e4599d fix test 2016-03-27 03:49:12 +03:00
NikVolf
32fd35843f in cli call 2016-03-27 03:45:43 +03:00
NikVolf
a37647b3d1 Merge remote-tracking branch 'origin/unlockcli' into unlock-pass 2016-03-27 03:42:32 +03:00
NikVolf
edc527b3ab unlimited unlock 2016-03-27 03:41:57 +03:00
Gav Wood
8805d04183 Minor refactor. 2016-03-27 01:41:28 +01:00
Gav Wood
53c4ed09a3 Unlock accounts on CLI. 2016-03-27 01:35:42 +01:00
Gav Wood
fc211f0934 Merge remote-tracking branch 'origin/master' into bettermining 2016-03-26 23:35:51 +01:00
Gav Wood
7d7b315511 Fix tests and a couple of warnings. 2016-03-26 23:35:36 +01:00
Gav Wood
c8ac1a2351 Fix test. 2016-03-26 23:32:54 +01:00
Gav Wood
ff0e6eb0d5 Merge pull request #829 from ethcore/optionalblocknumberinrpc-master
Make BlockNumber optional, fix eth_call
2016-03-26 23:29:53 +01:00
Gav Wood
993e16afbd Fix miner, 2016-03-26 20:36:03 +01:00
Gav Wood
785e9d1be6 Merge pull request #831 from ethcore/test-socket-devtools
Test socket to common test code (ethcore-devtools)
2016-03-26 20:07:40 +01:00
NikVolf
f9c0e0c152 removed from util 2016-03-26 19:08:06 +03:00
NikVolf
579d41b174 fix lib 2016-03-26 19:04:42 +03:00
NikVolf
c2ffb6c255 test socket to common test tools 2016-03-26 19:04:12 +03:00
Gav Wood
64819981f2 Merge branch 'master' into bettermining 2016-03-26 13:45:38 +01:00
Gav Wood
00685f357f Remove info!s. 2016-03-26 13:45:13 +01:00
Gav Wood
845fa97da1 Fix eth_call so it doesn't need the secret of the sender. 2016-03-26 13:30:02 +01:00
Gav Wood
aaf04e793d Make BlockNumber optional. 2016-03-26 12:41:24 +01:00
Gav Wood
b34ff82987 Merge branch 'master' of github.com:ethcore/parity 2016-03-26 12:40:04 +01:00
Gav Wood
af14c68acc Merge pull request #822 from ethcore/netidfix
Use network id for the web3_net_version return.
2016-03-26 11:25:09 +01:00
Gav Wood
2aa3183c16 Merge branch 'master' of github.com:ethcore/parity 2016-03-26 11:21:49 +01:00
Gav Wood
8ea53b69eb Merge pull request #824 from ethcore/web3-sha3
json-rpc web3_sha3
2016-03-26 11:20:52 +01:00
Gav Wood
44d9ccf2c5 Update web3.rs
[ci-skip]
2016-03-26 11:19:51 +01:00
Gav Wood
c981d6431d Merge pull request #819 from ethcore/travis-cleanup
remove some unused files
2016-03-26 11:19:04 +01:00
NikVolf
52726088f3 actually fix build 2016-03-26 04:06:40 +03:00
NikVolf
079a39a5f1 wiki test 2016-03-26 03:19:55 +03:00
NikVolf
dc4654fa4c avoid copy 2016-03-26 03:15:27 +03:00
NikVolf
3d94670f1f web3_sha3 2016-03-26 03:00:05 +03:00
Gav Wood
b30fc3a715 Fix build. 2016-03-26 00:53:35 +01:00
Gav Wood
51d182eb5a Merge pull request #818 from ethcore/debug-symbols
debug symbols for master/beta
2016-03-26 00:30:29 +01:00
Gav Wood
3f04f4e5c6 Merge pull request #809 from ethcore/ipc-syntax
Syntax helpers for IPC RPC
2016-03-26 00:30:00 +01:00
Gav Wood
f231440480 Use network id for the web3_net_version return. 2016-03-26 00:23:07 +01:00
Gav Wood
b45ed30936 Disable two tests that will require an improved TestBlockChainClient 2016-03-25 16:41:01 +01:00
NikVolf
8184e27cb8 deleted atavisms 2016-03-25 17:24:04 +03:00
NikVolf
c014d5d12e debug symbols for master/beta 2016-03-25 16:55:48 +03:00
debris
22d9edb138 Merge branch 'master' of github.com:ethcore/parity into state_tests 2016-03-25 13:09:59 +01:00
debris
cdcbc56255 refactored state tests 2016-03-25 13:08:57 +01:00
Gav Wood
100e6fa88f Merge pull request #803 from ethcore/executive_tests
refactored loading of execution tests
2016-03-25 10:43:33 +00:00
debris
e1b841b526 Merge branch 'master' of github.com:ethcore/parity into executive_tests 2016-03-25 10:40:21 +01:00
Marek Kotewicz
2c2e8ef154 Merge pull request #805 from ethcore/rustfmt
Rustfmt.toml
2016-03-25 10:39:59 +01:00
Gav Wood
c99a486826 UsingQueue: Tests for new function, remove unused function. 2016-03-24 23:15:51 +01:00
Gav Wood
d50c9f9fac Merge remote-tracking branch 'origin/master' into bettermining 2016-03-24 23:10:54 +01:00
Gav Wood
830ef7ddfc New mining framework.
Fixes #756.
2016-03-24 23:03:22 +01:00
NikVolf
cb2e1e1572 one more 2016-03-25 00:44:02 +03:00
NikVolf
1864c243fa indents 2016-03-25 00:42:09 +03:00
NikVolf
19e05595c8 whitespace extra 2016-03-25 00:41:15 +03:00
NikVolf
17a9bb81e8 whitespaces 2016-03-25 00:39:20 +03:00
Gav Wood
28122a1e89 Merge pull request #810 from ethcore/debris-patch-1
install-partiy runs brew reinstall parity on osx
2016-03-24 21:27:20 +00:00
Marek Kotewicz
ee337471c2 install-partiy runs brew reinstall parity on osx 2016-03-24 22:22:04 +01:00
NikVolf
aa7ecdbd65 initial commit 2016-03-25 00:07:01 +03:00
Arkadiy Paronyan
01a39e4f4e Merge pull request #807 from ethcore/tracegetwork
Fix mining from spinning
2016-03-24 18:27:17 +01:00
Arkadiy Paronyan
b2665d0c5e Update install-parity.sh 2016-03-24 18:11:07 +01:00
Gav Wood
3be2763929 Merge branch 'master' into bettermining 2016-03-24 16:43:17 +00:00
arkpar
416040f313 Fixed test 2016-03-24 17:09:41 +01:00
Gav Wood
8dbd6f36b5 Avoid warning. 2016-03-24 16:00:32 +00:00
debris
a7ce6fca9e fixed checking if state is correct in executive tests 2016-03-24 16:40:52 +01:00
Gav Wood
ae5eece76f Don't care if engaged in sync since it's typically doing so. 2016-03-24 14:40:13 +00:00
Gav Wood
6c18a1f285 Fix logic. agaib. 2016-03-24 14:40:10 +00:00
Gav Wood
cbba403992 Fix logic error. 2016-03-24 14:39:32 +00:00
Gav Wood
e6136eb075 Fix mining. 2016-03-24 14:39:29 +00:00
Gav Wood
e214489106 Fix compile. 2016-03-24 13:56:22 +00:00
Gav Wood
0ab57c48c3 Add tracing. 2016-03-24 13:51:51 +00:00
Tomasz Drwięga
bc03040b0f Removing ethash sizes 2016-03-24 11:50:33 +01:00
Gav Wood
1700b6a087 Add UsingQueue. 2016-03-24 07:49:54 +00:00
debris
1aa34e9dd4 fixed loading of executive tests, unrevealed failing consensus tests 2016-03-24 01:25:59 +01:00
debris
3352b0e916 json-tests vm loading 2016-03-23 18:36:05 +01:00
Tomasz Drwięga
9a867ad277 Adding new crates 2016-03-23 18:20:06 +01:00
Gav Wood
4e013ba2fc Refactor pending_block to always return invalid txs and sometimes a block.
Docuemnt SealingWork properly.
2016-03-23 16:28:02 +00:00
Tomasz Drwięga
a0db1d5416 Merge branch 'master' into rustfmt
Conflicts:
	ethash/src/sizes.rs
	util/src/uint.rs
2016-03-23 16:55:54 +01:00
Gav Wood
97449afbb9 Merge branch 'master' into bettermining 2016-03-23 14:18:16 +01:00
Gav Wood
038b67cbd4 Merge pull request #802 from ethcore/tx_queue_bugs
Fixing future-current transactions clash
2016-03-23 14:02:44 +01:00
Tomasz Drwięga
c2d2e41624 Fixing future-current transactions clash 2016-03-23 12:23:50 +01:00
Arkadiy Paronyan
ebd7273071 Merge pull request #800 from ethcore/fixjsonrpc
Increase threads to num_cpus & fix author reporting
2016-03-22 21:08:59 +01:00
Gav Wood
0e026ed11f Fix author reporting. num_cpus for JSONRPC threads. 2016-03-22 19:12:17 +01:00
Gav Wood
7624bcf49e Increase threads to 4. 2016-03-22 18:43:06 +01:00
Gav Wood
d7fb464fa9 Merge pull request #798 from ethcore/eth_rpc
another batch of rpc improvements
2016-03-22 18:38:55 +01:00
debris
a0cbe7cd7e fixed eth_call, eth_sendTransaction and eth_estimateGas 2016-03-22 17:17:50 +01:00
debris
0cdac6de3c uncle 2016-03-22 16:07:42 +01:00
Gav Wood
a134f939e9 Non-functioning draft of code. 2016-03-22 13:05:18 +01:00
Nikolay Volf
0c8afa932a Merge pull request #794 from ethcore/tracing
Avoid tracing DELEGATECALL and CALLCODE. Plus tests for it.
2016-03-22 10:21:31 +03:00
debris
f2a0e24491 removed outdated comment 2016-03-21 20:29:35 +01:00
Gav Wood
2ab9d02158 Fix test. 2016-03-21 12:39:13 +01:00
debris
0e5395013a implemented eth_sendRawTransaction 2016-03-21 12:00:30 +01:00
Gav Wood
8906b78b07 Revert break. 2016-03-21 11:56:11 +01:00
Gav Wood
205f062433 Merge branch 'master' into tracing 2016-03-21 11:54:50 +01:00
Gav Wood
8ed8652296 Reuse should_Trace. 2016-03-21 11:53:52 +01:00
debris
068c0f3782 test for eth_getTransactionReceipt 2016-03-21 11:47:50 +01:00
Gav Wood
c4d45e0cf0 Trace basic calls! And tests. 2016-03-21 11:24:03 +01:00
Gav Wood
6701aff2a2 Merge pull request #793 from loxal/patch-1
complete getting started steps for OS X
2016-03-21 10:46:42 +01:00
Alexander Orlov
677193ca52 complete getting started steps for OS X
You get 
`multirust: no default toolchain configured` 
when 
`multirust default stable`
is not executed.
2016-03-20 20:44:32 +01:00
Gav Wood
7051529880 Merge pull request #788 from ethcore/test-fix
Auto detect available port (with fixed test)
2016-03-20 19:43:57 +01:00
Gav Wood
74f7f3f016 Merge pull request #792 from ethcore/eth_getTransactionReceipt
eth_getTransactionReceipt
2016-03-20 19:43:49 +01:00
Gav Wood
72b604b8e8 Avoid tracing DELEGATECALL and CALLCODE. Plus tests for it. 2016-03-20 19:20:37 +01:00
debris
52e9801721 client implementation of transaction receipt 2016-03-20 18:44:57 +01:00
Arkadiy Paronyan
8a5aa354f2 Merge pull request #791 from ethcore/tracing
Comprehensive tests for tracing transactions
2016-03-20 18:44:24 +01:00
Gav Wood
c2933e005a Tests for not tracking builtin calls. 2016-03-20 17:51:22 +01:00
debris
2a3e695f8a LocalizedReceipt 2016-03-20 17:29:39 +01:00
Gav Wood
b4c2505eab Merge branch 'master' into tracing 2016-03-20 16:30:59 +01:00
Gav Wood
dcb23de65c Merge pull request #771 from ethcore/tx_queue_timeout
Disable preparing work package if miners don't ask for it.
2016-03-20 16:29:13 +01:00
Gav Wood
6ac350a996 Tests for lots more configurations. 2016-03-20 16:24:19 +01:00
arkpar
6e9ea76aab Auto detect available port 2016-03-20 16:21:49 +01:00
Marek Kotewicz
f1f421af76 Merge pull request #786 from ethcore/clitweak
Listen on all interfaces for JSONRPC by default.
2016-03-20 15:13:45 +01:00
Marek Kotewicz
fbb166f3ce Merge pull request #787 from ethcore/eth_estimateGas
eth_estimateGas
2016-03-20 15:13:22 +01:00
Tomasz Drwięga
ef10c6f637 Avoiding possible overflow when block number gets smaller. 2016-03-20 12:18:41 +01:00
Arkadiy Paronyan
f4df3860b0 Merge pull request #789 from ethcore/revert-782-test-fix
Revert "Auto detect available port"
2016-03-20 12:18:16 +01:00
Tomasz Drwięga
40fc3dc060 Merge branch 'master' into tx_queue_timeout 2016-03-20 12:16:57 +01:00
Arkadiy Paronyan
2ec40604d9 Revert "Auto detect available port" 2016-03-20 12:12:58 +01:00
Gav Wood
5afd32dd84 Minor tweaks. 2016-03-20 12:09:55 +01:00
Gav Wood
d2d5806e9b Test for failed create transactions, failed actions are logged as such. 2016-03-20 12:04:31 +01:00
debris
aa47d944e1 implemented rpc eth_estimateGas method, added tests for rpc eth_call and eth_estimateGas 2016-03-20 11:34:19 +01:00
Gav Wood
f75fb6a59f Create transaction tracing test. 2016-03-20 11:33:36 +01:00
debris
d15ce15751 Merge branch 'eth_call' into eth_estimateGas 2016-03-20 10:40:18 +01:00
debris
d536d20643 fixed indentation 2016-03-20 10:36:44 +01:00
Gav Wood
05a9c16329 JSONRPC interface defaults to local.
Please enter the commit message for your changes. Lines starting
2016-03-20 10:34:34 +01:00
debris
83d08ba399 Merge branch 'master' of github.com:ethcore/parity into eth_call 2016-03-20 10:29:43 +01:00
debris
7c6f0e472d implementation of eth_estimateGas 2016-03-20 10:29:30 +01:00
Marek Kotewicz
6feb503c67 Merge pull request #777 from ethcore/call
added output to execution result
2016-03-20 10:28:28 +01:00
Gav Wood
004cd00f13 Merge pull request #782 from ethcore/test-fix
Auto detect available port
2016-03-20 10:23:55 +01:00
Marek Kotewicz
865847f71d Merge pull request #785 from ethcore/author0x
Allow 0x prefix for --author.
2016-03-20 10:19:58 +01:00
Gav Wood
c611566a3e Listen on all interfaces for JSONRPC by default. 2016-03-20 10:19:21 +01:00
Marek Kotewicz
4396eaeebb Merge pull request #784 from ethcore/cargo_impr
updated dependencies, moved rpctest to its own submodule
2016-03-20 10:09:24 +01:00
debris
fef8237701 fixes after merge 2016-03-20 10:07:50 +01:00
debris
46bfed6750 Merge branch 'call' into eth_call 2016-03-20 10:05:22 +01:00
debris
9fb19e6dd0 Merge branch 'master' of github.com:ethcore/parity into call 2016-03-20 10:04:27 +01:00
Gav Wood
0cef2cfc46 Merge pull request #778 from ethcore/json_tests_refactor
use ethjson module to load chain json tests
2016-03-20 09:51:36 +01:00
Gav Wood
c729f9d9ca Merge pull request #772 from ethcore/tracing
Tracing implemented.
2016-03-19 23:52:23 +01:00
Gav Wood
387d0743e6 Allow 0x prefix for --author. 2016-03-19 23:51:24 +01:00
Marek Kotewicz
83b132ace2 Merge pull request #780 from ethcore/travis_ethjson
test ethjson module on travis
2016-03-19 23:32:16 +01:00
debris
b9623e6c5b improvements to build, updated dependencies, moved rpctest to its own submodule 2016-03-19 23:27:50 +01:00
Gav Wood
2cb1937e1e Move code to right module. 2016-03-19 22:37:11 +01:00
arkpar
cabccf9ef5 Test URL logged 2016-03-19 22:19:59 +01:00
Gav Wood
7bba745f8b Fix JSON test again. 2016-03-19 22:14:16 +01:00
Gav Wood
bc6a892f2b Test outer create. 2016-03-19 22:12:52 +01:00
debris
9a227dce46 Merge branch 'json_tests_refactor' into eth_call 2016-03-19 21:42:10 +01:00
debris
521f2a1433 implemented eth_call 2016-03-19 21:37:11 +01:00
Gav Wood
718feeccbc Fix for JSON tests. 2016-03-19 21:05:18 +01:00
Gav Wood
a2fc006ee5 First test. 2016-03-19 21:02:44 +01:00
arkpar
da027e93cf Auto detect available port 2016-03-19 21:00:05 +01:00
Gav Wood
2d55e08b41 Fix for jsontests, 2016-03-19 19:06:13 +01:00
Gav Wood
ab9b8c7bf3 Output data (code) for creates. 2016-03-19 18:46:41 +01:00
debris
40f20de7aa test ethjson module on travis 2016-03-19 18:46:28 +01:00
debris
24cb15ef2e fixed missing import 2016-03-19 18:38:02 +01:00
Gav Wood
7d93fa2533 Output stored for calls. 2016-03-19 18:37:55 +01:00
debris
2face3f938 use ethjson module to load chain json tests 2016-03-19 18:13:14 +01:00
Gav Wood
bd7cd68c32 Track depth. 2016-03-19 14:35:09 +01:00
debris
bc5df9c908 added output to execution result 2016-03-19 14:29:09 +01:00
Gav Wood
c837c3164a Merge pull request #775 from ethcore/rpc
batch of rpc fixes
2016-03-19 14:14:02 +01:00
Gav Wood
152f132b7b Fix JSONRPC test utils. 2016-03-19 14:10:32 +01:00
Gav Wood
66837452c2 Expose tracing all the way to BlockChain; now it's up to blockchain to integrate. 2016-03-19 13:37:47 +01:00
Gav Wood
203438fb42 Fix tests. 2016-03-19 13:07:49 +01:00
debris
693a3b0739 fixed failing eth rpc tests 2016-03-19 12:55:36 +01:00
Gav Wood
1bfcbca8af Add doumentation, make tracing optional and expose at OpenBlock level. 2016-03-19 12:54:34 +01:00
debris
e5c6579a8c next batch of rpc fixes, 103 still failing 2016-03-19 12:23:48 +01:00
debris
52dbcd8152 rpc tests, now 421 passing / 116 failing 2016-03-19 11:44:36 +01:00
debris
906e9b395e fixed parsing blockchain file, added default account to rpc tests 2016-03-19 11:02:44 +01:00
Tomasz Drwięga
48d8d1c628 Merge branch 'master' into tx_queue_timeout
Conflicts:
	miner/src/miner.rs
2016-03-19 09:26:05 +01:00
Gav Wood
1d822132f0 Merge pull request #757 from ethcore/ethrpc_test
rpctest executable
2016-03-19 08:45:13 +01:00
Gav Wood
d6f94c4ad7 Fix test and first part of optionality. 2016-03-19 08:31:19 +01:00
debris
a76aad2e12 fixed invalid json files 2016-03-18 23:56:51 +01:00
Gav Wood
d16558eb83 Merge pull request #753 from ethcore/tx_queue_live
Refactoring error transaction_queue error handling and `update_sealing` method.
2016-03-18 23:54:22 +01:00
Gav Wood
bd338a5741 Tracing implemented.
TODO:
- make it optional;
- track output;
- usher through to level higher than ExecutionResult.
2016-03-18 23:49:12 +01:00
debris
ef297dbec7 removed warnings by adding missing documentation 2016-03-18 22:57:26 +01:00
debris
79aa8570d0 pricing { linear: {} } 2016-03-18 22:54:36 +01:00
Tomasz Drwięga
48be70e4a8 Fixing ethminer doctest 2016-03-18 20:45:07 +01:00
debris
e4ec80941c fixed failing builin test 2016-03-18 20:17:25 +01:00
Tomasz Drwięga
f8dd1a6354 Merge branch 'master' into tx_queue_timeout
Conflicts:
	ethcore/src/client/test_client.rs
	miner/src/miner.rs
2016-03-18 19:36:32 +01:00
debris
839cecd2da fixed od builting parsing 2016-03-18 19:31:31 +01:00
Tomasz Drwięga
62c32eb288 Merge branch 'master' into tx_queue_live
Conflicts:
	miner/src/miner.rs
2016-03-18 19:31:14 +01:00
debris
1c9cc6167d updated rpc helpers docs 2016-03-18 19:16:46 +01:00
debris
3b8c6a1ab2 linear -> pricing 2016-03-18 19:08:57 +01:00
debris
79b8dd829d fixed compilation with --release flag 2016-03-18 18:16:22 +01:00
debris
ae3e6d7fe8 fixed name of rpctest executable in rpctest --help 2016-03-18 18:08:28 +01:00
debris
757f0c9bc4 Merge branch 'master' of github.com:ethcore/parity into ethrpc_test 2016-03-18 18:05:29 +01:00
Gav Wood
2309e19fd9 Merge pull request #760 from ethcore/tx_queue_gas_limit
Avoid importing transactions with gas above 1.1*block_gas_limit to transaction queue
2016-03-18 18:05:26 +01:00
Gav Wood
a1fb0619bb Merge pull request #752 from ethcore/tx_queue_invalid
Removing transactions that failed to be pushed to block.
2016-03-18 18:03:11 +01:00
Tomasz Drwięga
7d77324765 BlockGasLimit taken from push_transaction result 2016-03-18 14:22:50 +01:00
Tomasz Drwięga
0dc1ddef9a Flipping sealing_enabled flag after no requests for sealing_block for some time 2016-03-18 13:59:11 +01:00
Tomasz Drwięga
58bb5e967a Merge branch 'master' into tx_queue_gas_limit
Conflicts:
	miner/src/transaction_queue.rs
2016-03-18 12:25:36 +01:00
Gav Wood
4e97a0b868 Merge pull request #766 from ethcore/updating_clippy
Updating clippy
2016-03-18 12:16:03 +01:00
Tomasz Drwięga
7fb365634a Updating gas_limit in test_client generated blocks 2016-03-18 10:36:01 +01:00
Tomasz Drwięga
942d38fb13 Removing allow dead_code 2016-03-18 10:22:00 +01:00
Tomasz Drwięga
e58ec31e20 Fixing warnings 2016-03-18 10:14:19 +01:00
Tomasz Drwięga
338e5fadb9 Bumping clippy 2016-03-18 10:08:47 +01:00
Tomasz Drwięga
cee45e1a8e Merge branch 'master' into tx_queue_live
Conflicts:
	miner/src/miner.rs
2016-03-18 09:48:35 +01:00
Tomasz Drwięga
a6bd15d333 Fixing compilation 2016-03-18 09:46:13 +01:00
Tomasz Drwięga
48c72a168c Merge branch 'master' into tx_queue_invalid 2016-03-18 09:44:31 +01:00
debris
3e6d0602ea running rpc tests 2016-03-17 23:58:30 +01:00
Arkadiy Paronyan
0d77937caf Merge pull request #754 from ethcore/tx_queue_all
Attempting to add all transactions to mined block
2016-03-17 20:02:54 +01:00
Gav Wood
4da8ede826 Merge pull request #761 from ethcore/ver-fix
Prettier version w/o git dir; Use rustc compile time version
2016-03-17 19:32:42 +01:00
arkpar
a61d1d8d51 Indent 2016-03-17 18:43:01 +01:00
arkpar
b1793fcb16 Prettier version wo git dir; Use rustc compile time version 2016-03-17 18:41:55 +01:00
Tomasz Drwięga
2dc314f993 Removing update_seal when new transactions arrives 2016-03-17 18:30:26 +01:00
Tomasz Drwięga
7ae60056b2 Common error handling 2016-03-17 16:13:00 +01:00
debris
a3f6d36018 Merge branch 'master' of github.com:ethcore/parity into ethrpc_test 2016-03-17 15:52:09 +01:00
debris
c695b83e52 new way of loading PodState 2016-03-17 15:51:40 +01:00
Gav Wood
3fb180973b Merge pull request #751 from ethcore/tq-stop-sync
Stop adding transactions to queue while not fully synced
2016-03-17 15:47:06 +01:00
Tomasz Drwięga
fece330ca4 Refactoring removing invalid transactions from queue 2016-03-17 15:30:03 +01:00
Tomasz Drwięga
309af743e0 Ignoring transactions slightly above gas_limit 2016-03-17 15:23:25 +01:00
debris
1f03ae54d6 moved ethcores spec to its own module, added genesis 2016-03-17 15:15:10 +01:00
Nikolay Volf
85b08e6e7b get rid of the function 2016-03-17 15:09:08 +01:00
Nikolay Volf
7929af67c8 propagation is out 2016-03-17 15:02:18 +01:00
Nikolay Volf
0f96ce9bd2 no flag also 2016-03-17 14:56:19 +01:00
Tomasz Drwięga
c4021a77ca Stop adding transactions right after we know that no other will make it to block. 2016-03-17 14:40:40 +01:00
Nikolay Volf
0b35a36cb0 Merge branch 'master' into tq-stop-sync
Conflicts:
	sync/src/chain.rs
2016-03-17 14:19:12 +01:00
Nikolay Volf
a285fbab6d overhaul to flag 2016-03-17 14:11:32 +01:00
debris
0f889d4222 added genesis method to ethjson blockchain 2016-03-17 14:03:53 +01:00
Tomasz Drwięga
dec69651fd Attempting to add all transactions to mined block 2016-03-17 13:41:30 +01:00
debris
0621da8535 ethjson spec submodule 2016-03-17 13:41:11 +01:00
Tomasz Drwięga
833c5fdd31 Merge branch 'master' into tx_queue_live
Conflicts:
	sync/src/chain.rs
2016-03-17 13:35:01 +01:00
Gav Wood
a76eb022d0 Merge pull request #746 from ethcore/tx_queue
Verify sender's balance before importing transaction to queue
2016-03-17 13:32:48 +01:00
Gav Wood
c88601a376 Merge pull request #750 from ethcore/tx_block_pending
Returning number of transactions pending in block not queue
2016-03-17 13:21:06 +01:00
Tomasz Drwięga
caedb64ade Adding missing space 2016-03-17 13:18:26 +01:00
Nikolay Volf
83f5cc6aa6 adding helper can_sync 2016-03-17 13:14:06 +01:00
Tomasz Drwięga
e1c3ab1846 Renaming status fields to something more descriptive. 2016-03-17 13:07:34 +01:00
Tomasz Drwięga
b684bc9ba0 Updating sealing when new transactions are received 2016-03-17 12:52:26 +01:00
Arkadiy Paronyan
cd26ccba6b Merge pull request #733 from ethcore/build_speedup
Speeding up build
2016-03-17 12:47:29 +01:00
Tomasz Drwięga
c382fa7eab Removing invalid transactions from queue 2016-03-17 12:29:55 +01:00
Nikolay Volf
5c4edbdd6b Merge branch 'master' into tq-stop-sync 2016-03-17 12:25:14 +01:00
Arkadiy Paronyan
de484b2495 Merge pull request #742 from ethcore/mining-stop-sync
adding check for a sync when giving work to miner
2016-03-17 12:23:43 +01:00
Tomasz Drwięga
7247f9e27f Fixing doctest 2016-03-17 12:23:15 +01:00
Nikolay Volf
03ca9d2c06 adding message from client to sync and disabling sending transactions to the queue while syncing 2016-03-17 12:17:53 +01:00
debris
f92a0c8df2 rpctest executable 2016-03-17 11:50:31 +01:00
Tomasz Drwięga
bc04e0c713 Adding missing commas 2016-03-17 11:49:56 +01:00
Tomasz Drwięga
b1557b547b Reverting check if block queue is empty 2016-03-17 11:47:41 +01:00
Tomasz Drwięga
0e7778a7b7 Increasing balance in tests 2016-03-17 11:27:38 +01:00
Gav Wood
4050462ad4 Update sync_provider.rs 2016-03-17 11:23:30 +01:00
Gav Wood
22bc9f6458 Merge pull request #745 from ethcore/ethjson
json deserialization module
2016-03-17 11:21:29 +01:00
Tomasz Drwięga
884f2dd873 Returning number of transactions pending in block not queue 2016-03-17 11:19:12 +01:00
debris
5e44769f82 Merge branch 'ethjson' into ethrpc_test 2016-03-17 10:56:30 +01:00
Tomasz Drwięga
95dda4aa68 Full transaction cost 2016-03-17 10:44:10 +01:00
Tomasz Drwięga
81c36499ea Fixing sync test 2016-03-17 10:20:35 +01:00
Tomasz Drwięga
10c309fccb Merge branch 'master' into tx_queue 2016-03-17 10:20:21 +01:00
Arkadiy Paronyan
c0da47db9c Merge pull request #749 from ethcore/arkpar-patch-1
Update install-parity.sh
2016-03-17 10:08:30 +01:00
Arkadiy Paronyan
5cd3eaa111 Update install-parity.sh 2016-03-17 09:54:05 +01:00
Gav Wood
ecfcc4f3b6 Merge pull request #747 from ethcore/sync
Restart sync on getting old unknown header
2016-03-16 20:32:10 +01:00
arkpar
b9584b7ec9 restart sync on getting old unknown header 2016-03-16 18:25:32 +01:00
Tomasz Drwięga
0925968840 Adding test 2016-03-16 17:22:23 +01:00
Tomasz Drwięga
8741a85443 Fixing build 2016-03-16 16:56:36 +01:00
Tomasz Drwięga
d54c95da9d Removing unused import 2016-03-16 10:48:31 +01:00
Tomasz Drwięga
fdba8de600 Validating senders balance before importing transaction to queue 2016-03-16 10:45:55 +01:00
Nikolay Volf
bd892026f6 tests 2016-03-16 10:37:08 +01:00
Tomasz Drwięga
be32e79a7a Merge branch 'master' into tx_queue 2016-03-16 09:28:37 +01:00
Nikolay Volf
8427e99c73 checking queue also 2016-03-15 23:58:46 +01:00
Tomasz Drwięga
974222aabd Removing printlns 2016-03-15 23:13:53 +01:00
Tomasz Drwięga
188e325b20 Importing transactions from hashset. Notifying about every block 2016-03-15 23:01:36 +01:00
Gav Wood
5a96f99a8c Merge pull request #744 from ethcore/sync
Missing return for #737
2016-03-15 19:43:05 +01:00
debris
196c6e8ecc tests for loading test json files 2016-03-15 19:32:07 +01:00
debris
b4849d1c58 finished blockchain test deserialization 2016-03-15 18:42:23 +01:00
debris
d96858d38c proper blockchain json parsing 2016-03-15 18:17:48 +01:00
Nikolay Volf
99bae23996 [ci skip] grammar fix 2016-03-15 17:56:35 +01:00
Nikolay Volf
ab4bfbac0d adding check for a sync 2016-03-15 17:13:44 +01:00
Tomasz Drwięga
d57b0177a7 Disabling benches and beta tests 2016-03-15 15:55:37 +01:00
Tomasz Drwięga
74245be4f5 Enabling fast finish 2016-03-15 15:09:12 +01:00
Tomasz Drwięga
c970d7f80e Merge branch 'master' into build_speedup
Conflicts:
	.travis.yml
2016-03-15 14:48:19 +01:00
Tomasz Drwięga
7045e9f2f7 More cleaning 2016-03-15 11:05:31 +01:00
Tomasz Drwięga
2cecb1eada Cleaning 2016-03-15 11:04:48 +01:00
Tomasz Drwięga
26dd67ebeb Speeding up build 2016-03-15 10:57:09 +01:00
Tomusdrw
22e2458ce5 Adding rustfmt_skip and fixing couple of places that have troubles after formatting. 2016-02-16 11:01:04 +01:00
Tomusdrw
771bcb5bda Adding formatting script 2016-02-16 10:57:58 +01:00
Tomusdrw
f0ef6ed016 If-else in single line 2016-02-16 10:57:52 +01:00
2489 changed files with 299541 additions and 31905 deletions

View File

@@ -9,3 +9,8 @@ trim_trailing_whitespace=true
max_line_length=120
insert_final_newline=true
[.travis.yml]
indent_style=space
indent_size=2
tab_width=8
end_of_line=lf

7
.gitignore vendored
View File

@@ -19,6 +19,9 @@
# mac stuff
.DS_Store
# npm stuff
npm-debug.log
# gdb files
.gdb_history
@@ -30,3 +33,7 @@
# Build artifacts
out/
.vscode
/parity.*

649
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,649 @@
stages:
- test
- js-build
- push-release
- build
variables:
GIT_DEPTH: "3"
SIMPLECOV: "true"
RUST_BACKTRACE: "1"
RUSTFLAGS: ""
CARGOFLAGS: ""
cache:
key: "$CI_BUILD_STAGE/$CI_BUILD_REF_NAME"
untracked: true
linux-stable:
stage: build
image: parity/rust:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- cargo build -j $(nproc) --release --features final $CARGOFLAGS
- cargo build -j $(nproc) --release -p evmbin
- cargo build -j $(nproc) --release -p ethstore
- cargo build -j $(nproc) --release -p ethkey
- strip target/release/parity
- strip target/release/parity-evm
- strip target/release/ethstore
- strip target/release/ethkey
- export SHA3=$(target/release/parity tools hash target/release/parity)
- md5sum target/release/parity > parity.md5
- sh scripts/deb-build.sh amd64
- cp target/release/parity deb/usr/bin/parity
- cp target/release/parity-evm deb/usr/bin/parity-evm
- cp target/release/ethstore deb/usr/bin/ethstore
- cp target/release/ethkey deb/usr/bin/ethkey
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- dpkg-deb -b deb "parity_"$VER"_amd64.deb"
- md5sum "parity_"$VER"_amd64.deb" > "parity_"$VER"_amd64.deb.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/parity --body target/release/parity
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/parity.md5 --body parity.md5
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/"parity_"$VER"_amd64.deb" --body "parity_"$VER"_amd64.deb"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/"parity_"$VER"_amd64.deb.md5" --body "parity_"$VER"_amd64.deb.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu
tags:
- rust
- rust-stable
artifacts:
paths:
- target/release/parity
- target/release/parity-evm
- target/release/ethstore
- target/release/ethkey
name: "stable-x86_64-unknown-linux-gnu_parity"
linux-snap:
stage: build
image: parity/snapcraft:gitlab-ci
only:
- snap
- beta
- tags
- triggers
script:
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- cd scripts
- rm -rf *snap
- sed -i 's/master/'"$VER"'/g' snapcraft.yaml
- echo "Version:"$VER
- snapcraft
- ls
- cp parity_beta_amd64.snap parity_"$VER"_amd64.snap
- md5sum "parity_"$VER"_amd64.snap" > "parity_"$VER"_amd64.snap.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/"parity_"$VER"_amd64.snap" --body "parity_"$VER"_amd64.snap"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu/"parity_"$VER"_amd64.snap.md5" --body "parity_"$VER"_amd64.snap.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-linux-gnu
tags:
- rust
- rust-stable
artifacts:
paths:
- scripts/parity_*_amd64.snap
name: "stable-x86_64-unknown-snap-gnu_parity"
linux-stable-debian:
stage: build
image: parity/rust-debian:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- cargo build -j $(nproc) --release --features final $CARGOFLAGS
- cargo build -j $(nproc) --release -p evmbin
- cargo build -j $(nproc) --release -p ethstore
- cargo build -j $(nproc) --release -p ethkey
- strip target/release/parity
- strip target/release/parity-evm
- strip target/release/ethstore
- strip target/release/ethkey
- export SHA3=$(target/release/parity tools hash target/release/parity)
- md5sum target/release/parity > parity.md5
- sh scripts/deb-build.sh amd64
- cp target/release/parity deb/usr/bin/parity
- cp target/release/parity-evm deb/usr/bin/parity-evm
- cp target/release/ethstore deb/usr/bin/ethstore
- cp target/release/ethkey deb/usr/bin/ethkey
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- dpkg-deb -b deb "parity_"$VER"_amd64.deb"
- md5sum "parity_"$VER"_amd64.deb" > "parity_"$VER"_amd64.deb.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu/parity --body target/release/parity
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu/parity.md5 --body parity.md5
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu/"parity_"$VER"_amd64.deb" --body "parity_"$VER"_amd64.deb"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu/"parity_"$VER"_amd64.deb.md5" --body "parity_"$VER"_amd64.deb.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/x86_64-unknown-debian-gnu
tags:
- rust
- rust-debian
artifacts:
paths:
- target/release/parity
name: "stable-x86_64-unknown-debian-gnu_parity"
linux-beta:
stage: build
image: parity/rust:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- cargo build -j $(nproc) --release $CARGOFLAGS
- strip target/release/parity
tags:
- rust
- rust-beta
artifacts:
paths:
- target/release/parity
name: "beta-x86_64-unknown-linux-gnu_parity"
allow_failure: true
linux-nightly:
stage: build
image: parity/rust:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- cargo build -j $(nproc) --release $CARGOFLAGS
- strip target/release/parity
tags:
- rust
- rust-nightly
artifacts:
paths:
- target/release/parity
name: "nigthly-x86_64-unknown-linux-gnu_parity"
allow_failure: true
linux-centos:
stage: build
image: parity/rust-centos:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- export CXX="g++"
- export CC="gcc"
- export PLATFORM=x86_64-unknown-centos-gnu
- cargo build -j $(nproc) --release --features final $CARGOFLAGS
- strip target/release/parity
- md5sum target/release/parity > parity.md5
- export SHA3=$(target/release/parity tools hash target/release/parity)
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu
- aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/parity --body target/release/parity
- aws s3api put-object --bucket builds-parity --key $CI_BUILD_REF_NAME/x86_64-unknown-centos-gnu/parity.md5 --body parity.md5
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- rust
- rust-centos
artifacts:
paths:
- target/release/parity
name: "x86_64-unknown-centos-gnu_parity"
linux-i686:
stage: build
image: parity/rust-i686:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- export HOST_CC=gcc
- export HOST_CXX=g++
- export COMMIT=$(git rev-parse HEAD)
- export PLATFORM=i686-unknown-linux-gnu
- cargo build -j $(nproc) --target i686-unknown-linux-gnu --features final --release $CARGOFLAGS
- strip target/$PLATFORM/release/parity
- md5sum target/$PLATFORM/release/parity > parity.md5
- export SHA3=$(target/$PLATFORM/release/parity tools hash target/$PLATFORM/release/parity)
- sh scripts/deb-build.sh i386
- cp target/$PLATFORM/release/parity deb/usr/bin/parity
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- dpkg-deb -b deb "parity_"$VER"_i386.deb"
- md5sum "parity_"$VER"_i386.deb" > "parity_"$VER"_i386.deb.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/$PLATFORM/release/parity
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_i386.deb" --body "parity_"$VER"_i386.deb"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_i386.deb.md5" --body "parity_"$VER"_i386.deb.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- rust
- rust-i686
artifacts:
paths:
- target/i686-unknown-linux-gnu/release/parity
name: "i686-unknown-linux-gnu"
allow_failure: true
linux-armv7:
stage: build
image: parity/rust-armv7:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- export CC=arm-linux-gnueabihf-gcc
- export CXX=arm-linux-gnueabihf-g++
- export HOST_CC=gcc
- export HOST_CXX=g++
- export PLATFORM=armv7-unknown-linux-gnueabihf
- rm -rf .cargo
- mkdir -p .cargo
- echo "[target.$PLATFORM]" >> .cargo/config
- echo "linker= \"arm-linux-gnueabihf-gcc\"" >> .cargo/config
- cat .cargo/config
- cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS
- arm-linux-gnueabihf-strip target/$PLATFORM/release/parity
- export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h)
- md5sum target/$PLATFORM/release/parity > parity.md5
- sh scripts/deb-build.sh armhf
- cp target/$PLATFORM/release/parity deb/usr/bin/parity
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- dpkg-deb -b deb "parity_"$VER"_armhf.deb"
- md5sum "parity_"$VER"_armhf.deb" > "parity_"$VER"_armhf.deb.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/$PLATFORM/release/parity
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_armhf.deb" --body "parity_"$VER"_armhf.deb"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_armhf.deb.md5" --body "parity_"$VER"_armhf.deb.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- rust
- rust-arm
artifacts:
paths:
- target/armv7-unknown-linux-gnueabihf/release/parity
name: "armv7_unknown_linux_gnueabihf_parity"
allow_failure: true
linux-arm:
stage: build
image: parity/rust-arm:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- export CC=arm-linux-gnueabihf-gcc
- export CXX=arm-linux-gnueabihf-g++
- export HOST_CC=gcc
- export HOST_CXX=g++
- export PLATFORM=arm-unknown-linux-gnueabihf
- rm -rf .cargo
- mkdir -p .cargo
- echo "[target.$PLATFORM]" >> .cargo/config
- echo "linker= \"arm-linux-gnueabihf-gcc\"" >> .cargo/config
- cat .cargo/config
- cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS
- arm-linux-gnueabihf-strip target/$PLATFORM/release/parity
- export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h)
- md5sum target/$PLATFORM/release/parity > parity.md5
- sh scripts/deb-build.sh armhf
- cp target/$PLATFORM/release/parity deb/usr/bin/parity
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- dpkg-deb -b deb "parity_"$VER"_armhf.deb"
- md5sum "parity_"$VER"_armhf.deb" > "parity_"$VER"_armhf.deb.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/$PLATFORM/release/parity
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_armhf.deb" --body "parity_"$VER"_armhf.deb"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_armhf.deb.md5" --body "parity_"$VER"_armhf.deb.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- rust
- rust-arm
artifacts:
paths:
- target/arm-unknown-linux-gnueabihf/release/parity
name: "arm-unknown-linux-gnueabihf_parity"
allow_failure: true
linux-armv6:
stage: build
image: parity/rust-armv6:gitlab-ci
only:
# - beta
# - tags
# - stable
- triggers
script:
- export CC=arm-linux-gnueabi-gcc
- export CXX=arm-linux-gnueabi-g++
- export HOST_CC=gcc
- export HOST_CXX=g++
- export PLATFORM=arm-unknown-linux-gnueabi
- rm -rf .cargo
- mkdir -p .cargo
- echo "[target.$PLATFORM]" >> .cargo/config
- echo "linker= \"arm-linux-gnueabi-gcc\"" >> .cargo/config
- cat .cargo/config
- cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS
- arm-linux-gnueabi-strip target/$PLATFORM/release/parity
- export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h)
- md5sum target/$PLATFORM/release/parity > parity.md5
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/$PLATFORM/release/parity
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- rust
- rust-arm
artifacts:
paths:
- target/arm-unknown-linux-gnueabi/release/parity
name: "arm-unknown-linux-gnueabi_parity"
allow_failure: true
linux-aarch64:
stage: build
image: parity/rust-arm64:gitlab-ci
only:
- beta
- tags
- stable
- triggers
script:
- export CC=aarch64-linux-gnu-gcc
- export CXX=aarch64-linux-gnu-g++
- export HOST_CC=gcc
- export HOST_CXX=g++
- export PLATFORM=aarch64-unknown-linux-gnu
- rm -rf .cargo
- mkdir -p .cargo
- echo "[target.$PLATFORM]" >> .cargo/config
- echo "linker= \"aarch64-linux-gnu-gcc\"" >> .cargo/config
- cat .cargo/config
- cargo build -j $(nproc) --target $PLATFORM --features final --release $CARGOFLAGS
- aarch64-linux-gnu-strip target/$PLATFORM/release/parity
- export SHA3=$(rhash --sha3-256 ~/Core/parity/target/release/parity -p %h)
- md5sum target/$PLATFORM/release/parity > parity.md5
- sh scripts/deb-build.sh arm64
- cp target/$PLATFORM/release/parity deb/usr/bin/parity
- export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
- dpkg-deb -b deb "parity_"$VER"_arm64.deb"
- md5sum "parity_"$VER"_arm64.deb" > "parity_"$VER"_arm64.deb.md5"
- aws configure set aws_access_key_id $s3_key
- aws configure set aws_secret_access_key $s3_secret
- if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
- aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_arm64.deb" --body "parity_"$VER"_arm64.deb"
- aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity_"$VER"_arm64.deb.md5" --body "parity_"$VER"_arm64.deb.md5"
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
- curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- rust
- rust-arm
artifacts:
paths:
- target/aarch64-unknown-linux-gnu/release/parity
name: "aarch64-unknown-linux-gnu_parity"
allow_failure: true
darwin:
stage: build
only:
- beta
- tags
- stable
- triggers
script: |
export COMMIT=$(git rev-parse HEAD)
export PLATFORM=x86_64-apple-darwin
cargo build -j 8 --features final --release #$CARGOFLAGS
cargo build -j 8 --features final --release -p ethstore #$CARGOFLAGS
rm -rf parity.md5
md5sum target/release/parity > parity.md5
export SHA3=$(target/release/parity tools hash target/release/parity)
cd mac
xcodebuild -configuration Release
cd ..
packagesbuild -v mac/Parity.pkgproj
productsign --sign 'Developer ID Installer: PARITY TECHNOLOGIES LIMITED (P2PX3JU8FT)' target/release/Parity\ Ethereum.pkg target/release/Parity\ Ethereum-signed.pkg
export VER=$(grep -m 1 version Cargo.toml | awk '{print $3}' | tr -d '"' | tr -d "\n")
mv target/release/Parity\ Ethereum-signed.pkg "parity-"$VER"-osx-installer.pkg"
md5sum "parity-"$VER"-osx-installer.pkg" >> "parity-"$VER"-osx-installer.pkg.md5"
aws configure set aws_access_key_id $s3_key
aws configure set aws_secret_access_key $s3_secret
if [[ $CI_BUILD_REF_NAME =~ ^(master|beta|stable|nightly)$ ]]; then export S3_BUCKET=builds-parity-published; else export S3_BUCKET=builds-parity; fi
aws s3 rm --recursive s3://$S3_BUCKET/$CI_BUILD_REF_NAME/$PLATFORM
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity --body target/release/parity
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/parity.md5 --body parity.md5
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-osx-installer.pkg" --body "parity-"$VER"-osx-installer.pkg"
aws s3api put-object --bucket $S3_BUCKET --key $CI_BUILD_REF_NAME/$PLATFORM/"parity-"$VER"-osx-installer.pkg.md5" --body "parity-"$VER"-osx-installer.pkg.md5"
curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1337/push-build/$CI_BUILD_REF_NAME/$PLATFORM
curl --data "commit=$CI_BUILD_REF&sha3=$SHA3&filename=parity&secret=$RELEASES_SECRET" http://update.parity.io:1338/push-build/$CI_BUILD_REF_NAME/$PLATFORM
tags:
- osx
artifacts:
paths:
- target/release/parity
name: "x86_64-apple-darwin_parity"
windows:
cache:
key: "%CI_BUILD_STAGE%/%CI_BUILD_REF_NAME%"
untracked: true
stage: build
only:
- beta
- tags
- stable
- triggers
script:
- set PLATFORM=x86_64-pc-windows-msvc
- set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include;C:\vs2015\VC\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
- set LIB=C:\vs2015\VC\lib;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64
- set RUST_BACKTRACE=1
- set RUSTFLAGS=%RUSTFLAGS%
- rustup default stable-x86_64-pc-windows-msvc
- cargo build --features final --release #%CARGOFLAGS%
- signtool sign /f %keyfile% /p %certpass% target\release\parity.exe
- target\release\parity.exe tools hash target\release\parity.exe > parity.sha3
- set /P SHA3=<parity.sha3
- curl -sL --url "https://github.com/ethcore/win-build/raw/master/SimpleFC.dll" -o nsis\SimpleFC.dll
- curl -sL --url "https://github.com/ethcore/win-build/raw/master/vc_redist.x64.exe" -o nsis\vc_redist.x64.exe
- msbuild windows\ptray\ptray.vcxproj /p:Platform=x64 /p:Configuration=Release
- signtool sign /f %keyfile% /p %certpass% windows\ptray\x64\release\ptray.exe
- cd nsis
- makensis.exe installer.nsi
- copy installer.exe InstallParity.exe
- signtool sign /f %keyfile% /p %certpass% InstallParity.exe
- md5sums InstallParity.exe > InstallParity.exe.md5
- zip win-installer.zip InstallParity.exe InstallParity.exe.md5
- md5sums win-installer.zip > win-installer.zip.md5
- cd ..\target\release\
- md5sums parity.exe > parity.exe.md5
- zip parity.zip parity.exe parity.md5
- md5sums parity.zip > parity.zip.md5
- cd ..\..
- aws configure set aws_access_key_id %s3_key%
- aws configure set aws_secret_access_key %s3_secret%
- echo %CI_BUILD_REF_NAME%
- echo %CI_BUILD_REF_NAME% | findstr /R "master" >nul 2>&1 && set S3_BUCKET=builds-parity-published|| set S3_BUCKET=builds-parity
- echo %CI_BUILD_REF_NAME% | findstr /R "beta" >nul 2>&1 && set S3_BUCKET=builds-parity-published|| set S3_BUCKET=builds-parity
- echo %CI_BUILD_REF_NAME% | findstr /R "stable" >nul 2>&1 && set S3_BUCKET=builds-parity-published|| set S3_BUCKET=builds-parity
- echo %CI_BUILD_REF_NAME% | findstr /R "nightly" >nul 2>&1 && set S3_BUCKET=builds-parity-published|| set S3_BUCKET=builds-parity
- echo %S3_BUCKET%
- aws s3 rm --recursive s3://%S3_BUCKET%/%CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/parity.exe --body target\release\parity.exe
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/parity.exe.md5 --body target\release\parity.exe.md5
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/parity.zip --body target\release\parity.zip
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/parity.zip.md5 --body target\release\parity.zip.md5
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/InstallParity.exe --body nsis\InstallParity.exe
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/InstallParity.exe.md5 --body nsis\InstallParity.exe.md5
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/win-installer.zip --body nsis\win-installer.zip
- aws s3api put-object --bucket %S3_BUCKET% --key %CI_BUILD_REF_NAME%/x86_64-pc-windows-msvc/win-installer.zip.md5 --body nsis\win-installer.zip.md5
- curl --data "commit=%CI_BUILD_REF%&sha3=%SHA3%&filename=parity.exe&secret=%RELEASES_SECRET%" http://update.parity.io:1337/push-build/%CI_BUILD_REF_NAME%/%PLATFORM%
- curl --data "commit=%CI_BUILD_REF%&sha3=%SHA3%&filename=parity.exe&secret=%RELEASES_SECRET%" http://update.parity.io:1338/push-build/%CI_BUILD_REF_NAME%/%PLATFORM%
tags:
- rust-windows
artifacts:
paths:
- target/release/parity.exe
- nsis/InstallParity.exe
name: "x86_64-pc-windows-msvc_parity"
docker-build:
stage: build
only:
- tags
- triggers
before_script:
- docker info
script:
- if [ "$CI_BUILD_REF_NAME" == "beta-release" ]; then DOCKER_TAG="latest"; else DOCKER_TAG=$CI_BUILD_REF_NAME; fi
- docker login -u $Docker_Hub_User -p $Docker_Hub_Pass
- sh scripts/docker-build.sh $DOCKER_TAG
- docker logout
- docker login -u $Docker_Hub_User_Parity -p $Docker_Hub_Pass_Parity
- sh scripts/docker-build.sh $DOCKER_TAG
- docker logout
tags:
- docker
test-darwin:
stage: test
only:
- triggers
before_script:
- git submodule update --init --recursive
- export RUST_FILES_MODIFIED=$(git --no-pager diff --name-only $CI_BUILD_REF^ $CI_BUILD_REF | grep -v -e ^js -e ^\\. -e ^LICENSE -e ^README.md -e ^appveyor.yml -e ^test.sh -e ^windows/ -e ^scripts/ -e^mac/ -e ^nsis/ | wc -l)
script:
- export RUST_BACKTRACE=1
- if [ $RUST_FILES_MODIFIED -eq 0 ]; then echo "Skipping Rust tests since no Rust files modified."; else ./test.sh $CARGOFLAGS; fi
tags:
- osx
allow_failure: true
test-windows:
stage: test
only:
- triggers
before_script:
- git submodule update --init --recursive
script:
- set RUST_BACKTRACE=1
- echo cargo test --features json-tests -p rlp -p ethash -p ethcore -p ethcore-bigint -p ethcore-dapps -p ethcore-rpc -p ethcore-signer -p ethcore-util -p ethcore-network -p ethcore-io -p ethkey -p ethstore -p ethsync -p ethcore-ipc -p ethcore-ipc-tests -p ethcore-ipc-nano -p parity %CARGOFLAGS% --verbose --release
tags:
- rust-windows
allow_failure: true
test-rust-stable:
stage: test
image: parity/rust:gitlab-ci
before_script:
- git submodule update --init --recursive
- export RUST_FILES_MODIFIED=$(git --no-pager diff --name-only $CI_BUILD_REF^ $CI_BUILD_REF | grep -v -e ^js -e ^\\. -e ^LICENSE -e ^README.md -e ^appveyor.yml -e ^test.sh -e ^windows/ -e ^scripts/ -e^mac/ -e ^nsis/ | wc -l)
script:
- export RUST_BACKTRACE=1
- if [ $RUST_FILES_MODIFIED -eq 0 ]; then echo "Skipping Rust tests since no Rust files modified."; else ./test.sh $CARGOFLAGS; fi
tags:
- rust
- rust-stable
js-test:
stage: test
image: parity/rust:gitlab-ci
before_script:
- git submodule update --init --recursive
- export JS_FILES_MODIFIED=$(git --no-pager diff --name-only $CI_BUILD_REF^ $CI_BUILD_REF | grep ^js/ | wc -l)
- if [ $JS_FILES_MODIFIED -eq 0 ]; then echo "Skipping JS deps install since no JS files modified."; else ./js/scripts/install-deps.sh;fi
script:
- if [ $JS_FILES_MODIFIED -eq 0 ]; then echo "Skipping JS lint since no JS files modified."; else ./js/scripts/lint.sh && ./js/scripts/test.sh && ./js/scripts/build.sh; fi
tags:
- rust
- rust-stable
test-rust-beta:
stage: test
only:
- triggers
image: parity/rust:gitlab-ci
before_script:
- git submodule update --init --recursive
- export RUST_FILES_MODIFIED=$(git --no-pager diff --name-only $CI_BUILD_REF^ $CI_BUILD_REF | grep -v -e ^js -e ^\\. -e ^LICENSE -e ^README.md -e ^appveyor.yml -e ^test.sh -e ^windows/ -e ^scripts/ -e^mac/ -e ^nsis/ | wc -l)
script:
- rustup default beta
- export RUST_BACKTRACE=1
- if [ $RUST_FILES_MODIFIED -eq 0 ]; then echo "Skipping Rust tests since no Rust files modified."; else ./test.sh $CARGOFLAGS; fi
tags:
- rust
- rust-beta
allow_failure: true
test-rust-nightly:
stage: test
only:
- triggers
image: parity/rust:gitlab-ci
before_script:
- git submodule update --init --recursive
- export RUST_FILES_MODIFIED=$(git --no-pager diff --name-only $CI_BUILD_REF^ $CI_BUILD_REF | grep -v -e ^js -e ^\\. -e ^LICENSE -e ^README.md -e ^appveyor.yml -e ^test.sh -e ^windows/ -e ^scripts/ -e^mac/ -e ^nsis/ | wc -l)
script:
- rustup default nightly
- export RUST_BACKTRACE=1
- if [ $RUST_FILES_MODIFIED -eq 0 ]; then echo "Skipping Rust tests since no Rust files modified."; else ./test.sh $CARGOFLAGS; fi
tags:
- rust
- rust-nightly
allow_failure: true
js-release:
stage: js-build
only:
- master
- beta
- stable
- tags
image: parity/rust:gitlab-ci
before_script:
- export JS_FILES_MODIFIED=$(git --no-pager diff --name-only $CI_BUILD_REF^ $CI_BUILD_REF | grep ^js/ | wc -l)
- echo $JS_FILES_MODIFIED
- if [ $JS_FILES_MODIFIED -eq 0 ]; then echo "Skipping JS deps install since no JS files modified."; else ./js/scripts/install-deps.sh;fi
script:
- echo $JS_FILES_MODIFIED
- if [ $JS_FILES_MODIFIED -eq 0 ]; then echo "Skipping JS rebuild since no JS files modified."; else ./js/scripts/build.sh && ./js/scripts/release.sh; fi
tags:
- javascript
push-release:
stage: push-release
only:
- tags
image: parity/rust:gitlab-ci
script:
- curl --data "secret=$RELEASES_SECRET" http://update.parity.io:1337/push-release/$CI_BUILD_REF_NAME/$CI_BUILD_REF
- curl --data "secret=$RELEASES_SECRET" http://update.parity.io:1338/push-release/$CI_BUILD_REF_NAME/$CI_BUILD_REF
tags:
- curl

View File

@@ -1,76 +0,0 @@
sudo: required
dist: trusty
language: rust
branches:
only:
- master
- /^beta-.*$/
- /^stable-.*$/
- /^beta$/
- /^stable$/
matrix:
fast_finish: false
allow_failures:
- rust: nightly
include:
- rust: stable
env: FEATURES="--features travis-beta" KCOV_FEATURES="" TARGETS="-p ethash -p ethcore-util -p ethcore -p ethsync -p ethcore-rpc -p parity -p ethminer" ARCHIVE_SUFFIX="-${TRAVIS_OS_NAME}-${TRAVIS_TAG}"
cache:
apt: true
directories:
- target/debug/deps
- target/debug/build
- target/release/deps
- target/release/build
- $HOME/.cargo
addons:
apt:
packages:
- libcurl4-openssl-dev
- libelf-dev
- libdw-dev
script:
- cargo build --release --verbose ${FEATURES}
- cargo test --release --verbose ${FEATURES} ${TARGETS}
#- cargo bench --no-run ${FEATURES} ${TARGETS}
- tar cvzf parity${ARCHIVE_SUFFIX}.tar.gz -C target/release parity
after_success: |
wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
tar xzf master.tar.gz && mkdir kcov-master/build && cd kcov-master/build && cmake .. && make && make install DESTDIR=../tmp && cd ../.. &&
cargo test --no-run ${KCOV_FEATURES} ${TARGETS} &&
./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests target/kcov target/debug/deps/ethcore_util-* &&
./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests target/kcov target/debug/deps/ethash-* &&
./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests target/kcov target/debug/deps/ethcore-* &&
./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests target/kcov target/debug/deps/ethsync-* &&
./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests target/kcov target/debug/deps/ethcore_rpc-* &&
./kcov-master/tmp/usr/local/bin/kcov --exclude-pattern /usr/,/.cargo,/root/.multirust,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests target/kcov target/debug/deps/ethminer-* &&
./kcov-master/tmp/usr/local/bin/kcov --coveralls-id=${TRAVIS_JOB_ID} --exclude-pattern /usr/,/.cargo,/root/.multirust target/kcov target/debug/parity-* &&
[ $TRAVIS_BRANCH = master ] &&
[ $TRAVIS_PULL_REQUEST = false ] &&
[ $TRAVIS_RUST_VERSION = stable ] &&
cargo doc --no-deps --verbose ${KCOV_FEATURES} ${TARGETS} &&
echo '<meta http-equiv=refresh content=0;url=ethcore/index.html>' > target/doc/index.html &&
pip install --user ghp-import &&
/home/travis/.local/bin/ghp-import -n target/doc &&
git push -fq https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git gh-pages
env:
global:
# GH_TOKEN
- secure: bumJASbZSU8bxJ0EyPUJmu16AiV9EXOpyOj86Jlq/Ty9CfwGqsSXt96uDyE+OUJf34RUFQMsw0nk37/zC4lcn6kqk2wpuH3N/o85Zo/cVZY/NusBWLQqtT5VbYWsV+u2Ua4Tmmsw8yVYQhYwU2ZOejNpflL+Cs9XGgORp1L+/gMRMC2y5Se6ZhwnKPQlRJ8LGsG1dzjQULxzADIt3/zuspNBS8a2urJwlHfGMkvHDoUWCviP/GXoSqw3TZR7FmKyxE19I8n9+iSvm9+oZZquvcgfUxMHn8Gq/b44UbPvjtFOg2yam4xdWXF/RyWCHdc/R9EHorSABeCbefIsm+zcUF3/YQxwpSxM4IZEeH2rTiC7dcrsKw3XsO16xFQz5YI5Bay+CT/wTdMmJd7DdYz7Dyf+pOvcM9WOf/zorxYWSBOMYy0uzbusU2iyIghQ82s7E/Ahg+WARtPgkuTLSB5aL1oCTBKHqQscMr7lo5Ti6RpWLxEdTQMBznc+bMr+6dEtkEcG9zqc6cE9XX+ox3wTU6+HVMfQ1ltCntJ4UKcw3A6INEbw9wgocQa812CIASQ2fE+SCAbz6JxBjIAlFUnD1lUB7S8PdMPwn9plfQgKQ2A5YZqg6FnBdf0rQXIJYxQWKHXj/rBHSUCT0tHACDlzTA+EwWggvkP5AGIxRxm8jhw=
deploy:
provider: releases
api_key:
secure: "t+oGT/4lsy7IScw5s86Dpntl5Nyck4qG6nhHwMScc6FYzwLldgwgJaafL8Ej+HG+b7nFLriN+Snoa4YQ5o74X5ZlSWubVREOYQlL/fq7vcPB0DwAZ0Jufq1QW2R1M+3SwwF1eAwTv2W3G7A2K7dxjCVvENcy/gdxnZ36NeUPsqaCC9UcI2Yc7+4jyQwvx6ZfBvQeu+HbKENA0eUNs2ZQOID/1IPy0LJBvSyxAQYsysXdjTzGdNu4+Iba20E8uWYe4fAbgz+gwGarXg1L6D6gKyMlWkViqWjvXWBuDJJqMQZ3rw41AwZOoh3mKd2Lc0l6l4oZcEqPuob0yKTNjz1tuJy9xKTC2F2bDzsvUgk1IRfMK5ukXXXS09ZCZWuA9/GtnsqJ1xGTiwX+DhQzpVBHaBiseSNlYE1YN/3jNyGY+iSts1qut+1BwE7swmcTLsAPoAy8Ue+f7ErNoCg1lm71vq7VO2DLn7x2NqHyHUEuJ+7olDHSdE84G7d9otDRu/+TfMOw7GXwTaha6yJRInuNsnj4CFMLNVvYACzCC2idB7f7nUZoSFi9jf18S9fCMPVmazMrFj4g95HWrVHkjpV5zRTeUdTWw6DJl6pC9HFqORHdCvLv4Rc4dm5r3CmOcAQ0ZuiccV2oKzw4/Wic96daae8M5f5KSQ/WTr+h0wXZKp0="
skip_cleanup: true
file: parity${ARCHIVE_SUFFIX}.tar.gz
on:
tags: true
notifications:
webhooks:
urls:
- https://hooks.slack.com/services/${SLACK_WEBHOOK}
on_success: always
on_failure: always
on_start: never

3842
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

2588
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,9 @@
[package]
description = "Ethcore client."
description = "Parity Ethereum client"
name = "parity"
version = "1.1.0"
version = "1.6.8"
license = "GPL-3.0"
authors = ["Ethcore <admin@ethcore.io>"]
build = "build.rs"
[build-dependencies]
rustc_version = "0.1"
authors = ["Parity Technologies <admin@parity.io>"]
[dependencies]
log = "0.3"
@@ -15,25 +11,81 @@ env_logger = "0.3"
rustc-serialize = "0.3"
docopt = "0.6"
time = "0.1"
ctrlc = { git = "https://github.com/tomusdrw/rust-ctrlc.git" }
fdlimit = { path = "util/fdlimit" }
daemonize = "0.2"
num_cpus = "0.2"
number_prefix = "0.2"
rpassword = "0.1"
clippy = { version = "0.0.50", optional = true }
rpassword = "0.2.1"
semver = "0.5"
ansi_term = "0.7"
regex = "0.1"
isatty = "0.1"
toml = "0.2"
serde = "0.9"
serde_json = "0.9"
app_dirs = "1.1.1"
fdlimit = "0.1"
hyper = { default-features = false, git = "https://github.com/ethcore/hyper" }
ctrlc = { git = "https://github.com/paritytech/rust-ctrlc.git" }
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-1.6" }
ethsync = { path = "sync" }
ethcore = { path = "ethcore" }
ethcore-util = { path = "util" }
ethsync = { path = "sync" }
ethminer = { path = "miner" }
ethcore-io = { path = "util/io" }
ethcore-devtools = { path = "devtools" }
ethcore-rpc = { path = "rpc", optional = true }
ethcore-rpc = { path = "rpc" }
ethcore-signer = { path = "signer" }
ethcore-ipc = { path = "ipc/rpc" }
ethcore-ipc-nano = { path = "ipc/nano" }
ethcore-ipc-hypervisor = { path = "ipc/hypervisor" }
ethcore-light = { path = "ethcore/light" }
ethcore-logger = { path = "logger" }
ethcore-stratum = { path = "stratum" }
evmbin = { path = "evmbin" }
rlp = { path = "util/rlp" }
rpc-cli = { path = "rpc_cli" }
parity-rpc-client = { path = "rpc_client" }
parity-hash-fetch = { path = "hash-fetch" }
parity-ipfs-api = { path = "ipfs" }
parity-updater = { path = "updater" }
parity-reactor = { path = "util/reactor" }
parity-local-store = { path = "local-store" }
ethcore-dapps = { path = "dapps", optional = true }
clippy = { version = "0.0.103", optional = true}
ethcore-secretstore = { path = "secret_store", optional = true }
[dev-dependencies]
ethcore-ipc-tests = { path = "ipc/tests" }
[target.'cfg(windows)'.dependencies]
winapi = "0.2"
[target.'cfg(not(windows))'.dependencies]
daemonize = "0.2"
[features]
default = ["rpc"]
rpc = ["ethcore-rpc"]
dev = ["clippy", "ethcore/dev", "ethcore-util/dev", "ethsync/dev", "ethcore-rpc/dev", "ethminer/dev"]
travis-beta = ["ethcore/json-tests"]
travis-nightly = ["ethcore/json-tests", "dev"]
default = ["ui-precompiled"]
ui = [
"dapps",
"ethcore-dapps/ui",
"ethcore-signer/ui",
]
ui-precompiled = [
"dapps",
"ethcore-signer/ui-precompiled",
"ethcore-dapps/ui-precompiled",
]
dapps = ["ethcore-dapps"]
ipc = ["ethcore/ipc", "ethsync/ipc"]
jit = ["ethcore/jit"]
dev = ["clippy", "ethcore/dev", "ethcore-util/dev", "ethsync/dev", "ethcore-rpc/dev", "ethcore-dapps/dev", "ethcore-signer/dev"]
json-tests = ["ethcore/json-tests"]
test-heavy = ["ethcore/test-heavy"]
ethkey-cli = ["ethcore/ethkey-cli"]
ethstore-cli = ["ethcore/ethstore-cli"]
evm-debug = ["ethcore/evm-debug"]
evm-debug-tests = ["ethcore/evm-debug-tests"]
slow-blocks = ["ethcore/slow-blocks"]
final = ["ethcore-util/final"]
secretstore = ["ethcore-secretstore"]
[[bin]]
path = "parity/main.rs"
@@ -42,3 +94,4 @@ name = "parity"
[profile.release]
debug = false
lto = false
panic = "abort"

128
README.md
View File

@@ -1,39 +1,133 @@
# ethcore
# [Parity](https://ethcore.io/parity.html)
### Fast, light, and robust Ethereum implementation
[![Build Status][travis-image]][travis-url] [![Coverage Status][coveralls-image]][coveralls-url] [![Join the chat at https://gitter.im/trogdoro/xiki][gitter-image]][gitter-url] [![GPLv3][license-image]][license-url]
[![build status](https://gitlab.ethcore.io/parity/parity/badges/master/build.svg)](https://gitlab.ethcore.io/parity/parity/commits/master) [![Coverage Status][coveralls-image]][coveralls-url] [![GPLv3][license-image]][license-url]
### Join the chat!
Parity [![Join the chat at https://gitter.im/ethcore/parity][gitter-image]][gitter-url] and
parity.js [![Join the chat at https://gitter.im/ethcore/parity.js](https://badges.gitter.im/ethcore/parity.js.svg)](https://gitter.im/ethcore/parity.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[Internal Documentation][doc-url]
Be sure to check out [our wiki][wiki-url] for more information.
[travis-image]: https://travis-ci.org/ethcore/parity.svg?branch=master
[travis-url]: https://travis-ci.org/ethcore/parity
[coveralls-image]: https://coveralls.io/repos/github/ethcore/parity/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/github/ethcore/parity?branch=master
[gitter-image]: https://badges.gitter.im/Join%20Chat.svg
[gitter-url]: https://gitter.im/ethcore/parity?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
[license-image]: https://img.shields.io/badge/license-GPL%20v3-green.svg
[license-url]: http://www.gnu.org/licenses/gpl-3.0.en.html
[license-url]: https://www.gnu.org/licenses/gpl-3.0.en.html
[doc-url]: https://ethcore.github.io/parity/ethcore/index.html
[wiki-url]: https://github.com/ethcore/parity/wiki
[Documentation](http://ethcore.github.io/parity/ethcore/index.html)
**Parity requires Rust version 1.15.0 to build**
### Building from source
----
First (if you don't already have it) get multirust:
## About Parity
Parity's goal is to be the fastest, lightest, and most secure Ethereum client. We are developing Parity using the sophisticated and
cutting-edge Rust programming language. Parity is licensed under the GPLv3, and can be used for all your Ethereum needs.
Parity comes with a built-in wallet. To access [Parity Wallet](http://127.0.0.1:8080/) simply go to http://127.0.0.1:8080/. It
includes various functionality allowing you to:
- create and manage your Ethereum accounts;
- manage your Ether and any Ethereum tokens;
- create and register your own tokens;
- and much more.
By default, Parity will also run a JSONRPC server on `127.0.0.1:8545`. This is fully configurable and supports a number
of RPC APIs.
If you run into an issue while using parity, feel free to file one in this repository
or hop on our [gitter chat room][gitter-url] to ask a question. We are glad to help!
Parity's current release is 1.5. You can download it at https://ethcore.io/parity.html or follow the instructions
below to build from source.
----
## Build dependencies
Parity is fully compatible with Stable Rust.
We recommend installing Rust through [rustup](https://www.rustup.rs/). If you don't already have rustup, you can install it like this:
- Linux:
```bash
$ curl https://sh.rustup.rs -sSf | sh
```
Parity also requires `gcc`, `g++`, `libssl-dev`/`openssl`, `libudev-dev` and `pkg-config` packages to be installed.
- OSX:
```bash
$ curl https://sh.rustup.rs -sSf | sh
```
`clang` is required. It comes with Xcode command line tools or can be installed with homebrew.
- Windows
Make sure you have Visual Studio 2015 with C++ support installed. Next, download and run the rustup installer from
https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe, start "VS2015 x64 Native Tools Command Prompt", and use the following command to install and set up the msvc toolchain:
```
$ rustup default stable-x86_64-pc-windows-msvc
```
Once you have rustup, install parity or download and build from source
----
## Quick install
```bash
curl -sf https://raw.githubusercontent.com/brson/multirust/master/quick-install.sh | sudo sh -s -- --yes
cargo install --git https://github.com/ethcore/parity.git parity
```
- OSX with Homebrew:
```bash
brew update && brew install multirust
```
----
Then, download and build Parity:
## Build from source
```bash
# download Parity code
git clone https://github.com/ethcore/parity
cd parity
$ git clone https://github.com/ethcore/parity
$ cd parity
# build in release mode
cargo build --release
$ cargo build --release
```
This will produce an executable in the `./target/release` subdirectory.
Note: if cargo fails to parse manifest try:
```bash
$ ~/.cargo/bin/cargo build --release
```
----
## Simple one-line installer for Mac and Ubuntu
```bash
bash <(curl https://get.parity.io -Lk)
```
## Start Parity
### Manually
To start Parity manually, just run
```bash
$ ./target/release/parity
```
and Parity will begin syncing the Ethereum blockchain.
### Using systemd service file
To start Parity as a regular user using systemd init:
1. Copy `parity/scripts/parity.service` to your
systemd user directory (usually `~/.config/systemd/user`).
2. To pass any argument to Parity, write a `~/.parity/parity.conf` file this way:
`ARGS="ARG1 ARG2 ARG3"`.
Example: `ARGS="ui --identity MyMachine"`.

37
cov.sh
View File

@@ -1,37 +0,0 @@
#!/bin/sh
# Installing KCOV under ubuntu
# https://users.rust-lang.org/t/tutorial-how-to-collect-test-coverages-for-rust-project/650#
### Install deps
# $ sudo apt-get install libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
#
### Compile kcov
# $ wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && tar xf master.tar.gz
# $ cd kcov-master && mkdir build && cd build
# $ cmake .. && make && sudo make install
### Running coverage
if ! type kcov > /dev/null; then
echo "Install kcov first (details inside this file). Aborting."
exit 1
fi
cargo test \
-p ethash \
-p ethcore-util \
-p ethcore \
-p ethsync \
-p ethcore-rpc \
-p parity \
-p ethminer \
--no-run || exit $?
rm -rf target/coverage
mkdir -p target/coverage
EXCLUDE="~/.multirust,rocksdb,secp256k1,src/tests,util/json-tests,util/src/network/tests,sync/src/tests,ethcore/src/tests,ethcore/src/evm/tests"
kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore-*
kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethash-*
kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore_util-*
kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethsync-*
kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethcore_rpc-*
kcov --exclude-pattern $EXCLUDE --include-pattern src --verify target/coverage target/debug/deps/ethminer-*
xdg-open target/coverage/index.html

45
dapps/Cargo.toml Normal file
View File

@@ -0,0 +1,45 @@
[package]
description = "Parity Dapps crate"
name = "ethcore-dapps"
version = "1.6.0"
license = "GPL-3.0"
authors = ["Parity Technologies <admin@parity.io>"]
[lib]
[dependencies]
rand = "0.3"
log = "0.3"
env_logger = "0.3"
futures = "0.1"
jsonrpc-core = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-1.6" }
jsonrpc-http-server = { git = "https://github.com/paritytech/jsonrpc.git", branch = "parity-1.6" }
hyper = { default-features = false, git = "https://github.com/ethcore/hyper" }
unicase = "1.3"
url = "1.0"
rustc-serialize = "0.3"
serde = "0.9"
serde_json = "0.9"
serde_derive = "0.9"
linked-hash-map = "0.3"
parity-dapps-glue = "1.7"
base32 = "0.3"
mime = "0.2"
mime_guess = "1.6.1"
time = "0.1.35"
zip = { version = "0.1", default-features = false }
ethcore-devtools = { path = "../devtools" }
ethcore-rpc = { path = "../rpc" }
ethcore-util = { path = "../util" }
fetch = { path = "../util/fetch" }
parity-ui = { path = "./ui" }
parity-hash-fetch = { path = "../hash-fetch" }
parity-reactor = { path = "../util/reactor" }
clippy = { version = "0.0.103", optional = true}
[features]
dev = ["clippy", "ethcore-rpc/dev", "ethcore-util/dev"]
ui = ["parity-ui/no-precompiled-js"]
ui-precompiled = ["parity-ui/use-precompiled-js"]

31
dapps/js-glue/Cargo.toml Normal file
View File

@@ -0,0 +1,31 @@
[package]
description = "Base Package for all Parity built-in dapps"
name = "parity-dapps-glue"
version = "1.6.0"
license = "GPL-3.0"
authors = ["Parity Technologies <admin@parity.io>"]
build = "build.rs"
[build-dependencies]
quasi_codegen = { version = "0.32", optional = true }
syntex = { version = "0.58", optional = true }
[dependencies]
glob = { version = "0.2.11" }
mime_guess = { version = "1.6.1" }
aster = { version = "0.41", default-features = false }
quasi = { version = "0.32", default-features = false }
quasi_macros = { version = "0.32", optional = true }
syntex = { version = "0.58", optional = true }
syntex_syntax = { version = "0.58", optional = true }
clippy = { version = "0.0.90", optional = true }
[features]
dev = ["clippy"]
default = ["with-syntex"]
nightly = ["quasi_macros"]
nightly-testing = ["clippy"]
with-syntex = ["quasi/with-syntex", "quasi_codegen", "quasi_codegen/with-syntex", "syntex", "syntex_syntax"]
use-precompiled-js = []

65
dapps/js-glue/README.md Normal file
View File

@@ -0,0 +1,65 @@
# Parity Dapps (JS-glue)
Code generator to simplify creating a built-in Parity Dapp
# How to create new builtin Dapp.
1. Clone this repository.
```bash
$ git clone https://github.com/ethcore/parity.git
```
1. Create a new directory for your Dapp. (`./myapp`)
```bash
$ mkdir -p ./parity/dapps/myapp/src/web
```
1. Copy your frontend files to `./dapps/myapp/src/web` (bundled ones)
```bash
$ cp -r ./myapp-src/* ./parity/dapps/myapp/src/web
```
1. Instead of creating `web3` in your app. Load (as the first script tag in `head`):
```html
<script src="/parity-utils/inject.js"></script>
```
The `inject.js` script will create global `web3` instance with proper provider that should be used by your dapp.
1. Create `./parity/dapps/myapp/Cargo.toml` with you apps details. See example here: [parity-status Cargo.toml](https://github.com/ethcore/parity-ui/blob/master/status/Cargo.toml).
```bash
$ git clone https://github.com/ethcore/parity-ui.git
$ cd ./parity-ui/
$ cp ./home/Cargo.toml ../parity/dapps/myapp/Cargo.toml
$ cp ./home/build.rs ../parity/dapps/myapp/build.rs
$ cp ./home/src/lib.rs ../parity/dapps/myapp/src/lib.rs
$ cp ./home/src/lib.rs.in ../parity/dapps/myapp/src/lib.rs.in
# And edit the details of your app
$ vim ../parity/dapps/myapp/Cargo.toml # Edit the details
$ vim ./parity/dapps/myapp/src/lib.rs.in # Edit the details
```
# How to include your Dapp into `Parity`?
1. Edit `dapps/Cargo.toml` and add dependency to your application (it can be optional)
```toml
# Use git repo and version
parity-dapps-myapp = { path="./myapp" }
```
1. Edit `dapps/src/apps.rs` and add your application to `all_pages` (if it's optional you need to specify two functions - see `parity-dapps-wallet` example)
1. Compile parity.
```bash
$ cargo build --release # While inside `parity`
```
1. Commit the results.
```bash
$ git add myapp && git commit -am "My first Parity Dapp".
```

View File

@@ -1,4 +1,4 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
@@ -14,22 +14,30 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
//! Multilevel blockchain bloom filter.
mod bloomindex;
mod chainfilter;
mod indexer;
#[cfg(feature = "with-syntex")]
mod inner {
extern crate syntex;
extern crate quasi_codegen;
#[cfg(test)]
mod tests;
use std::env;
use std::path::Path;
pub use self::bloomindex::BloomIndex;
pub use self::chainfilter::ChainFilter;
use util::hash::H2048;
pub fn main() {
let out_dir = env::var_os("OUT_DIR").unwrap();
/// Types implementing this trait provide read access for bloom filters database.
pub trait FilterDataSource {
/// returns reference to log at given position if it exists
fn bloom_at_index(&self, index: &BloomIndex) -> Option<H2048>;
let src = Path::new("src/lib.rs.in");
let dst = Path::new(&out_dir).join("lib.rs");
quasi_codegen::expand(&src, &dst).unwrap();
}
}
#[cfg(not(feature = "with-syntex"))]
mod inner {
pub fn main() {}
}
fn main() {
inner::main();
}

View File

@@ -0,0 +1,65 @@
#[cfg(feature = "with-syntex")]
pub mod inner {
use syntex;
use codegen;
use syntax::{ast, fold};
use std::env;
use std::path::Path;
fn strip_attributes(krate: ast::Crate) -> ast::Crate {
/// Helper folder that strips the serde attributes after the extensions have been expanded.
struct StripAttributeFolder;
impl fold::Folder for StripAttributeFolder {
fn fold_attribute(&mut self, attr: ast::Attribute) -> Option<ast::Attribute> {
if &*attr.value.name.as_str() == "webapp" {
return None;
}
Some(attr)
}
fn fold_mac(&mut self, mac: ast::Mac) -> ast::Mac {
fold::noop_fold_mac(mac, self)
}
}
fold::Folder::fold_crate(&mut StripAttributeFolder, krate)
}
pub fn register(reg: &mut syntex::Registry) {
reg.add_attr("feature(custom_derive)");
reg.add_attr("feature(custom_attribute)");
reg.add_decorator("derive_WebAppFiles", codegen::expand_webapp_implementation);
reg.add_post_expansion_pass(strip_attributes);
}
pub fn generate() {
let out_dir = env::var_os("OUT_DIR").unwrap();
let mut registry = syntex::Registry::new();
register(&mut registry);
let src = Path::new("src/lib.rs.in");
let dst = Path::new(&out_dir).join("lib.rs");
registry.expand("", &src, &dst).unwrap();
}
}
#[cfg(not(feature = "with-syntex"))]
pub mod inner {
use codegen;
pub fn register(reg: &mut rustc_plugin::Registry) {
reg.register_syntax_extension(
syntax::parse::token::intern("derive_WebAppFiles"),
syntax::ext::base::MultiDecorator(
Box::new(codegen::expand_webapp_implementation)));
reg.register_attribute("webapp".to_owned(), AttributeType::Normal);
}
pub fn generate() {}
}

View File

@@ -0,0 +1,193 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
extern crate aster;
extern crate glob;
extern crate mime_guess;
use self::mime_guess::guess_mime_type;
use std::path::{self, Path, PathBuf};
use std::ops::Deref;
use syntax::attr;
use syntax::ast::{self, MetaItem, Item};
use syntax::codemap::Span;
use syntax::ext::base::{Annotatable, ExtCtxt};
use syntax::print::pprust::lit_to_string;
use syntax::symbol::InternedString;
pub fn expand_webapp_implementation(
cx: &mut ExtCtxt,
span: Span,
meta_item: &MetaItem,
annotatable: &Annotatable,
push: &mut FnMut(Annotatable)
) {
let item = match *annotatable {
Annotatable::Item(ref item) => item,
_ => {
cx.span_err(meta_item.span, "`#[derive(WebAppFiles)]` may only be applied to struct implementations");
return;
},
};
let builder = aster::AstBuilder::new().span(span);
implement_webapp(cx, &builder, item, push);
}
fn implement_webapp(cx: &ExtCtxt, builder: &aster::AstBuilder, item: &Item, push: &mut FnMut(Annotatable)) {
let static_files_dir = extract_path(cx, item);
let src = Path::new("src");
let static_files = {
let mut buf = src.to_path_buf();
buf.push(static_files_dir.deref());
buf
};
let search_location = {
let mut buf = static_files.to_path_buf();
buf.push("**");
buf.push("*");
buf
};
let files = glob::glob(search_location.to_str().expect("Valid UTF8 path"))
.expect("The sources directory is missing.")
.collect::<Result<Vec<PathBuf>, glob::GlobError>>()
.expect("There should be no error when reading a list of files.");
let statements = files
.iter()
.filter(|path_buf| path_buf.is_file())
.map(|path_buf| {
let path = path_buf.as_path();
let filename = path.file_name().and_then(|s| s.to_str()).expect("Only UTF8 paths.");
let mime_type = guess_mime_type(filename).to_string();
let file_path = as_uri(path.strip_prefix(&static_files).ok().expect("Prefix is always there, cause it's absolute path;qed"));
let file_path_in_source = path.to_str().expect("Only UTF8 paths.");
let path_lit = builder.expr().str(file_path.as_str());
let mime_lit = builder.expr().str(mime_type.as_str());
let web_path_lit = builder.expr().str(file_path_in_source);
let separator_lit = builder.expr().str(path::MAIN_SEPARATOR.to_string().as_str());
let concat_id = builder.id("concat!");
let env_id = builder.id("env!");
let macro_id = builder.id("include_bytes!");
let content = quote_expr!(
cx,
$macro_id($concat_id($env_id("CARGO_MANIFEST_DIR"), $separator_lit, $web_path_lit))
);
quote_stmt!(
cx,
files.insert($path_lit, File { path: $path_lit, content_type: $mime_lit, content: $content });
).expect("The statement is always ok, because it just uses literals.")
}).collect::<Vec<ast::Stmt>>();
let type_name = item.ident;
let files_impl = quote_item!(cx,
impl $type_name {
fn files() -> ::std::collections::HashMap<&'static str, File> {
let mut files = ::std::collections::HashMap::new();
$statements
files
}
}
).unwrap();
push(Annotatable::Item(files_impl));
}
fn extract_path(cx: &ExtCtxt, item: &Item) -> String {
for meta_items in item.attrs.iter().filter_map(webapp_meta_items) {
for meta_item in meta_items {
let is_path = &*meta_item.name.as_str() == "path";
match meta_item.node {
ast::MetaItemKind::NameValue(ref lit) if is_path => {
if let Some(s) = get_str_from_lit(cx, lit) {
return s.deref().to_owned();
}
},
_ => {},
}
}
}
// default
"web".to_owned()
}
fn webapp_meta_items(attr: &ast::Attribute) -> Option<Vec<ast::MetaItem>> {
let is_webapp = &*attr.value.name.as_str() == "webapp";
match attr.value.node {
ast::MetaItemKind::List(ref items) if is_webapp => {
attr::mark_used(&attr);
Some(
items.iter()
.map(|item| item.node.clone())
.filter_map(|item| match item {
ast::NestedMetaItemKind::MetaItem(item) => Some(item),
_ => None,
})
.collect()
)
}
_ => None
}
}
fn get_str_from_lit(cx: &ExtCtxt, lit: &ast::Lit) -> Option<InternedString> {
match lit.node {
ast::LitKind::Str(ref s, _) => Some(s.clone().as_str()),
_ => {
cx.span_err(
lit.span,
&format!("webapp annotation path must be a string, not `{}`",
lit_to_string(lit)
)
);
return None;
}
}
}
fn as_uri(path: &Path) -> String {
let mut s = String::new();
for component in path.iter() {
s.push_str(component.to_str().expect("Only UTF-8 filenames are supported."));
s.push('/');
}
s[0..s.len()-1].into()
}
#[test]
fn should_convert_path_separators_on_all_platforms() {
// given
let p = {
let mut p = PathBuf::new();
p.push("web");
p.push("src");
p.push("index.html");
p
};
// when
let path = as_uri(&p);
// then
assert_eq!(path, "web/src/index.html".to_owned());
}

89
dapps/js-glue/src/js.rs Normal file
View File

@@ -0,0 +1,89 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
#![cfg_attr(feature="use-precompiled-js", allow(dead_code))]
#![cfg_attr(feature="use-precompiled-js", allow(unused_imports))]
use std::fmt;
use std::process::Command;
#[cfg(not(windows))]
mod platform {
use std::process::Command;
pub static NPM_CMD: &'static str = "npm";
pub fn handle_fd(cmd: &mut Command) -> &mut Command {
cmd
}
}
#[cfg(windows)]
mod platform {
use std::process::{Command, Stdio};
pub static NPM_CMD: &'static str = "npm.cmd";
// NOTE [ToDr] For some reason on windows
// We cannot have any file descriptors open when running a child process
// during build phase.
pub fn handle_fd(cmd: &mut Command) -> &mut Command {
cmd.stdin(Stdio::null())
.stdout(Stdio::null())
.stderr(Stdio::null())
}
}
fn die<T : fmt::Debug>(s: &'static str, e: T) -> ! {
panic!("Error: {}: {:?}", s, e);
}
#[cfg(feature = "use-precompiled-js")]
pub fn test(_path: &str) {
}
#[cfg(feature = "use-precompiled-js")]
pub fn build(_path: &str, _dest: &str) {
}
#[cfg(not(feature = "use-precompiled-js"))]
pub fn build(path: &str, dest: &str) {
let child = platform::handle_fd(&mut Command::new(platform::NPM_CMD))
.arg("install")
.arg("--no-progress")
.current_dir(path)
.status()
.unwrap_or_else(|e| die("Installing node.js dependencies with npm", e));
assert!(child.success(), "There was an error installing dependencies.");
let child = platform::handle_fd(&mut Command::new(platform::NPM_CMD))
.arg("run")
.arg("build")
.env("NODE_ENV", "production")
.env("BUILD_DEST", dest)
.current_dir(path)
.status()
.unwrap_or_else(|e| die("Building JS code", e));
assert!(child.success(), "There was an error build JS code.");
}
#[cfg(not(feature = "use-precompiled-js"))]
pub fn test(path: &str) {
let child = Command::new(platform::NPM_CMD)
.arg("run")
.arg("test")
.current_dir(path)
.status()
.unwrap_or_else(|e| die("Running test command", e));
assert!(child.success(), "There was an error while running JS tests.");
}

38
dapps/js-glue/src/lib.rs Normal file
View File

@@ -0,0 +1,38 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
#![cfg_attr(not(feature = "with-syntex"), feature(rustc_private, plugin))]
#![cfg_attr(not(feature = "with-syntex"), plugin(quasi_macros))]
#[cfg(feature = "with-syntex")]
extern crate syntex;
#[cfg(feature = "with-syntex")]
extern crate syntex_syntax as syntax;
#[cfg(feature = "with-syntex")]
include!(concat!(env!("OUT_DIR"), "/lib.rs"));
#[cfg(not(feature = "with-syntex"))]
#[macro_use]
extern crate syntax;
#[cfg(not(feature = "with-syntex"))]
extern crate rustc_plugin;
#[cfg(not(feature = "with-syntex"))]
include!("lib.rs.in");

View File

@@ -0,0 +1,46 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
extern crate quasi;
mod codegen;
mod build;
pub mod js;
pub use build::inner::generate;
use std::default::Default;
#[derive(Clone)]
pub struct File {
pub path: &'static str,
pub content: &'static [u8],
// TODO: use strongly-typed MIME.
pub content_type: &'static str,
}
#[derive(Clone, Debug)]
pub struct Info {
pub name: &'static str,
pub version: &'static str,
pub author: &'static str,
pub description: &'static str,
pub icon_url: &'static str,
}
pub trait WebApp : Default + Send + Sync {
fn file(&self, path: &str) -> Option<&File>;
fn info(&self) -> Info;
}

BIN
dapps/res/gavcoin.zip Normal file

Binary file not shown.

175
dapps/src/api/api.rs Normal file
View File

@@ -0,0 +1,175 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::sync::Arc;
use unicase::UniCase;
use hyper::{server, net, Decoder, Encoder, Next, Control};
use hyper::header;
use hyper::method::Method;
use hyper::header::AccessControlAllowOrigin;
use api::types::{App, ApiError};
use api::response;
use apps::fetcher::Fetcher;
use handlers::extract_url;
use endpoint::{Endpoint, Endpoints, Handler, EndpointPath};
use jsonrpc_http_server::cors;
#[derive(Clone)]
pub struct RestApi {
cors_domains: Option<Vec<AccessControlAllowOrigin>>,
endpoints: Arc<Endpoints>,
fetcher: Arc<Fetcher>,
}
impl RestApi {
pub fn new(cors_domains: Vec<String>, endpoints: Arc<Endpoints>, fetcher: Arc<Fetcher>) -> Box<Endpoint> {
Box::new(RestApi {
cors_domains: Some(cors_domains.into_iter().map(|domain| match domain.as_ref() {
"all" | "*" | "any" => AccessControlAllowOrigin::Any,
"null" => AccessControlAllowOrigin::Null,
other => AccessControlAllowOrigin::Value(other.into()),
}).collect()),
endpoints: endpoints,
fetcher: fetcher,
})
}
fn list_apps(&self) -> Vec<App> {
self.endpoints.iter().filter_map(|(ref k, ref e)| {
e.info().map(|ref info| App::from_info(k, info))
}).collect()
}
}
impl Endpoint for RestApi {
fn to_async_handler(&self, path: EndpointPath, control: Control) -> Box<Handler> {
Box::new(RestApiRouter::new(self.clone(), path, control))
}
}
struct RestApiRouter {
api: RestApi,
origin: Option<String>,
path: Option<EndpointPath>,
control: Option<Control>,
handler: Box<Handler>,
}
impl RestApiRouter {
fn new(api: RestApi, path: EndpointPath, control: Control) -> Self {
RestApiRouter {
path: Some(path),
origin: None,
control: Some(control),
api: api,
handler: response::as_json_error(&ApiError {
code: "404".into(),
title: "Not Found".into(),
detail: "Resource you requested has not been found.".into(),
}),
}
}
fn resolve_content(&self, hash: Option<&str>, path: EndpointPath, control: Control) -> Option<Box<Handler>> {
match hash {
Some(hash) if self.api.fetcher.contains(hash) => {
Some(self.api.fetcher.to_async_handler(path, control))
},
_ => None
}
}
/// Returns basic headers for a response (it may be overwritten by the handler)
fn response_headers(&self) -> header::Headers {
let mut headers = header::Headers::new();
headers.set(header::AccessControlAllowCredentials);
headers.set(header::AccessControlAllowMethods(vec![
Method::Options,
Method::Post,
Method::Get,
]));
headers.set(header::AccessControlAllowHeaders(vec![
UniCase("origin".to_owned()),
UniCase("content-type".to_owned()),
UniCase("accept".to_owned()),
]));
if let Some(cors_header) = cors::get_cors_header(&self.api.cors_domains, &self.origin) {
headers.set(cors_header);
}
headers
}
}
impl server::Handler<net::HttpStream> for RestApiRouter {
fn on_request(&mut self, request: server::Request<net::HttpStream>) -> Next {
self.origin = cors::read_origin(&request);
if let Method::Options = *request.method() {
self.handler = response::empty();
return Next::write();
}
// TODO [ToDr] Consider using `path.app_params` instead
let url = extract_url(&request);
if url.is_none() {
// Just return 404 if we can't parse URL
return Next::write();
}
let url = url.expect("Check for None early-exists above; qed");
let mut path = self.path.take().expect("on_request called only once, and path is always defined in new; qed");
let control = self.control.take().expect("on_request called only once, and control is always defined in new; qed");
let endpoint = url.path.get(1).map(|v| v.as_str());
let hash = url.path.get(2).map(|v| v.as_str());
// at this point path.app_id contains 'api', adjust it to the hash properly, otherwise
// we will try and retrieve 'api' as the hash when doing the /api/content route
if let Some(ref hash) = hash { path.app_id = hash.clone().to_owned() }
let handler = endpoint.and_then(|v| match v {
"apps" => Some(response::as_json(&self.api.list_apps())),
"ping" => Some(response::ping()),
"content" => self.resolve_content(hash, path, control),
_ => None
});
// Overwrite default
if let Some(h) = handler {
self.handler = h;
}
self.handler.on_request(request)
}
fn on_request_readable(&mut self, decoder: &mut Decoder<net::HttpStream>) -> Next {
self.handler.on_request_readable(decoder)
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
*res.headers_mut() = self.response_headers();
self.handler.on_response(res)
}
fn on_response_writable(&mut self, encoder: &mut Encoder<net::HttpStream>) -> Next {
self.handler.on_response_writable(encoder)
}
}

24
dapps/src/api/mod.rs Normal file
View File

@@ -0,0 +1,24 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! REST API
mod api;
mod response;
mod types;
pub use self::api::RestApi;
pub use self::types::App;

40
dapps/src/api/response.rs Normal file
View File

@@ -0,0 +1,40 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use serde::Serialize;
use serde_json;
use endpoint::Handler;
use handlers::{ContentHandler, EchoHandler};
pub fn empty() -> Box<Handler> {
Box::new(ContentHandler::ok("".into(), mime!(Text/Plain)))
}
pub fn as_json<T: Serialize>(val: &T) -> Box<Handler> {
let json = serde_json::to_string(val)
.expect("serialization to string is infallible; qed");
Box::new(ContentHandler::ok(json, mime!(Application/Json)))
}
pub fn as_json_error<T: Serialize>(val: &T) -> Box<Handler> {
let json = serde_json::to_string(val)
.expect("serialization to string is infallible; qed");
Box::new(ContentHandler::not_found(json, mime!(Application/Json)))
}
pub fn ping() -> Box<Handler> {
Box::new(EchoHandler::default())
}

64
dapps/src/api/types.rs Normal file
View File

@@ -0,0 +1,64 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use endpoint::EndpointInfo;
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct App {
pub id: String,
pub name: String,
pub description: String,
pub version: String,
pub author: String,
#[serde(rename="iconUrl")]
pub icon_url: String,
}
impl App {
/// Creates `App` instance from `EndpointInfo` and `id`.
pub fn from_info(id: &str, info: &EndpointInfo) -> Self {
App {
id: id.to_owned(),
name: info.name.to_owned(),
description: info.description.to_owned(),
version: info.version.to_owned(),
author: info.author.to_owned(),
icon_url: info.icon_url.to_owned(),
}
}
}
impl Into<EndpointInfo> for App {
fn into(self) -> EndpointInfo {
EndpointInfo {
name: self.name,
description: self.description,
version: self.version,
author: self.author,
icon_url: self.icon_url,
}
}
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct ApiError {
pub code: String,
pub title: String,
pub detail: String,
}

128
dapps/src/apps/cache.rs Normal file
View File

@@ -0,0 +1,128 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Fetchable Dapps support.
use std::fs;
use linked_hash_map::LinkedHashMap;
use page::LocalPageEndpoint;
use handlers::FetchControl;
pub enum ContentStatus {
Fetching(FetchControl),
Ready(LocalPageEndpoint),
}
#[derive(Default)]
pub struct ContentCache {
cache: LinkedHashMap<String, ContentStatus>,
}
impl ContentCache {
pub fn insert(&mut self, content_id: String, status: ContentStatus) -> Option<ContentStatus> {
self.cache.insert(content_id, status)
}
pub fn remove(&mut self, content_id: &str) -> Option<ContentStatus> {
self.cache.remove(content_id)
}
pub fn get(&mut self, content_id: &str) -> Option<&mut ContentStatus> {
self.cache.get_refresh(content_id)
}
pub fn clear_garbage(&mut self, expected_size: usize) -> Vec<(String, ContentStatus)> {
let len = self.cache.len();
if len <= expected_size {
return Vec::new();
}
let mut removed = Vec::with_capacity(len - expected_size);
while self.cache.len() > expected_size {
let entry = self.cache.pop_front().expect("expected_size bounded at 0, len is greater; qed");
match entry.1 {
ContentStatus::Fetching(ref fetch) => {
trace!(target: "dapps", "Aborting {} because of limit.", entry.0);
// Mark as aborted
fetch.abort()
},
ContentStatus::Ready(ref endpoint) => {
trace!(target: "dapps", "Removing {} because of limit.", entry.0);
// Remove path (dir or file)
let res = fs::remove_dir_all(&endpoint.path()).or_else(|_| fs::remove_file(&endpoint.path()));
if let Err(e) = res {
warn!(target: "dapps", "Unable to remove dapp/content from cache: {:?}", e);
}
}
}
removed.push(entry);
}
removed
}
#[cfg(test)]
pub fn len(&self) -> usize {
self.cache.len()
}
}
#[cfg(test)]
mod tests {
use super::*;
fn only_keys(data: Vec<(String, ContentStatus)>) -> Vec<String> {
data.into_iter().map(|x| x.0).collect()
}
#[test]
fn should_remove_least_recently_used() {
// given
let mut cache = ContentCache::default();
cache.insert("a".into(), ContentStatus::Fetching(Default::default()));
cache.insert("b".into(), ContentStatus::Fetching(Default::default()));
cache.insert("c".into(), ContentStatus::Fetching(Default::default()));
// when
let res = cache.clear_garbage(2);
// then
assert_eq!(cache.len(), 2);
assert_eq!(only_keys(res), vec!["a"]);
}
#[test]
fn should_update_lru_if_accessed() {
// given
let mut cache = ContentCache::default();
cache.insert("a".into(), ContentStatus::Fetching(Default::default()));
cache.insert("b".into(), ContentStatus::Fetching(Default::default()));
cache.insert("c".into(), ContentStatus::Fetching(Default::default()));
// when
cache.get("a");
let res = cache.clear_garbage(2);
// then
assert_eq!(cache.len(), 2);
assert_eq!(only_keys(res), vec!["b"]);
}
}

View File

@@ -0,0 +1,255 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use zip;
use std::{fs, fmt};
use std::io::{self, Read, Write};
use std::path::PathBuf;
use fetch::{self, Mime};
use util::H256;
use util::sha3::sha3;
use page::{LocalPageEndpoint, PageCache};
use handlers::{ContentValidator, ValidatorResponse};
use apps::manifest::{MANIFEST_FILENAME, deserialize_manifest, serialize_manifest, Manifest};
type OnDone = Box<Fn(Option<LocalPageEndpoint>) + Send>;
fn write_response_and_check_hash(
id: &str,
mut content_path: PathBuf,
filename: &str,
response: fetch::Response
) -> Result<(fs::File, PathBuf), ValidationError> {
// try to parse id
let id = id.parse().map_err(|_| ValidationError::InvalidContentId)?;
// check if content exists
if content_path.exists() {
warn!(target: "dapps", "Overwriting existing content at 0x{:?}", id);
fs::remove_dir_all(&content_path)?
}
// create directory
fs::create_dir_all(&content_path)?;
// append filename
content_path.push(filename);
// Now write the response
let mut file = io::BufWriter::new(fs::File::create(&content_path)?);
let mut reader = io::BufReader::new(response);
io::copy(&mut reader, &mut file)?;
file.flush()?;
// Validate hash
// TODO [ToDr] calculate sha3 in-flight while reading the response
let mut file = io::BufReader::new(fs::File::open(&content_path)?);
let hash = sha3(&mut file)?;
if id == hash {
Ok((file.into_inner(), content_path))
} else {
Err(ValidationError::HashMismatch {
expected: id,
got: hash,
})
}
}
pub struct Content {
id: String,
mime: Mime,
content_path: PathBuf,
on_done: OnDone,
}
impl Content {
pub fn new(id: String, mime: Mime, content_path: PathBuf, on_done: OnDone) -> Self {
Content {
id: id,
mime: mime,
content_path: content_path,
on_done: on_done,
}
}
}
impl ContentValidator for Content {
type Error = ValidationError;
fn validate_and_install(&self, response: fetch::Response) -> Result<ValidatorResponse, ValidationError> {
let validate = |content_path: PathBuf| {
// Create dir
let (_, content_path) = write_response_and_check_hash(self.id.as_str(), content_path.clone(), self.id.as_str(), response)?;
Ok(LocalPageEndpoint::single_file(content_path, self.mime.clone(), PageCache::Enabled))
};
// Prepare path for a file
let content_path = self.content_path.join(&self.id);
// Make sure to always call on_done (even in case of errors)!
let result = validate(content_path.clone());
// remove the file if there was an error
if result.is_err() {
// Ignore errors since the file might not exist
let _ = fs::remove_dir_all(&content_path);
}
(self.on_done)(result.as_ref().ok().cloned());
result.map(ValidatorResponse::Local)
}
}
pub struct Dapp {
id: String,
dapps_path: PathBuf,
on_done: OnDone,
embeddable_on: Option<(String, u16)>,
}
impl Dapp {
pub fn new(id: String, dapps_path: PathBuf, on_done: OnDone, embeddable_on: Option<(String, u16)>) -> Self {
Dapp {
id: id,
dapps_path: dapps_path,
on_done: on_done,
embeddable_on: embeddable_on,
}
}
fn find_manifest(zip: &mut zip::ZipArchive<fs::File>) -> Result<(Manifest, PathBuf), ValidationError> {
for i in 0..zip.len() {
let mut file = zip.by_index(i)?;
if !file.name().ends_with(MANIFEST_FILENAME) {
continue;
}
// try to read manifest
let mut manifest = String::new();
let manifest = file
.read_to_string(&mut manifest).ok()
.and_then(|_| deserialize_manifest(manifest).ok());
if let Some(manifest) = manifest {
let mut manifest_location = PathBuf::from(file.name());
manifest_location.pop(); // get rid of filename
return Ok((manifest, manifest_location));
}
}
Err(ValidationError::ManifestNotFound)
}
}
impl ContentValidator for Dapp {
type Error = ValidationError;
fn validate_and_install(&self, response: fetch::Response) -> Result<ValidatorResponse, ValidationError> {
let validate = |dapp_path: PathBuf| {
let (file, zip_path) = write_response_and_check_hash(self.id.as_str(), dapp_path.clone(), &format!("{}.zip", self.id), response)?;
trace!(target: "dapps", "Opening dapp bundle at {:?}", zip_path);
// Unpack archive
let mut zip = zip::ZipArchive::new(file)?;
// First find manifest file
let (mut manifest, manifest_dir) = Self::find_manifest(&mut zip)?;
// Overwrite id to match hash
manifest.id = self.id.clone();
// Unpack zip
for i in 0..zip.len() {
let mut file = zip.by_index(i)?;
let is_dir = file.name().chars().rev().next() == Some('/');
let file_path = PathBuf::from(file.name());
let location_in_manifest_base = file_path.strip_prefix(&manifest_dir);
// Create files that are inside manifest directory
if let Ok(location_in_manifest_base) = location_in_manifest_base {
let p = dapp_path.join(location_in_manifest_base);
// Check if it's a directory
if is_dir {
fs::create_dir_all(p)?;
} else {
let mut target = fs::File::create(p)?;
io::copy(&mut file, &mut target)?;
}
}
}
// Remove zip
fs::remove_file(&zip_path)?;
// Write manifest
let manifest_str = serialize_manifest(&manifest).map_err(ValidationError::ManifestSerialization)?;
let manifest_path = dapp_path.join(MANIFEST_FILENAME);
let mut manifest_file = fs::File::create(manifest_path)?;
manifest_file.write_all(manifest_str.as_bytes())?;
// Create endpoint
let endpoint = LocalPageEndpoint::new(dapp_path, manifest.clone().into(), PageCache::Enabled, self.embeddable_on.clone());
Ok(endpoint)
};
// Prepare directory for dapp
let target = self.dapps_path.join(&self.id);
// Validate the dapp
let result = validate(target.clone());
// remove the file if there was an error
if result.is_err() {
// Ignore errors since the file might not exist
let _ = fs::remove_dir_all(&target);
}
(self.on_done)(result.as_ref().ok().cloned());
result.map(ValidatorResponse::Local)
}
}
#[derive(Debug)]
pub enum ValidationError {
Io(io::Error),
Zip(zip::result::ZipError),
InvalidContentId,
ManifestNotFound,
ManifestSerialization(String),
HashMismatch { expected: H256, got: H256, },
}
impl fmt::Display for ValidationError {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
match *self {
ValidationError::Io(ref io) => write!(f, "Unexpected IO error occured: {:?}", io),
ValidationError::Zip(ref zip) => write!(f, "Unable to read ZIP archive: {:?}", zip),
ValidationError::InvalidContentId => write!(f, "ID is invalid. It should be 256 bits keccak hash of content."),
ValidationError::ManifestNotFound => write!(f, "Downloaded Dapp bundle did not contain valid manifest.json file."),
ValidationError::ManifestSerialization(ref err) => {
write!(f, "There was an error during Dapp Manifest serialization: {:?}", err)
},
ValidationError::HashMismatch { ref expected, ref got } => {
write!(f, "Hash of downloaded content did not match. Expected:{:?}, Got:{:?}.", expected, got)
},
}
}
}
impl From<io::Error> for ValidationError {
fn from(err: io::Error) -> Self {
ValidationError::Io(err)
}
}
impl From<zip::result::ZipError> for ValidationError {
fn from(err: zip::result::ZipError) -> Self {
ValidationError::Zip(err)
}
}

View File

@@ -0,0 +1,265 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Fetchable Dapps support.
//! Manages downloaded (cached) Dapps and downloads them when necessary.
//! Uses `URLHint` to resolve addresses into Dapps bundle file location.
mod installers;
use std::{fs, env};
use std::path::PathBuf;
use std::sync::Arc;
use rustc_serialize::hex::FromHex;
use fetch::{Client as FetchClient, Fetch};
use hash_fetch::urlhint::{URLHintContract, URLHint, URLHintResult};
use parity_reactor::Remote;
use hyper;
use hyper::status::StatusCode;
use {SyncStatus, random_filename};
use util::Mutex;
use page::LocalPageEndpoint;
use handlers::{ContentHandler, ContentFetcherHandler};
use endpoint::{Endpoint, EndpointPath, Handler};
use apps::cache::{ContentCache, ContentStatus};
/// Limit of cached dapps/content
const MAX_CACHED_DAPPS: usize = 20;
pub trait Fetcher: Send + Sync + 'static {
fn contains(&self, content_id: &str) -> bool;
fn to_async_handler(&self, path: EndpointPath, control: hyper::Control) -> Box<Handler>;
}
pub struct ContentFetcher<F: Fetch = FetchClient, R: URLHint + Send + Sync + 'static = URLHintContract> {
dapps_path: PathBuf,
resolver: R,
cache: Arc<Mutex<ContentCache>>,
sync: Arc<SyncStatus>,
embeddable_on: Option<(String, u16)>,
remote: Remote,
fetch: F,
}
impl<R: URLHint + Send + Sync + 'static, F: Fetch> Drop for ContentFetcher<F, R> {
fn drop(&mut self) {
// Clear cache path
let _ = fs::remove_dir_all(&self.dapps_path);
}
}
impl<R: URLHint + Send + Sync + 'static, F: Fetch> ContentFetcher<F, R> {
pub fn new(resolver: R, sync_status: Arc<SyncStatus>, embeddable_on: Option<(String, u16)>, remote: Remote, fetch: F) -> Self {
let mut dapps_path = env::temp_dir();
dapps_path.push(random_filename());
ContentFetcher {
dapps_path: dapps_path,
resolver: resolver,
sync: sync_status,
cache: Arc::new(Mutex::new(ContentCache::default())),
embeddable_on: embeddable_on,
remote: remote,
fetch: fetch,
}
}
fn still_syncing(address: Option<(String, u16)>) -> Box<Handler> {
Box::new(ContentHandler::error(
StatusCode::ServiceUnavailable,
"Sync In Progress",
"Your node is still syncing. We cannot resolve any content before it's fully synced.",
Some("<a href=\"javascript:window.location.reload()\">Refresh</a>"),
address,
))
}
#[cfg(test)]
fn set_status(&self, content_id: &str, status: ContentStatus) {
self.cache.lock().insert(content_id.to_owned(), status);
}
}
impl<R: URLHint + Send + Sync + 'static, F: Fetch> Fetcher for ContentFetcher<F, R> {
fn contains(&self, content_id: &str) -> bool {
{
let mut cache = self.cache.lock();
// Check if we already have the app
if cache.get(content_id).is_some() {
return true;
}
}
// fallback to resolver
if let Ok(content_id) = content_id.from_hex() {
// else try to resolve the app_id
let has_content = self.resolver.resolve(content_id).is_some();
// if there is content or we are syncing return true
has_content || self.sync.is_major_importing()
} else {
false
}
}
fn to_async_handler(&self, path: EndpointPath, control: hyper::Control) -> Box<Handler> {
let mut cache = self.cache.lock();
let content_id = path.app_id.clone();
let (new_status, handler) = {
let status = cache.get(&content_id);
match status {
// Just serve the content
Some(&mut ContentStatus::Ready(ref endpoint)) => {
(None, endpoint.to_async_handler(path, control))
},
// Content is already being fetched
Some(&mut ContentStatus::Fetching(ref fetch_control)) if !fetch_control.is_deadline_reached() => {
trace!(target: "dapps", "Content fetching in progress. Waiting...");
(None, fetch_control.to_async_handler(path, control))
},
// We need to start fetching the content
_ => {
trace!(target: "dapps", "Content unavailable. Fetching... {:?}", content_id);
let content_hex = content_id.from_hex().expect("to_handler is called only when `contains` returns true.");
let content = self.resolver.resolve(content_hex);
let cache = self.cache.clone();
let id = content_id.clone();
let on_done = move |result: Option<LocalPageEndpoint>| {
let mut cache = cache.lock();
match result {
Some(endpoint) => cache.insert(id.clone(), ContentStatus::Ready(endpoint)),
// In case of error
None => cache.remove(&id),
};
};
match content {
// Don't serve dapps if we are still syncing (but serve content)
Some(URLHintResult::Dapp(_)) if self.sync.is_major_importing() => {
(None, Self::still_syncing(self.embeddable_on.clone()))
},
Some(URLHintResult::Dapp(dapp)) => {
let handler = ContentFetcherHandler::new(
dapp.url(),
path,
control,
installers::Dapp::new(
content_id.clone(),
self.dapps_path.clone(),
Box::new(on_done),
self.embeddable_on.clone(),
),
self.embeddable_on.clone(),
self.remote.clone(),
self.fetch.clone(),
);
(Some(ContentStatus::Fetching(handler.fetch_control())), Box::new(handler) as Box<Handler>)
},
Some(URLHintResult::Content(content)) => {
let handler = ContentFetcherHandler::new(
content.url,
path,
control,
installers::Content::new(
content_id.clone(),
content.mime,
self.dapps_path.clone(),
Box::new(on_done),
),
self.embeddable_on.clone(),
self.remote.clone(),
self.fetch.clone(),
);
(Some(ContentStatus::Fetching(handler.fetch_control())), Box::new(handler) as Box<Handler>)
},
None if self.sync.is_major_importing() => {
(None, Self::still_syncing(self.embeddable_on.clone()))
},
None => {
// This may happen when sync status changes in between
// `contains` and `to_handler`
(None, Box::new(ContentHandler::error(
StatusCode::NotFound,
"Resource Not Found",
"Requested resource was not found.",
None,
self.embeddable_on.clone(),
)) as Box<Handler>)
},
}
},
}
};
if let Some(status) = new_status {
cache.clear_garbage(MAX_CACHED_DAPPS);
cache.insert(content_id, status);
}
handler
}
}
#[cfg(test)]
mod tests {
use std::env;
use std::sync::Arc;
use util::Bytes;
use fetch::{Fetch, Client};
use hash_fetch::urlhint::{URLHint, URLHintResult};
use parity_reactor::Remote;
use apps::cache::ContentStatus;
use endpoint::EndpointInfo;
use page::LocalPageEndpoint;
use super::{ContentFetcher, Fetcher};
struct FakeResolver;
impl URLHint for FakeResolver {
fn resolve(&self, _id: Bytes) -> Option<URLHintResult> {
None
}
}
#[test]
fn should_true_if_contains_the_app() {
// given
let path = env::temp_dir();
let fetcher = ContentFetcher::new(FakeResolver, Arc::new(|| false), None, Remote::new_sync(), Client::new().unwrap());
let handler = LocalPageEndpoint::new(path, EndpointInfo {
name: "fake".into(),
description: "".into(),
version: "".into(),
author: "".into(),
icon_url: "".into(),
}, Default::default(), None);
// when
fetcher.set_status("test", ContentStatus::Ready(handler));
fetcher.set_status("test2", ContentStatus::Fetching(Default::default()));
// then
assert_eq!(fetcher.contains("test"), true);
assert_eq!(fetcher.contains("test2"), true);
assert_eq!(fetcher.contains("test3"), false);
}
}

133
dapps/src/apps/fs.rs Normal file
View File

@@ -0,0 +1,133 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::io;
use std::io::Read;
use std::fs;
use std::path::{Path, PathBuf};
use page::{LocalPageEndpoint, PageCache};
use endpoint::{Endpoints, EndpointInfo};
use apps::manifest::{MANIFEST_FILENAME, deserialize_manifest};
struct LocalDapp {
id: String,
path: PathBuf,
info: EndpointInfo,
}
/// Tries to find and read manifest file in given `path` to extract `EndpointInfo`
/// If manifest is not found sensible default `EndpointInfo` is returned based on given `name`.
fn read_manifest(name: &str, mut path: PathBuf) -> EndpointInfo {
path.push(MANIFEST_FILENAME);
fs::File::open(path.clone())
.map_err(|e| format!("{:?}", e))
.and_then(|mut f| {
// Reat file
let mut s = String::new();
f.read_to_string(&mut s).map_err(|e| format!("{:?}", e))?;
// Try to deserialize manifest
deserialize_manifest(s)
})
.map(Into::into)
.unwrap_or_else(|e| {
warn!(target: "dapps", "Cannot read manifest file at: {:?}. Error: {:?}", path, e);
EndpointInfo {
name: name.into(),
description: name.into(),
version: "0.0.0".into(),
author: "?".into(),
icon_url: "icon.png".into(),
}
})
}
/// Returns Dapp Id and Local Dapp Endpoint for given filesystem path.
/// Parses the path to extract last component (for name).
/// `None` is returned when path is invalid or non-existent.
pub fn local_endpoint<P: AsRef<Path>>(path: P, signer_address: Option<(String, u16)>) -> Option<(String, Box<LocalPageEndpoint>)> {
let path = path.as_ref().to_owned();
path.canonicalize().ok().and_then(|path| {
let name = path.file_name().and_then(|name| name.to_str());
name.map(|name| {
let dapp = local_dapp(name.into(), path.clone());
(dapp.id, Box::new(LocalPageEndpoint::new(
dapp.path, dapp.info, PageCache::Disabled, signer_address.clone())
))
})
})
}
fn local_dapp(name: String, path: PathBuf) -> LocalDapp {
// try to get manifest file
let info = read_manifest(&name, path.clone());
LocalDapp {
id: name,
path: path,
info: info,
}
}
/// Returns endpoints for Local Dapps found for given filesystem path.
/// Scans the directory and collects `LocalPageEndpoints`.
pub fn local_endpoints<P: AsRef<Path>>(dapps_path: P, signer_address: Option<(String, u16)>) -> Endpoints {
let mut pages = Endpoints::new();
for dapp in local_dapps(dapps_path.as_ref()) {
pages.insert(
dapp.id,
Box::new(LocalPageEndpoint::new(dapp.path, dapp.info, PageCache::Disabled, signer_address.clone()))
);
}
pages
}
fn local_dapps(dapps_path: &Path) -> Vec<LocalDapp> {
let files = fs::read_dir(dapps_path);
if let Err(e) = files {
warn!(target: "dapps", "Unable to load local dapps from: {}. Reason: {:?}", dapps_path.display(), e);
return vec![];
}
let files = files.expect("Check is done earlier");
files.map(|dir| {
let entry = dir?;
let file_type = entry.file_type()?;
// skip files
if file_type.is_file() {
return Err(io::Error::new(io::ErrorKind::NotFound, "Not a file"));
}
// take directory name and path
entry.file_name().into_string()
.map(|name| (name, entry.path()))
.map_err(|e| {
info!(target: "dapps", "Unable to load dapp: {:?}. Reason: {:?}", entry.path(), e);
io::Error::new(io::ErrorKind::NotFound, "Invalid name")
})
})
.filter_map(|m| {
if let Err(ref e) = m {
debug!(target: "dapps", "Ignoring local dapp: {:?}", e);
}
m.ok()
})
.map(|(name, path)| local_dapp(name, path))
.collect()
}

View File

@@ -0,0 +1,29 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use serde_json;
pub use api::App as Manifest;
pub const MANIFEST_FILENAME: &'static str = "manifest.json";
pub fn deserialize_manifest(manifest: String) -> Result<Manifest, String> {
serde_json::from_str::<Manifest>(&manifest).map_err(|e| format!("{:?}", e))
// TODO [todr] Manifest validation (especialy: id (used as path))
}
pub fn serialize_manifest(manifest: &Manifest) -> Result<String, String> {
serde_json::to_string_pretty(manifest).map_err(|e| format!("{:?}", e))
}

84
dapps/src/apps/mod.rs Normal file
View File

@@ -0,0 +1,84 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::path::PathBuf;
use std::sync::Arc;
use endpoint::{Endpoints, Endpoint};
use page::PageEndpoint;
use proxypac::ProxyPac;
use web::Web;
use fetch::Fetch;
use parity_dapps::WebApp;
use parity_reactor::Remote;
use {WebProxyTokens};
mod cache;
mod fs;
pub mod fetcher;
pub mod manifest;
extern crate parity_ui;
pub const HOME_PAGE: &'static str = "parity";
pub const DAPPS_DOMAIN: &'static str = ".web3.site";
pub const RPC_PATH: &'static str = "rpc";
pub const API_PATH: &'static str = "api";
pub const UTILS_PATH: &'static str = "parity-utils";
pub const WEB_PATH: &'static str = "web";
pub const URL_REFERER: &'static str = "__referer=";
pub fn utils() -> Box<Endpoint> {
Box::new(PageEndpoint::with_prefix(parity_ui::App::default(), UTILS_PATH.to_owned()))
}
pub fn all_endpoints<F: Fetch>(
dapps_path: PathBuf,
extra_dapps: Vec<PathBuf>,
signer_address: Option<(String, u16)>,
web_proxy_tokens: Arc<WebProxyTokens>,
remote: Remote,
fetch: F,
) -> Endpoints {
// fetch fs dapps at first to avoid overwriting builtins
let mut pages = fs::local_endpoints(dapps_path, signer_address.clone());
for path in extra_dapps {
if let Some((id, endpoint)) = fs::local_endpoint(path.clone(), signer_address.clone()) {
pages.insert(id, endpoint);
} else {
warn!(target: "dapps", "Ignoring invalid dapp at {}", path.display());
}
}
// NOTE [ToDr] Dapps will be currently embeded on 8180
insert::<parity_ui::App>(&mut pages, "ui", Embeddable::Yes(signer_address.clone()));
pages.insert("proxy".into(), ProxyPac::boxed(signer_address.clone()));
pages.insert(WEB_PATH.into(), Web::boxed(signer_address.clone(), web_proxy_tokens.clone(), remote.clone(), fetch.clone()));
pages
}
fn insert<T : WebApp + Default + 'static>(pages: &mut Endpoints, id: &str, embed_at: Embeddable) {
pages.insert(id.to_owned(), Box::new(match embed_at {
Embeddable::Yes(address) => PageEndpoint::new_safe_to_embed(T::default(), address),
Embeddable::No => PageEndpoint::new(T::default()),
}));
}
enum Embeddable {
Yes(Option<(String, u16)>),
#[allow(dead_code)]
No,
}

53
dapps/src/endpoint.rs Normal file
View File

@@ -0,0 +1,53 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! URL Endpoint traits
use hyper::{self, server, net};
use std::collections::BTreeMap;
#[derive(Debug, PartialEq, Default, Clone)]
pub struct EndpointPath {
pub app_id: String,
pub app_params: Vec<String>,
pub host: String,
pub port: u16,
pub using_dapps_domains: bool,
}
#[derive(Debug, PartialEq, Clone)]
pub struct EndpointInfo {
pub name: String,
pub description: String,
pub version: String,
pub author: String,
pub icon_url: String,
}
pub type Endpoints = BTreeMap<String, Box<Endpoint>>;
pub type Handler = server::Handler<net::HttpStream> + Send;
pub trait Endpoint : Send + Sync {
fn info(&self) -> Option<&EndpointInfo> { None }
fn to_handler(&self, _path: EndpointPath) -> Box<Handler> {
panic!("This Endpoint is asynchronous and requires Control object.");
}
fn to_async_handler(&self, path: EndpointPath, _control: hyper::Control) -> Box<Handler> {
self.to_handler(path)
}
}

21
dapps/src/error_tpl.html Normal file
View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>{title}</title>
<link rel="stylesheet" href="/parity-utils/styles.css">
</head>
<body>
<div class="parity-navbar">
</div>
<div class="parity-box">
<h1>{title}</h1>
<h3>{message}</h3>
<p><code>{details}</code></p>
</div>
<div class="parity-status">
<small>{version}</small>
</div>
</body>
</html>

View File

@@ -0,0 +1,44 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Authorization Handlers
use hyper::{server, Decoder, Encoder, Next};
use hyper::net::HttpStream;
use hyper::status::StatusCode;
pub struct AuthRequiredHandler;
impl server::Handler<HttpStream> for AuthRequiredHandler {
fn on_request(&mut self, _request: server::Request<HttpStream>) -> Next {
Next::write()
}
fn on_request_readable(&mut self, _decoder: &mut Decoder<HttpStream>) -> Next {
Next::write()
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
res.set_status(StatusCode::Unauthorized);
res.headers_mut().set_raw("WWW-Authenticate", vec![b"Basic realm=\"Parity\"".to_vec()]);
Next::write()
}
fn on_response_writable(&mut self, _encoder: &mut Encoder<HttpStream>) -> Next {
Next::end()
}
}

View File

@@ -0,0 +1,108 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Simple Content Handler
use hyper::{header, server, Decoder, Encoder, Next};
use hyper::net::HttpStream;
use hyper::mime::Mime;
use hyper::status::StatusCode;
use util::version;
use handlers::add_security_headers;
#[derive(Clone)]
pub struct ContentHandler {
code: StatusCode,
content: String,
mimetype: Mime,
write_pos: usize,
safe_to_embed_on: Option<(String, u16)>,
}
impl ContentHandler {
pub fn ok(content: String, mimetype: Mime) -> Self {
Self::new(StatusCode::Ok, content, mimetype)
}
pub fn not_found(content: String, mimetype: Mime) -> Self {
Self::new(StatusCode::NotFound, content, mimetype)
}
pub fn html(code: StatusCode, content: String, embeddable_on: Option<(String, u16)>) -> Self {
Self::new_embeddable(code, content, mime!(Text/Html), embeddable_on)
}
pub fn error(code: StatusCode, title: &str, message: &str, details: Option<&str>, embeddable_on: Option<(String, u16)>) -> Self {
Self::html(code, format!(
include_str!("../error_tpl.html"),
title=title,
message=message,
details=details.unwrap_or_else(|| ""),
version=version(),
), embeddable_on)
}
pub fn new(code: StatusCode, content: String, mimetype: Mime) -> Self {
Self::new_embeddable(code, content, mimetype, None)
}
pub fn new_embeddable(code: StatusCode, content: String, mimetype: Mime, embeddable_on: Option<(String, u16)>) -> Self {
ContentHandler {
code: code,
content: content,
mimetype: mimetype,
write_pos: 0,
safe_to_embed_on: embeddable_on,
}
}
}
impl server::Handler<HttpStream> for ContentHandler {
fn on_request(&mut self, _request: server::Request<HttpStream>) -> Next {
Next::write()
}
fn on_request_readable(&mut self, _decoder: &mut Decoder<HttpStream>) -> Next {
Next::write()
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
res.set_status(self.code);
res.headers_mut().set(header::ContentType(self.mimetype.clone()));
add_security_headers(&mut res.headers_mut(), self.safe_to_embed_on.clone());
Next::write()
}
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
let bytes = self.content.as_bytes();
if self.write_pos == bytes.len() {
return Next::end();
}
match encoder.write(&bytes[self.write_pos..]) {
Ok(bytes) => {
self.write_pos += bytes;
Next::write()
},
Err(e) => match e.kind() {
::std::io::ErrorKind::WouldBlock => Next::write(),
_ => Next::end()
},
}
}
}

View File

@@ -0,0 +1,60 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Echo Handler
use std::io::Read;
use hyper::{server, Decoder, Encoder, Next};
use hyper::net::HttpStream;
use super::ContentHandler;
#[derive(Default)]
pub struct EchoHandler {
content: String,
handler: Option<ContentHandler>,
}
impl server::Handler<HttpStream> for EchoHandler {
fn on_request(&mut self, _: server::Request<HttpStream>) -> Next {
Next::read()
}
fn on_request_readable(&mut self, decoder: &mut Decoder<HttpStream>) -> Next {
match decoder.read_to_string(&mut self.content) {
Ok(0) => {
self.handler = Some(ContentHandler::ok(self.content.clone(), mime!(Application/Json)));
Next::write()
},
Ok(_) => Next::read(),
Err(e) => match e.kind() {
::std::io::ErrorKind::WouldBlock => Next::read(),
_ => Next::end(),
}
}
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
self.handler.as_mut()
.expect("handler always set in on_request, which is before now; qed")
.on_response(res)
}
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
self.handler.as_mut()
.expect("handler always set in on_request, which is before now; qed")
.on_response_writable(encoder)
}
}

394
dapps/src/handlers/fetch.rs Normal file
View File

@@ -0,0 +1,394 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Hyper Server Handler that fetches a file during a request (proxy).
use std::fmt;
use std::sync::{mpsc, Arc};
use std::sync::atomic::{AtomicBool, Ordering};
use std::time::{Instant, Duration};
use fetch::{self, Fetch};
use futures::Future;
use parity_reactor::Remote;
use util::Mutex;
use hyper::{server, Decoder, Encoder, Next, Method, Control};
use hyper::net::HttpStream;
use hyper::uri::RequestUri;
use hyper::status::StatusCode;
use endpoint::EndpointPath;
use handlers::{ContentHandler, StreamingHandler};
use page::{LocalPageEndpoint, PageHandlerWaiting};
const FETCH_TIMEOUT: u64 = 300;
pub enum ValidatorResponse {
Local(LocalPageEndpoint),
Streaming(StreamingHandler<fetch::Response>),
}
pub trait ContentValidator: Send + 'static {
type Error: fmt::Debug + fmt::Display;
fn validate_and_install(&self, fetch::Response) -> Result<ValidatorResponse, Self::Error>;
}
enum FetchState {
Waiting,
NotStarted(String),
Error(ContentHandler),
InProgress(mpsc::Receiver<FetchState>),
Streaming(StreamingHandler<fetch::Response>),
Done(LocalPageEndpoint, Box<PageHandlerWaiting>),
}
enum WaitResult {
Error(ContentHandler),
Done(LocalPageEndpoint),
NonAwaitable,
}
#[derive(Clone)]
pub struct FetchControl {
abort: Arc<AtomicBool>,
listeners: Arc<Mutex<Vec<(Control, mpsc::Sender<WaitResult>)>>>,
deadline: Instant,
}
impl Default for FetchControl {
fn default() -> Self {
FetchControl {
abort: Arc::new(AtomicBool::new(false)),
listeners: Arc::new(Mutex::new(Vec::new())),
deadline: Instant::now() + Duration::from_secs(FETCH_TIMEOUT),
}
}
}
impl FetchControl {
fn notify<F: Fn() -> WaitResult>(&self, status: F) {
let mut listeners = self.listeners.lock();
for (control, sender) in listeners.drain(..) {
trace!(target: "dapps", "Resuming request waiting for content...");
if let Err(e) = sender.send(status()) {
trace!(target: "dapps", "Waiting listener notification failed: {:?}", e);
} else {
let _ = control.ready(Next::read());
}
}
}
fn set_status(&self, status: &FetchState) {
match *status {
FetchState::Error(ref handler) => self.notify(|| WaitResult::Error(handler.clone())),
FetchState::Done(ref endpoint, _) => self.notify(|| WaitResult::Done(endpoint.clone())),
FetchState::Streaming(_) => self.notify(|| WaitResult::NonAwaitable),
FetchState::NotStarted(_) | FetchState::InProgress(_) | FetchState::Waiting => {},
}
}
pub fn is_deadline_reached(&self) -> bool {
self.deadline < Instant::now()
}
pub fn abort(&self) {
self.abort.store(true, Ordering::SeqCst);
}
pub fn to_async_handler(&self, path: EndpointPath, control: Control) -> Box<server::Handler<HttpStream> + Send> {
let (tx, rx) = mpsc::channel();
self.listeners.lock().push((control, tx));
Box::new(WaitingHandler {
receiver: rx,
state: FetchState::Waiting,
uri: RequestUri::default(),
path: path,
})
}
}
pub struct WaitingHandler {
receiver: mpsc::Receiver<WaitResult>,
state: FetchState,
uri: RequestUri,
path: EndpointPath,
}
impl server::Handler<HttpStream> for WaitingHandler {
fn on_request(&mut self, request: server::Request<HttpStream>) -> Next {
self.uri = request.uri().clone();
Next::wait()
}
fn on_request_readable(&mut self, decoder: &mut Decoder<HttpStream>) -> Next {
let result = self.receiver.try_recv().ok();
self.state = match result {
Some(WaitResult::Error(handler)) => FetchState::Error(handler),
Some(WaitResult::Done(endpoint)) => {
let mut page_handler = endpoint.to_page_handler(self.path.clone());
page_handler.set_uri(&self.uri);
FetchState::Done(endpoint, page_handler)
},
_ => {
warn!("A result for waiting request was not received.");
FetchState::Waiting
},
};
match self.state {
FetchState::Done(_, ref mut handler) => handler.on_request_readable(decoder),
FetchState::Streaming(ref mut handler) => handler.on_request_readable(decoder),
FetchState::Error(ref mut handler) => handler.on_request_readable(decoder),
_ => Next::write(),
}
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
match self.state {
FetchState::Done(_, ref mut handler) => handler.on_response(res),
FetchState::Streaming(ref mut handler) => handler.on_response(res),
FetchState::Error(ref mut handler) => handler.on_response(res),
_ => Next::end(),
}
}
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
match self.state {
FetchState::Done(_, ref mut handler) => handler.on_response_writable(encoder),
FetchState::Streaming(ref mut handler) => handler.on_response_writable(encoder),
FetchState::Error(ref mut handler) => handler.on_response_writable(encoder),
_ => Next::end(),
}
}
}
#[derive(Clone)]
struct Errors {
embeddable_on: Option<(String, u16)>,
}
impl Errors {
fn download_error<E: fmt::Debug>(&self, e: E) -> ContentHandler {
ContentHandler::error(
StatusCode::BadGateway,
"Download Error",
"There was an error when fetching the content.",
Some(&format!("{:?}", e)),
self.embeddable_on.clone(),
)
}
fn invalid_content<E: fmt::Debug>(&self, e: E) -> ContentHandler {
ContentHandler::error(
StatusCode::BadGateway,
"Invalid Dapp",
"Downloaded bundle does not contain a valid content.",
Some(&format!("{:?}", e)),
self.embeddable_on.clone(),
)
}
fn timeout_error(&self) -> ContentHandler {
ContentHandler::error(
StatusCode::GatewayTimeout,
"Download Timeout",
&format!("Could not fetch content within {} seconds.", FETCH_TIMEOUT),
None,
self.embeddable_on.clone(),
)
}
fn method_not_allowed(&self) -> ContentHandler {
ContentHandler::error(
StatusCode::MethodNotAllowed,
"Method Not Allowed",
"Only <code>GET</code> requests are allowed.",
None,
self.embeddable_on.clone(),
)
}
}
pub struct ContentFetcherHandler<H: ContentValidator, F: Fetch> {
fetch_control: FetchControl,
control: Control,
remote: Remote,
status: FetchState,
fetch: F,
installer: Option<H>,
path: EndpointPath,
errors: Errors,
}
impl<H: ContentValidator, F: Fetch> ContentFetcherHandler<H, F> {
pub fn new(
url: String,
path: EndpointPath,
control: Control,
installer: H,
embeddable_on: Option<(String, u16)>,
remote: Remote,
fetch: F,
) -> Self {
ContentFetcherHandler {
fetch_control: FetchControl::default(),
control: control,
remote: remote,
fetch: fetch,
status: FetchState::NotStarted(url),
installer: Some(installer),
path: path,
errors: Errors {
embeddable_on: embeddable_on,
},
}
}
pub fn fetch_control(&self) -> FetchControl {
self.fetch_control.clone()
}
fn fetch_content(&self, uri: RequestUri, url: &str, installer: H) -> mpsc::Receiver<FetchState> {
let (tx, rx) = mpsc::channel();
let abort = self.fetch_control.abort.clone();
let path = self.path.clone();
let tx2 = tx.clone();
let control = self.control.clone();
let errors = self.errors.clone();
let future = self.fetch.fetch_with_abort(url, abort.into()).then(move |result| {
trace!(target: "dapps", "Fetching content finished. Starting validation: {:?}", result);
let new_state = match result {
Ok(response) => match installer.validate_and_install(response) {
Ok(ValidatorResponse::Local(endpoint)) => {
trace!(target: "dapps", "Validation OK. Returning response.");
let mut handler = endpoint.to_page_handler(path);
handler.set_uri(&uri);
FetchState::Done(endpoint, handler)
},
Ok(ValidatorResponse::Streaming(handler)) => {
trace!(target: "dapps", "Validation OK. Streaming response.");
FetchState::Streaming(handler)
},
Err(e) => {
trace!(target: "dapps", "Error while validating content: {:?}", e);
FetchState::Error(errors.invalid_content(e))
},
},
Err(e) => {
warn!(target: "dapps", "Unable to fetch content: {:?}", e);
FetchState::Error(errors.download_error(e))
},
};
// Content may be resolved when the connection is already dropped.
let _ = tx2.send(new_state);
// Ignoring control errors
let _ = control.ready(Next::read());
Ok(()) as Result<(), ()>
});
// make sure to run within fetch thread pool.
let future = self.fetch.process(future);
// spawn to event loop
let control = self.control.clone();
let errors = self.errors.clone();
self.remote.spawn_with_timeout(|| future, Duration::from_secs(FETCH_TIMEOUT), move || {
// Notify about the timeout
let _ = tx.send(FetchState::Error(errors.timeout_error()));
// Ignoring control errors
let _ = control.ready(Next::read());
});
rx
}
}
impl<H: ContentValidator, F: Fetch> server::Handler<HttpStream> for ContentFetcherHandler<H, F> {
fn on_request(&mut self, request: server::Request<HttpStream>) -> Next {
let status = if let FetchState::NotStarted(ref url) = self.status {
let uri = request.uri().clone();
let installer = self.installer.take().expect("Installer always set initialy; installer used only in on_request; on_request invoked only once; qed");
Some(match *request.method() {
// Start fetching content
Method::Get => {
trace!(target: "dapps", "Fetching content from: {:?}", url);
let receiver = self.fetch_content(uri, url, installer);
FetchState::InProgress(receiver)
},
// or return error
_ => FetchState::Error(self.errors.method_not_allowed()),
})
} else { None };
if let Some(status) = status {
self.fetch_control.set_status(&status);
self.status = status;
}
Next::read()
}
fn on_request_readable(&mut self, decoder: &mut Decoder<HttpStream>) -> Next {
let (status, next) = match self.status {
// Request may time out
FetchState::InProgress(_) if self.fetch_control.is_deadline_reached() => {
trace!(target: "dapps", "Fetching dapp failed because of timeout.");
(Some(FetchState::Error(self.errors.timeout_error())), Next::write())
},
FetchState::InProgress(ref receiver) => {
// Check if there is an answer
let rec = receiver.try_recv();
match rec {
// just return the new state
Ok(state) => (Some(state), Next::write()),
// wait some more
_ => (None, Next::wait())
}
},
FetchState::Error(ref mut handler) => (None, handler.on_request_readable(decoder)),
_ => (None, Next::write()),
};
if let Some(status) = status {
self.fetch_control.set_status(&status);
self.status = status;
}
next
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
match self.status {
FetchState::Done(_, ref mut handler) => handler.on_response(res),
FetchState::Streaming(ref mut handler) => handler.on_response(res),
FetchState::Error(ref mut handler) => handler.on_response(res),
_ => Next::end(),
}
}
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
match self.status {
FetchState::Done(_, ref mut handler) => handler.on_response_writable(encoder),
FetchState::Streaming(ref mut handler) => handler.on_response_writable(encoder),
FetchState::Error(ref mut handler) => handler.on_response_writable(encoder),
_ => Next::end(),
}
}
}

90
dapps/src/handlers/mod.rs Normal file
View File

@@ -0,0 +1,90 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Hyper handlers implementations.
mod auth;
mod content;
mod echo;
mod fetch;
mod redirect;
mod streaming;
pub use self::auth::AuthRequiredHandler;
pub use self::content::ContentHandler;
pub use self::echo::EchoHandler;
pub use self::fetch::{ContentFetcherHandler, ContentValidator, FetchControl, ValidatorResponse};
pub use self::redirect::Redirection;
pub use self::streaming::StreamingHandler;
use url::Url;
use hyper::{server, header, net, uri};
use address;
/// Adds security-related headers to the Response.
pub fn add_security_headers(headers: &mut header::Headers, embeddable_on: Option<(String, u16)>) {
headers.set_raw("X-XSS-Protection", vec![b"1; mode=block".to_vec()]);
headers.set_raw("X-Content-Type-Options", vec![b"nosniff".to_vec()]);
// Embedding header:
if let Some(embeddable_on) = embeddable_on {
headers.set_raw(
"X-Frame-Options",
vec![format!("ALLOW-FROM http://{}", address(&embeddable_on)).into_bytes()]
);
} else {
// TODO [ToDr] Should we be more strict here (DENY?)?
headers.set_raw("X-Frame-Options", vec![b"SAMEORIGIN".to_vec()]);
}
}
/// Extracts URL part from the Request.
pub fn extract_url(req: &server::Request<net::HttpStream>) -> Option<Url> {
convert_uri_to_url(req.uri(), req.headers().get::<header::Host>())
}
/// Extracts URL given URI and Host header.
pub fn convert_uri_to_url(uri: &uri::RequestUri, host: Option<&header::Host>) -> Option<Url> {
match *uri {
uri::RequestUri::AbsoluteUri(ref url) => {
match Url::from_generic_url(url.clone()) {
Ok(url) => Some(url),
_ => None,
}
},
uri::RequestUri::AbsolutePath { ref path, ref query } => {
let query = match *query {
Some(ref query) => format!("?{}", query),
None => "".into(),
};
// Attempt to prepend the Host header (mandatory in HTTP/1.1)
let url_string = match host {
Some(ref host) => {
format!("http://{}:{}{}{}", host.hostname, host.port.unwrap_or(80), path, query)
},
None => return None,
};
match Url::parse(&url_string) {
Ok(url) => Some(url),
_ => None,
}
},
_ => None,
}
}

View File

@@ -0,0 +1,61 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! HTTP Redirection hyper handler
use hyper::{header, server, Decoder, Encoder, Next};
use hyper::net::HttpStream;
use hyper::status::StatusCode;
#[derive(Clone)]
pub struct Redirection {
to_url: String
}
impl Redirection {
pub fn new(url: &str) -> Self {
Redirection {
to_url: url.to_owned()
}
}
pub fn boxed(url: &str) -> Box<Self> {
Box::new(Self::new(url))
}
}
impl server::Handler<HttpStream> for Redirection {
fn on_request(&mut self, _request: server::Request<HttpStream>) -> Next {
Next::write()
}
fn on_request_readable(&mut self, _decoder: &mut Decoder<HttpStream>) -> Next {
Next::write()
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
// Don't use `MovedPermanently` here to prevent browser from caching the redirections.
res.set_status(StatusCode::Found);
res.headers_mut().set(header::Location(self.to_url.to_owned()));
Next::write()
}
fn on_response_writable(&mut self, _encoder: &mut Encoder<HttpStream>) -> Next {
Next::end()
}
}

View File

@@ -0,0 +1,101 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Content Stream Response
use std::io::{self, Read};
use hyper::{header, server, Decoder, Encoder, Next};
use hyper::net::HttpStream;
use hyper::mime::Mime;
use hyper::status::StatusCode;
use handlers::add_security_headers;
const BUFFER_SIZE: usize = 1024;
pub struct StreamingHandler<R: io::Read> {
buffer: [u8; BUFFER_SIZE],
buffer_leftover: usize,
status: StatusCode,
content: io::BufReader<R>,
mimetype: Mime,
safe_to_embed_on: Option<(String, u16)>,
}
impl<R: io::Read> StreamingHandler<R> {
pub fn new(content: R, status: StatusCode, mimetype: Mime, embeddable_on: Option<(String, u16)>) -> Self {
StreamingHandler {
buffer: [0; BUFFER_SIZE],
buffer_leftover: 0,
status: status,
content: io::BufReader::new(content),
mimetype: mimetype,
safe_to_embed_on: embeddable_on,
}
}
pub fn set_initial_content(&mut self, content: &str) {
assert_eq!(self.buffer_leftover, 0);
let bytes = content.as_bytes();
self.buffer_leftover = bytes.len();
self.buffer[0..self.buffer_leftover].copy_from_slice(bytes);
}
}
impl<R: io::Read> server::Handler<HttpStream> for StreamingHandler<R> {
fn on_request(&mut self, _request: server::Request<HttpStream>) -> Next {
Next::write()
}
fn on_request_readable(&mut self, _decoder: &mut Decoder<HttpStream>) -> Next {
Next::write()
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
res.set_status(self.status);
res.headers_mut().set(header::ContentType(self.mimetype.clone()));
add_security_headers(&mut res.headers_mut(), self.safe_to_embed_on.clone());
Next::write()
}
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
fn handle_error(e: io::Error) -> Next {
match e.kind() {
::std::io::ErrorKind::WouldBlock => Next::write(),
_ => Next::end(),
}
}
let write_pos = self.buffer_leftover;
match self.content.read(&mut self.buffer[write_pos..]) {
Err(e) => handle_error(e),
Ok(read) => match encoder.write(&self.buffer[..write_pos + read]) {
Err(e) => handle_error(e),
Ok(0) => Next::end(),
Ok(wrote) => {
self.buffer_leftover = write_pos + read - wrote;
if self.buffer_leftover > 0 {
for i in self.buffer_leftover..write_pos + read {
self.buffer.swap(i, i - self.buffer_leftover);
}
}
Next::write()
},
},
}
}
}

449
dapps/src/lib.rs Normal file
View File

@@ -0,0 +1,449 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Ethcore Webapplications for Parity
#![warn(missing_docs)]
#![cfg_attr(feature="nightly", feature(plugin))]
#![cfg_attr(feature="nightly", plugin(clippy))]
extern crate base32;
extern crate hyper;
extern crate time;
extern crate url as url_lib;
extern crate unicase;
extern crate serde;
extern crate serde_json;
extern crate zip;
extern crate rand;
extern crate jsonrpc_core;
extern crate jsonrpc_http_server;
extern crate mime_guess;
extern crate rustc_serialize;
extern crate ethcore_rpc;
extern crate ethcore_util as util;
extern crate parity_hash_fetch as hash_fetch;
extern crate linked_hash_map;
extern crate fetch;
extern crate parity_dapps_glue as parity_dapps;
extern crate futures;
extern crate parity_reactor;
#[macro_use]
extern crate log;
#[macro_use]
extern crate mime;
#[macro_use]
extern crate serde_derive;
#[cfg(test)]
extern crate ethcore_devtools as devtools;
#[cfg(test)]
extern crate env_logger;
mod endpoint;
mod apps;
mod page;
mod router;
mod handlers;
mod rpc;
mod api;
mod proxypac;
mod url;
mod web;
#[cfg(test)]
mod tests;
use std::path::{Path, PathBuf};
use std::sync::{Arc, Mutex};
use std::net::SocketAddr;
use std::collections::HashMap;
use ethcore_rpc::{Metadata};
use fetch::{Fetch, Client as FetchClient};
use hash_fetch::urlhint::ContractClient;
use jsonrpc_core::Middleware;
use jsonrpc_core::reactor::RpcHandler;
use router::auth::{Authorization, NoAuth, HttpBasicAuth};
use parity_reactor::Remote;
use self::apps::{HOME_PAGE, DAPPS_DOMAIN};
/// Indicates sync status
pub trait SyncStatus: Send + Sync {
/// Returns true if there is a major sync happening.
fn is_major_importing(&self) -> bool;
}
impl<F> SyncStatus for F where F: Fn() -> bool + Send + Sync {
fn is_major_importing(&self) -> bool { self() }
}
/// Validates Web Proxy tokens
pub trait WebProxyTokens: Send + Sync {
/// Should return true if token is a valid web proxy access token.
fn is_web_proxy_token_valid(&self, token: &str) -> bool;
}
impl<F> WebProxyTokens for F where F: Fn(String) -> bool + Send + Sync {
fn is_web_proxy_token_valid(&self, token: &str) -> bool { self(token.to_owned()) }
}
/// Webapps HTTP+RPC server build.
pub struct ServerBuilder<T: Fetch = FetchClient> {
dapps_path: PathBuf,
extra_dapps: Vec<PathBuf>,
registrar: Arc<ContractClient>,
sync_status: Arc<SyncStatus>,
web_proxy_tokens: Arc<WebProxyTokens>,
signer_address: Option<(String, u16)>,
allowed_hosts: Option<Vec<String>>,
extra_cors: Option<Vec<String>>,
remote: Remote,
fetch: Option<T>,
}
impl ServerBuilder {
/// Construct new dapps server
pub fn new<P: AsRef<Path>>(dapps_path: P, registrar: Arc<ContractClient>, remote: Remote) -> Self {
ServerBuilder {
dapps_path: dapps_path.as_ref().to_owned(),
extra_dapps: vec![],
registrar: registrar,
sync_status: Arc::new(|| false),
web_proxy_tokens: Arc::new(|_| false),
signer_address: None,
allowed_hosts: Some(vec![]),
extra_cors: None,
remote: remote,
fetch: None,
}
}
}
impl<T: Fetch> ServerBuilder<T> {
/// Set a fetch client to use.
pub fn fetch<X: Fetch>(self, fetch: X) -> ServerBuilder<X> {
ServerBuilder {
dapps_path: self.dapps_path,
extra_dapps: vec![],
registrar: self.registrar,
sync_status: self.sync_status,
web_proxy_tokens: self.web_proxy_tokens,
signer_address: self.signer_address,
allowed_hosts: self.allowed_hosts,
extra_cors: self.extra_cors,
remote: self.remote,
fetch: Some(fetch),
}
}
/// Change default sync status.
pub fn sync_status(mut self, status: Arc<SyncStatus>) -> Self {
self.sync_status = status;
self
}
/// Change default web proxy tokens validator.
pub fn web_proxy_tokens(mut self, tokens: Arc<WebProxyTokens>) -> Self {
self.web_proxy_tokens = tokens;
self
}
/// Change default signer port.
pub fn signer_address(mut self, signer_address: Option<(String, u16)>) -> Self {
self.signer_address = signer_address;
self
}
/// Change allowed hosts.
/// `None` - All hosts are allowed
/// `Some(whitelist)` - Allow only whitelisted hosts (+ listen address)
pub fn allowed_hosts(mut self, allowed_hosts: Option<Vec<String>>) -> Self {
self.allowed_hosts = allowed_hosts;
self
}
/// Extra cors headers.
/// `None` - no additional CORS URLs
pub fn extra_cors_headers(mut self, cors: Option<Vec<String>>) -> Self {
self.extra_cors = cors;
self
}
/// Change extra dapps paths (apart from `dapps_path`)
pub fn extra_dapps<P: AsRef<Path>>(mut self, extra_dapps: &[P]) -> Self {
self.extra_dapps = extra_dapps.iter().map(|p| p.as_ref().to_owned()).collect();
self
}
/// Asynchronously start server with no authentication,
/// returns result with `Server` handle on success or an error.
pub fn start_unsecured_http<S: Middleware<Metadata>>(self, addr: &SocketAddr, handler: RpcHandler<Metadata, S>) -> Result<Server, ServerError> {
let fetch = self.fetch_client()?;
Server::start_http(
addr,
self.allowed_hosts,
self.extra_cors,
NoAuth,
handler,
self.dapps_path,
self.extra_dapps,
self.signer_address,
self.registrar,
self.sync_status,
self.web_proxy_tokens,
self.remote,
fetch,
)
}
/// Asynchronously start server with `HTTP Basic Authentication`,
/// return result with `Server` handle on success or an error.
pub fn start_basic_auth_http<S: Middleware<Metadata>>(self, addr: &SocketAddr, username: &str, password: &str, handler: RpcHandler<Metadata, S>) -> Result<Server, ServerError> {
let fetch = self.fetch_client()?;
Server::start_http(
addr,
self.allowed_hosts,
self.extra_cors,
HttpBasicAuth::single_user(username, password),
handler,
self.dapps_path,
self.extra_dapps,
self.signer_address,
self.registrar,
self.sync_status,
self.web_proxy_tokens,
self.remote,
fetch,
)
}
fn fetch_client(&self) -> Result<T, ServerError> {
match self.fetch.clone() {
Some(fetch) => Ok(fetch),
None => T::new().map_err(|_| ServerError::FetchInitialization),
}
}
}
/// Webapps HTTP server.
pub struct Server {
server: Option<hyper::server::Listening>,
panic_handler: Arc<Mutex<Option<Box<Fn() -> () + Send>>>>,
}
impl Server {
/// Returns a list of allowed hosts or `None` if all hosts are allowed.
fn allowed_hosts(hosts: Option<Vec<String>>, bind_address: String) -> Option<Vec<String>> {
let mut allowed = Vec::new();
match hosts {
Some(hosts) => allowed.extend_from_slice(&hosts),
None => return None,
}
// Add localhost domain as valid too if listening on loopback interface.
allowed.push(bind_address.replace("127.0.0.1", "localhost").into());
allowed.push(bind_address.into());
Some(allowed)
}
/// Returns a list of CORS domains for API endpoint.
fn cors_domains(signer_address: Option<(String, u16)>, extra_cors: Option<Vec<String>>) -> Vec<String> {
let basic_cors = match signer_address {
Some(signer_address) => vec![
format!("http://{}{}", HOME_PAGE, DAPPS_DOMAIN),
format!("http://{}{}:{}", HOME_PAGE, DAPPS_DOMAIN, signer_address.1),
format!("http://{}", address(&signer_address)),
format!("https://{}{}", HOME_PAGE, DAPPS_DOMAIN),
format!("https://{}{}:{}", HOME_PAGE, DAPPS_DOMAIN, signer_address.1),
format!("https://{}", address(&signer_address)),
],
None => vec![],
};
match extra_cors {
None => basic_cors,
Some(extra_cors) => basic_cors.into_iter().chain(extra_cors).collect(),
}
}
fn start_http<A: Authorization + 'static, F: Fetch, T: Middleware<Metadata>>(
addr: &SocketAddr,
hosts: Option<Vec<String>>,
extra_cors: Option<Vec<String>>,
authorization: A,
handler: RpcHandler<Metadata, T>,
dapps_path: PathBuf,
extra_dapps: Vec<PathBuf>,
signer_address: Option<(String, u16)>,
registrar: Arc<ContractClient>,
sync_status: Arc<SyncStatus>,
web_proxy_tokens: Arc<WebProxyTokens>,
remote: Remote,
fetch: F,
) -> Result<Server, ServerError> {
let panic_handler = Arc::new(Mutex::new(None));
let authorization = Arc::new(authorization);
let content_fetcher = Arc::new(apps::fetcher::ContentFetcher::new(
hash_fetch::urlhint::URLHintContract::new(registrar),
sync_status,
signer_address.clone(),
remote.clone(),
fetch.clone(),
));
let endpoints = Arc::new(apps::all_endpoints(
dapps_path,
extra_dapps,
signer_address.clone(),
web_proxy_tokens,
remote.clone(),
fetch.clone(),
));
let cors_domains = Self::cors_domains(signer_address.clone(), extra_cors);
let special = Arc::new({
let mut special = HashMap::new();
special.insert(router::SpecialEndpoint::Rpc, rpc::rpc(handler, cors_domains.clone(), panic_handler.clone()));
special.insert(router::SpecialEndpoint::Utils, apps::utils());
special.insert(
router::SpecialEndpoint::Api,
api::RestApi::new(cors_domains, endpoints.clone(), content_fetcher.clone())
);
special
});
let hosts = Self::allowed_hosts(hosts, format!("{}", addr));
hyper::Server::http(addr)?
.handle(move |ctrl| router::Router::new(
ctrl,
signer_address.clone(),
content_fetcher.clone(),
endpoints.clone(),
special.clone(),
authorization.clone(),
hosts.clone(),
))
.map(|(l, srv)| {
::std::thread::spawn(move || {
srv.run();
});
Server {
server: Some(l),
panic_handler: panic_handler,
}
})
.map_err(ServerError::from)
}
/// Set callback for panics.
pub fn set_panic_handler<F>(&self, handler: F) where F : Fn() -> () + Send + 'static {
*self.panic_handler.lock().unwrap() = Some(Box::new(handler));
}
#[cfg(test)]
/// Returns address that this server is bound to.
pub fn addr(&self) -> &SocketAddr {
self.server.as_ref()
.expect("server is always Some at the start; it's consumed only when object is dropped; qed")
.addrs()
.first()
.expect("You cannot start the server without binding to at least one address; qed")
}
}
impl Drop for Server {
fn drop(&mut self) {
self.server.take().unwrap().close()
}
}
/// Webapp Server startup error
#[derive(Debug)]
pub enum ServerError {
/// Wrapped `std::io::Error`
IoError(std::io::Error),
/// Other `hyper` error
Other(hyper::error::Error),
/// Fetch service initialization error
FetchInitialization,
}
impl From<hyper::error::Error> for ServerError {
fn from(err: hyper::error::Error) -> Self {
match err {
hyper::error::Error::Io(e) => ServerError::IoError(e),
e => ServerError::Other(e),
}
}
}
/// Random filename
fn random_filename() -> String {
use ::rand::Rng;
let mut rng = ::rand::OsRng::new().unwrap();
rng.gen_ascii_chars().take(12).collect()
}
fn address(address: &(String, u16)) -> String {
format!("{}:{}", address.0, address.1)
}
#[cfg(test)]
mod util_tests {
use super::Server;
#[test]
fn should_return_allowed_hosts() {
// given
let bind_address = "127.0.0.1".to_owned();
// when
let all = Server::allowed_hosts(None, bind_address.clone());
let address = Server::allowed_hosts(Some(Vec::new()), bind_address.clone());
let some = Server::allowed_hosts(Some(vec!["ethcore.io".into()]), bind_address.clone());
// then
assert_eq!(all, None);
assert_eq!(address, Some(vec!["localhost".into(), "127.0.0.1".into()]));
assert_eq!(some, Some(vec!["ethcore.io".into(), "localhost".into(), "127.0.0.1".into()]));
}
#[test]
fn should_return_cors_domains() {
// given
// when
let none = Server::cors_domains(None, None);
let some = Server::cors_domains(Some(("127.0.0.1".into(), 18180)), None);
let extra = Server::cors_domains(None, Some(vec!["all".to_owned()]));
// then
assert_eq!(none, Vec::<String>::new());
assert_eq!(some, vec![
"http://parity.web3.site".to_owned(),
"http://parity.web3.site:18180".into(),
"http://127.0.0.1:18180".into(),
"https://parity.web3.site".into(),
"https://parity.web3.site:18180".into(),
"https://127.0.0.1:18180".into()
]);
assert_eq!(extra, vec!["all".to_owned()]);
}
}

155
dapps/src/page/builtin.rs Normal file
View File

@@ -0,0 +1,155 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use page::{handler, PageCache};
use std::sync::Arc;
use endpoint::{Endpoint, EndpointInfo, EndpointPath, Handler};
use parity_dapps::{WebApp, File, Info};
pub struct PageEndpoint<T : WebApp + 'static> {
/// Content of the files
pub app: Arc<T>,
/// Prefix to strip from the path (when `None` deducted from `app_id`)
pub prefix: Option<String>,
/// Safe to be loaded in frame by other origin. (use wisely!)
safe_to_embed_on: Option<(String, u16)>,
info: EndpointInfo,
}
impl<T: WebApp + 'static> PageEndpoint<T> {
/// Creates new `PageEndpoint` for builtin (compile time) Dapp.
pub fn new(app: T) -> Self {
let info = app.info();
PageEndpoint {
app: Arc::new(app),
prefix: None,
safe_to_embed_on: None,
info: EndpointInfo::from(info),
}
}
/// Create new `PageEndpoint` and specify prefix that should be removed before looking for a file.
/// It's used only for special endpoints (i.e. `/parity-utils/`)
/// So `/parity-utils/inject.js` will be resolved to `/inject.js` is prefix is set.
pub fn with_prefix(app: T, prefix: String) -> Self {
let info = app.info();
PageEndpoint {
app: Arc::new(app),
prefix: Some(prefix),
safe_to_embed_on: None,
info: EndpointInfo::from(info),
}
}
/// Creates new `PageEndpoint` which can be safely used in iframe
/// even from different origin. It might be dangerous (clickjacking).
/// Use wisely!
pub fn new_safe_to_embed(app: T, address: Option<(String, u16)>) -> Self {
let info = app.info();
PageEndpoint {
app: Arc::new(app),
prefix: None,
safe_to_embed_on: address,
info: EndpointInfo::from(info),
}
}
}
impl<T: WebApp> Endpoint for PageEndpoint<T> {
fn info(&self) -> Option<&EndpointInfo> {
Some(&self.info)
}
fn to_handler(&self, path: EndpointPath) -> Box<Handler> {
Box::new(handler::PageHandler {
app: BuiltinDapp::new(self.app.clone()),
prefix: self.prefix.clone(),
path: path,
file: handler::ServedFile::new(self.safe_to_embed_on.clone()),
cache: PageCache::Disabled,
safe_to_embed_on: self.safe_to_embed_on.clone(),
})
}
}
impl From<Info> for EndpointInfo {
fn from(info: Info) -> Self {
EndpointInfo {
name: info.name.into(),
description: info.description.into(),
author: info.author.into(),
icon_url: info.icon_url.into(),
version: info.version.into(),
}
}
}
struct BuiltinDapp<T: WebApp + 'static> {
app: Arc<T>,
}
impl<T: WebApp + 'static> BuiltinDapp<T> {
fn new(app: Arc<T>) -> Self {
BuiltinDapp {
app: app,
}
}
}
impl<T: WebApp + 'static> handler::Dapp for BuiltinDapp<T> {
type DappFile = BuiltinDappFile<T>;
fn file(&self, path: &str) -> Option<Self::DappFile> {
self.app.file(path).map(|_| {
BuiltinDappFile {
app: self.app.clone(),
path: path.into(),
write_pos: 0,
}
})
}
}
struct BuiltinDappFile<T: WebApp + 'static> {
app: Arc<T>,
path: String,
write_pos: usize,
}
impl<T: WebApp + 'static> BuiltinDappFile<T> {
fn file(&self) -> &File {
self.app.file(&self.path).expect("Check is done when structure is created.")
}
}
impl<T: WebApp + 'static> handler::DappFile for BuiltinDappFile<T> {
fn content_type(&self) -> &str {
self.file().content_type
}
fn is_drained(&self) -> bool {
self.write_pos == self.file().content.len()
}
fn next_chunk(&mut self) -> &[u8] {
&self.file().content[self.write_pos..]
}
fn bytes_written(&mut self, bytes: usize) {
self.write_pos += bytes;
}
}

276
dapps/src/page/handler.rs Normal file
View File

@@ -0,0 +1,276 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use time::{self, Duration};
use hyper::header;
use hyper::server;
use hyper::uri::RequestUri;
use hyper::net::HttpStream;
use hyper::status::StatusCode;
use hyper::{Decoder, Encoder, Next};
use endpoint::EndpointPath;
use handlers::{ContentHandler, add_security_headers};
/// Represents a file that can be sent to client.
/// Implementation should keep track of bytes already sent internally.
pub trait DappFile: Send {
/// Returns a content-type of this file.
fn content_type(&self) -> &str;
/// Checks if all bytes from that file were written.
fn is_drained(&self) -> bool;
/// Fetch next chunk to write to the client.
fn next_chunk(&mut self) -> &[u8];
/// How many files have been written to the client.
fn bytes_written(&mut self, bytes: usize);
}
/// Dapp as a (dynamic) set of files.
pub trait Dapp: Send + 'static {
/// File type
type DappFile: DappFile;
/// Returns file under given path.
fn file(&self, path: &str) -> Option<Self::DappFile>;
}
/// Currently served by `PageHandler` file
pub enum ServedFile<T: Dapp> {
/// File from dapp
File(T::DappFile),
/// Error (404)
Error(ContentHandler),
}
impl<T: Dapp> ServedFile<T> {
pub fn new(embeddable_on: Option<(String, u16)>) -> Self {
ServedFile::Error(ContentHandler::error(
StatusCode::NotFound,
"404 Not Found",
"Requested dapp resource was not found.",
None,
embeddable_on,
))
}
}
/// Defines what cache headers should be appended to returned resources.
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum PageCache {
Enabled,
Disabled,
}
impl Default for PageCache {
fn default() -> Self {
PageCache::Disabled
}
}
/// A generic type for `PageHandler` allowing to set the URL.
/// Used by dapps fetching to set the URL after the content was downloaded.
pub trait PageHandlerWaiting: server::Handler<HttpStream> + Send {
fn set_uri(&mut self, uri: &RequestUri);
}
/// A handler for a single webapp.
/// Resolves correct paths and serves as a plumbing code between
/// hyper server and dapp.
pub struct PageHandler<T: Dapp> {
/// A Dapp.
pub app: T,
/// File currently being served
pub file: ServedFile<T>,
/// Optional prefix to strip from path.
pub prefix: Option<String>,
/// Requested path.
pub path: EndpointPath,
/// Flag indicating if the file can be safely embeded (put in iframe).
pub safe_to_embed_on: Option<(String, u16)>,
/// Cache settings for this page.
pub cache: PageCache,
}
impl<T: Dapp> PageHandlerWaiting for PageHandler<T> {
fn set_uri(&mut self, uri: &RequestUri) {
trace!(target: "dapps", "Setting URI: {:?}", uri);
self.file = match *uri {
RequestUri::AbsolutePath { ref path, .. } => {
self.app.file(&self.extract_path(path))
},
RequestUri::AbsoluteUri(ref url) => {
self.app.file(&self.extract_path(url.path()))
},
_ => None,
}.map_or_else(|| ServedFile::new(self.safe_to_embed_on.clone()), |f| ServedFile::File(f));
}
}
impl<T: Dapp> PageHandler<T> {
fn extract_path(&self, path: &str) -> String {
let app_id = &self.path.app_id;
let prefix = "/".to_owned() + self.prefix.as_ref().unwrap_or(app_id);
let prefix_with_slash = prefix.clone() + "/";
let query_pos = path.find('?').unwrap_or_else(|| path.len());
// Index file support
match path == "/" || path == &prefix || path == &prefix_with_slash {
true => "index.html".to_owned(),
false => if path.starts_with(&prefix_with_slash) {
path[prefix_with_slash.len()..query_pos].to_owned()
} else if path.starts_with("/") {
path[1..query_pos].to_owned()
} else {
path[0..query_pos].to_owned()
}
}
}
}
impl<T: Dapp> server::Handler<HttpStream> for PageHandler<T> {
fn on_request(&mut self, req: server::Request<HttpStream>) -> Next {
self.set_uri(req.uri());
Next::write()
}
fn on_request_readable(&mut self, _decoder: &mut Decoder<HttpStream>) -> Next {
Next::write()
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
match self.file {
ServedFile::File(ref f) => {
res.set_status(StatusCode::Ok);
if let PageCache::Enabled = self.cache {
let mut headers = res.headers_mut();
let validity = Duration::days(365);
headers.set(header::CacheControl(vec![
header::CacheDirective::Public,
header::CacheDirective::MaxAge(validity.num_seconds() as u32),
]));
headers.set(header::Expires(header::HttpDate(time::now() + validity)));
}
match f.content_type().parse() {
Ok(mime) => res.headers_mut().set(header::ContentType(mime)),
Err(()) => debug!(target: "dapps", "invalid MIME type: {}", f.content_type()),
}
// Security headers:
add_security_headers(&mut res.headers_mut(), self.safe_to_embed_on.clone());
Next::write()
},
ServedFile::Error(ref mut handler) => {
handler.on_response(res)
}
}
}
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
match self.file {
ServedFile::Error(ref mut handler) => handler.on_response_writable(encoder),
ServedFile::File(ref f) if f.is_drained() => Next::end(),
ServedFile::File(ref mut f) => match encoder.write(f.next_chunk()) {
Ok(bytes) => {
f.bytes_written(bytes);
Next::write()
},
Err(e) => match e.kind() {
::std::io::ErrorKind::WouldBlock => Next::write(),
_ => Next::end(),
},
}
}
}
}
#[cfg(test)]
mod test {
use super::*;
pub struct TestWebAppFile;
impl DappFile for TestWebAppFile {
fn content_type(&self) -> &str {
unimplemented!()
}
fn is_drained(&self) -> bool {
unimplemented!()
}
fn next_chunk(&mut self) -> &[u8] {
unimplemented!()
}
fn bytes_written(&mut self, _bytes: usize) {
unimplemented!()
}
}
#[derive(Default)]
pub struct TestWebapp;
impl Dapp for TestWebapp {
type DappFile = TestWebAppFile;
fn file(&self, _path: &str) -> Option<Self::DappFile> {
None
}
}
}
#[test]
fn should_extract_path_with_appid() {
// given
let path1 = "/";
let path2= "/test.css";
let path3 = "/app/myfile.txt";
let path4 = "/app/myfile.txt?query=123";
let page_handler = PageHandler {
app: test::TestWebapp,
prefix: None,
path: EndpointPath {
app_id: "app".to_owned(),
app_params: vec![],
host: "".to_owned(),
port: 8080,
using_dapps_domains: true,
},
file: ServedFile::new(None),
cache: Default::default(),
safe_to_embed_on: None,
};
// when
let res1 = page_handler.extract_path(path1);
let res2 = page_handler.extract_path(path2);
let res3 = page_handler.extract_path(path3);
let res4 = page_handler.extract_path(path4);
// then
assert_eq!(&res1, "index.html");
assert_eq!(&res2, "test.css");
assert_eq!(&res3, "myfile.txt");
assert_eq!(&res4, "myfile.txt");
}

180
dapps/src/page/local.rs Normal file
View File

@@ -0,0 +1,180 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use mime_guess;
use std::io::{Seek, Read, SeekFrom};
use std::fs;
use std::path::{Path, PathBuf};
use page::handler::{self, PageCache, PageHandlerWaiting};
use endpoint::{Endpoint, EndpointInfo, EndpointPath, Handler};
use mime::Mime;
#[derive(Debug, Clone)]
pub struct LocalPageEndpoint {
path: PathBuf,
mime: Option<Mime>,
info: Option<EndpointInfo>,
cache: PageCache,
embeddable_on: Option<(String, u16)>,
}
impl LocalPageEndpoint {
pub fn new(path: PathBuf, info: EndpointInfo, cache: PageCache, embeddable_on: Option<(String, u16)>) -> Self {
LocalPageEndpoint {
path: path,
mime: None,
info: Some(info),
cache: cache,
embeddable_on: embeddable_on,
}
}
pub fn single_file(path: PathBuf, mime: Mime, cache: PageCache) -> Self {
LocalPageEndpoint {
path: path,
mime: Some(mime),
info: None,
cache: cache,
embeddable_on: None,
}
}
pub fn path(&self) -> PathBuf {
self.path.clone()
}
fn page_handler_with_mime(&self, path: EndpointPath, mime: &Mime) -> handler::PageHandler<LocalSingleFile> {
handler::PageHandler {
app: LocalSingleFile { path: self.path.clone(), mime: format!("{}", mime) },
prefix: None,
path: path,
file: handler::ServedFile::new(None),
safe_to_embed_on: self.embeddable_on.clone(),
cache: self.cache,
}
}
fn page_handler(&self, path: EndpointPath) -> handler::PageHandler<LocalDapp> {
handler::PageHandler {
app: LocalDapp { path: self.path.clone() },
prefix: None,
path: path,
file: handler::ServedFile::new(None),
safe_to_embed_on: self.embeddable_on.clone(),
cache: self.cache,
}
}
pub fn to_page_handler(&self, path: EndpointPath) -> Box<PageHandlerWaiting> {
if let Some(ref mime) = self.mime {
Box::new(self.page_handler_with_mime(path, mime))
} else {
Box::new(self.page_handler(path))
}
}
}
impl Endpoint for LocalPageEndpoint {
fn info(&self) -> Option<&EndpointInfo> {
self.info.as_ref()
}
fn to_handler(&self, path: EndpointPath) -> Box<Handler> {
if let Some(ref mime) = self.mime {
Box::new(self.page_handler_with_mime(path, mime))
} else {
Box::new(self.page_handler(path))
}
}
}
struct LocalSingleFile {
path: PathBuf,
mime: String,
}
impl handler::Dapp for LocalSingleFile {
type DappFile = LocalFile;
fn file(&self, _path: &str) -> Option<Self::DappFile> {
LocalFile::from_path(&self.path, Some(&self.mime))
}
}
struct LocalDapp {
path: PathBuf,
}
impl handler::Dapp for LocalDapp {
type DappFile = LocalFile;
fn file(&self, file_path: &str) -> Option<Self::DappFile> {
let mut path = self.path.clone();
for part in file_path.split('/') {
path.push(part);
}
LocalFile::from_path(&path, None)
}
}
struct LocalFile {
content_type: String,
buffer: [u8; 4096],
file: fs::File,
len: u64,
pos: u64,
}
impl LocalFile {
fn from_path<P: AsRef<Path>>(path: P, mime: Option<&str>) -> Option<Self> {
// Check if file exists
fs::File::open(&path).ok().map(|file| {
let content_type = mime.map(|mime| mime.to_owned())
.unwrap_or_else(|| mime_guess::guess_mime_type(path).to_string());
let len = file.metadata().ok().map_or(0, |meta| meta.len());
LocalFile {
content_type: content_type,
buffer: [0; 4096],
file: file,
pos: 0,
len: len,
}
})
}
}
impl handler::DappFile for LocalFile {
fn content_type(&self) -> &str {
&self.content_type
}
fn is_drained(&self) -> bool {
self.pos == self.len
}
fn next_chunk(&mut self) -> &[u8] {
let _ = self.file.seek(SeekFrom::Start(self.pos));
if let Ok(n) = self.file.read(&mut self.buffer) {
&self.buffer[0..n]
} else {
&self.buffer[0..0]
}
}
fn bytes_written(&mut self, bytes: usize) {
self.pos += bytes as u64;
}
}

25
dapps/src/page/mod.rs Normal file
View File

@@ -0,0 +1,25 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
mod builtin;
mod local;
mod handler;
pub use self::local::LocalPageEndpoint;
pub use self::builtin::PageEndpoint;
pub use self::handler::{PageCache, PageHandlerWaiting};

65
dapps/src/proxypac.rs Normal file
View File

@@ -0,0 +1,65 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Serving ProxyPac file
use endpoint::{Endpoint, Handler, EndpointPath};
use handlers::ContentHandler;
use apps::{HOME_PAGE, DAPPS_DOMAIN};
use address;
pub struct ProxyPac {
signer_address: Option<(String, u16)>,
}
impl ProxyPac {
pub fn boxed(signer_address: Option<(String, u16)>) -> Box<Endpoint> {
Box::new(ProxyPac {
signer_address: signer_address
})
}
}
impl Endpoint for ProxyPac {
fn to_handler(&self, path: EndpointPath) -> Box<Handler> {
let signer = self.signer_address
.as_ref()
.map(address)
.unwrap_or_else(|| format!("{}:{}", path.host, path.port));
let content = format!(
r#"
function FindProxyForURL(url, host) {{
if (shExpMatch(host, "{0}{1}"))
{{
return "PROXY {4}";
}}
if (shExpMatch(host, "*{1}"))
{{
return "PROXY {2}:{3}";
}}
return "DIRECT";
}}
"#,
HOME_PAGE, DAPPS_DOMAIN, path.host, path.port, signer);
Box::new(ContentHandler::ok(content, mime!(Application/Javascript)))
}
}

106
dapps/src/router/auth.rs Normal file
View File

@@ -0,0 +1,106 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! HTTP Authorization implementations
use std::collections::HashMap;
use hyper::{server, net, header, status};
use endpoint::Handler;
use handlers::{AuthRequiredHandler, ContentHandler};
/// Authorization result
pub enum Authorized {
/// Authorization was successful.
Yes,
/// Unsuccessful authorization. Handler for further work is returned.
No(Box<Handler>),
}
/// Authorization interface
pub trait Authorization : Send + Sync {
/// Checks if authorization is valid.
fn is_authorized(&self, req: &server::Request<net::HttpStream>)-> Authorized;
}
/// HTTP Basic Authorization handler
pub struct HttpBasicAuth {
users: HashMap<String, String>,
}
/// No-authorization implementation (authorization disabled)
pub struct NoAuth;
impl Authorization for NoAuth {
fn is_authorized(&self, _req: &server::Request<net::HttpStream>)-> Authorized {
Authorized::Yes
}
}
impl Authorization for HttpBasicAuth {
fn is_authorized(&self, req: &server::Request<net::HttpStream>) -> Authorized {
let auth = self.check_auth(&req);
match auth {
Access::Denied => {
Authorized::No(Box::new(ContentHandler::error(
status::StatusCode::Unauthorized,
"Unauthorized",
"You need to provide valid credentials to access this page.",
None,
None,
)))
},
Access::AuthRequired => {
Authorized::No(Box::new(AuthRequiredHandler))
},
Access::Granted => {
Authorized::Yes
},
}
}
}
#[derive(Debug)]
enum Access {
Granted,
Denied,
AuthRequired,
}
impl HttpBasicAuth {
/// Creates `HttpBasicAuth` instance with only one user.
pub fn single_user(username: &str, password: &str) -> Self {
let mut users = HashMap::new();
users.insert(username.to_owned(), password.to_owned());
HttpBasicAuth {
users: users
}
}
fn is_authorized(&self, username: &str, password: &str) -> bool {
self.users.get(&username.to_owned()).map_or(false, |pass| pass == password)
}
fn check_auth(&self, req: &server::Request<net::HttpStream>) -> Access {
match req.headers().get::<header::Authorization<header::Basic>>() {
Some(&header::Authorization(
header::Basic { ref username, password: Some(ref password) }
)) if self.is_authorized(username, password) => Access::Granted,
Some(_) => Access::Denied,
None => Access::AuthRequired,
}
}
}

View File

@@ -0,0 +1,47 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use apps::DAPPS_DOMAIN;
use hyper::{server, header, StatusCode};
use hyper::net::HttpStream;
use jsonrpc_http_server::{is_host_header_valid};
use handlers::ContentHandler;
pub fn is_valid(request: &server::Request<HttpStream>, allowed_hosts: &[String], endpoints: Vec<String>) -> bool {
let mut endpoints = endpoints.iter()
.map(|endpoint| format!("{}{}", endpoint, DAPPS_DOMAIN))
.collect::<Vec<String>>();
endpoints.extend_from_slice(allowed_hosts);
let header_valid = is_host_header_valid(request, &endpoints);
match (header_valid, request.headers().get::<header::Host>()) {
(true, _) => true,
(_, Some(host)) => host.hostname.ends_with(DAPPS_DOMAIN),
_ => false,
}
}
pub fn host_invalid_response() -> Box<server::Handler<HttpStream> + Send> {
Box::new(ContentHandler::error(StatusCode::Forbidden,
"Current Host Is Disallowed",
"You are trying to access your node using incorrect address.",
Some("Use allowed URL or specify different <code>hosts</code> CLI options."),
None,
))
}

369
dapps/src/router/mod.rs Normal file
View File

@@ -0,0 +1,369 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Router implementation
//! Processes request handling authorization and dispatching it to proper application.
pub mod auth;
mod host_validation;
use address;
use std::cmp;
use std::sync::Arc;
use std::collections::HashMap;
use url::{Url, Host};
use hyper::{self, server, header, Next, Encoder, Decoder, Control, StatusCode};
use hyper::net::HttpStream;
use apps::{self, DAPPS_DOMAIN};
use apps::fetcher::Fetcher;
use endpoint::{Endpoint, Endpoints, EndpointPath};
use handlers::{self, Redirection, ContentHandler};
use self::auth::{Authorization, Authorized};
/// Special endpoints are accessible on every domain (every dapp)
#[derive(Debug, PartialEq, Hash, Eq)]
pub enum SpecialEndpoint {
Rpc,
Api,
Utils,
None,
}
pub struct Router<A: Authorization + 'static> {
control: Option<Control>,
signer_address: Option<(String, u16)>,
endpoints: Arc<Endpoints>,
fetch: Arc<Fetcher>,
special: Arc<HashMap<SpecialEndpoint, Box<Endpoint>>>,
authorization: Arc<A>,
allowed_hosts: Option<Vec<String>>,
handler: Box<server::Handler<HttpStream> + Send>,
}
impl<A: Authorization + 'static> server::Handler<HttpStream> for Router<A> {
fn on_request(&mut self, req: server::Request<HttpStream>) -> Next {
// Choose proper handler depending on path / domain
let url = handlers::extract_url(&req);
let endpoint = extract_endpoint(&url);
let referer = extract_referer_endpoint(&req);
let is_utils = endpoint.1 == SpecialEndpoint::Utils;
let is_get_request = *req.method() == hyper::Method::Get;
trace!(target: "dapps", "Routing request to {:?}. Details: {:?}", url, req);
// Validate Host header
if let Some(ref hosts) = self.allowed_hosts {
trace!(target: "dapps", "Validating host headers against: {:?}", hosts);
let is_valid = is_utils || host_validation::is_valid(&req, hosts, self.endpoints.keys().cloned().collect());
if !is_valid {
debug!(target: "dapps", "Rejecting invalid host header.");
self.handler = host_validation::host_invalid_response();
return self.handler.on_request(req);
}
}
trace!(target: "dapps", "Checking authorization.");
// Check authorization
let auth = self.authorization.is_authorized(&req);
if let Authorized::No(handler) = auth {
debug!(target: "dapps", "Authorization denied.");
self.handler = handler;
return self.handler.on_request(req);
}
let control = self.control.take().expect("on_request is called only once; control is always defined at start; qed");
debug!(target: "dapps", "Handling endpoint request: {:?}", endpoint);
self.handler = match (endpoint.0, endpoint.1, referer) {
// Handle invalid web requests that we can recover from
(ref path, SpecialEndpoint::None, Some((ref referer, ref referer_url)))
if referer.app_id == apps::WEB_PATH
&& self.endpoints.contains_key(apps::WEB_PATH)
&& !is_web_endpoint(path)
=>
{
trace!(target: "dapps", "Redirecting to correct web request: {:?}", referer_url);
let len = cmp::min(referer_url.path.len(), 2); // /web/<encoded>/
let base = referer_url.path[..len].join("/");
let requested = url.map(|u| u.path.join("/")).unwrap_or_default();
Redirection::boxed(&format!("/{}/{}", base, requested))
},
// First check special endpoints
(ref path, ref endpoint, _) if self.special.contains_key(endpoint) => {
trace!(target: "dapps", "Resolving to special endpoint.");
self.special.get(endpoint)
.expect("special known to contain key; qed")
.to_async_handler(path.clone().unwrap_or_default(), control)
},
// Then delegate to dapp
(Some(ref path), _, _) if self.endpoints.contains_key(&path.app_id) => {
trace!(target: "dapps", "Resolving to local/builtin dapp.");
self.endpoints.get(&path.app_id)
.expect("endpoints known to contain key; qed")
.to_async_handler(path.clone(), control)
},
// Try to resolve and fetch the dapp
(Some(ref path), _, _) if self.fetch.contains(&path.app_id) => {
trace!(target: "dapps", "Resolving to fetchable content.");
self.fetch.to_async_handler(path.clone(), control)
},
// NOTE [todr] /home is redirected to home page since some users may have the redirection cached
// (in the past we used 301 instead of 302)
// It should be safe to remove it in (near) future.
//
// 404 for non-existent content
(Some(ref path), _, _) if is_get_request && path.app_id != "home" => {
trace!(target: "dapps", "Resolving to 404.");
Box::new(ContentHandler::error(
StatusCode::NotFound,
"404 Not Found",
"Requested content was not found.",
None,
self.signer_address.clone(),
))
},
// Redirect any other GET request to signer.
_ if is_get_request => {
if let Some(ref signer_address) = self.signer_address {
trace!(target: "dapps", "Redirecting to signer interface.");
Redirection::boxed(&format!("http://{}", address(signer_address)))
} else {
trace!(target: "dapps", "Signer disabled, returning 404.");
Box::new(ContentHandler::error(
StatusCode::NotFound,
"404 Not Found",
"Your homepage is not available when Trusted Signer is disabled.",
Some("You can still access dapps by writing a correct address, though. Re-enable Signer to get your homepage back."),
self.signer_address.clone(),
))
}
},
// RPC by default
_ => {
trace!(target: "dapps", "Resolving to RPC call.");
self.special.get(&SpecialEndpoint::Rpc)
.expect("RPC endpoint always stored; qed")
.to_async_handler(EndpointPath::default(), control)
}
};
// Delegate on_request to proper handler
self.handler.on_request(req)
}
/// This event occurs each time the `Request` is ready to be read from.
fn on_request_readable(&mut self, decoder: &mut Decoder<HttpStream>) -> Next {
self.handler.on_request_readable(decoder)
}
/// This event occurs after the first time this handled signals `Next::write()`.
fn on_response(&mut self, response: &mut server::Response) -> Next {
self.handler.on_response(response)
}
/// This event occurs each time the `Response` is ready to be written to.
fn on_response_writable(&mut self, encoder: &mut Encoder<HttpStream>) -> Next {
self.handler.on_response_writable(encoder)
}
}
impl<A: Authorization> Router<A> {
pub fn new(
control: Control,
signer_address: Option<(String, u16)>,
content_fetcher: Arc<Fetcher>,
endpoints: Arc<Endpoints>,
special: Arc<HashMap<SpecialEndpoint, Box<Endpoint>>>,
authorization: Arc<A>,
allowed_hosts: Option<Vec<String>>,
) -> Self {
let handler = special.get(&SpecialEndpoint::Utils)
.expect("Utils endpoint always stored; qed")
.to_handler(EndpointPath::default());
Router {
control: Some(control),
signer_address: signer_address,
endpoints: endpoints,
fetch: content_fetcher,
special: special,
authorization: authorization,
allowed_hosts: allowed_hosts,
handler: handler,
}
}
}
fn is_web_endpoint(path: &Option<EndpointPath>) -> bool {
match *path {
Some(ref path) if path.app_id == apps::WEB_PATH => true,
_ => false,
}
}
fn extract_referer_endpoint(req: &server::Request<HttpStream>) -> Option<(EndpointPath, Url)> {
let referer = req.headers().get::<header::Referer>();
let url = referer.and_then(|referer| Url::parse(&referer.0).ok());
url.and_then(|url| {
let option = Some(url);
extract_url_referer_endpoint(&option).or_else(|| {
extract_endpoint(&option).0.map(|endpoint| (endpoint, option.expect("Just wrapped; qed")))
})
})
}
fn extract_url_referer_endpoint(url: &Option<Url>) -> Option<(EndpointPath, Url)> {
let query = url.as_ref().and_then(|url| url.query.as_ref());
match (url, query) {
(&Some(ref url), Some(ref query)) if query.starts_with(apps::URL_REFERER) => {
let referer_url = format!("http://{}:{}/{}", url.host, url.port, &query[apps::URL_REFERER.len()..]);
debug!(target: "dapps", "Recovering referer from query parameter: {}", referer_url);
let referer_url = Url::parse(&referer_url).ok();
extract_endpoint(&referer_url).0.map(|endpoint| {
(endpoint, referer_url.expect("Endpoint returned only when url `is_some`").clone())
})
},
_ => None,
}
}
fn extract_endpoint(url: &Option<Url>) -> (Option<EndpointPath>, SpecialEndpoint) {
fn special_endpoint(url: &Url) -> SpecialEndpoint {
if url.path.len() <= 1 {
return SpecialEndpoint::None;
}
match url.path[0].as_ref() {
apps::RPC_PATH => SpecialEndpoint::Rpc,
apps::API_PATH => SpecialEndpoint::Api,
apps::UTILS_PATH => SpecialEndpoint::Utils,
_ => SpecialEndpoint::None,
}
}
match *url {
Some(ref url) => match url.host {
Host::Domain(ref domain) if domain.ends_with(DAPPS_DOMAIN) => {
let id = &domain[0..(domain.len() - DAPPS_DOMAIN.len())];
let (id, params) = if let Some(split) = id.rfind('.') {
let (params, id) = id.split_at(split);
(id[1..].to_owned(), [params.to_owned()].into_iter().chain(&url.path).cloned().collect())
} else {
(id.to_owned(), url.path.clone())
};
(Some(EndpointPath {
app_id: id,
app_params: params,
host: domain.clone(),
port: url.port,
using_dapps_domains: true,
}), special_endpoint(url))
},
_ if url.path.len() > 1 => {
let id = url.path[0].to_owned();
(Some(EndpointPath {
app_id: id,
app_params: url.path[1..].to_vec(),
host: format!("{}", url.host),
port: url.port,
using_dapps_domains: false,
}), special_endpoint(url))
},
_ => (None, special_endpoint(url)),
},
_ => (None, SpecialEndpoint::None)
}
}
#[test]
fn should_extract_endpoint() {
assert_eq!(extract_endpoint(&None), (None, SpecialEndpoint::None));
// With path prefix
assert_eq!(
extract_endpoint(&Url::parse("http://localhost:8080/status/index.html").ok()),
(Some(EndpointPath {
app_id: "status".to_owned(),
app_params: vec!["index.html".to_owned()],
host: "localhost".to_owned(),
port: 8080,
using_dapps_domains: false,
}), SpecialEndpoint::None)
);
// With path prefix
assert_eq!(
extract_endpoint(&Url::parse("http://localhost:8080/rpc/").ok()),
(Some(EndpointPath {
app_id: "rpc".to_owned(),
app_params: vec!["".to_owned()],
host: "localhost".to_owned(),
port: 8080,
using_dapps_domains: false,
}), SpecialEndpoint::Rpc)
);
assert_eq!(
extract_endpoint(&Url::parse("http://my.status.web3.site/parity-utils/inject.js").ok()),
(Some(EndpointPath {
app_id: "status".to_owned(),
app_params: vec!["my".to_owned(), "parity-utils".into(), "inject.js".into()],
host: "my.status.web3.site".to_owned(),
port: 80,
using_dapps_domains: true,
}), SpecialEndpoint::Utils)
);
// By Subdomain
assert_eq!(
extract_endpoint(&Url::parse("http://status.web3.site/test.html").ok()),
(Some(EndpointPath {
app_id: "status".to_owned(),
app_params: vec!["test.html".to_owned()],
host: "status.web3.site".to_owned(),
port: 80,
using_dapps_domains: true,
}), SpecialEndpoint::None)
);
// RPC by subdomain
assert_eq!(
extract_endpoint(&Url::parse("http://my.status.web3.site/rpc/").ok()),
(Some(EndpointPath {
app_id: "status".to_owned(),
app_params: vec!["my".to_owned(), "rpc".into(), "".into()],
host: "my.status.web3.site".to_owned(),
port: 80,
using_dapps_domains: true,
}), SpecialEndpoint::Rpc)
);
// API by subdomain
assert_eq!(
extract_endpoint(&Url::parse("http://my.status.web3.site/api/").ok()),
(Some(EndpointPath {
app_id: "status".to_owned(),
app_params: vec!["my".to_owned(), "api".into(), "".into()],
host: "my.status.web3.site".to_owned(),
port: 80,
using_dapps_domains: true,
}), SpecialEndpoint::Api)
);
}

83
dapps/src/rpc.rs Normal file
View File

@@ -0,0 +1,83 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::sync::{Arc, Mutex};
use hyper;
use ethcore_rpc::{Metadata, Origin};
use jsonrpc_core::Middleware;
use jsonrpc_core::reactor::RpcHandler;
use jsonrpc_http_server::{Rpc, ServerHandler, PanicHandler, AccessControlAllowOrigin, HttpMetaExtractor};
use endpoint::{Endpoint, EndpointPath, Handler};
pub fn rpc<T: Middleware<Metadata>>(
handler: RpcHandler<Metadata, T>,
cors_domains: Vec<String>,
panic_handler: Arc<Mutex<Option<Box<Fn() -> () + Send>>>>,
) -> Box<Endpoint> {
Box::new(RpcEndpoint {
handler: handler,
meta_extractor: Arc::new(MetadataExtractor),
panic_handler: panic_handler,
cors_domain: Some(cors_domains.into_iter().map(AccessControlAllowOrigin::Value).collect()),
// NOTE [ToDr] We don't need to do any hosts validation here. It's already done in router.
allowed_hosts: None,
})
}
struct RpcEndpoint<T: Middleware<Metadata>> {
handler: RpcHandler<Metadata, T>,
meta_extractor: Arc<HttpMetaExtractor<Metadata>>,
panic_handler: Arc<Mutex<Option<Box<Fn() -> () + Send>>>>,
cors_domain: Option<Vec<AccessControlAllowOrigin>>,
allowed_hosts: Option<Vec<String>>,
}
impl<T: Middleware<Metadata>> Endpoint for RpcEndpoint<T> {
fn to_async_handler(&self, _path: EndpointPath, control: hyper::Control) -> Box<Handler> {
let panic_handler = PanicHandler { handler: self.panic_handler.clone() };
Box::new(ServerHandler::new(
Rpc::new(self.handler.clone(), self.meta_extractor.clone()),
self.cors_domain.clone(),
self.allowed_hosts.clone(),
panic_handler,
control,
))
}
}
struct MetadataExtractor;
impl HttpMetaExtractor<Metadata> for MetadataExtractor {
fn read_metadata(&self, request: &hyper::server::Request<hyper::net::HttpStream>) -> Metadata {
let dapp_id = request.headers().get::<hyper::header::Origin>()
.map(|origin| format!("{}://{}", origin.scheme, origin.host))
.or_else(|| {
// fallback to custom header, but only if origin is null
request.headers().get_raw("origin")
.and_then(|raw| raw.one())
.and_then(|raw| if raw == "null".as_bytes() {
request.headers().get_raw("x-parity-origin")
.and_then(|raw| raw.one())
.map(|raw| String::from_utf8_lossy(raw).into_owned())
} else {
None
})
});
Metadata {
origin: Origin::Dapps(dapp_id.map(Into::into).unwrap_or_default()),
}
}
}

236
dapps/src/tests/api.rs Normal file
View File

@@ -0,0 +1,236 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use tests::helpers::{serve, serve_with_registrar, serve_extra_cors, request, assert_security_headers};
#[test]
fn should_return_error() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /api/empty HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 404 Not Found".to_owned());
assert_eq!(response.headers.get(3).unwrap(), "Content-Type: application/json");
assert_eq!(response.body, format!("58\n{}\n0\n\n", r#"{"code":"404","title":"Not Found","detail":"Resource you requested has not been found."}"#));
assert_security_headers(&response.headers);
}
#[test]
fn should_serve_apps() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /api/apps HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_eq!(response.headers.get(3).unwrap(), "Content-Type: application/json");
assert!(response.body.contains("Parity UI"), response.body);
assert_security_headers(&response.headers);
}
#[test]
fn should_handle_ping() {
// given
let server = serve();
// when
let response = request(server,
"\
POST /api/ping HTTP/1.1\r\n\
Host: home.parity\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_eq!(response.headers.get(3).unwrap(), "Content-Type: application/json");
assert_eq!(response.body, "0\n\n".to_owned());
assert_security_headers(&response.headers);
}
#[test]
fn should_try_to_resolve_dapp() {
// given
let (server, registrar) = serve_with_registrar();
// when
let response = request(server,
"\
GET /api/content/1472a9e190620cdf6b31f383373e45efcfe869a820c91f9ccd7eb9fb45e4985d HTTP/1.1\r\n\
Host: home.parity\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 404 Not Found".to_owned());
assert_eq!(registrar.calls.lock().len(), 2);
assert_security_headers(&response.headers);
}
#[test]
fn should_return_signer_port_cors_headers() {
// given
let server = serve();
// when
let response = request(server,
"\
POST /api/ping HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Origin: http://127.0.0.1:18180\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert!(
response.headers_raw.contains("Access-Control-Allow-Origin: http://127.0.0.1:18180"),
"CORS header for signer missing: {:?}",
response.headers
);
}
#[test]
fn should_return_signer_port_cors_headers_for_home_parity() {
// given
let server = serve();
// when
let response = request(server,
"\
POST /api/ping HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Origin: http://parity.web3.site\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert!(
response.headers_raw.contains("Access-Control-Allow-Origin: http://parity.web3.site"),
"CORS header for parity.web3.site missing: {:?}",
response.headers
);
}
#[test]
fn should_return_signer_port_cors_headers_for_home_parity_with_https() {
// given
let server = serve();
// when
let response = request(server,
"\
POST /api/ping HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Origin: https://parity.web3.site\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert!(
response.headers_raw.contains("Access-Control-Allow-Origin: https://parity.web3.site"),
"CORS header for parity.web3.site missing: {:?}",
response.headers
);
}
#[test]
fn should_return_signer_port_cors_headers_for_home_parity_with_port() {
// given
let server = serve();
// when
let response = request(server,
"\
POST /api/ping HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Origin: http://parity.web3.site:18180\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert!(
response.headers_raw.contains("Access-Control-Allow-Origin: http://parity.web3.site:18180"),
"CORS header for parity.web3.site missing: {:?}",
response.headers
);
}
#[test]
fn should_return_extra_cors_headers() {
// given
let server = serve_extra_cors(Some(vec!["all".to_owned()]));
// when
let response = request(server,
"\
POST /api/ping HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Origin: http://somedomain.io\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
response.assert_status("HTTP/1.1 200 OK");
response.assert_header("Access-Control-Allow-Origin", "http://somedomain.io");
}

View File

@@ -0,0 +1,80 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use tests::helpers::{serve_with_auth, request, assert_security_headers_for_embed};
#[test]
fn should_require_authorization() {
// given
let server = serve_with_auth("test", "test");
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 401 Unauthorized".to_owned());
assert_eq!(response.headers.get(0).unwrap(), "WWW-Authenticate: Basic realm=\"Parity\"");
}
#[test]
fn should_reject_on_invalid_auth() {
// given
let server = serve_with_auth("test", "test");
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l\r\n
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 401 Unauthorized".to_owned());
assert!(response.body.contains("Unauthorized"), response.body);
assert_eq!(response.headers_raw.contains("WWW-Authenticate"), false);
}
#[test]
fn should_allow_on_valid_auth() {
// given
let server = serve_with_auth("Aladdin", "OpenSesame");
// when
let response = request(server,
"\
GET /ui/ HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l\r\n
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_security_headers_for_embed(&response.headers);
}

518
dapps/src/tests/fetch.rs Normal file
View File

@@ -0,0 +1,518 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use devtools::http_client;
use rustc_serialize::hex::FromHex;
use tests::helpers::{
serve_with_registrar, serve_with_registrar_and_sync, serve_with_fetch,
serve_with_registrar_and_fetch, serve_with_registrar_and_fetch_and_threads,
request, assert_security_headers_for_embed,
};
#[test]
fn should_resolve_dapp() {
// given
let (server, registrar) = serve_with_registrar();
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 1472a9e190620cdf6b31f383373e45efcfe869a820c91f9ccd7eb9fb45e4985d.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 404 Not Found");
assert_eq!(registrar.calls.lock().len(), 2);
assert_security_headers_for_embed(&response.headers);
}
#[test]
fn should_return_503_when_syncing_but_should_make_the_calls() {
// given
let (server, registrar) = serve_with_registrar_and_sync();
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 1472a9e190620cdf6b31f383373e45efcfe869a820c91f9ccd7eb9fb45e4985d.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 503 Service Unavailable");
assert_eq!(registrar.calls.lock().len(), 4);
assert_security_headers_for_embed(&response.headers);
}
const GAVCOIN_DAPP: &'static str = "00000000000000000000000000000000000000000000000000000000000000609faf32e1e3845e237cc6efd27187cee13b3b99db000000000000000000000000000000000000000000000000d8bd350823e28ff75e74a34215faefdc8a52fd8e00000000000000000000000000000000000000000000000000000000000000116761766f66796f726b2f676176636f696e000000000000000000000000000000";
const GAVCOIN_ICON: &'static str = "00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d8bd350823e28ff75e74a34215faefdc8a52fd8e000000000000000000000000000000000000000000000000000000000000007768747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f657468636f72652f646170702d6173736574732f623838653938336162616131613661363334356238643934343863313562313137646462353430652f746f6b656e732f676176636f696e2d36347836342e706e67000000000000000000";
#[test]
fn should_return_502_on_hash_mismatch() {
// given
let (server, fetch, registrar) = serve_with_registrar_and_fetch();
let gavcoin = GAVCOIN_DAPP.from_hex().unwrap();
registrar.set_result(
"94f093625c06887d94d9fee0d5f9cc4aaa46f33d24d1c7e4b5237e7c37d547dd".parse().unwrap(),
Ok(gavcoin.clone())
);
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 94f093625c06887d94d9fee0d5f9cc4aaa46f33d24d1c7e4b5237e7c37d547dd.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(registrar.calls.lock().len(), 4);
fetch.assert_requested("https://codeload.github.com/gavofyork/gavcoin/zip/9faf32e1e3845e237cc6efd27187cee13b3b99db");
fetch.assert_no_more_requests();
response.assert_status("HTTP/1.1 502 Bad Gateway");
assert!(response.body.contains("HashMismatch"), "Expected hash mismatch response, got: {:?}", response.body);
assert_security_headers_for_embed(&response.headers);
}
#[test]
fn should_return_error_for_invalid_dapp_zip() {
// given
let (server, fetch, registrar) = serve_with_registrar_and_fetch();
let gavcoin = GAVCOIN_DAPP.from_hex().unwrap();
registrar.set_result(
"2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e".parse().unwrap(),
Ok(gavcoin.clone())
);
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(registrar.calls.lock().len(), 4);
fetch.assert_requested("https://codeload.github.com/gavofyork/gavcoin/zip/9faf32e1e3845e237cc6efd27187cee13b3b99db");
fetch.assert_no_more_requests();
response.assert_status("HTTP/1.1 502 Bad Gateway");
assert!(response.body.contains("InvalidArchive"), "Expected invalid zip response, got: {:?}", response.body);
assert_security_headers_for_embed(&response.headers);
}
#[test]
fn should_return_fetched_dapp_content() {
// given
let (server, fetch, registrar) = serve_with_registrar_and_fetch();
let gavcoin = GAVCOIN_DAPP.from_hex().unwrap();
registrar.set_result(
"9c94e154dab8acf859b30ee80fc828fb1d38359d938751b65db71d460588d82a".parse().unwrap(),
Ok(gavcoin.clone())
);
fetch.set_response(include_bytes!("../../res/gavcoin.zip"));
// when
let response1 = http_client::request(server.addr(),
"\
GET /index.html HTTP/1.1\r\n\
Host: 9c94e154dab8acf859b30ee80fc828fb1d38359d938751b65db71d460588d82a.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
let response2 = http_client::request(server.addr(),
"\
GET /manifest.json HTTP/1.1\r\n\
Host: 9c94e154dab8acf859b30ee80fc828fb1d38359d938751b65db71d460588d82a.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(registrar.calls.lock().len(), 4);
fetch.assert_requested("https://codeload.github.com/gavofyork/gavcoin/zip/9faf32e1e3845e237cc6efd27187cee13b3b99db");
fetch.assert_no_more_requests();
response1.assert_status("HTTP/1.1 200 OK");
assert_security_headers_for_embed(&response1.headers);
assert_eq!(
response1.body,
r#"18
<h1>Hello Gavcoin!</h1>
"#
);
response2.assert_status("HTTP/1.1 200 OK");
assert_security_headers_for_embed(&response2.headers);
assert_eq!(
response2.body,
r#"BE
{
"id": "9c94e154dab8acf859b30ee80fc828fb1d38359d938751b65db71d460588d82a",
"name": "Gavcoin",
"description": "Gavcoin",
"version": "1.0.0",
"author": "",
"iconUrl": "icon.png"
}
0
"#
);
}
#[test]
fn should_return_fetched_content() {
// given
let (server, fetch, registrar) = serve_with_registrar_and_fetch();
let gavcoin = GAVCOIN_ICON.from_hex().unwrap();
registrar.set_result(
"2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e".parse().unwrap(),
Ok(gavcoin.clone())
);
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(registrar.calls.lock().len(), 4);
fetch.assert_requested("https://raw.githubusercontent.com/ethcore/dapp-assets/b88e983abaa1a6a6345b8d9448c15b117ddb540e/tokens/gavcoin-64x64.png");
fetch.assert_no_more_requests();
response.assert_status("HTTP/1.1 200 OK");
response.assert_security_headers_present(None);
}
#[test]
fn should_cache_content() {
// given
let (server, fetch, registrar) = serve_with_registrar_and_fetch();
let gavcoin = GAVCOIN_ICON.from_hex().unwrap();
registrar.set_result(
"2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e".parse().unwrap(),
Ok(gavcoin.clone())
);
let request_str = "\
GET / HTTP/1.1\r\n\
Host: 2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e.web3.site\r\n\
Connection: close\r\n\
\r\n\
";
let response = http_client::request(server.addr(), request_str);
fetch.assert_requested("https://raw.githubusercontent.com/ethcore/dapp-assets/b88e983abaa1a6a6345b8d9448c15b117ddb540e/tokens/gavcoin-64x64.png");
fetch.assert_no_more_requests();
response.assert_status("HTTP/1.1 200 OK");
// when
let response = http_client::request(server.addr(), request_str);
// then
fetch.assert_no_more_requests();
response.assert_status("HTTP/1.1 200 OK");
}
#[test]
fn should_not_request_content_twice() {
use std::thread;
// given
let (server, fetch, registrar) = serve_with_registrar_and_fetch_and_threads(true);
let gavcoin = GAVCOIN_ICON.from_hex().unwrap();
registrar.set_result(
"2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e".parse().unwrap(),
Ok(gavcoin.clone())
);
let request_str = "\
GET / HTTP/1.1\r\n\
Host: 2be00befcf008bc0e7d9cdefc194db9c75352e8632f48498b5a6bfce9f02c88e.web3.site\r\n\
Connection: close\r\n\
\r\n\
";
let fire_request = || {
let addr = server.addr().to_owned();
let req = request_str.to_owned();
thread::spawn(move || {
http_client::request(&addr, &req)
})
};
let control = fetch.manual();
// when
// Fire two requests at the same time
let r1 = fire_request();
let r2 = fire_request();
// wait for single request in fetch, the second one should go into waiting state.
control.wait_for_requests(1);
control.respond();
let response1 = r1.join().unwrap();
let response2 = r2.join().unwrap();
// then
fetch.assert_requested("https://raw.githubusercontent.com/ethcore/dapp-assets/b88e983abaa1a6a6345b8d9448c15b117ddb540e/tokens/gavcoin-64x64.png");
fetch.assert_no_more_requests();
response1.assert_status("HTTP/1.1 200 OK");
response2.assert_status("HTTP/1.1 200 OK");
}
#[test]
fn should_encode_and_decode_base32() {
use base32;
let encoded = base32::encode(base32::Alphabet::Crockford, "token+https://parity.io".as_bytes());
assert_eq!("EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY", &encoded);
let data = base32::decode(base32::Alphabet::Crockford, "EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY").unwrap();
assert_eq!("token+https://parity.io", &String::from_utf8(data).unwrap());
}
#[test]
fn should_stream_web_content() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY.web.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 200 OK");
assert_security_headers_for_embed(&response.headers);
fetch.assert_requested("https://parity.io/");
fetch.assert_no_more_requests();
}
#[test]
fn should_support_base32_encoded_web_urls() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
GET /styles.css?test=123 HTTP/1.1\r\n\
Host: EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY.web.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 200 OK");
assert_security_headers_for_embed(&response.headers);
fetch.assert_requested("https://parity.io/styles.css?test=123");
fetch.assert_no_more_requests();
}
#[test]
fn should_correctly_handle_long_label_when_splitted() {
// given
let (server, fetch) = serve_with_fetch("xolrg9fePeQyKLnL");
// when
let response = request(server,
"\
GET /styles.css?test=123 HTTP/1.1\r\n\
Host: f1qprwk775k6am35a5wmpk3e9gnpgx3me1sk.mbsfcdqpwx3jd5h7ax39dxq2wvb5dhqpww3fe9t2wrvfdm.web.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 200 OK");
assert_security_headers_for_embed(&response.headers);
fetch.assert_requested("https://contribution.melonport.com/styles.css?test=123");
fetch.assert_no_more_requests();
}
#[test]
fn should_support_base32_encoded_web_urls_as_path() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
GET /web/EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY/styles.css?test=123 HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 200 OK");
assert_security_headers_for_embed(&response.headers);
fetch.assert_requested("https://parity.io/styles.css?test=123");
fetch.assert_no_more_requests();
}
#[test]
fn should_return_error_on_invalid_token() {
// given
let (server, fetch) = serve_with_fetch("test");
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY.web.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 400 Bad Request");
assert_security_headers_for_embed(&response.headers);
fetch.assert_no_more_requests();
}
#[test]
fn should_return_error_on_invalid_protocol() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
GET /web/token/ftp/parity.io/ HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 400 Bad Request");
assert_security_headers_for_embed(&response.headers);
fetch.assert_no_more_requests();
}
#[test]
fn should_disallow_non_get_requests() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
POST / HTTP/1.1\r\n\
Host: EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY.web.web3.site\r\n\
Content-Type: application/json\r\n\
Connection: close\r\n\
\r\n\
123\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 405 Method Not Allowed");
assert_security_headers_for_embed(&response.headers);
fetch.assert_no_more_requests();
}
#[test]
fn should_fix_absolute_requests_based_on_referer() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
GET /styles.css HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Connection: close\r\n\
Referer: http://localhost:8080/web/EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY/\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 302 Found");
response.assert_header("Location", "/web/EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY/styles.css");
fetch.assert_no_more_requests();
}
#[test]
fn should_fix_absolute_requests_based_on_referer_in_url() {
// given
let (server, fetch) = serve_with_fetch("token");
// when
let response = request(server,
"\
GET /styles.css HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Connection: close\r\n\
Referer: http://localhost:8080/?__referer=web/EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY/\r\n\
\r\n\
"
);
// then
response.assert_status("HTTP/1.1 302 Found");
response.assert_header("Location", "/web/EHQPPSBE5DM78X3GECX2YBVGC5S6JX3S5SMPY/styles.css");
fetch.assert_no_more_requests();
}

View File

@@ -0,0 +1,122 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::{io, thread, time};
use std::sync::{atomic, mpsc, Arc};
use util::Mutex;
use futures::{self, Future};
use fetch::{self, Fetch};
pub struct FetchControl {
sender: mpsc::Sender<()>,
fetch: FakeFetch,
}
impl FetchControl {
pub fn respond(self) {
self.sender.send(())
.expect("Fetch cannot be finished without sending a response at least once.");
}
pub fn wait_for_requests(&self, len: usize) {
const MAX_TIMEOUT_MS: u64 = 5000;
const ATTEMPTS: u64 = 10;
let mut attempts_left = ATTEMPTS;
loop {
let current = self.fetch.requested.lock().len();
if current == len {
break;
} else if attempts_left == 0 {
panic!(
"Timeout reached when waiting for pending requests. Expected: {}, current: {}",
len, current
);
} else {
attempts_left -= 1;
// Should we handle spurious timeouts better?
thread::park_timeout(time::Duration::from_millis(MAX_TIMEOUT_MS / ATTEMPTS));
}
}
}
}
#[derive(Clone, Default)]
pub struct FakeFetch {
manual: Arc<Mutex<Option<mpsc::Receiver<()>>>>,
response: Arc<Mutex<Option<&'static [u8]>>>,
asserted: Arc<atomic::AtomicUsize>,
requested: Arc<Mutex<Vec<String>>>,
}
impl FakeFetch {
pub fn set_response(&self, data: &'static [u8]) {
*self.response.lock() = Some(data);
}
pub fn manual(&self) -> FetchControl {
assert!(self.manual.lock().is_none(), "Only one manual control may be active.");
let (tx, rx) = mpsc::channel();
*self.manual.lock() = Some(rx);
FetchControl {
sender: tx,
fetch: self.clone(),
}
}
pub fn assert_requested(&self, url: &str) {
let requests = self.requested.lock();
let idx = self.asserted.fetch_add(1, atomic::Ordering::SeqCst);
assert_eq!(requests.get(idx), Some(&url.to_owned()), "Expected fetch from specific URL.");
}
pub fn assert_no_more_requests(&self) {
let requests = self.requested.lock();
let len = self.asserted.load(atomic::Ordering::SeqCst);
assert_eq!(requests.len(), len, "Didn't expect any more requests, got: {:?}", &requests[len..]);
}
}
impl Fetch for FakeFetch {
type Result = futures::BoxFuture<fetch::Response, fetch::Error>;
fn new() -> Result<Self, fetch::Error> where Self: Sized {
Ok(FakeFetch::default())
}
fn fetch_with_abort(&self, url: &str, _abort: fetch::Abort) -> Self::Result {
self.requested.lock().push(url.into());
let manual = self.manual.clone();
let response = self.response.clone();
let (tx, rx) = futures::oneshot();
thread::spawn(move || {
if let Some(rx) = manual.lock().take() {
// wait for manual resume
let _ = rx.recv();
}
let data = response.lock().take().unwrap_or(b"Some content");
let cursor = io::Cursor::new(data);
tx.complete(fetch::Response::from_reader(cursor));
});
rx.map_err(|_| fetch::Error::Aborted).boxed()
}
}

View File

@@ -0,0 +1,168 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::env;
use std::str;
use std::ops::Deref;
use std::sync::Arc;
use env_logger::LogBuilder;
use ethcore_rpc::Metadata;
use jsonrpc_core::MetaIoHandler;
use jsonrpc_core::reactor::RpcEventLoop;
use ServerBuilder;
use Server;
use fetch::Fetch;
use devtools::http_client;
use parity_reactor::Remote;
mod registrar;
mod fetch;
use self::registrar::FakeRegistrar;
use self::fetch::FakeFetch;
const SIGNER_PORT: u16 = 18180;
fn init_logger() {
// Initialize logger
if let Ok(log) = env::var("RUST_LOG") {
let mut builder = LogBuilder::new();
builder.parse(&log);
let _ = builder.init(); // ignore errors since ./test.sh will call this multiple times.
}
}
pub struct ServerLoop {
pub server: Server,
pub event_loop: RpcEventLoop,
}
impl Deref for ServerLoop {
type Target = Server;
fn deref(&self) -> &Self::Target {
&self.server
}
}
pub fn init_server<F, B>(process: F, io: MetaIoHandler<Metadata>, remote: Remote) -> (ServerLoop, Arc<FakeRegistrar>) where
F: FnOnce(ServerBuilder) -> ServerBuilder<B>,
B: Fetch,
{
init_logger();
let registrar = Arc::new(FakeRegistrar::new());
let mut dapps_path = env::temp_dir();
dapps_path.push("non-existent-dir-to-prevent-fs-files-from-loading");
// TODO [ToDr] When https://github.com/ethcore/jsonrpc/issues/26 is resolved
// this additional EventLoop wouldn't be needed, we should be able to re-use remote.
let event_loop = RpcEventLoop::spawn();
let handler = event_loop.handler(Arc::new(io));
let server = process(ServerBuilder::new(
&dapps_path, registrar.clone(), remote,
))
.signer_address(Some(("127.0.0.1".into(), SIGNER_PORT)))
.start_unsecured_http(&"127.0.0.1:0".parse().unwrap(), handler).unwrap();
(
ServerLoop { server: server, event_loop: event_loop },
registrar,
)
}
pub fn serve_with_auth(user: &str, pass: &str) -> ServerLoop {
init_logger();
let registrar = Arc::new(FakeRegistrar::new());
let mut dapps_path = env::temp_dir();
dapps_path.push("non-existent-dir-to-prevent-fs-files-from-loading");
let event_loop = RpcEventLoop::spawn();
let handler = event_loop.handler(Arc::new(MetaIoHandler::default()));
let server = ServerBuilder::new(&dapps_path, registrar, Remote::new(event_loop.remote()))
.signer_address(Some(("127.0.0.1".into(), SIGNER_PORT)))
.allowed_hosts(None)
.start_basic_auth_http(&"127.0.0.1:0".parse().unwrap(), user, pass, handler).unwrap();
ServerLoop {
server: server,
event_loop: event_loop,
}
}
pub fn serve_with_rpc(io: MetaIoHandler<Metadata>) -> ServerLoop {
init_server(|builder| builder.allowed_hosts(None), io, Remote::new_sync()).0
}
pub fn serve_hosts(hosts: Option<Vec<String>>) -> ServerLoop {
init_server(|builder| builder.allowed_hosts(hosts), Default::default(), Remote::new_sync()).0
}
pub fn serve_extra_cors(extra_cors: Option<Vec<String>>) -> ServerLoop {
init_server(|builder| builder.allowed_hosts(None).extra_cors_headers(extra_cors), Default::default(), Remote::new_sync()).0
}
pub fn serve_with_registrar() -> (ServerLoop, Arc<FakeRegistrar>) {
init_server(|builder| builder.allowed_hosts(None), Default::default(), Remote::new_sync())
}
pub fn serve_with_registrar_and_sync() -> (ServerLoop, Arc<FakeRegistrar>) {
init_server(|builder| {
builder
.sync_status(Arc::new(|| true))
.allowed_hosts(None)
}, Default::default(), Remote::new_sync())
}
pub fn serve_with_registrar_and_fetch() -> (ServerLoop, FakeFetch, Arc<FakeRegistrar>) {
serve_with_registrar_and_fetch_and_threads(false)
}
pub fn serve_with_registrar_and_fetch_and_threads(multi_threaded: bool) -> (ServerLoop, FakeFetch, Arc<FakeRegistrar>) {
let fetch = FakeFetch::default();
let f = fetch.clone();
let (server, reg) = init_server(move |builder| {
builder.allowed_hosts(None).fetch(f.clone())
}, Default::default(), if multi_threaded { Remote::new_thread_per_future() } else { Remote::new_sync() });
(server, fetch, reg)
}
pub fn serve_with_fetch(web_token: &'static str) -> (ServerLoop, FakeFetch) {
let fetch = FakeFetch::default();
let f = fetch.clone();
let (server, _) = init_server(move |builder| {
builder
.allowed_hosts(None)
.fetch(f.clone())
.web_proxy_tokens(Arc::new(move |token| &token == web_token))
}, Default::default(), Remote::new_sync());
(server, fetch)
}
pub fn serve() -> ServerLoop {
init_server(|builder| builder.allowed_hosts(None), Default::default(), Remote::new_sync()).0
}
pub fn request(server: ServerLoop, request: &str) -> http_client::Response {
http_client::request(server.addr(), request)
}
pub fn assert_security_headers(headers: &[String]) {
http_client::assert_security_headers_present(headers, None)
}
pub fn assert_security_headers_for_embed(headers: &[String]) {
http_client::assert_security_headers_present(headers, Some(SIGNER_PORT))
}

View File

@@ -0,0 +1,72 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::str;
use std::sync::Arc;
use std::collections::HashMap;
use rustc_serialize::hex::FromHex;
use hash_fetch::urlhint::ContractClient;
use util::{Bytes, Address, Mutex, H256, ToPretty};
const REGISTRAR: &'static str = "8e4e9b13d4b45cb0befc93c3061b1408f67316b2";
const URLHINT: &'static str = "deadbeefcafe0000000000000000000000000000";
const URLHINT_RESOLVE: &'static str = "267b6922";
const DEFAULT_HASH: &'static str = "1472a9e190620cdf6b31f383373e45efcfe869a820c91f9ccd7eb9fb45e4985d";
pub struct FakeRegistrar {
pub calls: Arc<Mutex<Vec<(String, String)>>>,
pub responses: Mutex<HashMap<(String, String), Result<Bytes, String>>>,
}
impl FakeRegistrar {
pub fn new() -> Self {
FakeRegistrar {
calls: Arc::new(Mutex::new(Vec::new())),
responses: Mutex::new({
let mut map = HashMap::new();
map.insert(
(REGISTRAR.into(), "6795dbcd058740ee9a5a3fb9f1cfa10752baec87e09cc45cd7027fd54708271aca300c75000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000000".into()),
Ok(format!("000000000000000000000000{}", URLHINT).from_hex().unwrap()),
);
map.insert(
(URLHINT.into(), format!("{}{}", URLHINT_RESOLVE, DEFAULT_HASH)),
Ok(vec![])
);
map
}),
}
}
pub fn set_result(&self, hash: H256, result: Result<Bytes, String>) {
self.responses.lock().insert(
(URLHINT.into(), format!("{}{:?}", URLHINT_RESOLVE, hash)),
result
);
}
}
impl ContractClient for FakeRegistrar {
fn registrar(&self) -> Result<Address, String> {
Ok(REGISTRAR.parse().unwrap())
}
fn call(&self, address: Address, data: Bytes) -> Result<Bytes, String> {
let call = (address.to_hex(), data.to_hex());
self.calls.lock().push(call.clone());
self.responses.lock().get(&call).cloned().expect(&format!("No response for call: {:?}", call))
}
}

View File

@@ -1,4 +1,4 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
@@ -14,9 +14,14 @@
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
//! Calculates heapsize of util types.
//! Dapps server test suite
use hash::*;
mod helpers;
known_heap_size!(0, H32, H64, H128, Address, H256, H264, H512, H520, H1024, H2048);
mod api;
mod authorization;
mod fetch;
mod redirection;
mod rpc;
mod validation;

View File

@@ -0,0 +1,207 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use tests::helpers::{serve, request, assert_security_headers, assert_security_headers_for_embed};
#[test]
fn should_redirect_to_home() {
// given
let server = serve();
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 302 Found".to_owned());
assert_eq!(response.headers.get(0).unwrap(), "Location: http://127.0.0.1:18180");
}
#[test]
fn should_redirect_to_home_when_trailing_slash_is_missing() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /app HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 302 Found".to_owned());
assert_eq!(response.headers.get(0).unwrap(), "Location: http://127.0.0.1:18180");
}
#[test]
fn should_redirect_to_home_for_users_with_cached_redirection() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /home/ HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 302 Found".to_owned());
assert_eq!(response.headers.get(0).unwrap(), "Location: http://127.0.0.1:18180");
}
#[test]
fn should_display_404_on_invalid_dapp() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /invaliddapp/ HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 404 Not Found".to_owned());
assert_security_headers_for_embed(&response.headers);
}
#[test]
fn should_display_404_on_invalid_dapp_with_domain() {
// given
let server = serve();
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: invaliddapp.web3.site\r\n\
Connection: close\r\n\
\r\n\
"
);
// then
assert_eq!(response.status, "HTTP/1.1 404 Not Found".to_owned());
assert_security_headers_for_embed(&response.headers);
}
#[test]
fn should_serve_rpc() {
// given
let server = serve();
// when
let response = request(server,
"\
POST / HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Content-Type: application/json\r\n
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_eq!(response.body, format!("58\n{}\n\n0\n\n", r#"{"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse error","data":null},"id":null}"#));
}
#[test]
fn should_serve_rpc_at_slash_rpc() {
// given
let server = serve();
// when
let response = request(server,
"\
POST /rpc HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Content-Type: application/json\r\n
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_eq!(response.body, format!("58\n{}\n\n0\n\n", r#"{"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse error","data":null},"id":null}"#));
}
#[test]
fn should_serve_proxy_pac() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /proxy/proxy.pac HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_eq!(response.body, "DD\n\nfunction FindProxyForURL(url, host) {\n\tif (shExpMatch(host, \"parity.web3.site\"))\n\t{\n\t\treturn \"PROXY 127.0.0.1:18180\";\n\t}\n\n\tif (shExpMatch(host, \"*.web3.site\"))\n\t{\n\t\treturn \"PROXY 127.0.0.1:8080\";\n\t}\n\n\treturn \"DIRECT\";\n}\n\n0\n\n".to_owned());
assert_security_headers(&response.headers);
}
#[test]
fn should_serve_utils() {
// given
let server = serve();
// when
let response = request(server,
"\
GET /parity-utils/inject.js HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert_eq!(response.body.contains("function(){"), true);
assert_security_headers(&response.headers);
}

119
dapps/src/tests/rpc.rs Normal file
View File

@@ -0,0 +1,119 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use futures::{future, Future};
use ethcore_rpc::{Metadata, Origin};
use jsonrpc_core::{MetaIoHandler, Value};
use tests::helpers::{serve_with_rpc, request};
#[test]
fn should_serve_rpc() {
// given
let mut io = MetaIoHandler::default();
io.add_method("rpc_test", |_| {
Ok(Value::String("Hello World!".into()))
});
let server = serve_with_rpc(io);
// when
let req = r#"{"jsonrpc":"2.0","id":1,"method":"rpc_test","params":[]}"#;
let response = request(server, &format!(
"\
POST /rpc/ HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Content-Type: application/json\r\n\
Content-Length: {}\r\n\
\r\n\
{}\r\n\
",
req.as_bytes().len(),
req,
));
// then
response.assert_status("HTTP/1.1 200 OK");
assert_eq!(response.body, "31\n{\"jsonrpc\":\"2.0\",\"result\":\"Hello World!\",\"id\":1}\n\n0\n\n".to_owned());
}
#[test]
fn should_extract_metadata() {
// given
let mut io = MetaIoHandler::default();
io.add_method_with_meta("rpc_test", |_params, meta: Metadata| {
assert_eq!(meta.origin, Origin::Dapps("https://parity.io/".into()));
assert_eq!(meta.dapp_id(), "https://parity.io/".into());
future::ok(Value::String("Hello World!".into())).boxed()
});
let server = serve_with_rpc(io);
// when
let req = r#"{"jsonrpc":"2.0","id":1,"method":"rpc_test","params":[]}"#;
let response = request(server, &format!(
"\
POST /rpc/ HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Origin: https://parity.io/\r\n\
X-Parity-Origin: https://this.should.be.ignored\r\n\
Content-Type: application/json\r\n\
Content-Length: {}\r\n\
\r\n\
{}\r\n\
",
req.as_bytes().len(),
req,
));
// then
response.assert_status("HTTP/1.1 200 OK");
assert_eq!(response.body, "31\n{\"jsonrpc\":\"2.0\",\"result\":\"Hello World!\",\"id\":1}\n\n0\n\n".to_owned());
}
#[test]
fn should_extract_metadata_from_custom_header() {
// given
let mut io = MetaIoHandler::default();
io.add_method_with_meta("rpc_test", |_params, meta: Metadata| {
assert_eq!(meta.origin, Origin::Dapps("https://parity.io/".into()));
assert_eq!(meta.dapp_id(), "https://parity.io/".into());
future::ok(Value::String("Hello World!".into())).boxed()
});
let server = serve_with_rpc(io);
// when
let req = r#"{"jsonrpc":"2.0","id":1,"method":"rpc_test","params":[]}"#;
let response = request(server, &format!(
"\
POST /rpc/ HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
Origin: null\r\n\
X-Parity-Origin: https://parity.io/\r\n\
Content-Type: application/json\r\n\
Content-Length: {}\r\n\
\r\n\
{}\r\n\
",
req.as_bytes().len(),
req,
));
// then
response.assert_status("HTTP/1.1 200 OK");
assert_eq!(response.body, "31\n{\"jsonrpc\":\"2.0\",\"result\":\"Hello World!\",\"id\":1}\n\n0\n\n".to_owned());
}

View File

@@ -0,0 +1,127 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use tests::helpers::{serve_hosts, request};
#[test]
fn should_reject_invalid_host() {
// given
let server = serve_hosts(Some(vec!["localhost:8080".into()]));
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 403 Forbidden".to_owned());
assert!(response.body.contains("Current Host Is Disallowed"), response.body);
}
#[test]
fn should_allow_valid_host() {
// given
let server = serve_hosts(Some(vec!["localhost:8080".into()]));
// when
let response = request(server,
"\
GET /ui/ HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
}
#[test]
fn should_serve_dapps_domains() {
// given
let server = serve_hosts(Some(vec!["localhost:8080".into()]));
// when
let response = request(server,
"\
GET / HTTP/1.1\r\n\
Host: ui.web3.site\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
}
#[test]
// NOTE [todr] This is required for error pages to be styled properly.
fn should_allow_parity_utils_even_on_invalid_domain() {
// given
let server = serve_hosts(Some(vec!["localhost:8080".into()]));
// when
let response = request(server,
"\
GET /parity-utils/styles.css HTTP/1.1\r\n\
Host: 127.0.0.1:8080\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
}
#[test]
fn should_not_return_cors_headers_for_rpc() {
// given
let server = serve_hosts(Some(vec!["localhost:8080".into()]));
// when
let response = request(server,
"\
POST /rpc HTTP/1.1\r\n\
Host: localhost:8080\r\n\
Origin: null\r\n\
Content-Type: application/json\r\n\
Connection: close\r\n\
\r\n\
{}
"
);
// then
assert_eq!(response.status, "HTTP/1.1 200 OK".to_owned());
assert!(
!response.headers_raw.contains("Access-Control-Allow-Origin"),
"CORS headers were not expected: {:?}",
response.headers
);
}

150
dapps/src/url.rs Normal file
View File

@@ -0,0 +1,150 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! HTTP/HTTPS URL type. Based on URL type from Iron library.
use url_lib::{self};
pub use url_lib::Host;
/// HTTP/HTTPS URL type for Iron.
#[derive(PartialEq, Eq, Clone, Debug)]
pub struct Url {
/// Raw url of url
pub raw: url_lib::Url,
/// The host field of the URL, probably a domain.
pub host: Host,
/// The connection port.
pub port: u16,
/// The URL path, the resource to be accessed.
///
/// A *non-empty* vector encoding the parts of the URL path.
/// Empty entries of `""` correspond to trailing slashes.
pub path: Vec<String>,
/// The URL query.
pub query: Option<String>,
/// The URL username field, from the userinfo section of the URL.
///
/// `None` if the `@` character was not part of the input OR
/// if a blank username was provided.
/// Otherwise, a non-empty string.
pub username: Option<String>,
/// The URL password field, from the userinfo section of the URL.
///
/// `None` if the `@` character was not part of the input OR
/// if a blank password was provided.
/// Otherwise, a non-empty string.
pub password: Option<String>,
}
impl Url {
/// Create a URL from a string.
///
/// The input must be a valid URL with a special scheme for this to succeed.
///
/// HTTP and HTTPS are special schemes.
///
/// See: http://url.spec.whatwg.org/#special-scheme
pub fn parse(input: &str) -> Result<Url, String> {
// Parse the string using rust-url, then convert.
match url_lib::Url::parse(input) {
Ok(raw_url) => Url::from_generic_url(raw_url),
Err(e) => Err(format!("{}", e))
}
}
/// Create a `Url` from a `rust-url` `Url`.
pub fn from_generic_url(raw_url: url_lib::Url) -> Result<Url, String> {
// Map empty usernames to None.
let username = match raw_url.username() {
"" => None,
username => Some(username.to_owned())
};
// Map empty passwords to None.
let password = match raw_url.password() {
Some(password) if !password.is_empty() => Some(password.to_owned()),
_ => None,
};
let port = raw_url.port_or_known_default().ok_or_else(|| format!("Unknown port for scheme: `{}`", raw_url.scheme()))?;
let host = raw_url.host().ok_or_else(|| "Valid host, because only data:, mailto: protocols does not have host.".to_owned())?.to_owned();
let path = raw_url.path_segments().ok_or_else(|| "Valid path segments. In HTTP we won't get cannot-be-a-base URLs".to_owned())?
.map(|part| part.to_owned()).collect();
let query = raw_url.query().map(|x| x.to_owned());
Ok(Url {
port: port,
host: host,
path: path,
query: query,
raw: raw_url,
username: username,
password: password,
})
}
}
#[cfg(test)]
mod test {
use super::Url;
#[test]
fn test_default_port() {
assert_eq!(Url::parse("http://example.com/wow").unwrap().port, 80u16);
assert_eq!(Url::parse("https://example.com/wow").unwrap().port, 443u16);
}
#[test]
fn test_explicit_port() {
assert_eq!(Url::parse("http://localhost:3097").unwrap().port, 3097u16);
}
#[test]
fn test_empty_username() {
assert!(Url::parse("http://@example.com").unwrap().username.is_none());
assert!(Url::parse("http://:password@example.com").unwrap().username.is_none());
}
#[test]
fn test_not_empty_username() {
let user = Url::parse("http://john:pass@example.com").unwrap().username;
assert_eq!(user.unwrap(), "john");
let user = Url::parse("http://john:@example.com").unwrap().username;
assert_eq!(user.unwrap(), "john");
}
#[test]
fn test_empty_password() {
assert!(Url::parse("http://michael@example.com").unwrap().password.is_none());
assert!(Url::parse("http://:@example.com").unwrap().password.is_none());
}
#[test]
fn test_not_empty_password() {
let pass = Url::parse("http://michael:pass@example.com").unwrap().password;
assert_eq!(pass.unwrap(), "pass");
let pass = Url::parse("http://:pass@example.com").unwrap().password;
assert_eq!(pass.unwrap(), "pass");
}
}

236
dapps/src/web.rs Normal file
View File

@@ -0,0 +1,236 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Serving web-based content (proxying)
use std::sync::Arc;
use fetch::{self, Fetch};
use parity_reactor::Remote;
use base32;
use hyper::{self, server, net, Next, Encoder, Decoder};
use hyper::status::StatusCode;
use apps;
use endpoint::{Endpoint, Handler, EndpointPath};
use handlers::{
ContentFetcherHandler, ContentHandler, ContentValidator, ValidatorResponse,
StreamingHandler, extract_url,
};
use url::Url;
use WebProxyTokens;
pub type Embeddable = Option<(String, u16)>;
pub struct Web<F> {
embeddable_on: Embeddable,
web_proxy_tokens: Arc<WebProxyTokens>,
remote: Remote,
fetch: F,
}
impl<F: Fetch> Web<F> {
pub fn boxed(embeddable_on: Embeddable, web_proxy_tokens: Arc<WebProxyTokens>, remote: Remote, fetch: F) -> Box<Endpoint> {
Box::new(Web {
embeddable_on: embeddable_on,
web_proxy_tokens: web_proxy_tokens,
remote: remote,
fetch: fetch,
})
}
}
impl<F: Fetch> Endpoint for Web<F> {
fn to_async_handler(&self, path: EndpointPath, control: hyper::Control) -> Box<Handler> {
Box::new(WebHandler {
control: control,
state: State::Initial,
path: path,
remote: self.remote.clone(),
fetch: self.fetch.clone(),
web_proxy_tokens: self.web_proxy_tokens.clone(),
embeddable_on: self.embeddable_on.clone(),
})
}
}
struct WebInstaller {
embeddable_on: Embeddable,
referer: String,
}
impl ContentValidator for WebInstaller {
type Error = String;
fn validate_and_install(&self, response: fetch::Response) -> Result<ValidatorResponse, String> {
let status = StatusCode::from_u16(response.status().to_u16());
let is_html = response.is_html();
let mime = response.content_type().unwrap_or(mime!(Text/Html));
let mut handler = StreamingHandler::new(
response,
status,
mime,
self.embeddable_on.clone(),
);
if is_html {
handler.set_initial_content(&format!(
r#"<script src="/{}/inject.js"></script><script>history.replaceState({{}}, "", "/?{}{}/{}")</script>"#,
apps::UTILS_PATH,
apps::URL_REFERER,
apps::WEB_PATH,
&self.referer,
));
}
Ok(ValidatorResponse::Streaming(handler))
}
}
enum State<F: Fetch> {
Initial,
Error(ContentHandler),
Fetching(ContentFetcherHandler<WebInstaller, F>),
}
struct WebHandler<F: Fetch> {
control: hyper::Control,
state: State<F>,
path: EndpointPath,
remote: Remote,
fetch: F,
web_proxy_tokens: Arc<WebProxyTokens>,
embeddable_on: Embeddable,
}
impl<F: Fetch> WebHandler<F> {
fn extract_target_url(&self, url: Option<Url>) -> Result<String, State<F>> {
let token_and_url = self.path.app_params.get(0)
.map(|encoded| encoded.replace('.', ""))
.and_then(|encoded| base32::decode(base32::Alphabet::Crockford, &encoded.to_uppercase()))
.and_then(|data| String::from_utf8(data).ok())
.ok_or_else(|| State::Error(ContentHandler::error(
StatusCode::BadRequest,
"Invalid parameter",
"Couldn't parse given parameter:",
self.path.app_params.get(0).map(String::as_str),
self.embeddable_on.clone()
)))?;
let mut token_it = token_and_url.split('+');
let token = token_it.next();
let target_url = token_it.next();
// Check if token supplied in URL is correct.
match token {
Some(token) if self.web_proxy_tokens.is_web_proxy_token_valid(token) => {},
_ => {
return Err(State::Error(ContentHandler::error(
StatusCode::BadRequest, "Invalid Access Token", "Invalid or old web proxy access token supplied.", Some("Try refreshing the page."), self.embeddable_on.clone()
)));
}
}
// Validate protocol
let mut target_url = match target_url {
Some(url) if url.starts_with("http://") || url.starts_with("https://") => url.to_owned(),
_ => {
return Err(State::Error(ContentHandler::error(
StatusCode::BadRequest, "Invalid Protocol", "Invalid protocol used.", None, self.embeddable_on.clone()
)));
}
};
if !target_url.ends_with("/") {
target_url = format!("{}/", target_url);
}
// TODO [ToDr] Should just use `path.app_params`
let (path, query) = match (&url, self.path.using_dapps_domains) {
(&Some(ref url), true) => (&url.path[..], &url.query),
(&Some(ref url), false) => (&url.path[2..], &url.query),
_ => {
return Err(State::Error(ContentHandler::error(
StatusCode::BadRequest, "Invalid URL", "Couldn't parse URL", None, self.embeddable_on.clone()
)));
}
};
let query = match *query {
Some(ref query) => format!("?{}", query),
None => "".into(),
};
Ok(format!("{}{}{}", target_url, path.join("/"), query))
}
}
impl<F: Fetch> server::Handler<net::HttpStream> for WebHandler<F> {
fn on_request(&mut self, request: server::Request<net::HttpStream>) -> Next {
let url = extract_url(&request);
// First extract the URL (reject invalid URLs)
let target_url = match self.extract_target_url(url) {
Ok(url) => url,
Err(error) => {
self.state = error;
return Next::write();
}
};
let mut handler = ContentFetcherHandler::new(
target_url,
self.path.clone(),
self.control.clone(),
WebInstaller {
embeddable_on: self.embeddable_on.clone(),
referer: self.path.app_params.get(0)
.expect("`target_url` is valid; app_params is not empty;qed")
.to_owned(),
},
self.embeddable_on.clone(),
self.remote.clone(),
self.fetch.clone(),
);
let res = handler.on_request(request);
self.state = State::Fetching(handler);
res
}
fn on_request_readable(&mut self, decoder: &mut Decoder<net::HttpStream>) -> Next {
match self.state {
State::Initial => Next::end(),
State::Error(ref mut handler) => handler.on_request_readable(decoder),
State::Fetching(ref mut handler) => handler.on_request_readable(decoder),
}
}
fn on_response(&mut self, res: &mut server::Response) -> Next {
match self.state {
State::Initial => Next::end(),
State::Error(ref mut handler) => handler.on_response(res),
State::Fetching(ref mut handler) => handler.on_response(res),
}
}
fn on_response_writable(&mut self, encoder: &mut Encoder<net::HttpStream>) -> Next {
match self.state {
State::Initial => Next::end(),
State::Error(ref mut handler) => handler.on_response_writable(encoder),
State::Fetching(ref mut handler) => handler.on_response_writable(encoder),
}
}
}

18
dapps/ui/Cargo.toml Normal file
View File

@@ -0,0 +1,18 @@
[package]
description = "Ethcore Parity UI"
homepage = "http://parity.io"
license = "GPL-3.0"
name = "parity-ui"
version = "1.6.0"
authors = ["Parity Technologies <admin@parity.io>"]
[build-dependencies]
rustc_version = "0.1"
[dependencies]
parity-ui-dev = { path = "../../js", optional = true }
parity-ui-precompiled = { git = "https://github.com/paritytech/js-precompiled.git", branch = "beta", optional = true }
[features]
no-precompiled-js = ["parity-ui-dev"]
use-precompiled-js = ["parity-ui-precompiled"]

33
dapps/ui/src/lib.rs Normal file
View File

@@ -0,0 +1,33 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
#[cfg(feature = "parity-ui-dev")]
mod inner {
extern crate parity_ui_dev;
pub use self::parity_ui_dev::*;
}
#[cfg(feature = "parity-ui-precompiled")]
mod inner {
extern crate parity_ui_precompiled;
pub use self::parity_ui_precompiled::*;
}
pub use self::inner::*;

25
db/Cargo.toml Normal file
View File

@@ -0,0 +1,25 @@
[package]
description = "Ethcore Database"
homepage = "http://parity.io"
license = "GPL-3.0"
name = "ethcore-db"
version = "1.6.0"
authors = ["Parity Technologies <admin@parity.io>"]
build = "build.rs"
[build-dependencies]
ethcore-ipc-codegen = { path = "../ipc/codegen" }
[dependencies]
clippy = { version = "0.0.103", optional = true}
ethcore-devtools = { path = "../devtools" }
ethcore-ipc = { path = "../ipc/rpc" }
rocksdb = { git = "https://github.com/paritytech/rust-rocksdb" }
semver = "0.5"
ethcore-ipc-nano = { path = "../ipc/nano" }
nanomsg = { git = "https://github.com/paritytech/nanomsg.rs.git" }
crossbeam = "0.2"
ethcore-util = { path = "../util" }
[features]
dev = ["clippy"]

38
db/build.rs Normal file
View File

@@ -0,0 +1,38 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
extern crate ethcore_ipc_codegen as codegen;
use std::env;
use std::path::Path;
pub fn main() {
let out_dir = env::var_os("OUT_DIR").unwrap();
// ipc pass
{
let src = Path::new("src/lib.rs.in");
let dst = Path::new(&out_dir).join("lib.intermediate.rs.in");
codegen::expand(&src, &dst);
}
// binary serialization pass
{
let src = Path::new(&out_dir).join("lib.intermediate.rs.in");
let dst = Path::new(&out_dir).join("lib.rs");
codegen::expand(&src, &dst);
}
}

565
db/src/database.rs Normal file
View File

@@ -0,0 +1,565 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Ethcore rocksdb ipc service
use traits::*;
use rocksdb::{DB, Writable, WriteBatch, IteratorMode, DBIterator, IndexType, Options, DBCompactionStyle, BlockBasedOptions, Direction};
use std::sync::{RwLock, Arc};
use std::convert::From;
use ipc::IpcConfig;
use std::mem;
use ipc::binary::BinaryConvertError;
use std::collections::{VecDeque, HashMap, BTreeMap};
enum WriteCacheEntry {
Remove,
Write(Vec<u8>),
}
pub struct WriteCache {
entries: HashMap<Vec<u8>, WriteCacheEntry>,
preferred_len: usize,
}
const FLUSH_BATCH_SIZE: usize = 4096;
impl WriteCache {
fn new(cache_len: usize) -> WriteCache {
WriteCache {
entries: HashMap::new(),
preferred_len: cache_len,
}
}
fn write(&mut self, key: Vec<u8>, val: Vec<u8>) {
self.entries.insert(key, WriteCacheEntry::Write(val));
}
fn remove(&mut self, key: Vec<u8>) {
self.entries.insert(key, WriteCacheEntry::Remove);
}
fn get(&self, key: &[u8]) -> Option<Vec<u8>> {
self.entries.get(key).and_then(
|vec_ref| match vec_ref {
&WriteCacheEntry::Write(ref val) => Some(val.clone()),
&WriteCacheEntry::Remove => None
})
}
/// WriteCache should be locked for this
fn flush(&mut self, db: &DB, amount: usize) -> Result<(), Error> {
let batch = WriteBatch::new();
let mut removed_so_far = 0;
while removed_so_far < amount {
if self.entries.len() == 0 { break; }
let removed_key = {
let (key, cache_entry) = self.entries.iter().nth(0)
.expect("if entries.len == 0, we should have break in the loop, still we got here somehow");
match *cache_entry {
WriteCacheEntry::Write(ref val) => {
batch.put(&key, val)?;
},
WriteCacheEntry::Remove => {
batch.delete(&key)?;
},
}
key.clone()
};
self.entries.remove(&removed_key);
removed_so_far = removed_so_far + 1;
}
if removed_so_far > 0 {
db.write(batch)?;
}
Ok(())
}
/// flushes until cache is empty
fn flush_all(&mut self, db: &DB) -> Result<(), Error> {
while !self.is_empty() { self.flush(db, FLUSH_BATCH_SIZE)?; }
Ok(())
}
fn is_empty(&self) -> bool {
self.entries.is_empty()
}
fn try_shrink(&mut self, db: &DB) -> Result<(), Error> {
if self.entries.len() > self.preferred_len {
self.flush(db, FLUSH_BATCH_SIZE)?;
}
Ok(())
}
}
pub struct Database {
db: RwLock<Option<DB>>,
/// Iterators - dont't use between threads!
iterators: RwLock<BTreeMap<IteratorHandle, DBIterator>>,
write_cache: RwLock<WriteCache>,
}
unsafe impl Send for Database {}
unsafe impl Sync for Database {}
impl Database {
pub fn new() -> Database {
Database {
db: RwLock::new(None),
iterators: RwLock::new(BTreeMap::new()),
write_cache: RwLock::new(WriteCache::new(DEFAULT_CACHE_LEN)),
}
}
pub fn flush(&self) -> Result<(), Error> {
let mut cache_lock = self.write_cache.write();
let db_lock = self.db.read();
if db_lock.is_none() { return Ok(()); }
let db = db_lock.as_ref().unwrap();
cache_lock.try_shrink(&db)?;
Ok(())
}
pub fn flush_all(&self) -> Result<(), Error> {
let mut cache_lock = self.write_cache.write();
let db_lock = self.db.read();
if db_lock.is_none() { return Ok(()); }
let db = db_lock.as_ref().expect("we should have exited with Ok(()) on the previous step");
cache_lock.flush_all(&db)?;
Ok(())
}
}
impl Drop for Database {
fn drop(&mut self) {
self.flush().unwrap();
}
}
#[ipc]
impl DatabaseService for Database {
fn open(&self, config: DatabaseConfig, path: String) -> Result<(), Error> {
let mut db = self.db.write();
if db.is_some() { return Err(Error::AlreadyOpen); }
let mut opts = Options::new();
opts.set_max_open_files(256);
opts.create_if_missing(true);
opts.set_use_fsync(false);
opts.set_compaction_style(DBCompactionStyle::DBUniversalCompaction);
if let Some(size) = config.prefix_size {
let mut block_opts = BlockBasedOptions::new();
block_opts.set_index_type(IndexType::HashSearch);
opts.set_block_based_table_factory(&block_opts);
opts.set_prefix_extractor_fixed_size(size);
}
*db = Some(DB::open(&opts, &path)?);
Ok(())
}
/// Opens database in the specified path with the default config
fn open_default(&self, path: String) -> Result<(), Error> {
self.open(DatabaseConfig::default(), path)
}
fn close(&self) -> Result<(), Error> {
self.flush_all()?;
let mut db = self.db.write();
if db.is_none() { return Err(Error::IsClosed); }
*db = None;
Ok(())
}
fn put(&self, key: &[u8], value: &[u8]) -> Result<(), Error> {
let mut cache_lock = self.write_cache.write();
cache_lock.write(key.to_vec(), value.to_vec());
Ok(())
}
fn delete(&self, key: &[u8]) -> Result<(), Error> {
let mut cache_lock = self.write_cache.write();
cache_lock.remove(key.to_vec());
Ok(())
}
fn write(&self, transaction: DBTransaction) -> Result<(), Error> {
let mut cache_lock = self.write_cache.write();
let mut writes = transaction.writes.borrow_mut();
for kv in writes.drain(..) {
cache_lock.write(kv.key, kv.value);
}
let mut removes = transaction.removes.borrow_mut();
for k in removes.drain(..) {
cache_lock.remove(k);
}
Ok(())
}
fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>, Error> {
{
let key_vec = key.to_vec();
let cache_hit = self.write_cache.read().get(&key_vec);
if cache_hit.is_some() {
return Ok(Some(cache_hit.expect("cache_hit.is_some() = true, still there is none somehow here")))
}
}
let db_lock = self.db.read();
let db = db_lock.as_ref().ok_or(Error::IsClosed)?;
match db.get(key)? {
Some(db_vec) => {
Ok(Some(db_vec.to_vec()))
},
None => Ok(None),
}
}
fn get_by_prefix(&self, prefix: &[u8]) -> Result<Option<Vec<u8>>, Error> {
let db_lock = self.db.read();
let db = db_lock.as_ref().ok_or(Error::IsClosed)?;
let mut iter = db.iterator(IteratorMode::From(prefix, Direction::Forward));
match iter.next() {
// TODO: use prefix_same_as_start read option (not availabele in C API currently)
Some((k, v)) => if k[0 .. prefix.len()] == prefix[..] { Ok(Some(v.to_vec())) } else { Ok(None) },
_ => Ok(None)
}
}
fn is_empty(&self) -> Result<bool, Error> {
let db_lock = self.db.read();
let db = db_lock.as_ref().ok_or(Error::IsClosed)?;
Ok(db.iterator(IteratorMode::Start).next().is_none())
}
fn iter(&self) -> Result<IteratorHandle, Error> {
let db_lock = self.db.read();
let db = db_lock.as_ref().ok_or(Error::IsClosed)?;
let mut iterators = self.iterators.write();
let next_iterator = iterators.keys().last().unwrap_or(&0) + 1;
iterators.insert(next_iterator, db.iterator(IteratorMode::Start));
Ok(next_iterator)
}
fn iter_next(&self, handle: IteratorHandle) -> Option<KeyValue> {
let mut iterators = self.iterators.write();
let mut iterator = match iterators.get_mut(&handle) {
Some(some_iterator) => some_iterator,
None => { return None; },
};
iterator.next().and_then(|(some_key, some_val)| {
Some(KeyValue {
key: some_key.to_vec(),
value: some_val.to_vec(),
})
})
}
fn dispose_iter(&self, handle: IteratorHandle) -> Result<(), Error> {
let mut iterators = self.iterators.write();
iterators.remove(&handle);
Ok(())
}
}
// TODO : put proper at compile-time
impl IpcConfig for Database {}
/// Database iterator
pub struct DatabaseIterator {
client: Arc<DatabaseClient<::nanomsg::Socket>>,
handle: IteratorHandle,
}
impl Iterator for DatabaseIterator {
type Item = (Vec<u8>, Vec<u8>);
fn next(&mut self) -> Option<Self::Item> {
self.client.iter_next(self.handle).and_then(|kv| Some((kv.key, kv.value)))
}
}
impl Drop for DatabaseIterator {
fn drop(&mut self) {
self.client.dispose_iter(self.handle).unwrap();
}
}
#[cfg(test)]
mod test {
use super::Database;
use traits::*;
use devtools::*;
#[test]
fn can_be_created() {
let db = Database::new();
assert!(db.is_empty().is_err());
}
#[test]
fn can_be_open_empty() {
let db = Database::new();
let path = RandomTempPath::create_dir();
db.open_default(path.as_str().to_owned()).unwrap();
assert!(db.is_empty().is_ok());
}
#[test]
fn can_store_key() {
let db = Database::new();
let path = RandomTempPath::create_dir();
db.open_default(path.as_str().to_owned()).unwrap();
db.put("xxx".as_bytes(), "1".as_bytes()).unwrap();
db.flush_all().unwrap();
assert!(!db.is_empty().unwrap());
}
#[test]
fn can_retrieve() {
let db = Database::new();
let path = RandomTempPath::create_dir();
db.open_default(path.as_str().to_owned()).unwrap();
db.put("xxx".as_bytes(), "1".as_bytes()).unwrap();
db.close().unwrap();
db.open_default(path.as_str().to_owned()).unwrap();
assert_eq!(db.get("xxx".as_bytes()).unwrap().unwrap(), "1".as_bytes().to_vec());
}
}
#[cfg(test)]
mod write_cache_tests {
use super::Database;
use traits::*;
use devtools::*;
#[test]
fn cache_write_flush() {
let db = Database::new();
let path = RandomTempPath::create_dir();
db.open_default(path.as_str().to_owned()).unwrap();
db.put("100500".as_bytes(), "1".as_bytes()).unwrap();
db.delete("100500".as_bytes()).unwrap();
db.flush_all().unwrap();
let val = db.get("100500".as_bytes()).unwrap();
assert!(val.is_none());
}
}
#[cfg(test)]
mod client_tests {
use super::{DatabaseClient, Database};
use traits::*;
use devtools::*;
use nanoipc;
use std::sync::Arc;
use std::sync::atomic::{Ordering, AtomicBool};
use crossbeam;
use run_worker;
fn init_worker(addr: &str) -> nanoipc::Worker<Database> {
let mut worker = nanoipc::Worker::<Database>::new(&Arc::new(Database::new()));
worker.add_duplex(addr).unwrap();
worker
}
#[test]
fn can_call_handshake() {
let url = "ipc:///tmp/parity-db-ipc-test-10.ipc";
let worker_should_exit = Arc::new(AtomicBool::new(false));
let worker_is_ready = Arc::new(AtomicBool::new(false));
let c_worker_should_exit = worker_should_exit.clone();
let c_worker_is_ready = worker_is_ready.clone();
::std::thread::spawn(move || {
let mut worker = init_worker(url);
while !c_worker_should_exit.load(Ordering::Relaxed) {
worker.poll();
c_worker_is_ready.store(true, Ordering::Relaxed);
}
});
while !worker_is_ready.load(Ordering::Relaxed) { }
let client = nanoipc::init_duplex_client::<DatabaseClient<_>>(url).unwrap();
let hs = client.handshake();
worker_should_exit.store(true, Ordering::Relaxed);
assert!(hs.is_ok());
}
#[test]
fn can_open_db() {
let url = "ipc:///tmp/parity-db-ipc-test-20.ipc";
let path = RandomTempPath::create_dir();
let worker_should_exit = Arc::new(AtomicBool::new(false));
let worker_is_ready = Arc::new(AtomicBool::new(false));
let c_worker_should_exit = worker_should_exit.clone();
let c_worker_is_ready = worker_is_ready.clone();
::std::thread::spawn(move || {
let mut worker = init_worker(url);
while !c_worker_should_exit.load(Ordering::Relaxed) {
worker.poll();
c_worker_is_ready.store(true, Ordering::Relaxed);
}
});
while !worker_is_ready.load(Ordering::Relaxed) { }
let client = nanoipc::init_duplex_client::<DatabaseClient<_>>(url).unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
assert!(client.is_empty().unwrap());
worker_should_exit.store(true, Ordering::Relaxed);
}
#[test]
fn can_put() {
let url = "ipc:///tmp/parity-db-ipc-test-30.ipc";
let path = RandomTempPath::create_dir();
crossbeam::scope(move |scope| {
let stop = Arc::new(AtomicBool::new(false));
run_worker(scope, stop.clone(), url);
let client = nanoipc::generic_client::<DatabaseClient<_>>(url).unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
client.put("xxx".as_bytes(), "1".as_bytes()).unwrap();
client.close().unwrap();
stop.store(true, Ordering::Relaxed);
});
}
#[test]
fn can_put_and_read() {
let url = "ipc:///tmp/parity-db-ipc-test-40.ipc";
let path = RandomTempPath::create_dir();
crossbeam::scope(move |scope| {
let stop = Arc::new(AtomicBool::new(false));
run_worker(scope, stop.clone(), url);
let client = nanoipc::generic_client::<DatabaseClient<_>>(url).unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
client.put("xxx".as_bytes(), "1".as_bytes()).unwrap();
client.close().unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
assert_eq!(client.get("xxx".as_bytes()).unwrap().unwrap(), "1".as_bytes().to_vec());
stop.store(true, Ordering::Relaxed);
});
}
#[test]
fn can_read_empty() {
let url = "ipc:///tmp/parity-db-ipc-test-45.ipc";
let path = RandomTempPath::create_dir();
crossbeam::scope(move |scope| {
let stop = Arc::new(AtomicBool::new(false));
run_worker(scope, stop.clone(), url);
let client = nanoipc::generic_client::<DatabaseClient<_>>(url).unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
assert!(client.get("xxx".as_bytes()).unwrap().is_none());
stop.store(true, Ordering::Relaxed);
});
}
#[test]
fn can_commit_client_transaction() {
let url = "ipc:///tmp/parity-db-ipc-test-60.ipc";
let path = RandomTempPath::create_dir();
crossbeam::scope(move |scope| {
let stop = Arc::new(AtomicBool::new(false));
run_worker(scope, stop.clone(), url);
let client = nanoipc::generic_client::<DatabaseClient<_>>(url).unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
let transaction = DBTransaction::new();
transaction.put("xxx".as_bytes(), "1".as_bytes());
client.write(transaction).unwrap();
client.close().unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
assert_eq!(client.get("xxx".as_bytes()).unwrap().unwrap(), "1".as_bytes().to_vec());
stop.store(true, Ordering::Relaxed);
});
}
#[test]
fn key_write_read_ipc() {
let url = "ipc:///tmp/parity-db-ipc-test-70.ipc";
let path = RandomTempPath::create_dir();
crossbeam::scope(|scope| {
let stop = StopGuard::new();
run_worker(&scope, stop.share(), url);
let client = nanoipc::generic_client::<DatabaseClient<_>>(url).unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
let mut batch = Vec::new();
for _ in 0..100 {
batch.push((random_str(256).as_bytes().to_vec(), random_str(256).as_bytes().to_vec()));
batch.push((random_str(256).as_bytes().to_vec(), random_str(2048).as_bytes().to_vec()));
batch.push((random_str(2048).as_bytes().to_vec(), random_str(2048).as_bytes().to_vec()));
batch.push((random_str(2048).as_bytes().to_vec(), random_str(256).as_bytes().to_vec()));
}
for &(ref k, ref v) in batch.iter() {
client.put(k, v).unwrap();
}
client.close().unwrap();
client.open_default(path.as_str().to_owned()).unwrap();
for &(ref k, ref v) in batch.iter() {
assert_eq!(v, &client.get(k).unwrap().unwrap());
}
});
}
}

20
db/src/lib.rs Normal file
View File

@@ -0,0 +1,20 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Database ipc service
#![allow(dead_code, unused_assignments, unused_variables)] // codegen issues
include!(concat!(env!("OUT_DIR"), "/lib.rs"));

89
db/src/lib.rs.in Normal file
View File

@@ -0,0 +1,89 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
extern crate ethcore_ipc as ipc;
extern crate rocksdb;
extern crate ethcore_devtools as devtools;
extern crate semver;
extern crate ethcore_ipc_nano as nanoipc;
extern crate nanomsg;
extern crate crossbeam;
extern crate ethcore_util as util;
pub mod database;
pub mod traits;
pub use traits::{DatabaseService, DBTransaction, Error};
pub use database::{Database, DatabaseClient, DatabaseIterator};
use std::sync::Arc;
use std::sync::atomic::*;
use std::path::PathBuf;
pub type DatabaseNanoClient = DatabaseClient<::nanomsg::Socket>;
pub type DatabaseConnection = nanoipc::GuardedSocket<DatabaseNanoClient>;
#[derive(Debug)]
pub enum ServiceError {
Io(std::io::Error),
Socket(nanoipc::SocketError),
}
impl std::convert::From<std::io::Error> for ServiceError {
fn from(io_error: std::io::Error) -> ServiceError { ServiceError::Io(io_error) }
}
impl std::convert::From<nanoipc::SocketError> for ServiceError {
fn from(socket_error: nanoipc::SocketError) -> ServiceError { ServiceError::Socket(socket_error) }
}
pub fn blocks_service_url(db_path: &str) -> Result<String, std::io::Error> {
let mut path = PathBuf::from(db_path);
::std::fs::create_dir_all(db_path)?;
path.push("blocks.ipc");
Ok(format!("ipc://{}", path.to_str().unwrap()))
}
pub fn extras_service_url(db_path: &str) -> Result<String, ::std::io::Error> {
let mut path = PathBuf::from(db_path);
::std::fs::create_dir_all(db_path)?;
path.push("extras.ipc");
Ok(format!("ipc://{}", path.to_str().unwrap()))
}
pub fn blocks_client(db_path: &str) -> Result<DatabaseConnection, ServiceError> {
let url = blocks_service_url(db_path)?;
let client = nanoipc::generic_client::<DatabaseClient<_>>(&url)?;
Ok(client)
}
pub fn extras_client(db_path: &str) -> Result<DatabaseConnection, ServiceError> {
let url = extras_service_url(db_path)?;
let client = nanoipc::generic_client::<DatabaseClient<_>>(&url)?;
Ok(client)
}
// for tests
pub fn run_worker(scope: &crossbeam::Scope, stop: Arc<AtomicBool>, socket_path: &str) {
let socket_path = socket_path.to_owned();
scope.spawn(move || {
let mut worker = nanoipc::Worker::new(&Arc::new(Database::new()));
worker.add_reqrep(&socket_path).unwrap();
while !stop.load(Ordering::Relaxed) {
worker.poll();
}
});
}

135
db/src/traits.rs Normal file
View File

@@ -0,0 +1,135 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Ethcore database trait
use std::cell::RefCell;
pub type IteratorHandle = u32;
pub const DEFAULT_CACHE_LEN: usize = 12288;
#[derive(Binary)]
pub struct KeyValue {
pub key: Vec<u8>,
pub value: Vec<u8>,
}
#[derive(Debug, Binary)]
pub enum Error {
AlreadyOpen,
IsClosed,
RocksDb(String),
TransactionUnknown,
IteratorUnknown,
UncommitedTransactions,
}
impl From<String> for Error {
fn from(s: String) -> Error {
Error::RocksDb(s)
}
}
/// Database configuration
#[derive(Binary)]
pub struct DatabaseConfig {
/// Optional prefix size in bytes. Allows lookup by partial key.
pub prefix_size: Option<usize>,
/// write cache length
pub cache: usize,
}
impl Default for DatabaseConfig {
fn default() -> DatabaseConfig {
DatabaseConfig {
prefix_size: None,
cache: DEFAULT_CACHE_LEN,
}
}
}
impl DatabaseConfig {
fn with_prefix(prefix: usize) -> DatabaseConfig {
DatabaseConfig {
prefix_size: Some(prefix),
cache: DEFAULT_CACHE_LEN,
}
}
}
pub trait DatabaseService : Sized {
/// Opens database in the specified path
fn open(&self, config: DatabaseConfig, path: String) -> Result<(), Error>;
/// Opens database in the specified path with the default config
fn open_default(&self, path: String) -> Result<(), Error>;
/// Closes database
fn close(&self) -> Result<(), Error>;
/// Insert a key-value pair in the transaction. Any existing value value will be overwritten.
fn put(&self, key: &[u8], value: &[u8]) -> Result<(), Error>;
/// Delete value by key.
fn delete(&self, key: &[u8]) -> Result<(), Error>;
/// Get value by key.
fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>, Error>;
/// Get value by partial key. Prefix size should match configured prefix size.
fn get_by_prefix(&self, prefix: &[u8]) -> Result<Option<Vec<u8>>, Error>;
/// Check if there is anything in the database.
fn is_empty(&self) -> Result<bool, Error>;
/// Get handle to iterate through keys
fn iter(&self) -> Result<IteratorHandle, Error>;
/// Next key-value for the the given iterator
fn iter_next(&self, iterator: IteratorHandle) -> Option<KeyValue>;
/// Dispose iteration that is no longer needed
fn dispose_iter(&self, handle: IteratorHandle) -> Result<(), Error>;
/// Write client transaction
fn write(&self, transaction: DBTransaction) -> Result<(), Error>;
}
#[derive(Binary)]
pub struct DBTransaction {
pub writes: RefCell<Vec<KeyValue>>,
pub removes: RefCell<Vec<Vec<u8>>>,
}
impl DBTransaction {
pub fn new() -> DBTransaction {
DBTransaction {
writes: RefCell::new(Vec::new()),
removes: RefCell::new(Vec::new()),
}
}
pub fn put(&self, key: &[u8], value: &[u8]) {
let mut brw = self.writes.borrow_mut();
brw.push(KeyValue { key: key.to_vec(), value: value.to_vec() });
}
pub fn delete(&self, key: &[u8]) {
let mut brw = self.removes.borrow_mut();
brw.push(key.to_vec());
}
}

View File

@@ -1,10 +1,10 @@
[package]
description = "Ethcore development/test/build tools"
homepage = "http://ethcore.io"
homepage = "http://parity.io"
license = "GPL-3.0"
name = "ethcore-devtools"
version = "1.1.0"
authors = ["Ethcore <admin@ethcore.io>"]
version = "1.6.0"
authors = ["Parity Technologies <admin@parity.io>"]
[dependencies]
rand = "0.3"

View File

@@ -1 +0,0 @@
# ethcore dev tools

124
devtools/src/http_client.rs Normal file
View File

@@ -0,0 +1,124 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::thread;
use std::time::Duration;
use std::io::{Read, Write};
use std::str::{self, Lines};
use std::net::{TcpStream, SocketAddr};
pub struct Response {
pub status: String,
pub headers: Vec<String>,
pub headers_raw: String,
pub body: String,
}
impl Response {
pub fn assert_header(&self, header: &str, value: &str) {
let header = format!("{}: {}", header, value);
assert!(self.headers.iter().find(|h| *h == &header).is_some(), "Couldn't find header {} in {:?}", header, &self.headers)
}
pub fn assert_status(&self, status: &str) {
assert_eq!(self.status, status.to_owned(), "Got unexpected code. Body: {:?}", self.body);
}
pub fn assert_security_headers_present(&self, port: Option<u16>) {
assert_security_headers_present(&self.headers, port)
}
}
pub fn read_block(lines: &mut Lines, all: bool) -> String {
let mut block = String::new();
loop {
let line = lines.next();
match line {
None => break,
Some("") if !all => break,
Some(v) => {
block.push_str(v);
block.push_str("\n");
},
}
}
block
}
fn connect(address: &SocketAddr) -> TcpStream {
let mut retries = 0;
let mut last_error = None;
while retries < 10 {
retries += 1;
let res = TcpStream::connect(address);
match res {
Ok(stream) => {
return stream;
},
Err(e) => {
last_error = Some(e);
thread::sleep(Duration::from_millis(retries * 10));
}
}
}
panic!("Unable to connect to the server. Last error: {:?}", last_error);
}
pub fn request(address: &SocketAddr, request: &str) -> Response {
let mut req = connect(address);
req.set_read_timeout(Some(Duration::from_secs(2))).unwrap();
req.write_all(request.as_bytes()).unwrap();
let mut response = String::new();
let _ = req.read_to_string(&mut response);
let mut lines = response.lines();
let status = lines.next().expect("Expected a response").to_owned();
let headers_raw = read_block(&mut lines, false);
let headers = headers_raw.split('\n').map(|v| v.to_owned()).collect();
let body = read_block(&mut lines, true);
Response {
status: status,
headers: headers,
headers_raw: headers_raw,
body: body,
}
}
/// Check if all required security headers are present
pub fn assert_security_headers_present(headers: &[String], port: Option<u16>) {
if let Some(port) = port {
assert!(
headers.iter().find(|header| header.as_str() == &format!("X-Frame-Options: ALLOW-FROM http://127.0.0.1:{}", port)).is_some(),
"X-Frame-Options: ALLOW-FROM missing: {:?}", headers
);
} else {
assert!(
headers.iter().find(|header| header.as_str() == "X-Frame-Options: SAMEORIGIN").is_some(),
"X-Frame-Options: SAMEORIGIN missing: {:?}", headers
);
}
assert!(
headers.iter().find(|header| header.as_str() == "X-XSS-Protection: 1; mode=block").is_some(),
"X-XSS-Protection missing: {:?}", headers
);
assert!(
headers.iter().find(|header| header.as_str() == "X-Content-Type-Options: nosniff").is_some(),
"X-Content-Type-Options missing: {:?}", headers
);
}

View File

@@ -1,4 +1,4 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
@@ -19,6 +19,11 @@
extern crate rand;
pub mod random_path;
mod random_path;
mod test_socket;
mod stop_guard;
pub mod http_client;
pub use random_path::*;
pub use test_socket::*;
pub use stop_guard::*;

View File

@@ -1,4 +1,4 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
@@ -19,14 +19,20 @@
use std::path::*;
use std::fs;
use std::env;
use std::ops::{Deref, DerefMut};
use rand::random;
pub struct RandomTempPath {
path: PathBuf
path: PathBuf,
pub panic_on_drop_failure: bool,
}
pub fn random_filename() -> String {
(0..8).map(|_| ((random::<f32>() * 26.0) as u8 + 97) as char).collect()
random_str(8)
}
pub fn random_str(len: usize) -> String {
(0..len).map(|_| ((random::<f32>() * 26.0) as u8 + 97) as char).collect()
}
impl RandomTempPath {
@@ -34,7 +40,8 @@ impl RandomTempPath {
let mut dir = env::temp_dir();
dir.push(random_filename());
RandomTempPath {
path: dir.clone()
path: dir.clone(),
panic_on_drop_failure: true,
}
}
@@ -43,7 +50,8 @@ impl RandomTempPath {
dir.push(random_filename());
fs::create_dir_all(dir.as_path()).unwrap();
RandomTempPath {
path: dir.clone()
path: dir.clone(),
panic_on_drop_failure: true,
}
}
@@ -54,16 +62,67 @@ impl RandomTempPath {
pub fn as_str(&self) -> &str {
self.path.to_str().unwrap()
}
pub fn new_in(&self, name: &str) -> String {
let mut path = self.path.clone();
path.push(name);
path.to_str().unwrap().to_owned()
}
}
impl AsRef<Path> for RandomTempPath {
fn as_ref(&self) -> &Path {
self.as_path()
}
}
impl Deref for RandomTempPath {
type Target = Path;
fn deref(&self) -> &Self::Target {
self.as_path()
}
}
impl Drop for RandomTempPath {
fn drop(&mut self) {
if let Err(e) = fs::remove_dir_all(self.as_path()) {
panic!("failed to remove temp directory, probably something failed to destroyed ({})", e);
if let Err(_) = fs::remove_dir_all(&self) {
if let Err(e) = fs::remove_file(&self) {
if self.panic_on_drop_failure {
panic!("Failed to remove temp directory. Here's what prevented this from happening: ({})", e);
}
}
}
}
}
pub struct GuardedTempResult<T> {
pub result: Option<T>,
pub _temp: RandomTempPath
}
impl<T> GuardedTempResult<T> {
pub fn reference(&self) -> &T {
self.result.as_ref().unwrap()
}
pub fn reference_mut(&mut self) -> &mut T {
self.result.as_mut().unwrap()
}
pub fn take(&mut self) -> T {
self.result.take().unwrap()
}
}
impl<T> Deref for GuardedTempResult<T> {
type Target = T;
fn deref(&self) -> &T { self.result.as_ref().unwrap() }
}
impl<T> DerefMut for GuardedTempResult<T> {
fn deref_mut(&mut self) -> &mut T { self.result.as_mut().unwrap() }
}
#[test]
fn creates_dir() {
let temp = RandomTempPath::create_dir();

View File

@@ -0,0 +1,45 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Stop guard mod
use std::sync::Arc;
use std::sync::atomic::*;
/// Stop guard that will set a stop flag on drop
pub struct StopGuard {
flag: Arc<AtomicBool>,
}
impl StopGuard {
/// Create a stop guard
pub fn new() -> StopGuard {
StopGuard {
flag: Arc::new(AtomicBool::new(false))
}
}
/// Share stop guard between the threads
pub fn share(&self) -> Arc<AtomicBool> {
self.flag.clone()
}
}
impl Drop for StopGuard {
fn drop(&mut self) {
self.flag.store(true, Ordering::Relaxed)
}
}

View File

@@ -0,0 +1,95 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
use std::io::*;
use std::cmp;
pub struct TestSocket {
pub read_buffer: Vec<u8>,
pub write_buffer: Vec<u8>,
pub cursor: usize,
pub buf_size: usize,
}
impl Default for TestSocket {
fn default() -> Self {
TestSocket::new()
}
}
impl TestSocket {
pub fn new() -> Self {
TestSocket {
read_buffer: vec![],
write_buffer: vec![],
cursor: 0,
buf_size: 0,
}
}
pub fn new_buf(buf_size: usize) -> TestSocket {
TestSocket {
read_buffer: vec![],
write_buffer: vec![],
cursor: 0,
buf_size: buf_size,
}
}
pub fn new_ready(data: Vec<u8>) -> TestSocket {
TestSocket {
read_buffer: data,
write_buffer: vec![],
cursor: 0,
buf_size: 0,
}
}
}
impl Read for TestSocket {
fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
let end_position = cmp::min(self.read_buffer.len(), self.cursor+buf.len());
if self.cursor > end_position { return Ok(0) }
let len = cmp::max(end_position - self.cursor, 0);
match len {
0 => Ok(0),
_ => {
for i in self.cursor..end_position {
buf[i-self.cursor] = self.read_buffer[i];
}
self.cursor = end_position;
Ok(len)
}
}
}
}
impl Write for TestSocket {
fn write(&mut self, buf: &[u8]) -> Result<usize> {
if self.buf_size == 0 || buf.len() < self.buf_size {
self.write_buffer.extend(buf.iter().cloned());
Ok(buf.len())
}
else {
self.write_buffer.extend(buf.iter().take(self.buf_size).cloned());
Ok(self.buf_size)
}
}
fn flush(&mut self) -> Result<()> {
unimplemented!();
}
}

11
doc.sh
View File

@@ -1,11 +0,0 @@
#!/bin/sh
# generate documentation only for partiy and ethcore libraries
cargo doc --no-deps --verbose \
-p ethash \
-p ethcore-util \
-p ethcore \
-p ethsync \
-p ethcore-rpc \
-p parity \
-p ethminer

33
docker/centos/Dockerfile Normal file
View File

@@ -0,0 +1,33 @@
FROM centos:latest
WORKDIR /build
# install tools and dependencies
RUN yum -y update&& \
yum install -y git make gcc-c++ gcc file binutils
# install rustup
RUN curl -sSf https://static.rust-lang.org/rustup.sh -o rustup.sh &&\
ls&&\
sh rustup.sh -s -- --disable-sudo
# show backtraces
ENV RUST_BACKTRACE 1
# set compiler
ENV CXX g++
ENV CC gcc
# show tools
RUN rustc -vV && \
cargo -V && \
gcc -v &&\
g++ -v
# build parity
RUN git clone https://github.com/ethcore/parity && \
cd parity&&\
git checkout beta && \
git pull && \
ls -a&&\
cargo build --release --verbose && \
ls /build/parity/target/release/parity && \
strip /build/parity/target/release/parity
RUN file /build/parity/target/release/parity
EXPOSE 8080 8545 8180
ENTRYPOINT ["/build/parity/target/release/parity"]

83
docker/hub/Dockerfile Normal file
View File

@@ -0,0 +1,83 @@
FROM ubuntu:14.04
MAINTAINER Parity Technologies <devops@parity.io>
WORKDIR /build
#ENV for build TAG
ARG BUILD_TAG
ENV BUILD_TAG ${BUILD_TAG:-master}
RUN echo $BUILD_TAG
# install tools and dependencies
RUN apt-get update && \
apt-get install -y --force-yes --no-install-recommends \
# make
build-essential \
# add-apt-repository
software-properties-common \
make \
curl \
wget \
git \
g++ \
gcc \
libc6 \
libc6-dev \
binutils \
file \
openssl \
libssl-dev \
libudev-dev \
pkg-config \
dpkg-dev \
# evmjit dependencies
zlib1g-dev \
libedit-dev \
libudev-dev &&\
# cmake and llvm ppa's. then update ppa's
add-apt-repository -y "ppa:george-edison55/cmake-3.x" && \
add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main" && \
apt-get update && \
apt-get install -y --force-yes cmake llvm-3.7-dev && \
# install evmjit
git clone https://github.com/debris/evmjit && \
cd evmjit && \
mkdir build && cd build && \
cmake .. && make && make install && cd && \
# install rustup
curl https://sh.rustup.rs -sSf | sh -s -- -y && \
# rustup directory
PATH=/root/.cargo/bin:$PATH && \
# show backtraces
RUST_BACKTRACE=1 && \
# build parity
cd /build&&git clone https://github.com/paritytech/parity && \
cd parity && \
git pull&& \
git checkout $BUILD_TAG && \
cargo build --verbose --release --features final && \
#ls /build/parity/target/release/parity && \
strip /build/parity/target/release/parity && \
file /build/parity/target/release/parity&&mkdir -p /parity&& cp /build/parity/target/release/parity /parity&&\
#cleanup Docker image
rm -rf /root/.cargo&&rm -rf /root/.multirust&&rm -rf /root/.rustup&&rm -rf /build&&\
apt-get purge -y \
# make
build-essential \
# add-apt-repository
software-properties-common \
make \
curl \
wget \
git \
g++ \
gcc \
binutils \
file \
pkg-config \
dpkg-dev \
# evmjit dependencies
zlib1g-dev \
libedit-dev \
cmake llvm-3.7-dev&&\
rm -rf /var/lib/apt/lists/*
# setup ENTRYPOINT
EXPOSE 8080 8545 8180
ENTRYPOINT ["/parity/parity"]

View File

@@ -0,0 +1,47 @@
FROM ubuntu:14.04
WORKDIR /build
# install tools and dependencies
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 \
&& \
apt-get clean
# install rustup
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
# rustup directory
ENV PATH /root/.cargo/bin:$PATH
ENV RUST_TARGETS="aarch64-unknown-linux-gnu"
# multirust add arm--linux-gnuabhf toolchain
RUN rustup target add aarch64-unknown-linux-gnu
# show backtraces
ENV RUST_BACKTRACE 1
# show tools
RUN rustc -vV && \
cargo -V
# build parity
RUN git clone https://github.com/ethcore/parity && \
cd parity && \
git checkout beta && \
git pull && \
mkdir -p .cargo && \
echo '[target.aarch64-unknown-linux-gnu]\n\
linker = "aarch64-linux-gnu-gcc"\n'\
>>.cargo/config && \
cat .cargo/config && \
cargo build --target aarch64-unknown-linux-gnu --release --verbose && \
ls /build/parity/target/aarch64-unknown-linux-gnu/release/parity && \
/usr/bin/aarch64-linux-gnu-strip /build/parity/target/aarch64-unknown-linux-gnu/release/parity
RUN file /build/parity/target/aarch64-unknown-linux-gnu/release/parity
EXPOSE 8080 8545 8180
ENTRYPOINT ["/build/parity/target/aarch64-unknown-linux-gnu/release/parity"]

View File

@@ -0,0 +1,48 @@
FROM ubuntu:14.04
WORKDIR /build
# install tools and dependencies
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 \
&& \
apt-get clean
# install rustup
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
# rustup directory
ENV PATH /root/.cargo/bin:$PATH
ENV RUST_TARGETS="arm-unknown-linux-gnueabihf"
# multirust add arm--linux-gnuabhf toolchain
RUN rustup target add armv7-unknown-linux-gnueabihf
# show backtraces
ENV RUST_BACKTRACE 1
# show tools
RUN rustc -vV && \
cargo -V
# build parity
RUN git clone https://github.com/ethcore/parity && \
cd parity && \
git checkout beta && \
git pull && \
mkdir -p .cargo && \
echo '[target.armv7-unknown-linux-gnueabihf]\n\
linker = "arm-linux-gnueabihf-gcc"\n'\
>>.cargo/config && \
cat .cargo/config && \
cargo build --target armv7-unknown-linux-gnueabihf --release --verbose && \
ls /build/parity/target/armv7-unknown-linux-gnueabihf/release/parity && \
/usr/bin/arm-linux-gnueabihf-strip /build/parity/target/armv7-unknown-linux-gnueabihf/release/parity
RUN file /build/parity/target/armv7-unknown-linux-gnueabihf/release/parity
EXPOSE 8080 8545 8180
ENTRYPOINT ["/build/parity/target/armv7-unknown-linux-gnueabihf/release/parity"]

View File

@@ -27,11 +27,11 @@ RUN git clone https://github.com/debris/evmjit && \
mkdir build && cd build && \
cmake .. && make && make install && cd
# install multirust
RUN curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sh -s -- --yes
# install rustup
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
# export rust LIBRARY_PATH
ENV LIBRARY_PATH /usr/local/lib
# rustup directory
ENV PATH /root/.cargo/bin:$PATH
# show backtraces
ENV RUST_BACKTRACE 1

View File

@@ -1,42 +1,59 @@
FROM ubuntu:14.04
WORKDIR /build
# install tools and dependencies
RUN apt-get update && \
apt-get install -y \
# make
build-essential \
# add-apt-repository
software-properties-common \
curl \
wget \
git \
g++ \
# evmjit dependencies
zlib1g-dev \
libedit-dev
apt-get install -y \
# make
build-essential \
# add-apt-repository
software-properties-common \
curl \
wget \
git \
g++ \
binutils \
file \
# evmjit dependencies
zlib1g-dev \
libedit-dev
# cmake, llvm and rocksdb ppas. then update ppas
# cmake and llvm ppas. then update ppas
RUN add-apt-repository -y "ppa:george-edison55/cmake-3.x" && \
add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main" && \
apt-get update && \
apt-get install -y --force-yes cmake llvm-3.7-dev
add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main" && \
apt-get update && \
apt-get install -y --force-yes cmake llvm-3.7-dev
# install evmjit
RUN git clone https://github.com/debris/evmjit && \
cd evmjit && \
mkdir build && cd build && \
cmake .. && make && make install && cd
cd evmjit && \
mkdir build && cd build && \
cmake .. && make && make install && cd
# install multirust
RUN curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sh -s -- --yes
# install rustup
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
# export rust LIBRARY_PATH
ENV LIBRARY_PATH /usr/local/lib
# rustup directory
ENV PATH /root/.cargo/bin:$PATH
# show backtraces
ENV RUST_BACKTRACE 1
# show tools
RUN rustc -vV && \
cargo -V && \
gcc -v &&\
g++ -v
# build parity
RUN git clone https://github.com/ethcore/parity && \
cd parity && \
cargo build --release --features ethcore/jit
cd parity && \
git checkout beta && \
git pull && \
cargo build --release --features ethcore/jit --verbose && \
ls /build/parity/target/release/parity && \
strip /build/parity/target/release/parity
RUN file /build/parity/target/release/parity
EXPOSE 8080 8545 8180
ENTRYPOINT ["/build/parity/target/release/parity"]

View File

@@ -0,0 +1,40 @@
FROM ubuntu:14.04
WORKDIR /build
# install tools and dependencies
RUN apt-get update && \
apt-get install -y \
build-essential \
g++ \
curl \
git \
file \
binutils
# install rustup
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
# rustup directory
ENV PATH /root/.cargo/bin:$PATH
# show backtraces
ENV RUST_BACKTRACE 1
# show tools
RUN rustc -vV && \
cargo -V && \
gcc -v &&\
g++ -v
# build parity
RUN git clone https://github.com/ethcore/parity && \
cd parity && \
git checkout stable && \
git pull && \
cargo build --release --verbose && \
ls /build/parity/target/release/parity && \
strip /build/parity/target/release/parity
RUN file /build/parity/target/release/parity
EXPOSE 8080 8545 8180
ENTRYPOINT ["/build/parity/target/release/parity"]

View File

@@ -1,23 +1,40 @@
FROM ubuntu:14.04
WORKDIR /build
# install tools and dependencies
RUN apt-get update && \
apt-get install -y \
g++ \
curl \
git \
make
apt-get install -y \
g++ \
build-essential \
curl \
git \
file \
binutils
# install multirust
RUN curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sh -s -- --yes
# install rustup
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
# export rust LIBRARY_PATH
ENV LIBRARY_PATH /usr/local/lib
# rustup directory
ENV PATH /root/.cargo/bin:$PATH
# show backtraces
ENV RUST_BACKTRACE 1
# show tools
RUN rustc -vV && \
cargo -V && \
gcc -v &&\
g++ -v
# build parity
RUN git clone https://github.com/ethcore/parity && \
cd parity && \
cargo build --release
cd parity && \
git checkout beta && \
git pull && \
cargo build --release --verbose && \
ls /build/parity/target/release/parity && \
strip /build/parity/target/release/parity
RUN file /build/parity/target/release/parity
EXPOSE 8080 8545 8180
ENTRYPOINT ["/build/parity/target/release/parity"]

View File

@@ -1,7 +1,7 @@
[package]
name = "ethash"
version = "1.1.0"
authors = ["arkpar <arkadiy@ethcore.io"]
version = "1.6.0"
authors = ["Parity Technologies <admin@parity.io>"]
[lib]
@@ -9,3 +9,4 @@ authors = ["arkpar <arkadiy@ethcore.io"]
log = "0.3"
sha3 = { path = "../util/sha3" }
primal = "0.2.3"
parking_lot = "0.3"

View File

@@ -1,4 +1,4 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
@@ -20,14 +20,17 @@
// TODO: fix endianess for big endian
use primal::is_prime;
use std::cell::Cell;
use std::mem;
use std::ptr;
use sha3;
use std::slice;
use std::path::PathBuf;
use std::io::{Read, Write, self};
use std::io::{self, Read, Write};
use std::fs::{self, File};
use parking_lot::Mutex;
pub const ETHASH_EPOCH_LENGTH: u64 = 30000;
pub const ETHASH_CACHE_ROUNDS: usize = 3;
pub const ETHASH_MIX_BYTES: usize = 128;
@@ -42,14 +45,14 @@ const NODE_WORDS: usize = 64 / 4;
const NODE_BYTES: usize = 64;
const MIX_WORDS: usize = ETHASH_MIX_BYTES / 4;
const MIX_NODES: usize = MIX_WORDS / NODE_WORDS;
const FNV_PRIME: u32 = 0x01000193;
const FNV_PRIME: u32 = 0x01000193;
/// Computation result
pub struct ProofOfWork {
/// Difficulty boundary
pub value: H256,
/// Mix
pub mix_hash: H256
pub mix_hash: H256,
}
struct Node {
@@ -85,9 +88,10 @@ pub type H256 = [u8; 32];
pub struct Light {
block_number: u64,
cache: Vec<Node>,
seed_compute: Mutex<SeedHashCompute>,
}
/// Light cache structur
/// Light cache structure
impl Light {
/// Create a new light cache for a given block number
pub fn new(block_number: u64) -> Light {
@@ -101,46 +105,107 @@ impl Light {
light_compute(self, header_hash, nonce)
}
pub fn file_path(block_number: u64) -> PathBuf {
pub fn file_path(seed_hash: H256) -> PathBuf {
let mut home = ::std::env::home_dir().unwrap();
home.push(".ethash");
home.push("light");
let seed_hash = get_seedhash(block_number);
home.push(to_hex(&seed_hash));
home
}
pub fn from_file(block_number: u64) -> io::Result<Light> {
let path = Light::file_path(block_number);
let mut file = try!(File::open(path));
let seed_compute = SeedHashCompute::new();
let path = Light::file_path(seed_compute.get_seedhash(block_number));
let mut file = File::open(path)?;
let cache_size = get_cache_size(block_number);
if try!(file.metadata()).len() != cache_size as u64 {
if file.metadata()?.len() != cache_size as u64 {
return Err(io::Error::new(io::ErrorKind::Other, "Cache file size mismatch"));
}
let num_nodes = cache_size / NODE_BYTES;
let mut nodes: Vec<Node> = Vec::new();
nodes.resize(num_nodes, unsafe { mem::uninitialized() });
let buf = unsafe { slice::from_raw_parts_mut(nodes.as_mut_ptr() as *mut u8, cache_size) };
try!(file.read_exact(buf));
file.read_exact(buf)?;
Ok(Light {
cache: nodes,
block_number: block_number,
seed_compute: Mutex::new(seed_compute),
})
}
pub fn to_file(&self) -> io::Result<()> {
let path = Light::file_path(self.block_number);
try!(fs::create_dir_all(path.parent().unwrap()));
let mut file = try!(File::create(path));
pub fn to_file(&self) -> io::Result<PathBuf> {
let seed_compute = self.seed_compute.lock();
let path = Light::file_path(seed_compute.get_seedhash(self.block_number));
if self.block_number >= ETHASH_EPOCH_LENGTH * 2 {
let deprecated = Light::file_path(
seed_compute.get_seedhash(self.block_number - ETHASH_EPOCH_LENGTH * 2));
if deprecated.exists() {
debug!(target: "ethash", "removing: {:?}", &deprecated);
fs::remove_file(deprecated)?;
}
}
fs::create_dir_all(path.parent().unwrap())?;
let mut file = File::create(&path)?;
let cache_size = self.cache.len() * NODE_BYTES;
let buf = unsafe { slice::from_raw_parts(self.cache.as_ptr() as *const u8, cache_size) };
try!(file.write(buf));
Ok(())
file.write(buf)?;
Ok(path)
}
}
pub struct SeedHashCompute {
prev_epoch: Cell<u64>,
prev_seedhash: Cell<H256>,
}
impl SeedHashCompute {
#[inline]
pub fn new() -> SeedHashCompute {
SeedHashCompute {
prev_epoch: Cell::new(0),
prev_seedhash: Cell::new([0u8; 32]),
}
}
#[inline]
fn reset_cache(&self) {
self.prev_epoch.set(0);
self.prev_seedhash.set([0u8; 32]);
}
#[inline]
pub fn get_seedhash(&self, block_number: u64) -> H256 {
let epoch = block_number / ETHASH_EPOCH_LENGTH;
if epoch < self.prev_epoch.get() {
// can't build on previous hash if requesting an older block
self.reset_cache();
}
if epoch > self.prev_epoch.get() {
let seed_hash = SeedHashCompute::resume_compute_seedhash(self.prev_seedhash.get(), self.prev_epoch.get(), epoch);
self.prev_seedhash.set(seed_hash);
self.prev_epoch.set(epoch);
}
self.prev_seedhash.get()
}
#[inline]
pub fn resume_compute_seedhash(mut hash: H256, start_epoch: u64, end_epoch: u64) -> H256 {
for _ in start_epoch..end_epoch {
unsafe { sha3::sha3_256(hash[..].as_mut_ptr(), 32, hash[..].as_ptr(), 32) };
}
hash
}
}
pub fn slow_get_seedhash(block_number: u64) -> H256 {
SeedHashCompute::resume_compute_seedhash([0u8; 32], 0, block_number / ETHASH_EPOCH_LENGTH)
}
#[inline]
fn fnv_hash(x: u32, y: u32) -> u32 {
return x.wrapping_mul(FNV_PRIME) ^ y;
@@ -153,34 +218,24 @@ fn sha3_512(input: &[u8], output: &mut [u8]) {
#[inline]
fn get_cache_size(block_number: u64) -> usize {
let mut sz: u64 = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number / ETHASH_EPOCH_LENGTH);
sz = sz - NODE_BYTES as u64;
while !is_prime(sz / NODE_BYTES as u64) {
sz = sz - 2 * NODE_BYTES as u64;
}
sz as usize
let mut sz: u64 = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number / ETHASH_EPOCH_LENGTH);
sz = sz - NODE_BYTES as u64;
while !is_prime(sz / NODE_BYTES as u64) {
sz = sz - 2 * NODE_BYTES as u64;
}
sz as usize
}
#[inline]
fn get_data_size(block_number: u64) -> usize {
let mut sz: u64 = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number / ETHASH_EPOCH_LENGTH);
sz = sz - ETHASH_MIX_BYTES as u64;
while !is_prime(sz / ETHASH_MIX_BYTES as u64) {
sz = sz - 2 * ETHASH_MIX_BYTES as u64;
}
sz as usize
let mut sz: u64 = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number / ETHASH_EPOCH_LENGTH);
sz = sz - ETHASH_MIX_BYTES as u64;
while !is_prime(sz / ETHASH_MIX_BYTES as u64) {
sz = sz - 2 * ETHASH_MIX_BYTES as u64;
}
sz as usize
}
#[inline]
/// Given the `block_number`, determine the seed hash for Ethash.
pub fn get_seedhash(block_number: u64) -> H256 {
let epochs = block_number / ETHASH_EPOCH_LENGTH;
let mut ret: H256 = [0u8; 32];
for _ in 0..epochs {
unsafe { sha3::sha3_256(ret[..].as_mut_ptr(), 32, ret[..].as_ptr(), 32) };
}
ret
}
/// Difficulty quick check for POW preverification
///
@@ -211,12 +266,12 @@ pub fn light_compute(light: &Light, header_hash: &H256, nonce: u64) -> ProofOfWo
hash_compute(light, full_size, header_hash, nonce)
}
fn hash_compute(light: &Light, full_size: usize, header_hash: &H256, nonce: u64) -> ProofOfWork {
fn hash_compute(light: &Light, full_size: usize, header_hash: &H256, nonce: u64) -> ProofOfWork {
if full_size % MIX_WORDS != 0 {
panic!("Unaligned full size");
}
// pack hash and nonce together into first 40 bytes of s_mix
let mut s_mix: [Node; MIX_NODES + 1] = [ Node::default(), Node::default(), Node::default() ];
let mut s_mix: [Node; MIX_NODES + 1] = [Node::default(), Node::default(), Node::default()];
unsafe { ptr::copy_nonoverlapping(header_hash.as_ptr(), s_mix.get_unchecked_mut(0).bytes.as_mut_ptr(), 32) };
unsafe { ptr::copy_nonoverlapping(mem::transmute(&nonce), s_mix.get_unchecked_mut(0).bytes[32..].as_mut_ptr(), 8) };
@@ -230,11 +285,12 @@ fn hash_compute(light: &Light, full_size: usize, header_hash: &H256, nonce: u64
let page_size = 4 * MIX_WORDS;
let num_full_pages = (full_size / page_size) as u32;
let cache: &[Node] = &light.cache; // deref once for better performance
for i in 0..(ETHASH_ACCESSES as u32) {
let index = fnv_hash(f_mix.get_unchecked(0).as_words().get_unchecked(0) ^ i, *mix.get_unchecked(0).as_words().get_unchecked((i as usize) % MIX_WORDS)) % num_full_pages;
for n in 0..MIX_NODES {
let tmp_node = calculate_dag_item(index * MIX_NODES as u32 + n as u32, light);
let tmp_node = calculate_dag_item(index * MIX_NODES as u32 + n as u32, cache);
for w in 0..NODE_WORDS {
*mix.get_unchecked_mut(n).as_words_mut().get_unchecked_mut(w) = fnv_hash(*mix.get_unchecked(n).as_words().get_unchecked(w), *tmp_node.as_words().get_unchecked(w));
}
@@ -257,7 +313,7 @@ fn hash_compute(light: &Light, full_size: usize, header_hash: &H256, nonce: u64
ptr::copy_nonoverlapping(mix.get_unchecked_mut(0).bytes.as_ptr(), buf[64..].as_mut_ptr(), 32);
ptr::copy_nonoverlapping(mix.get_unchecked_mut(0).bytes.as_ptr(), mix_hash.as_mut_ptr(), 32);
let mut value: H256 = [0u8; 32];
sha3::sha3_256(value.as_mut_ptr(), value.len(), buf.as_ptr(), buf.len());
sha3::sha3_256(value.as_mut_ptr(), value.len(), buf.as_ptr(), buf.len());
ProofOfWork {
mix_hash: mix_hash,
value: value,
@@ -265,18 +321,17 @@ fn hash_compute(light: &Light, full_size: usize, header_hash: &H256, nonce: u64
}
}
fn calculate_dag_item(node_index: u32, light: &Light) -> Node {
fn calculate_dag_item(node_index: u32, cache: &[Node]) -> Node {
unsafe {
let num_parent_nodes = light.cache.len();
let cache_nodes = &light.cache;
let init = cache_nodes.get_unchecked(node_index as usize % num_parent_nodes);
let num_parent_nodes = cache.len();
let init = cache.get_unchecked(node_index as usize % num_parent_nodes);
let mut ret = init.clone();
*ret.as_words_mut().get_unchecked_mut(0) ^= node_index;
sha3::sha3_512(ret.bytes.as_mut_ptr(), ret.bytes.len(), ret.bytes.as_ptr(), ret.bytes.len());
for i in 0..ETHASH_DATASET_PARENTS {
let parent_index = fnv_hash(node_index ^ i, *ret.as_words().get_unchecked(i as usize % NODE_WORDS)) % num_parent_nodes as u32;
let parent = cache_nodes.get_unchecked(parent_index as usize);
let parent = cache.get_unchecked(parent_index as usize);
for w in 0..NODE_WORDS {
*ret.as_words_mut().get_unchecked_mut(w) = fnv_hash(*ret.as_words().get_unchecked(w), *parent.as_words().get_unchecked(w));
}
@@ -287,7 +342,9 @@ fn calculate_dag_item(node_index: u32, light: &Light) -> Node {
}
fn light_new(block_number: u64) -> Light {
let seedhash = get_seedhash(block_number);
let seed_compute = SeedHashCompute::new();
let seedhash = seed_compute.get_seedhash(block_number);
let cache_size = get_cache_size(block_number);
if cache_size % NODE_BYTES != 0 {
@@ -308,7 +365,7 @@ fn light_new(block_number: u64) -> Light {
let idx = *nodes.get_unchecked_mut(i).as_words().get_unchecked(0) as usize % num_nodes;
let mut data = nodes.get_unchecked((num_nodes - 1 + i) % num_nodes).clone();
for w in 0..NODE_WORDS {
*data.as_words_mut().get_unchecked_mut(w) ^= *nodes.get_unchecked(idx).as_words().get_unchecked(w) ;
*data.as_words_mut().get_unchecked_mut(w) ^= *nodes.get_unchecked(idx).as_words().get_unchecked(w);
}
sha3_512(&data.bytes, &mut nodes.get_unchecked_mut(i).bytes);
}
@@ -318,10 +375,11 @@ fn light_new(block_number: u64) -> Light {
Light {
cache: nodes,
block_number: block_number,
seed_compute: Mutex::new(seed_compute),
}
}
static CHARS: &'static[u8] = b"0123456789abcdef";
static CHARS: &'static [u8] = b"0123456789abcdef";
fn to_hex(bytes: &[u8]) -> String {
let mut v = Vec::with_capacity(bytes.len() * 2);
for &byte in bytes.iter() {
@@ -329,9 +387,7 @@ fn to_hex(bytes: &[u8]) -> String {
v.push(CHARS[(byte & 0xf) as usize]);
}
unsafe {
String::from_utf8_unchecked(v)
}
unsafe { String::from_utf8_unchecked(v) }
}
#[test]
@@ -361,8 +417,8 @@ fn test_get_data_size() {
#[test]
fn test_difficulty_test() {
let hash = [0xf5, 0x7e, 0x6f, 0x3a, 0xcf, 0xc0, 0xdd, 0x4b, 0x5b, 0xf2, 0xbe, 0xe4, 0x0a, 0xb3, 0x35, 0x8a, 0xa6, 0x87, 0x73, 0xa8, 0xd0, 0x9f, 0x5e, 0x59, 0x5e, 0xab, 0x55, 0x94, 0x05, 0x52, 0x7d, 0x72];
let mix_hash = [0x1f, 0xff, 0x04, 0xce, 0xc9, 0x41, 0x73, 0xfd, 0x59, 0x1e, 0x3d, 0x89, 0x60, 0xce, 0x6b, 0xdf, 0x8b, 0x19, 0x71, 0x04, 0x8c, 0x71, 0xff, 0x93, 0x7b, 0xb2, 0xd3, 0x2a, 0x64, 0x31, 0xab, 0x6d ];
let hash = [0xf5, 0x7e, 0x6f, 0x3a, 0xcf, 0xc0, 0xdd, 0x4b, 0x5b, 0xf2, 0xbe, 0xe4, 0x0a, 0xb3, 0x35, 0x8a, 0xa6, 0x87, 0x73, 0xa8, 0xd0, 0x9f, 0x5e, 0x59, 0x5e, 0xab, 0x55, 0x94, 0x05, 0x52, 0x7d, 0x72];
let mix_hash = [0x1f, 0xff, 0x04, 0xce, 0xc9, 0x41, 0x73, 0xfd, 0x59, 0x1e, 0x3d, 0x89, 0x60, 0xce, 0x6b, 0xdf, 0x8b, 0x19, 0x71, 0x04, 0x8c, 0x71, 0xff, 0x93, 0x7b, 0xb2, 0xd3, 0x2a, 0x64, 0x31, 0xab, 0x6d];
let nonce = 0xd7b3ac70a301a249;
let boundary_good = [0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0x9b, 0x6c, 0x69, 0xbc, 0x2c, 0xe2, 0xa2, 0x4a, 0x8e, 0x95, 0x69, 0xef, 0xc7, 0xd7, 0x1b, 0x33, 0x35, 0xdf, 0x36, 0x8c, 0x9a, 0xe9, 0x7e, 0x53, 0x84];
assert_eq!(quick_get_difficulty(&hash, nonce, &mix_hash)[..], boundary_good[..]);
@@ -372,8 +428,8 @@ fn test_difficulty_test() {
#[test]
fn test_light_compute() {
let hash = [0xf5, 0x7e, 0x6f, 0x3a, 0xcf, 0xc0, 0xdd, 0x4b, 0x5b, 0xf2, 0xbe, 0xe4, 0x0a, 0xb3, 0x35, 0x8a, 0xa6, 0x87, 0x73, 0xa8, 0xd0, 0x9f, 0x5e, 0x59, 0x5e, 0xab, 0x55, 0x94, 0x05, 0x52, 0x7d, 0x72];
let mix_hash = [0x1f, 0xff, 0x04, 0xce, 0xc9, 0x41, 0x73, 0xfd, 0x59, 0x1e, 0x3d, 0x89, 0x60, 0xce, 0x6b, 0xdf, 0x8b, 0x19, 0x71, 0x04, 0x8c, 0x71, 0xff, 0x93, 0x7b, 0xb2, 0xd3, 0x2a, 0x64, 0x31, 0xab, 0x6d ];
let hash = [0xf5, 0x7e, 0x6f, 0x3a, 0xcf, 0xc0, 0xdd, 0x4b, 0x5b, 0xf2, 0xbe, 0xe4, 0x0a, 0xb3, 0x35, 0x8a, 0xa6, 0x87, 0x73, 0xa8, 0xd0, 0x9f, 0x5e, 0x59, 0x5e, 0xab, 0x55, 0x94, 0x05, 0x52, 0x7d, 0x72];
let mix_hash = [0x1f, 0xff, 0x04, 0xce, 0xc9, 0x41, 0x73, 0xfd, 0x59, 0x1e, 0x3d, 0x89, 0x60, 0xce, 0x6b, 0xdf, 0x8b, 0x19, 0x71, 0x04, 0x8c, 0x71, 0xff, 0x93, 0x7b, 0xb2, 0xd3, 0x2a, 0x64, 0x31, 0xab, 0x6d];
let boundary = [0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0x9b, 0x6c, 0x69, 0xbc, 0x2c, 0xe2, 0xa2, 0x4a, 0x8e, 0x95, 0x69, 0xef, 0xc7, 0xd7, 0x1b, 0x33, 0x35, 0xdf, 0x36, 0x8c, 0x9a, 0xe9, 0x7e, 0x53, 0x84];
let nonce = 0xd7b3ac70a301a249;
// difficulty = 0x085657254bd9u64;
@@ -382,3 +438,49 @@ fn test_light_compute() {
assert_eq!(result.mix_hash[..], mix_hash[..]);
assert_eq!(result.value[..], boundary[..]);
}
#[test]
fn test_seed_compute_once() {
let seed_compute = SeedHashCompute::new();
let hash = [241, 175, 44, 134, 39, 121, 245, 239, 228, 236, 43, 160, 195, 152, 46, 7, 199, 5, 253, 147, 241, 206, 98, 43, 3, 104, 17, 40, 192, 79, 106, 162];
assert_eq!(seed_compute.get_seedhash(486382), hash);
}
#[test]
fn test_seed_compute_zero() {
let seed_compute = SeedHashCompute::new();
assert_eq!(seed_compute.get_seedhash(0), [0u8; 32]);
}
#[test]
fn test_seed_compute_after_older() {
let seed_compute = SeedHashCompute::new();
// calculating an older value first shouldn't affect the result
let _ = seed_compute.get_seedhash(50000);
let hash = [241, 175, 44, 134, 39, 121, 245, 239, 228, 236, 43, 160, 195, 152, 46, 7, 199, 5, 253, 147, 241, 206, 98, 43, 3, 104, 17, 40, 192, 79, 106, 162];
assert_eq!(seed_compute.get_seedhash(486382), hash);
}
#[test]
fn test_seed_compute_after_newer() {
let seed_compute = SeedHashCompute::new();
// calculating an newer value first shouldn't affect the result
let _ = seed_compute.get_seedhash(972764);
let hash = [241, 175, 44, 134, 39, 121, 245, 239, 228, 236, 43, 160, 195, 152, 46, 7, 199, 5, 253, 147, 241, 206, 98, 43, 3, 104, 17, 40, 192, 79, 106, 162];
assert_eq!(seed_compute.get_seedhash(486382), hash);
}
#[test]
fn test_drop_old_data() {
let first = Light::new(0).to_file().unwrap();
let second = Light::new(ETHASH_EPOCH_LENGTH).to_file().unwrap();
assert!(fs::metadata(&first).is_ok());
let _ = Light::new(ETHASH_EPOCH_LENGTH * 2).to_file();
assert!(fs::metadata(&first).is_err());
assert!(fs::metadata(&second).is_ok());
let _ = Light::new(ETHASH_EPOCH_LENGTH * 3).to_file();
assert!(fs::metadata(&second).is_err());
}

View File

@@ -1,4 +1,4 @@
// Copyright 2015, 2016 Ethcore (UK) Ltd.
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
@@ -18,15 +18,18 @@
//! See https://github.com/ethereum/wiki/wiki/Ethash
extern crate primal;
extern crate sha3;
extern crate parking_lot;
#[macro_use]
extern crate log;
mod compute;
use std::mem;
use compute::Light;
pub use compute::{get_seedhash, quick_get_difficulty, H256, ProofOfWork, ETHASH_EPOCH_LENGTH};
pub use compute::{ETHASH_EPOCH_LENGTH, H256, ProofOfWork, SeedHashCompute, quick_get_difficulty, slow_get_seedhash};
use std::sync::{Arc, Mutex};
use std::sync::Arc;
use parking_lot::Mutex;
struct LightCache {
recent_epoch: Option<u64>,
@@ -61,22 +64,27 @@ impl EthashManager {
pub fn compute_light(&self, block_number: u64, header_hash: &H256, nonce: u64) -> ProofOfWork {
let epoch = block_number / ETHASH_EPOCH_LENGTH;
let light = {
let mut lights = self.cache.lock().unwrap();
let mut lights = self.cache.lock();
let light = match lights.recent_epoch.clone() {
Some(ref e) if *e == epoch => lights.recent.clone(),
_ => match lights.prev_epoch.clone() {
Some(e) if e == epoch => {
// swap
let t = lights.prev_epoch;
lights.prev_epoch = lights.recent_epoch;
lights.recent_epoch = t;
let t = lights.prev.clone();
lights.prev = lights.recent.clone();
lights.recent = t;
lights.recent.clone()
// don't swap if recent is newer.
if lights.recent_epoch > lights.prev_epoch {
None
} else {
// swap
let t = lights.prev_epoch;
lights.prev_epoch = lights.recent_epoch;
lights.recent_epoch = t;
let t = lights.prev.clone();
lights.prev = lights.recent.clone();
lights.recent = t;
lights.recent.clone()
}
}
_ => None,
}
},
};
match light {
None => {
@@ -95,7 +103,7 @@ impl EthashManager {
lights.prev = mem::replace(&mut lights.recent, Some(light.clone()));
light
}
Some(light) => light
Some(light) => light,
}
};
light.compute(header_hash, nonce)
@@ -108,12 +116,12 @@ fn test_lru() {
let hash = [0u8; 32];
ethash.compute_light(1, &hash, 1);
ethash.compute_light(50000, &hash, 1);
assert_eq!(ethash.cache.lock().unwrap().recent_epoch.unwrap(), 1);
assert_eq!(ethash.cache.lock().unwrap().prev_epoch.unwrap(), 0);
assert_eq!(ethash.cache.lock().recent_epoch.unwrap(), 1);
assert_eq!(ethash.cache.lock().prev_epoch.unwrap(), 0);
ethash.compute_light(1, &hash, 1);
assert_eq!(ethash.cache.lock().unwrap().recent_epoch.unwrap(), 0);
assert_eq!(ethash.cache.lock().unwrap().prev_epoch.unwrap(), 1);
assert_eq!(ethash.cache.lock().recent_epoch.unwrap(), 0);
assert_eq!(ethash.cache.lock().prev_epoch.unwrap(), 1);
ethash.compute_light(70000, &hash, 1);
assert_eq!(ethash.cache.lock().unwrap().recent_epoch.unwrap(), 2);
assert_eq!(ethash.cache.lock().unwrap().prev_epoch.unwrap(), 0);
assert_eq!(ethash.cache.lock().recent_epoch.unwrap(), 2);
assert_eq!(ethash.cache.lock().prev_epoch.unwrap(), 0);
}

View File

@@ -1,31 +1,65 @@
[package]
description = "Ethcore library"
homepage = "http://ethcore.io"
homepage = "http://parity.io"
license = "GPL-3.0"
name = "ethcore"
version = "1.1.0"
authors = ["Ethcore <admin@ethcore.io>"]
version = "1.6.0"
authors = ["Parity Technologies <admin@parity.io>"]
build = "build.rs"
[build-dependencies]
"ethcore-ipc-codegen" = { path = "../ipc/codegen" }
[dependencies]
log = "0.3"
env_logger = "0.3"
rustc-serialize = "0.3"
heapsize = "0.3"
rust-crypto = "0.2.34"
time = "0.1"
ethcore-util = { path = "../util" }
evmjit = { path = "../evmjit", optional = true }
ethash = { path = "../ethash" }
num_cpus = "0.2"
clippy = { version = "0.0.50", optional = true }
crossbeam = "0.1.5"
lazy_static = "0.1"
crossbeam = "0.2.9"
lazy_static = "0.2"
bloomchain = "0.1"
semver = "0.5"
bit-set = "0.4"
time = "0.1"
rand = "0.3"
byteorder = "1.0"
transient-hashmap = "0.1"
linked-hash-map = "0.3.0"
lru-cache = "0.1.0"
itertools = "0.5"
ethabi = "1.0"
evmjit = { path = "../evmjit", optional = true }
clippy = { version = "0.0.103", optional = true}
ethash = { path = "../ethash" }
ethcore-util = { path = "../util" }
ethcore-io = { path = "../util/io" }
ethcore-devtools = { path = "../devtools" }
ethjson = { path = "../json" }
ethcore-ipc = { path = "../ipc/rpc" }
ethstore = { path = "../ethstore" }
ethkey = { path = "../ethkey" }
ethcore-ipc-nano = { path = "../ipc/nano" }
rlp = { path = "../util/rlp" }
ethcore-stratum = { path = "../stratum" }
ethcore-bloom-journal = { path = "../util/bloom" }
hardware-wallet = { path = "../hw" }
stats = { path = "../util/stats" }
[dependencies.hyper]
git = "https://github.com/paritytech/hyper"
default-features = false
[features]
jit = ["evmjit"]
evm-debug = []
evm-debug = ["slow-blocks"]
evm-debug-tests = ["evm-debug"]
slow-blocks = [] # Use SLOW_TX_DURATION="50" (compile time!) to track transactions over 50ms
json-tests = []
test-heavy = []
dev = ["clippy"]
default = []
benches = []
ipc = []
ethkey-cli = ["ethkey/cli"]
ethstore-cli = ["ethstore/cli"]

24
ethcore/build.rs Normal file
View File

@@ -0,0 +1,24 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
extern crate ethcore_ipc_codegen;
fn main() {
ethcore_ipc_codegen::derive_binary("src/types/mod.rs.in").unwrap();
ethcore_ipc_codegen::derive_ipc_cond("src/client/traits.rs", cfg!(feature="ipc")).unwrap();
ethcore_ipc_codegen::derive_ipc_cond("src/snapshot/snapshot_service_trait.rs", cfg!(feature="ipc")).unwrap();
ethcore_ipc_codegen::derive_ipc_cond("src/client/chain_notify.rs", cfg!(feature="ipc")).unwrap();
}

30
ethcore/light/Cargo.toml Normal file
View File

@@ -0,0 +1,30 @@
[package]
description = "Parity LES primitives"
homepage = "http://parity.io"
license = "GPL-3.0"
name = "ethcore-light"
version = "1.6.0"
authors = ["Parity Technologies <admin@parity.io>"]
build = "build.rs"
[build-dependencies]
"ethcore-ipc-codegen" = { path = "../../ipc/codegen", optional = true }
[dependencies]
log = "0.3"
ethcore = { path = ".."}
ethcore-util = { path = "../../util" }
ethcore-network = { path = "../../util/network" }
ethcore-io = { path = "../../util/io" }
ethcore-ipc = { path = "../../ipc/rpc", optional = true }
rlp = { path = "../../util/rlp" }
time = "0.1"
smallvec = "0.3.1"
futures = "0.1"
rand = "0.3"
itertools = "0.5"
stats = { path = "../../util/stats" }
[features]
default = []
ipc = ["ethcore-ipc", "ethcore-ipc-codegen"]

27
ethcore/light/build.rs Normal file
View File

@@ -0,0 +1,27 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
#[cfg(feature = "ipc")]
extern crate ethcore_ipc_codegen;
#[cfg(feature = "ipc")]
fn main() {
ethcore_ipc_codegen::derive_binary("src/types/mod.rs.in").unwrap();
ethcore_ipc_codegen::derive_ipc_cond("src/provider.rs", true).unwrap();
}
#[cfg(not(feature = "ipc"))]
fn main() { }

175
ethcore/light/src/cache.rs Normal file
View File

@@ -0,0 +1,175 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Cache for data fetched from the network.
//!
//! Stores ancient block headers, bodies, receipts, and total difficulties.
//! Furthermore, stores a "gas price corpus" of relative recency, which is a sorted
//! vector of all gas prices from a recent range of blocks.
use ethcore::encoded;
use ethcore::header::BlockNumber;
use ethcore::receipt::Receipt;
use stats::Corpus;
use time::{SteadyTime, Duration};
use util::{U256, H256};
use util::cache::MemoryLruCache;
/// Configuration for how much data to cache.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct CacheSizes {
/// Maximum size, in bytes, of cached headers.
pub headers: usize,
/// Maximum size, in bytes, of cached canonical hashes.
pub canon_hashes: usize,
/// Maximum size, in bytes, of cached block bodies.
pub bodies: usize,
/// Maximum size, in bytes, of cached block receipts.
pub receipts: usize,
/// Maximum size, in bytes, of cached chain score for the block.
pub chain_score: usize,
}
impl Default for CacheSizes {
fn default() -> Self {
const MB: usize = 1024 * 1024;
CacheSizes {
headers: 10 * MB,
canon_hashes: 3 * MB,
bodies: 20 * MB,
receipts: 10 * MB,
chain_score: 7 * MB,
}
}
}
/// The light client data cache.
///
/// Note that almost all getter methods take `&mut self` due to the necessity to update
/// the underlying LRU-caches on read.
pub struct Cache {
headers: MemoryLruCache<H256, encoded::Header>,
canon_hashes: MemoryLruCache<BlockNumber, H256>,
bodies: MemoryLruCache<H256, encoded::Body>,
receipts: MemoryLruCache<H256, Vec<Receipt>>,
chain_score: MemoryLruCache<H256, U256>,
corpus: Option<(Corpus<U256>, SteadyTime)>,
corpus_expiration: Duration,
}
impl Cache {
/// Create a new data cache with the given sizes and gas price corpus expiration time.
pub fn new(sizes: CacheSizes, corpus_expiration: Duration) -> Self {
Cache {
headers: MemoryLruCache::new(sizes.headers),
canon_hashes: MemoryLruCache::new(sizes.canon_hashes),
bodies: MemoryLruCache::new(sizes.bodies),
receipts: MemoryLruCache::new(sizes.receipts),
chain_score: MemoryLruCache::new(sizes.chain_score),
corpus: None,
corpus_expiration: corpus_expiration,
}
}
/// Query header by hash.
pub fn block_header(&mut self, hash: &H256) -> Option<encoded::Header> {
self.headers.get_mut(hash).map(|x| x.clone())
}
/// Query hash by number.
pub fn block_hash(&mut self, num: &BlockNumber) -> Option<H256> {
self.canon_hashes.get_mut(num).map(|x| x.clone())
}
/// Query block body by block hash.
pub fn block_body(&mut self, hash: &H256) -> Option<encoded::Body> {
self.bodies.get_mut(hash).map(|x| x.clone())
}
/// Query block receipts by block hash.
pub fn block_receipts(&mut self, hash: &H256) -> Option<Vec<Receipt>> {
self.receipts.get_mut(hash).map(|x| x.clone())
}
/// Query chain score by block hash.
pub fn chain_score(&mut self, hash: &H256) -> Option<U256> {
self.chain_score.get_mut(hash).map(|x| x.clone())
}
/// Cache the given header.
pub fn insert_block_header(&mut self, hash: H256, hdr: encoded::Header) {
self.headers.insert(hash, hdr);
}
/// Cache the given canonical block hash.
pub fn insert_block_hash(&mut self, num: BlockNumber, hash: H256) {
self.canon_hashes.insert(num, hash);
}
/// Cache the given block body.
pub fn insert_block_body(&mut self, hash: H256, body: encoded::Body) {
self.bodies.insert(hash, body);
}
/// Cache the given block receipts.
pub fn insert_block_receipts(&mut self, hash: H256, receipts: Vec<Receipt>) {
self.receipts.insert(hash, receipts);
}
/// Cache the given chain scoring.
pub fn insert_chain_score(&mut self, hash: H256, score: U256) {
self.chain_score.insert(hash, score);
}
/// Get gas price corpus, if recent enough.
pub fn gas_price_corpus(&self) -> Option<Corpus<U256>> {
let now = SteadyTime::now();
self.corpus.as_ref().and_then(|&(ref corpus, ref tm)| {
if *tm + self.corpus_expiration >= now {
Some(corpus.clone())
} else {
None
}
})
}
/// Set the cached gas price corpus.
pub fn set_gas_price_corpus(&mut self, corpus: Corpus<U256>) {
self.corpus = Some((corpus, SteadyTime::now()))
}
}
#[cfg(test)]
mod tests {
use super::Cache;
use time::Duration;
#[test]
fn corpus_inaccessible() {
let mut cache = Cache::new(Default::default(), Duration::hours(5));
cache.set_gas_price_corpus(vec![].into());
assert_eq!(cache.gas_price_corpus(), Some(vec![].into()));
{
let corpus_time = &mut cache.corpus.as_mut().unwrap().1;
*corpus_time = *corpus_time - Duration::hours(6);
}
assert!(cache.gas_price_corpus().is_none());
}
}

204
ethcore/light/src/cht.rs Normal file
View File

@@ -0,0 +1,204 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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.
//! Canonical hash trie definitions and helper functions.
//!
//! Each CHT is a trie mapping block numbers to canonical hashes and total difficulty.
//! One is generated for every `SIZE` blocks, allowing us to discard those blocks in
//! favor the the trie root. When the "ancient" blocks need to be accessed, we simply
//! request an inclusion proof of a specific block number against the trie with the
//! root has. A correct proof implies that the claimed block is identical to the one
//! we discarded.
use ethcore::ids::BlockId;
use util::{Bytes, H256, U256, HashDB, MemoryDB};
use util::trie::{self, TrieMut, TrieDBMut, Trie, TrieDB, Recorder};
use rlp::{Stream, RlpStream, UntrustedRlp, View};
// encode a key.
macro_rules! key {
($num: expr) => { ::rlp::encode(&$num) }
}
macro_rules! val {
($hash: expr, $td: expr) => {{
let mut stream = RlpStream::new_list(2);
stream.append(&$hash).append(&$td);
stream.drain()
}}
}
/// The size of each CHT.
pub const SIZE: u64 = 2048;
/// A canonical hash trie. This is generic over any database it can query.
/// See module docs for more details.
#[derive(Debug, Clone)]
pub struct CHT<DB: HashDB> {
db: DB,
root: H256, // the root of this CHT.
number: u64,
}
impl<DB: HashDB> CHT<DB> {
/// Query the root of the CHT.
pub fn root(&self) -> H256 { self.root }
/// Query the number of the CHT.
pub fn number(&self) -> u64 { self.number }
/// Generate an inclusion proof for the entry at a specific block.
/// Nodes before level `from_level` will be omitted.
/// Returns an error on an incomplete trie, and `Ok(None)` on an unprovable request.
pub fn prove(&self, num: u64, from_level: u32) -> trie::Result<Option<Vec<Bytes>>> {
if block_to_cht_number(num) != Some(self.number) { return Ok(None) }
let mut recorder = Recorder::with_depth(from_level);
let t = TrieDB::new(&self.db, &self.root)?;
t.get_with(&key!(num), &mut recorder)?;
Ok(Some(recorder.drain().into_iter().map(|x| x.data).collect()))
}
}
/// Block information necessary to build a CHT.
pub struct BlockInfo {
/// The block's hash.
pub hash: H256,
/// The block's parent's hash.
pub parent_hash: H256,
/// The block's total difficulty.
pub total_difficulty: U256,
}
/// Build an in-memory CHT from a closure which provides necessary information
/// about blocks. If the fetcher ever fails to provide the info, the CHT
/// will not be generated.
pub fn build<F>(cht_num: u64, mut fetcher: F) -> Option<CHT<MemoryDB>>
where F: FnMut(BlockId) -> Option<BlockInfo>
{
let mut db = MemoryDB::new();
// start from the last block by number and work backwards.
let last_num = start_number(cht_num + 1) - 1;
let mut id = BlockId::Number(last_num);
let mut root = H256::default();
{
let mut t = TrieDBMut::new(&mut db, &mut root);
for blk_num in (0..SIZE).map(|n| last_num - n) {
let info = match fetcher(id) {
Some(info) => info,
None => return None,
};
id = BlockId::Hash(info.parent_hash);
t.insert(&key!(blk_num), &val!(info.hash, info.total_difficulty))
.expect("fresh in-memory database is infallible; qed");
}
}
Some(CHT {
db: db,
root: root,
number: cht_num,
})
}
/// Compute a CHT root from an iterator of (hash, td) pairs. Fails if shorter than
/// SIZE items. The items are assumed to proceed sequentially from `start_number(cht_num)`.
/// Discards the trie's nodes.
pub fn compute_root<I>(cht_num: u64, iterable: I) -> Option<H256>
where I: IntoIterator<Item=(H256, U256)>
{
let mut v = Vec::with_capacity(SIZE as usize);
let start_num = start_number(cht_num) as usize;
for (i, (h, td)) in iterable.into_iter().take(SIZE as usize).enumerate() {
v.push((key!(i + start_num).to_vec(), val!(h, td).to_vec()))
}
if v.len() == SIZE as usize {
Some(::util::triehash::trie_root(v))
} else {
None
}
}
/// Check a proof for a CHT.
/// Given a set of a trie nodes, a number to query, and a trie root,
/// verify the given trie branch and extract the canonical hash and total difficulty.
// TODO: better support for partially-checked queries.
pub fn check_proof(proof: &[Bytes], num: u64, root: H256) -> Option<(H256, U256)> {
let mut db = MemoryDB::new();
for node in proof { db.insert(&node[..]); }
let res = match TrieDB::new(&db, &root) {
Err(_) => return None,
Ok(trie) => trie.get_with(&key!(num), |val: &[u8]| {
let rlp = UntrustedRlp::new(val);
rlp.val_at::<H256>(0)
.and_then(|h| rlp.val_at::<U256>(1).map(|td| (h, td)))
.ok()
})
};
match res {
Ok(Some(Some((hash, td)))) => Some((hash, td)),
_ => None,
}
}
/// Convert a block number to a CHT number.
/// Returns `None` for `block_num` == 0, `Some` otherwise.
pub fn block_to_cht_number(block_num: u64) -> Option<u64> {
match block_num {
0 => None,
n => Some((n - 1) / SIZE),
}
}
/// Get the starting block of a given CHT.
/// CHT 0 includes block 1...SIZE,
/// CHT 1 includes block SIZE + 1 ... 2*SIZE
/// More generally: CHT N includes block (1 + N*SIZE)...((N+1)*SIZE).
/// This is because the genesis hash is assumed to be known
/// and including it would be redundant.
pub fn start_number(cht_num: u64) -> u64 {
(cht_num * SIZE) + 1
}
#[cfg(test)]
mod tests {
#[test]
fn size_is_lt_usize() {
// to ensure safe casting on the target platform.
assert!(::cht::SIZE < usize::max_value() as u64)
}
#[test]
fn block_to_cht_number() {
assert!(::cht::block_to_cht_number(0).is_none());
assert_eq!(::cht::block_to_cht_number(1).unwrap(), 0);
assert_eq!(::cht::block_to_cht_number(::cht::SIZE + 1).unwrap(), 1);
assert_eq!(::cht::block_to_cht_number(::cht::SIZE).unwrap(), 0);
}
#[test]
fn start_number() {
assert_eq!(::cht::start_number(0), 1);
assert_eq!(::cht::start_number(1), ::cht::SIZE + 1);
assert_eq!(::cht::start_number(2), ::cht::SIZE * 2 + 1);
}
}

View File

@@ -0,0 +1,443 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Light client header chain.
//!
//! Unlike a full node's `BlockChain` this doesn't store much in the database.
//! It stores candidates for the last 2048-4096 blocks as well as CHT roots for
//! historical blocks all the way to the genesis.
//!
//! This is separate from the `BlockChain` for two reasons:
//! - It stores only headers (and a pruned subset of them)
//! - To allow for flexibility in the database layout once that's incorporated.
// TODO: use DB instead of memory. DB Layout: just the contents of `candidates`/`headers`
//
use std::collections::{BTreeMap, HashMap};
use cht;
use ethcore::block_status::BlockStatus;
use ethcore::error::BlockError;
use ethcore::encoded;
use ethcore::header::Header;
use ethcore::ids::BlockId;
use util::{H256, U256, HeapSizeOf, Mutex, RwLock};
use smallvec::SmallVec;
/// Store at least this many candidate headers at all times.
/// Also functions as the delay for computing CHTs as they aren't
/// relevant to any blocks we've got in memory.
const HISTORY: u64 = 2048;
/// Information about a block.
#[derive(Debug, Clone)]
pub struct BlockDescriptor {
/// The block's hash
pub hash: H256,
/// The block's number
pub number: u64,
/// The block's total difficulty.
pub total_difficulty: U256,
}
// candidate block description.
struct Candidate {
hash: H256,
parent_hash: H256,
total_difficulty: U256,
}
struct Entry {
candidates: SmallVec<[Candidate; 3]>, // 3 arbitrarily chosen
canonical_hash: H256,
}
impl HeapSizeOf for Entry {
fn heap_size_of_children(&self) -> usize {
match self.candidates.spilled() {
false => 0,
true => self.candidates.capacity() * ::std::mem::size_of::<Candidate>(),
}
}
}
/// Header chain. See module docs for more details.
pub struct HeaderChain {
genesis_header: encoded::Header, // special-case the genesis.
candidates: RwLock<BTreeMap<u64, Entry>>,
headers: RwLock<HashMap<H256, encoded::Header>>,
best_block: RwLock<BlockDescriptor>,
cht_roots: Mutex<Vec<H256>>,
}
impl HeaderChain {
/// Create a new header chain given this genesis block.
pub fn new(genesis: &[u8]) -> Self {
use ethcore::views::HeaderView;
let g_view = HeaderView::new(genesis);
HeaderChain {
genesis_header: encoded::Header::new(genesis.to_owned()),
best_block: RwLock::new(BlockDescriptor {
hash: g_view.hash(),
number: 0,
total_difficulty: g_view.difficulty(),
}),
candidates: RwLock::new(BTreeMap::new()),
headers: RwLock::new(HashMap::new()),
cht_roots: Mutex::new(Vec::new()),
}
}
/// Insert a pre-verified header.
///
/// This blindly trusts that the data given to it is sensible.
pub fn insert(&self, header: Header) -> Result<(), BlockError> {
let hash = header.hash();
let number = header.number();
let parent_hash = *header.parent_hash();
// hold candidates the whole time to guard import order.
let mut candidates = self.candidates.write();
// find parent details.
let parent_td =
if number == 1 {
self.genesis_header.difficulty()
} else {
candidates.get(&(number - 1))
.and_then(|entry| entry.candidates.iter().find(|c| c.hash == parent_hash))
.map(|c| c.total_difficulty)
.ok_or_else(|| BlockError::UnknownParent(parent_hash))?
};
let total_difficulty = parent_td + *header.difficulty();
// insert headers and candidates entries.
candidates.entry(number).or_insert_with(|| Entry { candidates: SmallVec::new(), canonical_hash: hash })
.candidates.push(Candidate {
hash: hash,
parent_hash: parent_hash,
total_difficulty: total_difficulty,
});
let raw = ::rlp::encode(&header).to_vec();
self.headers.write().insert(hash, encoded::Header::new(raw));
// reorganize ancestors so canonical entries are first in their
// respective candidates vectors.
if self.best_block.read().total_difficulty < total_difficulty {
let mut canon_hash = hash;
for (&height, entry) in candidates.iter_mut().rev().skip_while(|&(height, _)| *height > number) {
if height != number && entry.canonical_hash == canon_hash { break; }
trace!(target: "chain", "Setting new canonical block {} for block height {}",
canon_hash, height);
let canon_pos = entry.candidates.iter().position(|x| x.hash == canon_hash)
.expect("blocks are only inserted if parent is present; or this is the block we just added; qed");
// move the new canonical entry to the front and set the
// era's canonical hash.
entry.candidates.swap(0, canon_pos);
entry.canonical_hash = canon_hash;
// what about reorgs > cht::SIZE + HISTORY?
// resetting to the last block of a given CHT should be possible.
canon_hash = entry.candidates[0].parent_hash;
}
trace!(target: "chain", "New best block: ({}, {}), TD {}", number, hash, total_difficulty);
*self.best_block.write() = BlockDescriptor {
hash: hash,
number: number,
total_difficulty: total_difficulty,
};
// produce next CHT root if it's time.
let earliest_era = *candidates.keys().next().expect("at least one era just created; qed");
if earliest_era + HISTORY + cht::SIZE <= number {
let cht_num = cht::block_to_cht_number(earliest_era)
.expect("fails only for number == 0; genesis never imported; qed");
debug_assert_eq!(cht_num as usize, self.cht_roots.lock().len());
let mut headers = self.headers.write();
let cht_root = {
let mut i = earliest_era;
// iterable function which removes the candidates as it goes
// along. this will only be called until the CHT is complete.
let iter = || {
let era_entry = candidates.remove(&i)
.expect("all eras are sequential with no gaps; qed");
i += 1;
for ancient in &era_entry.candidates {
headers.remove(&ancient.hash);
}
let canon = &era_entry.candidates[0];
(canon.hash, canon.total_difficulty)
};
cht::compute_root(cht_num, ::itertools::repeat_call(iter))
.expect("fails only when too few items; this is checked; qed")
};
debug!(target: "chain", "Produced CHT {} root: {:?}", cht_num, cht_root);
self.cht_roots.lock().push(cht_root);
}
}
Ok(())
}
/// Get a block header. In the case of query by number, only canonical blocks
/// will be returned.
pub fn block_header(&self, id: BlockId) -> Option<encoded::Header> {
match id {
BlockId::Earliest | BlockId::Number(0) => Some(self.genesis_header.clone()),
BlockId::Hash(hash) => self.headers.read().get(&hash).cloned(),
BlockId::Number(num) => {
if self.best_block.read().number < num { return None }
self.candidates.read().get(&num).map(|entry| entry.canonical_hash)
.and_then(|hash| self.headers.read().get(&hash).cloned())
}
BlockId::Latest | BlockId::Pending => {
let hash = {
let best = self.best_block.read();
if best.number == 0 {
return Some(self.genesis_header.clone())
}
best.hash
};
self.headers.read().get(&hash).cloned()
}
}
}
/// Get the best block's header.
pub fn best_header(&self) -> encoded::Header {
self.block_header(BlockId::Latest).expect("Header for best block always stored; qed")
}
/// Get an iterator over a block and its ancestry.
pub fn ancestry_iter(&self, start: BlockId) -> AncestryIter {
AncestryIter {
next: self.block_header(start),
chain: self,
}
}
/// Get the nth CHT root, if it's been computed.
///
/// CHT root 0 is from block `1..2048`.
/// CHT root 1 is from block `2049..4096`
/// and so on.
///
/// This is because it's assumed that the genesis hash is known,
/// so including it within a CHT would be redundant.
pub fn cht_root(&self, n: usize) -> Option<H256> {
self.cht_roots.lock().get(n).map(|h| h.clone())
}
/// Get the genesis hash.
pub fn genesis_hash(&self) -> H256 {
::util::Hashable::sha3(&self.genesis_header)
}
/// Get the best block's data.
pub fn best_block(&self) -> BlockDescriptor {
self.best_block.read().clone()
}
/// If there is a gap between the genesis and the rest
/// of the stored blocks, return the first post-gap block.
pub fn first_block(&self) -> Option<BlockDescriptor> {
let candidates = self.candidates.read();
match candidates.iter().next() {
None | Some((&1, _)) => None,
Some((&height, entry)) => Some(BlockDescriptor {
number: height,
hash: entry.canonical_hash,
total_difficulty: entry.candidates.iter().find(|x| x.hash == entry.canonical_hash)
.expect("entry always stores canonical candidate; qed").total_difficulty,
})
}
}
/// Get block status.
pub fn status(&self, hash: &H256) -> BlockStatus {
match self.headers.read().contains_key(hash) {
true => BlockStatus::InChain,
false => BlockStatus::Unknown,
}
}
}
impl HeapSizeOf for HeaderChain {
fn heap_size_of_children(&self) -> usize {
self.candidates.read().heap_size_of_children() +
self.headers.read().heap_size_of_children() +
self.cht_roots.lock().heap_size_of_children()
}
}
/// Iterator over a block's ancestry.
pub struct AncestryIter<'a> {
next: Option<encoded::Header>,
chain: &'a HeaderChain,
}
impl<'a> Iterator for AncestryIter<'a> {
type Item = encoded::Header;
fn next(&mut self) -> Option<encoded::Header> {
let next = self.next.take();
if let Some(p_hash) = next.as_ref().map(|hdr| hdr.parent_hash()) {
self.next = self.chain.block_header(BlockId::Hash(p_hash));
}
next
}
}
#[cfg(test)]
mod tests {
use super::HeaderChain;
use ethcore::ids::BlockId;
use ethcore::header::Header;
use ethcore::spec::Spec;
#[test]
fn basic_chain() {
let spec = Spec::new_test();
let genesis_header = spec.genesis_header();
let chain = HeaderChain::new(&::rlp::encode(&genesis_header));
let mut parent_hash = genesis_header.hash();
let mut rolling_timestamp = genesis_header.timestamp();
for i in 1..10000 {
let mut header = Header::new();
header.set_parent_hash(parent_hash);
header.set_number(i);
header.set_timestamp(rolling_timestamp);
header.set_difficulty(*genesis_header.difficulty() * i.into());
parent_hash = header.hash();
chain.insert(header).unwrap();
rolling_timestamp += 10;
}
assert!(chain.block_header(BlockId::Number(10)).is_none());
assert!(chain.block_header(BlockId::Number(9000)).is_some());
assert!(chain.cht_root(2).is_some());
assert!(chain.cht_root(3).is_none());
}
#[test]
fn reorganize() {
let spec = Spec::new_test();
let genesis_header = spec.genesis_header();
let chain = HeaderChain::new(&::rlp::encode(&genesis_header));
let mut parent_hash = genesis_header.hash();
let mut rolling_timestamp = genesis_header.timestamp();
for i in 1..6 {
let mut header = Header::new();
header.set_parent_hash(parent_hash);
header.set_number(i);
header.set_timestamp(rolling_timestamp);
header.set_difficulty(*genesis_header.difficulty() * i.into());
parent_hash = header.hash();
chain.insert(header).unwrap();
rolling_timestamp += 10;
}
{
let mut rolling_timestamp = rolling_timestamp;
let mut parent_hash = parent_hash;
for i in 6..16 {
let mut header = Header::new();
header.set_parent_hash(parent_hash);
header.set_number(i);
header.set_timestamp(rolling_timestamp);
header.set_difficulty(*genesis_header.difficulty() * i.into());
parent_hash = header.hash();
chain.insert(header).unwrap();
rolling_timestamp += 10;
}
}
assert_eq!(chain.best_block().number, 15);
{
let mut rolling_timestamp = rolling_timestamp;
let mut parent_hash = parent_hash;
// import a shorter chain which has better TD.
for i in 6..13 {
let mut header = Header::new();
header.set_parent_hash(parent_hash);
header.set_number(i);
header.set_timestamp(rolling_timestamp);
header.set_difficulty(*genesis_header.difficulty() * (i * i).into());
parent_hash = header.hash();
chain.insert(header).unwrap();
rolling_timestamp += 11;
}
}
let (mut num, mut canon_hash) = (chain.best_block().number, chain.best_block().hash);
assert_eq!(num, 12);
while num > 0 {
let header = chain.block_header(BlockId::Number(num)).unwrap();
assert_eq!(header.hash(), canon_hash);
canon_hash = header.parent_hash();
num -= 1;
}
}
#[test]
fn earliest_is_latest() {
let spec = Spec::new_test();
let genesis_header = spec.genesis_header();
let chain = HeaderChain::new(&::rlp::encode(&genesis_header));
assert!(chain.block_header(BlockId::Earliest).is_some());
assert!(chain.block_header(BlockId::Latest).is_some());
assert!(chain.block_header(BlockId::Pending).is_some());
}
}

View File

@@ -0,0 +1,350 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Light client implementation. Stores data from light sync
use std::sync::Arc;
use ethcore::block_import_error::BlockImportError;
use ethcore::block_status::BlockStatus;
use ethcore::client::{ClientReport, EnvInfo};
use ethcore::engines::Engine;
use ethcore::ids::BlockId;
use ethcore::header::Header;
use ethcore::verification::queue::{self, HeaderQueue};
use ethcore::blockchain_info::BlockChainInfo;
use ethcore::spec::Spec;
use ethcore::service::ClientIoMessage;
use ethcore::encoded;
use io::IoChannel;
use util::{Bytes, H256, Mutex, RwLock};
use self::header_chain::{AncestryIter, HeaderChain};
pub use self::service::Service;
mod header_chain;
mod service;
/// Configuration for the light client.
#[derive(Debug, Default, Clone)]
pub struct Config {
/// Verification queue config.
pub queue: queue::Config,
}
/// Trait for interacting with the header chain abstractly.
pub trait LightChainClient: Send + Sync {
/// Get chain info.
fn chain_info(&self) -> BlockChainInfo;
/// Queue header to be verified. Required that all headers queued have their
/// parent queued prior.
fn queue_header(&self, header: Header) -> Result<H256, BlockImportError>;
/// Attempt to get block header by block id.
fn block_header(&self, id: BlockId) -> Option<encoded::Header>;
/// Get the best block header.
fn best_block_header(&self) -> encoded::Header;
/// Get an iterator over a block and its ancestry.
fn ancestry_iter<'a>(&'a self, start: BlockId) -> Box<Iterator<Item=encoded::Header> + 'a>;
/// Get the signing network ID.
fn signing_network_id(&self) -> Option<u64>;
/// Query whether a block is known.
fn is_known(&self, hash: &H256) -> bool;
/// Clear the queue.
fn clear_queue(&self);
/// Flush the queue.
fn flush_queue(&self);
/// Get queue info.
fn queue_info(&self) -> queue::QueueInfo;
/// Get the `i`th CHT root.
fn cht_root(&self, i: usize) -> Option<H256>;
}
/// Something which can be treated as a `LightChainClient`.
pub trait AsLightClient {
/// The kind of light client this can be treated as.
type Client: LightChainClient;
/// Access the underlying light client.
fn as_light_client(&self) -> &Self::Client;
}
impl<T: LightChainClient> AsLightClient for T {
type Client = Self;
fn as_light_client(&self) -> &Self { self }
}
/// Light client implementation.
pub struct Client {
queue: HeaderQueue,
engine: Arc<Engine>,
chain: HeaderChain,
report: RwLock<ClientReport>,
import_lock: Mutex<()>,
}
impl Client {
/// Create a new `Client`.
pub fn new(config: Config, spec: &Spec, io_channel: IoChannel<ClientIoMessage>) -> Self {
Client {
queue: HeaderQueue::new(config.queue, spec.engine.clone(), io_channel, true),
engine: spec.engine.clone(),
chain: HeaderChain::new(&::rlp::encode(&spec.genesis_header())),
report: RwLock::new(ClientReport::default()),
import_lock: Mutex::new(()),
}
}
/// Import a header to the queue for additional verification.
pub fn import_header(&self, header: Header) -> Result<H256, BlockImportError> {
self.queue.import(header).map_err(Into::into)
}
/// Inquire about the status of a given header.
pub fn status(&self, hash: &H256) -> BlockStatus {
match self.queue.status(hash) {
queue::Status::Unknown => self.chain.status(hash),
other => other.into(),
}
}
/// Get the chain info.
pub fn chain_info(&self) -> BlockChainInfo {
let best_hdr = self.chain.best_header();
let best_td = self.chain.best_block().total_difficulty;
let first_block = self.chain.first_block();
let genesis_hash = self.chain.genesis_hash();
BlockChainInfo {
total_difficulty: best_td,
pending_total_difficulty: best_td + self.queue.total_difficulty(),
genesis_hash: genesis_hash,
best_block_hash: best_hdr.hash(),
best_block_number: best_hdr.number(),
best_block_timestamp: best_hdr.timestamp(),
ancient_block_hash: if first_block.is_some() { Some(genesis_hash) } else { None },
ancient_block_number: if first_block.is_some() { Some(0) } else { None },
first_block_hash: first_block.as_ref().map(|first| first.hash),
first_block_number: first_block.as_ref().map(|first| first.number),
}
}
/// Get the header queue info.
pub fn queue_info(&self) -> queue::QueueInfo {
self.queue.queue_info()
}
/// Get a block header by Id.
pub fn block_header(&self, id: BlockId) -> Option<encoded::Header> {
self.chain.block_header(id)
}
/// Get the best block header.
pub fn best_block_header(&self) -> encoded::Header {
self.chain.best_header()
}
/// Get an iterator over a block and its ancestry.
pub fn ancestry_iter(&self, start: BlockId) -> AncestryIter {
self.chain.ancestry_iter(start)
}
/// Get the signing network id.
pub fn signing_network_id(&self) -> Option<u64> {
self.engine.signing_network_id(&self.latest_env_info())
}
/// Flush the header queue.
pub fn flush_queue(&self) {
self.queue.flush()
}
/// Get the `i`th CHT root.
pub fn cht_root(&self, i: usize) -> Option<H256> {
self.chain.cht_root(i)
}
/// Import a set of pre-verified headers from the queue.
pub fn import_verified(&self) {
const MAX: usize = 256;
let _lock = self.import_lock.lock();
let mut bad = Vec::new();
let mut good = Vec::new();
for verified_header in self.queue.drain(MAX) {
let (num, hash) = (verified_header.number(), verified_header.hash());
match self.chain.insert(verified_header) {
Ok(()) => {
good.push(hash);
self.report.write().blocks_imported += 1;
}
Err(e) => {
debug!(target: "client", "Error importing header {:?}: {}", (num, hash), e);
bad.push(hash);
}
}
}
self.queue.mark_as_bad(&bad);
self.queue.mark_as_good(&good);
}
/// Get a report about blocks imported.
pub fn report(&self) -> ClientReport {
::std::mem::replace(&mut *self.report.write(), ClientReport::default())
}
/// Get blockchain mem usage in bytes.
pub fn chain_mem_used(&self) -> usize {
use util::HeapSizeOf;
self.chain.heap_size_of_children()
}
/// Get a handle to the verification engine.
pub fn engine(&self) -> &Engine {
&*self.engine
}
fn latest_env_info(&self) -> EnvInfo {
let header = self.best_block_header();
EnvInfo {
number: header.number(),
author: header.author(),
timestamp: header.timestamp(),
difficulty: header.difficulty(),
last_hashes: self.build_last_hashes(header.hash()),
gas_used: Default::default(),
gas_limit: header.gas_limit(),
}
}
fn build_last_hashes(&self, mut parent_hash: H256) -> Arc<Vec<H256>> {
let mut v = Vec::with_capacity(256);
for _ in 0..255 {
v.push(parent_hash);
match self.block_header(BlockId::Hash(parent_hash)) {
Some(header) => parent_hash = header.hash(),
None => break,
}
}
Arc::new(v)
}
}
impl LightChainClient for Client {
fn chain_info(&self) -> BlockChainInfo { Client::chain_info(self) }
fn queue_header(&self, header: Header) -> Result<H256, BlockImportError> {
self.import_header(header)
}
fn block_header(&self, id: BlockId) -> Option<encoded::Header> {
Client::block_header(self, id)
}
fn best_block_header(&self) -> encoded::Header {
Client::best_block_header(self)
}
fn ancestry_iter<'a>(&'a self, start: BlockId) -> Box<Iterator<Item=encoded::Header> + 'a> {
Box::new(Client::ancestry_iter(self, start))
}
fn signing_network_id(&self) -> Option<u64> {
Client::signing_network_id(self)
}
fn is_known(&self, hash: &H256) -> bool {
self.status(hash) == BlockStatus::InChain
}
fn clear_queue(&self) {
self.queue.clear()
}
fn flush_queue(&self) {
Client::flush_queue(self);
}
fn queue_info(&self) -> queue::QueueInfo {
self.queue.queue_info()
}
fn cht_root(&self, i: usize) -> Option<H256> {
Client::cht_root(self, i)
}
}
// dummy implementation, should be removed when a `TestClient` is added.
impl ::provider::Provider for Client {
fn chain_info(&self) -> BlockChainInfo {
Client::chain_info(self)
}
fn reorg_depth(&self, _a: &H256, _b: &H256) -> Option<u64> {
None
}
fn earliest_state(&self) -> Option<u64> {
None
}
fn block_header(&self, id: BlockId) -> Option<encoded::Header> {
Client::block_header(self, id)
}
fn block_body(&self, _id: BlockId) -> Option<encoded::Body> {
None
}
fn block_receipts(&self, _hash: &H256) -> Option<Bytes> {
None
}
fn state_proof(&self, _req: ::request::StateProof) -> Vec<Bytes> {
Vec::new()
}
fn contract_code(&self, _req: ::request::ContractCode) -> Bytes {
Vec::new()
}
fn header_proof(&self, _req: ::request::HeaderProof) -> Option<(encoded::Header, Vec<Bytes>)> {
None
}
fn ready_transactions(&self) -> Vec<::ethcore::transaction::PendingTransaction> {
Vec::new()
}
}

View File

@@ -0,0 +1,73 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Minimal IO service for light client.
//! Just handles block import messages and passes them to the client.
use std::sync::Arc;
use ethcore::service::ClientIoMessage;
use ethcore::spec::Spec;
use io::{IoContext, IoError, IoHandler, IoService};
use super::{Client, Config as ClientConfig};
/// Light client service.
pub struct Service {
client: Arc<Client>,
_io_service: IoService<ClientIoMessage>,
}
impl Service {
/// Start the service: initialize I/O workers and client itself.
pub fn start(config: ClientConfig, spec: &Spec) -> Result<Self, IoError> {
let io_service = try!(IoService::<ClientIoMessage>::start());
let client = Arc::new(Client::new(config, spec, io_service.channel()));
try!(io_service.register_handler(Arc::new(ImportBlocks(client.clone()))));
Ok(Service {
client: client,
_io_service: io_service,
})
}
/// Get a handle to the client.
pub fn client(&self) -> &Arc<Client> {
&self.client
}
}
struct ImportBlocks(Arc<Client>);
impl IoHandler<ClientIoMessage> for ImportBlocks {
fn message(&self, _io: &IoContext<ClientIoMessage>, message: &ClientIoMessage) {
if let ClientIoMessage::BlockVerified = *message {
self.0.import_verified();
}
}
}
#[cfg(test)]
mod tests {
use super::Service;
use ethcore::spec::Spec;
#[test]
fn it_works() {
let spec = Spec::new_test();
Service::start(Default::default(), &spec).unwrap();
}
}

78
ethcore/light/src/lib.rs Normal file
View File

@@ -0,0 +1,78 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Light client logic and implementation.
//!
//! A "light" client stores very little chain-related data locally
//! unlike a full node, which stores all blocks, headers, receipts, and more.
//!
//! This enables the client to have a much lower resource footprint in
//! exchange for the cost of having to ask the network for state data
//! while responding to queries. This makes a light client unsuitable for
//! low-latency applications, but perfectly suitable for simple everyday
//! use-cases like sending transactions from a personal account.
//!
//! The light client performs a header-only sync, doing verification and pruning
//! historical blocks. Upon pruning, batches of 2048 blocks have a number => hash
//! mapping sealed into "canonical hash tries" which can later be used to verify
//! historical block queries from peers.
#![deny(missing_docs)]
pub mod client;
pub mod cht;
pub mod net;
pub mod on_demand;
pub mod transaction_queue;
pub mod cache;
#[cfg(not(feature = "ipc"))]
pub mod provider;
#[cfg(feature = "ipc")]
pub mod provider {
#![allow(dead_code, unused_assignments, unused_variables, missing_docs)] // codegen issues
include!(concat!(env!("OUT_DIR"), "/provider.rs"));
}
#[cfg(feature = "ipc")]
pub mod remote {
pub use provider::LightProviderClient;
}
mod types;
pub use self::provider::Provider;
pub use self::transaction_queue::TransactionQueue;
pub use types::les_request as request;
#[macro_use]
extern crate log;
extern crate ethcore;
extern crate ethcore_util as util;
extern crate ethcore_network as network;
extern crate ethcore_io as io;
extern crate rlp;
extern crate smallvec;
extern crate time;
extern crate futures;
extern crate rand;
extern crate itertools;
extern crate stats;
#[cfg(feature = "ipc")]
extern crate ethcore_ipc as ipc;

View File

@@ -0,0 +1,337 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! LES buffer flow management.
//!
//! Every request in the LES protocol leads to a reduction
//! of the requester's buffer value as a rate-limiting mechanism.
//! This buffer value will recharge at a set rate.
//!
//! This module provides an interface for configuration of buffer
//! flow costs and recharge rates.
//!
//! Current default costs are picked completely arbitrarily, not based
//! on any empirical timings or mathematical models.
use request;
use super::packet;
use super::error::Error;
use rlp::*;
use util::U256;
use time::{Duration, SteadyTime};
/// A request cost specification.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Cost(pub U256, pub U256);
/// Buffer value.
///
/// Produced and recharged using `FlowParams`.
/// Definitive updates can be made as well -- these will reset the recharge
/// point to the time of the update.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Buffer {
estimate: U256,
recharge_point: SteadyTime,
}
impl Buffer {
/// Get the current buffer value.
pub fn current(&self) -> U256 { self.estimate.clone() }
/// Make a definitive update.
/// This will be the value obtained after receiving
/// a response to a request.
pub fn update_to(&mut self, value: U256) {
self.estimate = value;
self.recharge_point = SteadyTime::now();
}
/// Attempt to apply the given cost to the buffer.
///
/// If successful, the cost will be deducted successfully.
///
/// If unsuccessful, the structure will be unaltered an an
/// error will be produced.
pub fn deduct_cost(&mut self, cost: U256) -> Result<(), Error> {
match cost > self.estimate {
true => Err(Error::BufferEmpty),
false => {
self.estimate = self.estimate - cost;
Ok(())
}
}
}
}
/// A cost table, mapping requests to base and per-request costs.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct CostTable {
headers: Cost,
bodies: Cost,
receipts: Cost,
state_proofs: Cost,
contract_codes: Cost,
header_proofs: Cost,
}
impl Default for CostTable {
fn default() -> Self {
// arbitrarily chosen constants.
CostTable {
headers: Cost(100000.into(), 10000.into()),
bodies: Cost(150000.into(), 15000.into()),
receipts: Cost(50000.into(), 5000.into()),
state_proofs: Cost(250000.into(), 25000.into()),
contract_codes: Cost(200000.into(), 20000.into()),
header_proofs: Cost(150000.into(), 15000.into()),
}
}
}
impl RlpEncodable for CostTable {
fn rlp_append(&self, s: &mut RlpStream) {
fn append_cost(s: &mut RlpStream, msg_id: u8, cost: &Cost) {
s.begin_list(3)
.append(&msg_id)
.append(&cost.0)
.append(&cost.1);
}
s.begin_list(6);
append_cost(s, packet::GET_BLOCK_HEADERS, &self.headers);
append_cost(s, packet::GET_BLOCK_BODIES, &self.bodies);
append_cost(s, packet::GET_RECEIPTS, &self.receipts);
append_cost(s, packet::GET_PROOFS, &self.state_proofs);
append_cost(s, packet::GET_CONTRACT_CODES, &self.contract_codes);
append_cost(s, packet::GET_HEADER_PROOFS, &self.header_proofs);
}
}
impl RlpDecodable for CostTable {
fn decode<D>(decoder: &D) -> Result<Self, DecoderError> where D: Decoder {
let rlp = decoder.as_rlp();
let mut headers = None;
let mut bodies = None;
let mut receipts = None;
let mut state_proofs = None;
let mut contract_codes = None;
let mut header_proofs = None;
for row in rlp.iter() {
let msg_id: u8 = row.val_at(0)?;
let cost = {
let base = row.val_at(1)?;
let per = row.val_at(2)?;
Cost(base, per)
};
match msg_id {
packet::GET_BLOCK_HEADERS => headers = Some(cost),
packet::GET_BLOCK_BODIES => bodies = Some(cost),
packet::GET_RECEIPTS => receipts = Some(cost),
packet::GET_PROOFS => state_proofs = Some(cost),
packet::GET_CONTRACT_CODES => contract_codes = Some(cost),
packet::GET_HEADER_PROOFS => header_proofs = Some(cost),
_ => return Err(DecoderError::Custom("Unrecognized message in cost table")),
}
}
Ok(CostTable {
headers: headers.ok_or(DecoderError::Custom("No headers cost specified"))?,
bodies: bodies.ok_or(DecoderError::Custom("No bodies cost specified"))?,
receipts: receipts.ok_or(DecoderError::Custom("No receipts cost specified"))?,
state_proofs: state_proofs.ok_or(DecoderError::Custom("No proofs cost specified"))?,
contract_codes: contract_codes.ok_or(DecoderError::Custom("No contract codes specified"))?,
header_proofs: header_proofs.ok_or(DecoderError::Custom("No header proofs cost specified"))?,
})
}
}
/// A buffer-flow manager handles costs, recharge, limits
#[derive(Debug, Clone, PartialEq)]
pub struct FlowParams {
costs: CostTable,
limit: U256,
recharge: U256,
}
impl FlowParams {
/// Create new flow parameters from a request cost table,
/// buffer limit, and (minimum) rate of recharge.
pub fn new(limit: U256, costs: CostTable, recharge: U256) -> Self {
FlowParams {
costs: costs,
limit: limit,
recharge: recharge,
}
}
/// Create effectively infinite flow params.
pub fn free() -> Self {
let free_cost = Cost(0.into(), 0.into());
FlowParams {
limit: (!0u64).into(),
recharge: 1.into(),
costs: CostTable {
headers: free_cost.clone(),
bodies: free_cost.clone(),
receipts: free_cost.clone(),
state_proofs: free_cost.clone(),
contract_codes: free_cost.clone(),
header_proofs: free_cost.clone(),
}
}
}
/// Get a reference to the buffer limit.
pub fn limit(&self) -> &U256 { &self.limit }
/// Get a reference to the cost table.
pub fn cost_table(&self) -> &CostTable { &self.costs }
/// Get a reference to the recharge rate.
pub fn recharge_rate(&self) -> &U256 { &self.recharge }
/// Compute the actual cost of a request, given the kind of request
/// and number of requests made.
pub fn compute_cost(&self, kind: request::Kind, amount: usize) -> U256 {
let cost = match kind {
request::Kind::Headers => &self.costs.headers,
request::Kind::Bodies => &self.costs.bodies,
request::Kind::Receipts => &self.costs.receipts,
request::Kind::StateProofs => &self.costs.state_proofs,
request::Kind::Codes => &self.costs.contract_codes,
request::Kind::HeaderProofs => &self.costs.header_proofs,
};
let amount: U256 = amount.into();
cost.0 + (amount * cost.1)
}
/// Compute the maximum number of costs of a specific kind which can be made
/// with the given buffer.
/// Saturates at `usize::max()`. This is not a problem in practice because
/// this amount of requests is already prohibitively large.
pub fn max_amount(&self, buffer: &Buffer, kind: request::Kind) -> usize {
use util::Uint;
use std::usize;
let cost = match kind {
request::Kind::Headers => &self.costs.headers,
request::Kind::Bodies => &self.costs.bodies,
request::Kind::Receipts => &self.costs.receipts,
request::Kind::StateProofs => &self.costs.state_proofs,
request::Kind::Codes => &self.costs.contract_codes,
request::Kind::HeaderProofs => &self.costs.header_proofs,
};
let start = buffer.current();
if start <= cost.0 {
return 0;
} else if cost.1 == U256::zero() {
return usize::MAX;
}
let max = (start - cost.0) / cost.1;
if max >= usize::MAX.into() {
usize::MAX
} else {
max.as_u64() as usize
}
}
/// Create initial buffer parameter.
pub fn create_buffer(&self) -> Buffer {
Buffer {
estimate: self.limit,
recharge_point: SteadyTime::now(),
}
}
/// Recharge the buffer based on time passed since last
/// update.
pub fn recharge(&self, buf: &mut Buffer) {
let now = SteadyTime::now();
// recompute and update only in terms of full seconds elapsed
// in order to keep the estimate as an underestimate.
let elapsed = (now - buf.recharge_point).num_seconds();
buf.recharge_point = buf.recharge_point + Duration::seconds(elapsed);
let elapsed: U256 = elapsed.into();
buf.estimate = ::std::cmp::min(self.limit, buf.estimate + (elapsed * self.recharge));
}
/// Refund some buffer which was previously deducted.
/// Does not update the recharge timestamp.
pub fn refund(&self, buf: &mut Buffer, refund_amount: U256) {
buf.estimate = buf.estimate + refund_amount;
if buf.estimate > self.limit {
buf.estimate = self.limit
}
}
}
impl Default for FlowParams {
fn default() -> Self {
FlowParams {
limit: 50_000_000.into(),
costs: CostTable::default(),
recharge: 100_000.into(),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn should_serialize_cost_table() {
let costs = CostTable::default();
let serialized = ::rlp::encode(&costs);
let new_costs: CostTable = ::rlp::decode(&*serialized);
assert_eq!(costs, new_costs);
}
#[test]
fn buffer_mechanism() {
use std::thread;
use std::time::Duration;
let flow_params = FlowParams::new(100.into(), Default::default(), 20.into());
let mut buffer = flow_params.create_buffer();
assert!(buffer.deduct_cost(101.into()).is_err());
assert!(buffer.deduct_cost(10.into()).is_ok());
thread::sleep(Duration::from_secs(1));
flow_params.recharge(&mut buffer);
assert_eq!(buffer.estimate, 100.into());
}
}

View File

@@ -0,0 +1,192 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! I/O and event context generalizations.
use network::{NetworkContext, PeerId, NodeId};
use super::{Announcement, LightProtocol, ReqId};
use super::error::Error;
use request::{self, Request};
/// An I/O context which allows sending and receiving packets as well as
/// disconnecting peers. This is used as a generalization of the portions
/// of a p2p network which the light protocol structure makes use of.
pub trait IoContext {
/// Send a packet to a specific peer.
fn send(&self, peer: PeerId, packet_id: u8, packet_body: Vec<u8>);
/// Respond to a peer's message. Only works if this context is a byproduct
/// of a packet handler.
fn respond(&self, packet_id: u8, packet_body: Vec<u8>);
/// Disconnect a peer.
fn disconnect_peer(&self, peer: PeerId);
/// Disable a peer -- this is a disconnect + a time-out.
fn disable_peer(&self, peer: PeerId);
/// Get a peer's protocol version.
fn protocol_version(&self, peer: PeerId) -> Option<u8>;
/// Persistent peer id
fn persistent_peer_id(&self, peer: PeerId) -> Option<NodeId>;
}
impl<'a> IoContext for NetworkContext<'a> {
fn send(&self, peer: PeerId, packet_id: u8, packet_body: Vec<u8>) {
if let Err(e) = self.send(peer, packet_id, packet_body) {
debug!(target: "les", "Error sending packet to peer {}: {}", peer, e);
}
}
fn respond(&self, packet_id: u8, packet_body: Vec<u8>) {
if let Err(e) = self.respond(packet_id, packet_body) {
debug!(target: "les", "Error responding to peer message: {}", e);
}
}
fn disconnect_peer(&self, peer: PeerId) {
NetworkContext::disconnect_peer(self, peer);
}
fn disable_peer(&self, peer: PeerId) {
NetworkContext::disable_peer(self, peer);
}
fn protocol_version(&self, peer: PeerId) -> Option<u8> {
self.protocol_version(self.subprotocol_name(), peer)
}
fn persistent_peer_id(&self, peer: PeerId) -> Option<NodeId> {
self.session_info(peer).and_then(|info| info.id)
}
}
/// Basic context for the protocol.
pub trait BasicContext {
/// Returns the relevant's peer persistent Id (aka NodeId).
fn persistent_peer_id(&self, peer: PeerId) -> Option<NodeId>;
/// Make a request from a peer.
fn request_from(&self, peer: PeerId, request: Request) -> Result<ReqId, Error>;
/// Make an announcement of new capabilities to the rest of the peers.
// TODO: maybe just put this on a timer in LightProtocol?
fn make_announcement(&self, announcement: Announcement);
/// Find the maximum number of requests of a specific type which can be made from
/// supplied peer.
fn max_requests(&self, peer: PeerId, kind: request::Kind) -> usize;
/// Disconnect a peer.
fn disconnect_peer(&self, peer: PeerId);
/// Disable a peer.
fn disable_peer(&self, peer: PeerId);
}
/// Context for a protocol event which has a peer ID attached.
pub trait EventContext: BasicContext {
/// Get the peer relevant to the event e.g. message sender,
/// disconnected/connected peer.
fn peer(&self) -> PeerId;
/// Treat the event context as a basic context.
fn as_basic(&self) -> &BasicContext;
}
/// Basic context.
pub struct TickCtx<'a> {
/// Io context to enable dispatch.
pub io: &'a IoContext,
/// Protocol implementation.
pub proto: &'a LightProtocol,
}
impl<'a> BasicContext for TickCtx<'a> {
fn persistent_peer_id(&self, id: PeerId) -> Option<NodeId> {
self.io.persistent_peer_id(id)
}
fn request_from(&self, peer: PeerId, request: Request) -> Result<ReqId, Error> {
self.proto.request_from(self.io, &peer, request)
}
fn make_announcement(&self, announcement: Announcement) {
self.proto.make_announcement(self.io, announcement);
}
fn max_requests(&self, peer: PeerId, kind: request::Kind) -> usize {
self.proto.max_requests(peer, kind)
}
fn disconnect_peer(&self, peer: PeerId) {
self.io.disconnect_peer(peer);
}
fn disable_peer(&self, peer: PeerId) {
self.io.disable_peer(peer);
}
}
/// Concrete implementation of `EventContext` over the light protocol struct and
/// an io context.
pub struct Ctx<'a> {
/// Io context to enable immediate response to events.
pub io: &'a IoContext,
/// Protocol implementation.
pub proto: &'a LightProtocol,
/// Relevant peer for event.
pub peer: PeerId,
}
impl<'a> BasicContext for Ctx<'a> {
fn persistent_peer_id(&self, id: PeerId) -> Option<NodeId> {
self.io.persistent_peer_id(id)
}
fn request_from(&self, peer: PeerId, request: Request) -> Result<ReqId, Error> {
self.proto.request_from(self.io, &peer, request)
}
fn make_announcement(&self, announcement: Announcement) {
self.proto.make_announcement(self.io, announcement);
}
fn max_requests(&self, peer: PeerId, kind: request::Kind) -> usize {
self.proto.max_requests(peer, kind)
}
fn disconnect_peer(&self, peer: PeerId) {
self.io.disconnect_peer(peer);
}
fn disable_peer(&self, peer: PeerId) {
self.io.disable_peer(peer);
}
}
impl<'a> EventContext for Ctx<'a> {
fn peer(&self) -> PeerId {
self.peer
}
fn as_basic(&self) -> &BasicContext {
&*self
}
}

View File

@@ -0,0 +1,118 @@
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity 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,
// 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 <http://www.gnu.org/licenses/>.
//! Defines error types and levels of punishment to use upon
//! encountering.
use rlp::DecoderError;
use network::NetworkError;
use std::fmt;
/// Levels of punishment.
///
/// Currently just encompasses two different kinds of disconnect and
/// no punishment, but this is where reputation systems might come into play.
// In ascending order
#[derive(Debug, PartialEq, Eq)]
pub enum Punishment {
/// Perform no punishment.
None,
/// Disconnect the peer, but don't prevent them from reconnecting.
Disconnect,
/// Disconnect the peer and prevent them from reconnecting.
Disable,
}
/// Kinds of errors which can be encountered in the course of LES.
#[derive(Debug)]
pub enum Error {
/// An RLP decoding error.
Rlp(DecoderError),
/// A network error.
Network(NetworkError),
/// Out of buffer.
BufferEmpty,
/// Unrecognized packet code.
UnrecognizedPacket(u8),
/// Unexpected handshake.
UnexpectedHandshake,
/// Peer on wrong network (wrong NetworkId or genesis hash)
WrongNetwork,
/// Unknown peer.
UnknownPeer,
/// Unsolicited response.
UnsolicitedResponse,
/// Not a server.
NotServer,
/// Unsupported protocol version.
UnsupportedProtocolVersion(u8),
/// Bad protocol version.
BadProtocolVersion,
/// Peer is overburdened.
Overburdened,
}
impl Error {
/// What level of punishment does this error warrant?
pub fn punishment(&self) -> Punishment {
match *self {
Error::Rlp(_) => Punishment::Disable,
Error::Network(_) => Punishment::None,
Error::BufferEmpty => Punishment::Disable,
Error::UnrecognizedPacket(_) => Punishment::Disconnect,
Error::UnexpectedHandshake => Punishment::Disconnect,
Error::WrongNetwork => Punishment::Disable,
Error::UnknownPeer => Punishment::Disconnect,
Error::UnsolicitedResponse => Punishment::Disable,
Error::NotServer => Punishment::Disable,
Error::UnsupportedProtocolVersion(_) => Punishment::Disable,
Error::BadProtocolVersion => Punishment::Disable,
Error::Overburdened => Punishment::None,
}
}
}
impl From<DecoderError> for Error {
fn from(err: DecoderError) -> Self {
Error::Rlp(err)
}
}
impl From<NetworkError> for Error {
fn from(err: NetworkError) -> Self {
Error::Network(err)
}
}
impl fmt::Display for Error {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
Error::Rlp(ref err) => err.fmt(f),
Error::Network(ref err) => err.fmt(f),
Error::BufferEmpty => write!(f, "Out of buffer"),
Error::UnrecognizedPacket(code) => write!(f, "Unrecognized packet: 0x{:x}", code),
Error::UnexpectedHandshake => write!(f, "Unexpected handshake"),
Error::WrongNetwork => write!(f, "Wrong network"),
Error::UnknownPeer => write!(f, "Unknown peer"),
Error::UnsolicitedResponse => write!(f, "Peer provided unsolicited data"),
Error::NotServer => write!(f, "Peer not a server."),
Error::UnsupportedProtocolVersion(pv) => write!(f, "Unsupported protocol version: {}", pv),
Error::BadProtocolVersion => write!(f, "Bad protocol version in handshake"),
Error::Overburdened => write!(f, "Peer overburdened"),
}
}
}

Some files were not shown because too many files have changed in this diff Show More