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
* Refactor BaseNode to be an interface INode
* Initial contract commit
* Remove redundant fallback ABI function
* First working iteration of Contract generator to be used in ENS branch
* Hide abi to clean up logging output
* Strip 0x prefix from output decode
* Handle unnamed output params
* Implement ability to supply output mappings to ABI functions
* Fix null case in outputMapping
* Add flow typing
* Add .call method to functions
* Partial commit for type refactor
* Temp contract type fix -- waiting for NPM modularization
* Misc. Optimizations to tsconfig + webpack
* Convert Contracts to TS
* Remove nested prop passing from contracts, get rid of contract reducers / sagas / redux state
* Add disclaimer modal to footer
* Remove duplicate code & unnecessary styles
* Add contracts to nav
* Wrap Contracts in App
* Add ether/hex validation override for contract creation calls
* First iteration of working deploy contract
* Delete routing file that shouldnt exist
* Revert "Misc. Optimizations to tsconfig + webpack"
This reverts commit 70cba3a07f4255153a9e277b3c41032a4b661c94.
* Cleanup HOC code
* Fix formatting noise
* remove un-used css style
* Remove deterministic contract address computation
* Remove empty files
* Cleanup contract
* Add call request to node interface
* Fix output mapping types
* Revert destructuring overboard
* Add sendCallRequest to rpcNode class and add typing
* Use enum for selecting ABI methods
* Fix tslint error & add media query for modals
* Nest Media Query
* Fix contracts to include new router fixes
* Add transaction capability to contracts
* Get ABI parsing + contract calls almost fully integrated using dynamic contract parser lib
* Refactor contract deploy to have a reusable HOC for contract interact
* Move modal and tx comparasion up file tree
* Include ABI outputs in display
* Cleanup privaite/public members
* Remove broadcasting step from a contract transaction
* Update TX contract components to inter-op with interact and deploy
* Finish contracts-interact functionality
* Add transaction capability to contracts
* Cleanup privaite/public members
* Remove broadcasting step from a contract transaction
* Apply James's CSS fix
* Cleanup uneeded types
* Remove unecessary class
* Add UI side validation and helper utils, addresess PR comments
* Fix spacing + remove unused imports / types
* Fix spacing + remove unused imports / types
* Address PR comments
* Actually address PR comments
* Actually address PR comments
* Refactor BaseNode to be an interface INode
* Initial contract commit
* Remove redundant fallback ABI function
* First working iteration of Contract generator to be used in ENS branch
* Hide abi to clean up logging output
* Strip 0x prefix from output decode
* Handle unnamed output params
* Implement ability to supply output mappings to ABI functions
* Fix null case in outputMapping
* Add flow typing
* Add .call method to functions
* Partial commit for type refactor
* Temp contract type fix -- waiting for NPM modularization
* Remove empty files
* Cleanup contract
* Add call request to node interface
* Fix output mapping types
* Revert destructuring overboard
* Add sendCallRequest to rpcNode class and add typing
* Use enum for selecting ABI methods
* Add transaction capability to contracts
* Cleanup privaite/public members
* Remove broadcasting step from a contract transaction
* Cleanup uneeded types
* Fix spacing + remove unused imports / types
* Actually address PR comments
* update readme with typescript action/reducer philosophies
* convert directory strucuture to code block for styling
* Update readme with hoc typings (#296)