* 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
* 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
* 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
* 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
* 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
* 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
* 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