Fixes#226Fixes#383
Added a simple check to ensure that swap rates exist so we don't get a NaN error, which would be confusing to users.
Instead, the form is hidden and a spinner is shown until the bityRates are ready for the user.
* adds spinner while fetching
* added error on top of input
* removed classnames prop and added cn
* added simple err mssge
* css fixes and disabled button
* better err mssge generation and fixed swap details
* minor typo
* added redux notification on unreachable error
* minheight for err message and swap update on redux change
* fixed formatting and removed className prop
* Add definition file for bn.js
* Remove types-bn
* make isBN a static property
* progress commit -- swap out bignumber.js for bn.js
* Swap out bignumber for bn in vendor
* Change modn to number return
* Start to strip out units lib for a string manipulation based lib
* Convert codebase to only base units
* Get rid of useless component
* Handle only wei in values
* Use unit conversion in sidebar
* Automatically strip hex prefix, and handle decimal edge case
* Handle base 16 wei in transactions
* Make a render callback component for dealing with unit conversion
* Switch contracts to use bn.js, and get transaction values from signedTx instead of state
* Get send transaction working with bn.js
* Remove redundant hex stripping, return base value of tokens
* Cleanup unit file
* Re-implement toFixed for strings
* Use formatNumber in codebase
* Cleanup code
* Undo package test changes
* Update snapshot and remove console logs
* Use TokenValue / Wei more consistently where applicable
* Add typing to deterministicWallets, fix confirmation modal, make UnitDisplay more flexible
* Clean up prop handling in UnitDisplay
* Change instanceof to typeof check, change boolean of displayBalance
* Fix tsc errors
* Fix token row displaying wrong decimals
* Fix deterministic modal token display
* Handle hex and non hex strings automatically in BN conversion
* Fix handling of strings and numbers for BN
* add web3 fixes & comments
* Display short balances on deterministic modals
* add more tests, fix rounding
* Add spacer to balance sidebar network name
* Fix tsc error
* Progress commit -- ethereumjs-wallet typings
* Add hdkey module + better wallet typing
* Add provider-engine typings
* Add jsdoc descriptions for hdkey constructor methods
* Fix missing return type
* Fix another missing return
* Make provider engine options optional
* Add priv/pubkey members to wallet instance
* Turn into SFC + Use ethereumjs-lib
* Use proper interface naming for V3Wallet
* Switch to ethereumjs-wallet
* Switch to ethereumjs-wallet and refactor using NewTabLink
* Use proper interface naming for V3Wallet
* Use proper interface naming for PublicKeyOnlyWallet
* Strip out wallet classes for ethereumjs-wallet, stuff wallet types in privkey for now
* Seperate wallets into deterministic and non-deterministic, change IWallet and deterministic wallets to adhere to getAddressString
* Fix broken test, remove scryptsy
* Fix broken test, re-add scryptsy to make this PR pass
* Remove uuid from deps and keystore test
* Add ethereumjs-wallet to DLL
* Wrap mnemonic wallet
* Fix definition module for thirdparty wallets
* Fix MewV1 wallet not loading due to wrong library
* Fix tsc error
* Decrease n-factor to 1024, checksum address of keystore
* Fix isKeystorePassRequired
* Fix tsc errors
* Merge package lock
* Update package lock
* regenerate lock file
* Lock typescript to 2.5.2
* Merge develop
* chore(package): update dependencies
* docs(readme): add Greenkeeper badge
* Remove package lock and add it to ignore
* Pin typescript to 2.5.2
* Pin package versions to the versions previously in package-lock.json
* Progress commit -- ethereumjs-wallet typings
* Add hdkey module + better wallet typing
* Add provider-engine typings
* Add jsdoc descriptions for hdkey constructor methods
* Fix missing return type
* Fix another missing return
* Make provider engine options optional
* Add priv/pubkey members to wallet instance
* Turn into SFC + Use ethereumjs-lib
* Use proper interface naming for V3Wallet
* Switch to ethereumjs-wallet
* Switch to ethereumjs-wallet and refactor using NewTabLink
* Use proper interface naming for V3Wallet
* Use proper interface naming for PublicKeyOnlyWallet
* Fix broken test, re-add scryptsy to make this PR pass
* Fix definition module for thirdparty wallets
* Decrease n-factor to 1024, checksum address of keystore
* Update typedef for react-dom from 15 to 16
* Lock react-dom, set typescript to 2.5.2
* add route and nav tab for new module
* add new module to tabs index
* add signMessage to wallet interface
* add signed message verification, normalize pkey sign
* init Sign & Verify Message tab
* reorder imports
* mock out Trezor
* cast to bool instead of length check
* normalize ledger sign message
* fix broken this context
* add commented message signing to trezor wallet
* correct var to start on sign tab
* remove unused state var
* clean up SignMessage classes
* clean up VerifyMessage classes, remove unnecessary log
* correct event variable types
* remove unnecessary exports
* remove empty classname
* use implicit return
* shorten signMessage method
* remove unnecessary disable
* tweak variable name
* make better use of destructuring, remove console log
* use destructured var
* flatten if statement
* add signMessage method to wallet reducer test
* create MVP of broadcast TX component
* add broadcastTx to routes and tab options
* Update BroadcastTx path to /pushTx
* - add sanitizeHex and padLeftEven functions from V3
* - Move decodeTransaction logic out of ConfirmationModal.
- Add from key to getTransactionFields
* Simplify ConfirmationModal:
1. Move business logic out of component (decodeTransaction).
2. Don't pass node props when Component is already smart. Map from state instead.
3. Pass walletAddress instead of the entire wallet object to component as prop.
4. Handle
* - Don't map node state (child component grabs from state)
- implement and call setWalletAddressOnUpdate
* correct tab to path.
* 1. Integrate Confirmation Modal
2. Validate signedTx input and disable Send Transaction button when invalid
* disable tslint error. EthTx expect a Data type object, but a string is passed. However, tx object is created as expected. Need to investigate
* adjust type definition to match allowed string input. Remove tslint disable
* fix tslint errors
* add textarea valid/invalid stlying based on disabled status
* remove unused imports
* cleanup / address PR comments
* Address PR comments