Commit Graph

311 Commits

Author SHA1 Message Date
Nicolas Gotchac
8a21cde188 Required validators >= num owners (#6551) 2017-09-19 11:58:04 +02:00
Fredrik Harrysson
75b6a31e87 Trezor Support (#6403)
* Copy modal from keepkey branch and generalize

The keepkey PinMatrix modal needs to be the same for Trezor, but we
should probably try to keep it general since it can be used for both.

* Add trezor communication code

This is a result of much trial-and-error and a couple of dead-ends in
how to communicate and wire everything up.

Code here is still a bit WIP with lots of debug prints and stuff.

The test works though, it is possible to sign a transaction.

* Extend the basic lib to allow Trezor

This is kind of ugly and needs some cleanup and generalization. I’ve
just copy-pasted some things to bring in the trezor wallets. I’ve also
had to add a lock to the USB API so that only one thing talks to the
USB at once.

* Add RPC plumbing needed

We need to be able to get “locked” devices from the frontend to figure
out if we’re going to display the PinMatrix or not. Then we need to be
able to send a pin to a device.

* Add logic to query backend for Trezor and display PinMatrix

There’s a bug somewhere here because signing a transaction fails if you
take too long to press the confirm button on the device.

* Change back to paritytech branch

As my fork has been merged in.

* Converting spaces to tabs, as it should be

* Incorporate correct handling of EIP-155

Turns out the Trezor was adjusting the v part of the signature, and
we’re already doing that so it was done twice.

* Some circular logic here that was incorrect

BE-encoded U256 is almost the same as RLP encoded without the
size-byte, except for <u8 sized values. What’s really done is
BE-encoded U256 and then left-trimmed to the smallest size. Kind of
obvious in hindsight.

* Resolve issue where not clicking fast enough fails

The device will not repeat a ButtonRequest when you read from it, so
you need to have a blocking `read` for whatever amount of time that you
want to give the user to click. You could also have a shorter timeout
but keep retrying for some amount of time, but it would amount to the
same thing.

* Scan after pin entry to make accepting it faster

* Remove ability to cancel pin request

* Some slight cleanup

* Probe for the correct HID Version to determine padding

* Move the PinMatrix from Accounts to Application

* Removing unused dependencies

* Mistake in copying over stuff from keepkey branch

* Simplify FormattedMessage

* Move generated code to external crate

* Remove ethcore-util dependency

* Fix broken import in test

This test is useless without a connected Trezor, not sure how to make
it useful without one.

* Merge branch 'master' into fh-4500-trezor-support

# Conflicts:
#	rpc/src/v1/helpers/dispatch.rs

* Ignore test that can't be run without trezor device

* Fixing grumbles

* Avoiding owning data in RPC method
* Checking for overflow in v part of signature
* s/network_id/chain_id
* Propagating an error from the HID Api
* Condensing code a little bit

* Fixing UI.

* Debugging trezor.

* Minor styling tweak

* Make message type into an actual type

This makes the message type that the RPC message accepts into an actual
type as opposed to just a string, based on feedback. Although I’m not
100% sure this has actually improved the situation.

Overall I think the hardware wallet interface needs some refactoring
love.

* Split the trezor RPC endpoint

It’s split into two more generic endpoints that should be suitable for
any hardware wallets with the same behavior to sit behind.

* Reflect RPC method split in javascript

* Fix bug with pin entry

* Fix deadlock for Ledger

* Avoid having a USB lock in just listing locked wallets

* Fix javascript issue (see #6509)

* Replace Mutex with RwLock

* Update Ledger test

* Fix typo causing faulty signatures (sometimes)

* *Actually* fix tests

* Update git submodule

Needed to make tests pass

* Swap line orders to prevent possible deadlock

* Make setPinMatrixRequest an @action
2017-09-14 19:28:43 +02:00
Nicolas Gotchac
f1a050366f Fix slow balances (#6471)
* Update token updates

* Update token info fetching

* Update logger

* Minor fixes to updates and notifications for balances

* Use Pubsub

* Fix timeout.

* Use pubsub for status.

* Fix signer subscription.

* Process tokens in chunks.

* Fix tokens loaded by chunks

* Linting

* Dispatch tokens asap

* Fix chunks processing.

* Better filter options

* Parallel log fetching.

* Fix signer polling.

* Fix initial block query.

* Token balances updates : the right(er) way

* Better tokens info fetching

* Fixes in token data fetching

* Only fetch what's needed (tokens)

* Fix linting issues

* Revert "Transaction permissioning (#6441)"

This reverts commit eed0e8b03a.

* Revert "Revert "Transaction permissioning (#6441)""

This reverts commit 8f96415e58dde652e5828706eb2639d43416f448.

* Update wasm-tests.

* Fixing balances fetching

* Fix requests tracking in UI

* Fix request watching

* Update the Logger

* PR Grumbles Fixes

* PR Grumbles fixes

* Linting...
2017-09-10 18:03:35 +02:00
Nicolas Gotchac
a62238c19d Add language selector in production (#6317)
* Add language selector in PRODUCTIN

* Fix wrong i18n keys

* Update the default i18n files
2017-09-05 12:26:29 +01:00
Nicolas Gotchac
d6eb053826 Add support for ConsenSys multisig wallet (#6153)
* First draft of ConsenSys wallet

* Fix transfer store // WIP Consensys Wallet

* Rename walletABI JSON file

* Fix linting

* Fix wrong daylimit in wallet modal

* Confirm/Revoke ConsensysWallet txs

* Linting

* Change of settings for the Multisig Wallet
2017-08-09 19:06:14 +02:00
Jaco Greeff
e3a8780da7 Check QR before lowercase (#6119) 2017-07-21 18:23:41 +02:00
Nicolas Gotchac
96ff69e7ef Update wallet library binaries (#6108)
* Update wallet library binaries

* Update the links
2017-07-20 19:30:25 +02:00
Jaco Greeff
b49c039f41 Set observable on component (#6033) 2017-07-10 17:38:40 +02:00
Jaco Greeff
204fe44b29 Add new md tnc (#5937)
* Add new md tnc

* Skip markdown import in test
2017-07-10 13:23:59 +02:00
Tomasz Drwięga
58a27b3334
Fix first run wizard. 2017-07-05 12:25:07 +02:00
Jaco Greeff
64e6d36944 Fix gas editor doubling-up on gas (#5820) 2017-06-22 20:14:04 +02:00
Afri
f3874ffaf2 Fix party technologies (#5810) 2017-06-12 22:52:34 +02:00
Tomasz Drwięga
5c3ea4ec29 Require phrase confirmation. (#5731)
* Require phrase confirmation.

* Linting issues.

* Fix dialog title.

* Confirm a backup phrase.

* Confirm recovery phrase on fist run as well.
2017-06-09 12:25:14 +02:00
Afri
1349b4ba07 Replace Ethcore comany name in T&C and some other places (#5796)
* Replace ethcore in terms and conditions

* Replace ethcore company name in various places

* Fix casing in t&c
2017-06-09 12:21:35 +02:00
Afri
d368006526 Fix terminology distributed -> decentralized (#5797) 2017-06-09 12:20:08 +02:00
Jaco Greeff
882f963e6b Block invalid account name creation (#5784)
* Additional non-empty phrase check (fromNew)

* Explicit canCreate check in create (not only on UI)

* BN instance check (fixes Geth imports)

* Fixup tests after better checks

* PR comments (Thanks @tomusdrw )

* Typo
2017-06-07 16:27:01 +02:00
Patrick Collins
b14145f23b fixes typo 2017-05-29 14:29:55 -07:00
Nicolas Gotchac
8b1f0b7cf4 Add Recover button to Accounts and warnings (#5645)
* Add Recover button to Accounts // Add Warnings

* Change to 11

* Add test net checks for empty recovery phrase

* Fix failing tests
2017-05-18 11:50:15 +02:00
Nicolas Gotchac
8642300d74 Use default account for sending transactions (#5588)
* Add default account for Wallet Creation

* Use default account by default, save current used account

* Fix tests
2017-05-16 15:38:16 +01:00
Nicolas Gotchac
df9096df80 Fix Multisig wallet settings (#5560)
* Improve add/remove owner in Wallet (use changeOwner)

* fix linting
2017-05-09 12:55:35 +02:00
Rien
02b54ff7e8 find . -type f -not -path './.*' -exec sed -i -e "s/ethcore\.io/parity.io/g" {} \; (#5528) 2017-05-02 11:41:09 +02:00
Craig O'Connor
cf904b6b2f Export acc js (#4973)
* Export account RPC

* Removing GethDirectory and ParityDirectory

* js export accounts as json

* js export accounts as json

* api - then - catch

* final touches

* pass

* oops

* individual accounts

* refactoring

* refactor one

* refactor one

* refactor two

* some grumble fixes

* file name changes

* constructor

* constructor

* git recognize file name change

* spec and updates

* specs

* one tiny fix

* one tiny fix

* grumbles

* more grumbles

* sliders

* ff

* pointer default

* grumbles

* almost ready

* lots of updates

* accountList

* stupid debuglog

* bug fix

* bug fix

* some more good ol fashioned updates

* filter accounts

* clean

* update spec

* ff

* ff-f

* balances fix
2017-04-26 11:34:48 +02:00
Nicolas Gotchac
37690cfde2 Refactoring of Tokens & Balances (#5372)
* Remove ETH filter

* Remove unused Blockchain reducer+actions

* Simpler Token updates and fetching

* Cleanup use of balances

* Cleanup of balances

* Cleanup of Balances

* Linting

* Update List Component

* Separate tokens from balances

* Refactoring balance fetchin and storing - Part I

* Linting

* Better ETH token description and use

* Working Transfer with new logic

* Add debugging

* Querying the tokens filter on new block

* Fixing the tests - PART I

* Fix txCount
2017-04-19 18:00:05 +02:00
Jaco Greeff
bb8adcce92 Work around mismatch for QR checksum (#5374)
* Work around current native-signer encoding

* Avoid trying to use non-existant util function.
2017-04-11 16:43:15 +02:00
maciejhirsz
94bfe116aa CR fixes 2017-04-04 11:49:36 +02:00
maciejhirsz
50e0221dd1 Perf and fixes 2017-04-03 18:50:11 +02:00
Jaco Greeff
1987dad527 Allow signing via Qr (#4881)
* QR code scanning in-place

* QrScan component

* Update tests

* s/store/createStore/ in props

* Create of actual accountsInfo entry

* Exteral/hardware forget, no password change

* Add external accounts to accounts list

* Render external accounts in section (along with hw)

* Manul test bugfixes

* Display Qr code for tx signing

* Align QR code

* Hints for QR operations

* Generate actual qr codes based on tx data

* Add leading 0x if not found

* Update tests for 0x leading addition

* from & rpl without leading 0x

* Auto-detect QR code size (input length)

* Confirm raw

* WIP (lots of logging)

* WIP

* Chain-replay protection

* Readability

* Re-add r: chainId

* s = 0, r = 0, v = chainId

* Update eth_signTransaction to send transaction object

* And it actually works.

* Externalise createUnsigned/createSigned

* Check for nonce updates (future: subscriptions)

* Allow gas overrides

* Expose formatted condition

* Extract calculation (cap at 40)

* Remove debug log

* Fix rename linting

* Allow for signing hash & rlp (App support forthcoming)

* WIP

* User original qrcode-generator package

* Complete hash + rlp signing

* Accurate QR code size calculation

* Simplify type calculation

* R-eactivate current mobile interface (TODO for new)

* Move napa to dep

* Allow external accounts visibility in dapps

* Allow napa install on CI

* Allow new signTransaction & signTransactionHash functionality
2017-03-31 23:36:24 +02:00
Nicolas Gotchac
a99721004b Minimise transactions progress (#4942)
* Watch the requests and display them throughout the app

* Linting

* Showing Requests

* Fully working Transaction Requests Display

* Add FormattedMessage to Requests

* Clean-up the Transfer dialog

* Update Validations

* Cleanup Create Wallet

* Clean Deploy Contract Dialog

* Cleanup Contract Execution

* Fix Requests

* Cleanup Wallet Settings

* Don't show stepper in Portal if less than 2 steps

* WIP local storage requests

* Caching requests and saving contract deployments

* Add Historic prop to Requests MethodDecoding

* Fix tests

* Add Contract address to MethodDecoding

* PR Grumbles - Part I

* PR Grumbles - Part II

* Use API Subscription methods

* Linting

* Move SavedRequests and add tests

* Added tests for Requests Actions

* Fixing tests

* PR Grumbles + Playground fix

* Revert Playground changes

* PR Grumbles

* Better showEth in MethodDecoding
2017-03-28 14:34:31 +02:00
Jaco Greeff
e8c64b802d Auto-extract new i18n strings (update) (#5288)
* Update passwordHint chain

* Update auto-extracted strings
2017-03-27 11:42:59 +02:00
Jaco Greeff
5df3f5d136 Show busy indicator, focus first field (#4997) 2017-03-22 16:39:49 +01:00
Nicolas Gotchac
67c225f971 Double click to select account creation type (#4986)
* Extend links to whole container

* Add doubleClick to Account Creator
2017-03-22 12:12:21 +01:00
Nicolas Gotchac
37ece36685 Fix Password Dialog forms style issue (#4968) 2017-03-21 13:56:32 +01:00
Nicolas Gotchac
7846544c1b Edit ETH value, gas and gas price in Contract Deployment (#4919)
* Fix typo

* Add Value capabilities to Contract Deployment

* Add Extras settings for Contract Deployment (#4483)

* Fix deploy in API
2017-03-16 13:18:28 +01:00
Nicolas Gotchac
e4c61a5fab Add Vaults logic to First Run (#4894) (#4914) 2017-03-15 13:40:18 +01:00
maciejhirsz
ef3569741c Spelling :) 2017-03-14 11:39:01 +01:00
Jaco Greeff
8edee76f8b Pull steps from actual available steps (#4848) 2017-03-10 11:38:27 +01:00
Jaco Greeff
c3c83086bc 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
2017-03-07 20:21:07 +01:00
Nicolas Gotchac
4d08e7b0ae 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
2017-03-07 20:19:55 +01: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
Jaco Greeff
5a7cbb3e5b Fix invalid props (#4766) 2017-03-05 10:27:18 +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
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
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
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
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
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
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
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