Commit Graph

420 Commits

Author SHA1 Message Date
Daniel Ternyak 92d8ecf353
Web3 Improvements (#740)
* increase timeout for web3 auto-login; don't attempt login when web3 is unavailable

* only auto-login when metamask available

* combine multiple imports
2018-01-07 19:21:11 -06:00
William O'Beirne edda9f71ea Improved Gas UX (Pt. 1 - Gas Slider on Send) (#728)
* Initial crack at simple only gas slider component.

* Work on advanced component. Refactor redux and components to specify gas limit vs price.

* Convert fee summary to a render cbesque thing.

* Rework responsive columns.

* Remove force offline button.

* Tweak styles.

* Fix tscheck issues, remove unneeded prop.

* Fix references to GasField

* Gas slider in lite send.

* Make gas slider network-aware for symbol and price calculation.
2018-01-07 10:43:06 -06:00
William O'Beirne 498aeec92c Fix Logout Prompt (#725) 2018-01-04 10:31:22 -06:00
William O'Beirne 18695d0936 Fix Trezor signing + stronger typing (#723) 2018-01-04 10:07:10 -06:00
William O'Beirne bcd85ee3a2 Fix Custom Token Delete (#717) 2018-01-02 21:48:17 -06:00
Danny Skubak b939e8ceda Request Payment SubTab - EIP 681 (#671)
* progress

* Normalize bity api response

* Filter api response

* Track swap information in component state

* Update dropdown onchange

* remove dead code

* Update Min Max Validation

* Update minmax err msg && fix onChangeOriginKind

* Add origin & destination to redux state

* Update types & Update tests

* Update types

* Update swap.spec.ts test

* Remove commented out code

* Remove hardcoded coin array

* Create types.ts for swap reducer

* Update swapinput type

* Update bityRates in localStorage & Replace all instances of ...Kind / ...Amount props

* Add shapeshift banner

* initial work for sagas

* Update Types

* Update swap reducer initial state

* Update Types & Store empty obj for bityRates / options

* Update more types

* added shapeshift file and rates comments

* action reducers and prop mapping to components

* add typings and swap icon

* more actions reducers and sagas

* debugging shapeshift service

* add Headers

* Fix content type

* add order reset saga and ui fixes

* remove console log and swap b/w Bity and Shapeshift

* working state for Shapeshift and Bity - tested with mainnet

* add icon component

* UI improvements and fix select bug

* fix timer bug

* add bity fallback options and toFixed floats

* tslint errors

* add arrow to dropdown and add support footer

* Add service provider

* fix minor $ bug and stop timer on order complete

* better load UX and dropdown UX

* fixed single test

* currRate prop bugs and reduce LS bloat

* takeEvery on timer saga and don't clear state.options to restartSwap reducer

* export tx sagas and fix minor type

* Add ShapeShift Rates functionality when selecting a ShapeShift pair.

* type fixes

* BugFix: Don't change displayed ShapeShift Rate Inputs on every dropdown change
Also contains some caching / performance improvements

* BugFix: Don't remote rate inputs when falsy amount

* fix type error

* Progress commit

* Implement saga logic

* Make address field factory component

* Shorten debounce time

* Make new actions / sagas  for handling single token lookup

* Implement working version of litesend

* make unit dropdown searchable, add props for all tokens, custom validation

* add string generators for EIP 681 token & ether transactions

* add new selectors

* add request payment tab

* Change saga into selector

* Add failing spec

* fix broken test

* add debounce to error message

* fix tests

* update snapshots

* test coverage

* move setState disabled property from debounce so we instantly can go to next step on valid amounts

* reset amount value (useful for switching between tabs)

* much deeper test coverage, fix debounce ux, and fix bity flashing at swap page load

* fix minor failing test

* seperate shapeshift erc20 token whitelist

* fix saveState store bug

* break orderTimeRemaining saga up and rewrite tests

* fix tslint error

* add isReadOnly prop to address field

* use AddressField component, add additional validation

* make prop optional

* correct validation

* allow for request tab to be used with view only wallet

* account for undefined activeTab

* add types
2018-01-02 21:18:10 -06:00
William O'Beirne b4f2934878 Show warning when no tokens are found after scan (#711)
* Show warning when no tokens are found.

* Rework no tokens message so users can still add customs or scan for new ones.
2018-01-02 21:04:12 -06:00
Eddie Wang 88532cdc3c Shapeshift Integration (#564)
* progress

* Normalize bity api response

* Filter api response

* Track swap information in component state

* Update dropdown onchange

* remove dead code

* Update Min Max Validation

* Update minmax err msg && fix onChangeOriginKind

* Add origin & destination to redux state

* Update types & Update tests

* Update types

* Update swap.spec.ts test

* Remove commented out code

* Remove hardcoded coin array

* Create types.ts for swap reducer

* Update swapinput type

* Update bityRates in localStorage & Replace all instances of ...Kind / ...Amount props

* Add shapeshift banner

* initial work for sagas

* Update Types

* Update swap reducer initial state

* Update Types & Store empty obj for bityRates / options

* Update more types

* added shapeshift file and rates comments

* action reducers and prop mapping to components

* add typings and swap icon

* more actions reducers and sagas

* debugging shapeshift service

* add Headers

* Fix content type

* add order reset saga and ui fixes

* remove console log and swap b/w Bity and Shapeshift

* working state for Shapeshift and Bity - tested with mainnet

* add icon component

* UI improvements and fix select bug

* fix timer bug

* add bity fallback options and toFixed floats

* tslint errors

* add arrow to dropdown and add support footer

* Add service provider

* fix minor $ bug and stop timer on order complete

* better load UX and dropdown UX

* fixed single test

* currRate prop bugs and reduce LS bloat

* takeEvery on timer saga and don't clear state.options to restartSwap reducer

* export tx sagas and fix minor type

* Add ShapeShift Rates functionality when selecting a ShapeShift pair.

* type fixes

* BugFix: Don't change displayed ShapeShift Rate Inputs on every dropdown change
Also contains some caching / performance improvements

* BugFix: Don't remote rate inputs when falsy amount

* fix type error

* Progress commit

* Implement saga logic

* Make address field factory component

* Shorten debounce time

* Make new actions / sagas  for handling single token lookup

* Implement working version of litesend

* Change saga into selector

* Add failing spec

* fix broken test

* add debounce to error message

* fix tests

* update snapshots

* test coverage

* move setState disabled property from debounce so we instantly can go to next step on valid amounts

* much deeper test coverage, fix debounce ux, and fix bity flashing at swap page load

* fix minor failing test

* seperate shapeshift erc20 token whitelist

* fix saveState store bug

* break orderTimeRemaining saga up and rewrite tests

* add new swap icon

* remove unused allowReadOnly prop

* change offlineaware to walletdecrypt for litesend

* fix LiteSend changewallet bug

* fix error message UX

* fix button styling to match develop

* fix liteSend test

* Fix LiteSend UX on unavl tokens, dropdown null value, and don't show decrypt in litesend after successful wallet decrypt.

* add litesend network check
2018-01-02 12:04:50 -06:00
William O'Beirne 2f98555b00 Fix deterministic modal token values (#708)
* Fix borked deterministic wallet saga for token values.

* Fix test.
2018-01-02 11:49:18 -06:00
William O'Beirne d1b8f4b65a Ledger warning (#709)
* Ledger HTTPS warning.

* Missed colon.
2018-01-02 00:45:21 -06:00
Eddie Wang 3733adfd84 Add "404" Page (#705)
* add error page

* address PR comments
2018-01-01 18:37:41 -06:00
William O'Beirne ef506c54d6 Implement `offline-plugin` for Service Workers / App Cache (#701) 2018-01-01 17:15:13 -06:00
James Prado 8452e231d8 Fix Help Nav isActive Condition (#694)
* Update tab isActive Condition

Add condition to fix help tab appearing as active at `localhost:3000/`

* Shorten long variables

* Type nav tab links, clarify conditions.
2018-01-01 14:43:27 -06:00
William O'Beirne 371e6e327c Wallet Decrypt Redesign (#677)
* Reorganize files to better match other components.

* Initial UI for wallet buttons.

* Fix leftover rebase conflict.

* Wallet selection, styling, mobile handling.

* Initial work on animations.

* Adjusted animations.

* Adjust wallet unlock forms to be more uniform. Fix view address saying 'unlock'

* Adjust tooltips.

* Fix embedded decrypt components.

* Cover whole sign msg form with decrypt.

* Give deploy contract a better unlock treatment like sign msg.

* Reset decrypt component on hide / show

* Unused var

* Fix tooltip hover.

* Fix hover lift.

* Make spacing better on mobile.

* Back button mobile handling.

* Redesign mobile button icons. Prevent clicking through when clicking on icons.

* TSCheck fixes.

* Attempt to unlock MetaMask onClick, and provide existing flow with notification when unlock fails.

* Get rid of outline.

* Remove decrypt min height. Make view only textarea.

* Add change wallet buttons to deploy contract and sign msg.

* Standardize
2018-01-01 13:46:28 -06:00
William O'Beirne 0710f22291 Fix custom node form (#699) 2017-12-31 21:14:14 -06:00
William O'Beirne 349bf5bba5 Fix Notification Close (#700) 2017-12-31 21:13:54 -06:00
James Prado ec37eeffe8 Hardware Wallet Unlock - Loading Indicator (#675)
* Direct user to correct app on timeout

* Add spinner while decrypting hardware wallets

* Hide tip on connect

* Remove unnecessary trezor tips

* Remove showTip property from component state
2017-12-31 21:07:37 -06:00
HenryNguyen5 616928c085 Webpack Upgrade (#665)
* Update TODO comments & Remove old TODO comments

* Fix undefined bityRate pair

* Fix any props in TODO

* Add HashRouter

* Update publicPath

* Revert "Update publicPath"

This reverts commit 1ab9068df4d570cf50bc4f2fcd97bd775e9aa768.

* Use HashRouter only if site is downloaded

* Update conditions for router

* Update asset paths & Change publicPath in production

* Remove hoist-non-react-statistics

* Revert "Remove hoist-non-react-statistics"

This reverts commit abc017a3f3ca1a00bebdd9201f0d18770581d8c5.

* Add hoist-non-react-statics as dev depencency

* Initial tests

* Lock hoist-non-react-statics version

* Add webpack-include-assets & favicon-webpack plugins

* Add env var BUILD_DOWNLOADABLE

* Remove dll from prod build

* Speed up rebuild times

* Change var to const

* lodash tree-shacking finagling

* Make app aware of its serving location

* Fix failing test

* Remove downloadable plugin

* Merge hash-router and get build working

* Add missing package.

* Make app aware of its serving location

* Revert "Make app aware of its serving location"

This reverts commit 8dae3b399e0392272cde25d45443391f6fb6594e.

* Revert "Remove downloadable plugin"

* Move AutoDLLPlugin to be in dev only

* Remove require HtmlWebpackIncludeAssetsPlugin

* Remove extra file added

* Bring config up to date with webpack 2 rules, add multi threading and proper cache busting

* Fix favicons package from freezing build process

* Make exclude rules more simple

* update freezer webpack config

* Move webpack multithreading to full source map dev builds only

* update freezer webpack config (#687)

* Add HtmlWebpackIncludeAssetsPlugin
2017-12-30 14:29:04 -06:00
James Prado 78e3bcd7c1 Add HashRouter for downloadable version (#651)
* Update TODO comments & Remove old TODO comments

* Fix undefined bityRate pair

* Add HashRouter

* Update publicPath

* Use HashRouter only if site is downloaded

* Update conditions for router

* Update asset paths & Change publicPath in production

* Remove hoist-non-react-statistics

* Add hoist-non-react-statics as dev depencency

* Lock hoist-non-react-statics version

* Add webpack-include-assets & favicon-webpack plugins

* Add env var BUILD_DOWNLOADABLE

* Make app aware of its serving location

* Remove downloadable plugin
2017-12-30 10:22:28 -06:00
aitrean 97c32800e5 Check for appropriate keystore file type on upload (#646)
* Check for appropriate keystore file type on upload.

* Pass props to component.

* Add typing for rawFile
2017-12-28 23:11:07 -06:00
William O'Beirne 6513acd03d Generate Mnemonic Wallet (#659)
* Initial work at splitting out generate into two flows.

* Finish mnemonic flow.

* Convert keystore to state-based component. Remove all redux generate stuff. Remove generate help section. Fix styles.

* Add back button, switch to routing instead of state for generate pages.

* PR feedback.

* Alertify warning at generate. Linkify alternatives. Fix some alert link styles.
2017-12-28 13:54:07 -06:00
skubakdj 999587ea2f Disable Trezor in Sign & Verify Message Tab (#673) 2017-12-27 13:48:14 -06:00
HenryNguyen5 a660ba94d8 Cleanup test output, add separate coverage test command (#669) 2017-12-26 10:06:31 -06:00
Daniel Ternyak d279733fd7
Broadcast UI Cleanup (#658)
* add onlyTransactionParameters prop to SendButtonFactory to only show Transaction Parameters and not the serialized TX. Useful in Broadcast Signed Transaction so that the user is not presented with redundant data.

* add and pass onlyTransactionParameters props through SendButton from BroadcastTx

* Adjusted spacing of broadcast tx

* Move the qr code styles into css.
2017-12-24 15:56:40 -06:00
HenryNguyen5 5c0ca266f3 Fix gas price hydration (#650)
* Add repo wide prettier command to prepush

* Make config file explict, remove formatAll to prepush

* Fix gas price hydration

* Remove excess import

* Revert gasprice formatting
2017-12-20 22:15:56 -06:00
Daniel Ternyak b99f2fe0e8
Lower LocalStorage Store Throttle (#640) 2017-12-19 20:39:17 -06:00
HenryNguyen5 f39787152e Fix Miscellaneous Types (#635)
* Add repo wide prettier command to prepush

* Make config file explict, remove formatAll to prepush

* Fix react router typings

* Add more typings

* Fix event typings,  fix transition children
2017-12-19 16:46:34 -06:00
HenryNguyen5 9a9412641d Fix router props (#634)
* Add repo wide prettier command to prepush

* Make config file explict, remove formatAll to prepush

* Fix react router typings
2017-12-19 11:23:57 -06:00
Daniel Ternyak 820f545b83
Tag Release 0.0.6 (#622) 2017-12-18 20:09:25 -06:00
HenryNguyen5 da93fb1684 Prettier Reformat (#619)
* Add repo wide prettier command to prepush

* Make config file explict, remove formatAll to prepush
2017-12-18 17:29:26 -06:00
HenryNguyen5 08d4ccbdae Productionize Transaction Stack (#456)
* export conditional input and hoc

* Move typings and fields out of send transaction

* Move fields into their own component for decoupled handling, use conditional inputs to simplify disabled components

* 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

* Add offline render CB

* Make more render callbacks

* Transform NonceField into its self contained component

* Remove styling from nonce field

* Better network handling in nonce cb

* Move network nonce initialization to componentDidMount

* Remove unessesary conditional input

* Make nonce component return a BN

* Simplify Query render cb

* Add gas query and token query render cbs

* Re-write address field component, strip out ENS name functionality for now

* Add address and data as unit types

* Cleanup Address Field component

* Export gas query

* Re-write gas field component

* Cleanup gas estimation check

* Re-write Data field

* Transaction field skeleton

* Export transaction field actions

* Rename fields to map to ethtx fields

* Make reducers for fields

* Fix reducer module exports

* Export reducer

* Formatting fix

* Type return of GasQuery

* Add transaction field getter / setter component

* Make transaction fields more flexible

* Formatting fix

* Split transaction fields component into two

* Remove erroneous prop

* Fix field naming to follow ethereum transaction fields

* Merge valid prop into componeent

* Change address field to be redux based

* Convert nonce field to redux based

* Make component for passing in current transaction

* Re-write Gas component to use redux state

* Reduxify data field component

* seperate transaction fields redux state into field data and meta data

* Rename SetTransactionFields to be singular

* Make render callback components for getting/setting meta fields

* Add non-zero option prop for token balance render cb

* re-write unit dropdown component to be redux based

* Make ether the first option

* Fix tsc error on tokenquery

* Handle query string default values in unit drop down

* Add thunks to package

* Add helper function for encoding transfer data

* Handle co-dependencies between fields via thunks, seperate value fields into ether and token based

* Fix wrong typing

* Add token metafield as export

* Start scaffolding out amount field component

* Make render cbs for conditional selection of value and balance

* Make render callbacks nullable

* Progress commit -- get dynaming swapping between tokens and ether working

* Get gas estimation working between ether and tokens

* Remove nonce from breaking gas estimation

* Add better validation for amount field

* Add 500ms debounce to gas saga

* Self contain custom message component

* Add web3 awareness to wallet render cb

* Add render cb for checking if  wallet is unlocked

* Cleanup inline typing

* export available params

* Add render cb to render component when a query string exists

* Add boolean callback param that check that the transaction is filled by user

* Remove uneeded typings from send transaction

* Fix misnomer

* Self contain generate transaction button

* Compartmentalize more send transaction components

* Add query string warning, custom message and generate tx button to fields

* Cleanup send tx component with new components

* export render callbacks

* saga transaction scaffolding

* make gas saga fully declarative

* transaction lib renaming

* Seperate gasprice into its own generator

* Make action creators for tx sign actions

* Clean up signing saga, introduce reducer for signing, make HW wallet libs compatible with new tx format, fix some typing with ethereumjs-tx

* Add TransactionComparison component

* Add pushTx

* Progress commit --  Streamline web3 and local signing / broadcasting flows. Need to still implement reducers for broadcasting and notifications

* Get local transaction broadcasting working

* re-write confirmation modal to be redux based

* Fix spacing and import

* Move confirmation modal to be attached to send button, create send button

* Properly handle broadcasting for conf modal

* Handle gas cost > balance for send everything

* Add signing status as its own component (#454)

* Fix ledger errors not showing on notifs

* Make dedicated actions for swapping from tokens to ether and ether to tokens

* Split actionTypes file

* Cleanup comments

* Cleanup comments

* Fix various tsc errors

* Lay down infrastructure for saving configurations per-wallet.

* Add pending and rejected states properly to token values.

* Add custom token form improvements.

* Fix metamask transaction errors

* Fix send entire balance estimation

* Fix add token form from never being enabled.

* Initial pass at account tab with send and view wallet tabs.

* Fix inactive tab.

* Hide private key, toggling

* Progress commit -- Replacing render callbacks with selectors, put  validation logic in sagas

* Moved the restore keystore functionality to view wallet info, and put it in a modal / util file.

* Fix navigation link active

* Force read only wallets to info tab.

* Remove commented code

* Saga-ify send everything

* Scan for new tokens, track saved tokens, only request tracked tokens on initial load.

* Add custom token to current wallets tracked tokens.

* Rework remove token icon.

* Adjust button margin

* Remove the rest of the needless render callbacks for selectors, sagaify nonce

* Bug fix send transaction

* remove unused redux-thunk

* Move fields to general components

* Clean up saga structure

* Refactor broadcast tx

* Implement better validation logic, get contract deploy working

* PR feedback.

* Convert tokenbalances component to connected redux component.

* Addressed feedback from Henry.

* Progress commit -- Implement Interact logic, needs manual testing

* Get rid of commented code

* move exports after declarations

* add tests, rough draft

* Get contract method calls working

* Bugfix contracts

* Cleanup hex prefixing

* Reset transaction state on wallet change

* Get rid of old send transaction component

* Disable sign transaction button when network request is underway

* Flatten send button tree, make nonce human readable in confirmation modal

* Add ghetto cost breakdown component, fix token field validation

* Create Generic SubTab and use in Send

* MVP of mnemonics with sub-tabs in Create Wallet view.

* Do dynamic revalidation

* move exports after declarations

* add forgotten signing tests

* update token spec

* update currentValue spec

* update validationHelpers spec

* Address TODO - use injected history to push navigation state instead of hardcoding window.location

* Use SubTabs in Contracts

* Fix revertPath prop for AcceptOrRedirectModal

* Use subtabs in SignAndVerifyMessage

* Routing for subtabs

* Fix routes, adjust sizing.

* Remove unused import

* Request nonce in base 10

* Add offline override to unit display

* Make cost breakdown less buggy

* Add non standard transaction warning

* Fix amount validity

* Cleanup datafield validity

* Display notif on gas estimation failure

* Add post-signing verification against fields, clean up gas price

* Fix tsc errors

* Code cleanup

* add exports to functions

* add specs for sendEverything and reset sagas

* delete duplicate files

* make tslint happy

* Merge develop

* Fix develop regressions

* Delegate nonce pulling  to wallet being set

* Clarify non standard transaction

* Make address a buffer to avoid leading 0's bug

* Clarify validation helper comment

* Increase debounce time, add console error

* Better validation for non-standard transactions

* Add verification skipping for broadcasting txs

* Fix state and wallet resetting for contract tabs

* Fix some spec files, remove contract.spec

* Remove broadcasting specs from wallet

* Close DeterministicWalletModal on confirm

* Revert "Close DeterministicWalletModal on confirm"

This reverts commit 16c860e854ca29e9de754164d8be5e24f722cbad.

* Reset hardware wallet state on unlocking. Dont render walletdecrypt content when its hidden.

* Fix client side broadcast checking

* Add more state resetters in error scenarios

* Fix gas estimation

* Add validation for value transactions to contract creation

* Add transaction comparaision differentiation depending on wallet type

* Fix token row display balance showing twice

* Properly handle failed transactions

* Handle bad error messages

* fix broken tests

* fix broken test

* Progress commit -- Implement generic subtab types

* Remove react router v3

* Remove unused routes

* Clean up Tabbing code, add onTabChange handler

* Fix tests

* Add nav fix

* revert opinionated sub-tab implementation

* additional reverts

* Add decimal validation

* Make gas price single source of truth, dont save any transaction state other than gas price

* Get rid of old wallet.spec reducer tests

* Add decimal validation when re-validating gasCost

* remove utilities view

* Remove cost breakdown

* Remove local gas estimation warning

* Create getShownTokenBalances selector; use in UnitDropDown and Equivalent Values

* Convert reducers to switch case

* Clean tsc errors

* Fix failing test

* fix tscheck error

* Add number validation to gas field

* Fix misaligned input dropdown

* Revert "Fix misaligned input dropdown"

This reverts commit a40a4c0e8d52471dea01e6727f741a737b798695.

* Set window timeout long enough for node switch to be persisted to state

* Transaction Refactor Style Fixes (#615)

* Fix unit dropdown alignment by rendering it in AmountField, and fixing a missed bootstrap case.

* Fix modal amount and gas text.

* Fix misaligned dropdown

* Update conditions for NavLink is-active class
2017-12-18 15:23:31 -06:00
James Prado 5809069437 Fix undefined bityRate pair (#597)
* Update TODO comments & Remove old TODO comments

* Fix undefined bityRate pair
2017-12-15 19:17:53 -08:00
William O'Beirne f6410646c0 Fix iOS Safari with Polyfills (#599)
* Add polyfills, error text to error screen.

* copy update to warn users about ensuring that they only send us non-sensitive info
2017-12-15 18:53:27 -08:00
William O'Beirne cf57d6e2ab Fix generate in safari (#595) 2017-12-15 09:48:17 -08:00
William O'Beirne 30f3aebc73 Reworked unlock header toggle (#586)
* Adjust style of buttons to toggle unlock header.

* Handle mobile, restore button background.
2017-12-14 20:52:59 -08:00
timeffect bc19c877a5 Mnemonic Delimiters (#552) 2017-12-14 17:08:24 -08:00
James Prado d1174fb324 Address Miscellaneous Todos (#534)
* Fix TODO issues

* Update / Removd old comments

* Update types & Fix todos
2017-12-14 16:51:42 -08:00
William O'Beirne 2dde67c79b "Join Us" message for console snoopers (#585) 2017-12-14 15:47:11 -08:00
Daniel Ternyak 38e08fce2b
Fix Store Subscription Throttle Misconfiguration (#579) 2017-12-13 21:28:35 -08:00
William O'Beirne 9a073fd1d5 Minor Visual Touchups (#569)
* Adjust white block shadows and border radii

* Speed up global transitions.

* Adjust button styles.

* Adjusted notification styles

* Give navigation background.

* Reduce form input glow.

* Adjust input glow

* Adjust input glow.
2017-12-13 21:08:45 -08:00
Evan Saulpaugh c5940a65cd Fix Typo in Identicon (#553) 2017-12-11 15:36:47 -08:00
William O'Beirne 610805aadd Equivalent Values Fixes (#500)
* Initialize with no requested currencies, so that the initial request always fires.

* Adjust tokens with different decimals for equivalent values.

* Reuse libs units function.

* Create lib function and tests for base conversion behavior.
2017-12-11 12:36:22 -08:00
James Prado e6a958d6c1 Logout Prompt on Navigation (#540)
* Update TODO comments & Remove old TODO comments

* Add NavigationPrompts to WalletDecrypt

* Remove commented code

* Move NavigationPrompt & Remove formatting diffs

* Remove formating diff

* Bind WalletDecrypt action creators & Add new selector for readonly wallet
2017-12-11 12:17:44 -08:00
James Prado 72e30643a9 Normalize Swap Reducer (#443) 2017-12-11 09:44:53 -08:00
Daniel Ternyak ae708e70a1
Error Screen on Exception (#539)
* Create ErrorScreen component to show Errors when a component catches.

* Show ErrorScreen component when Root component's componentDidCatch lifecycle method is called.

This should catch all of the applications errors, as Root is at the top of the tree.

* Convert ErrorScreen Component to SFC

* Address PR comments
2017-12-07 22:16:27 -08:00
James Prado 0759ccd23f Update Knowledge-Base Links (#533) 2017-12-06 15:04:57 -08:00
Daniel Ternyak 7e154175f7
Address Derivation (CI) (#529)
* improve derivation-checking performance by batching docker calls; move into spec dir

* remove npm command to run derivation-checking; create 'int-test' (integration) command and hook up into jest

* add integration testing to CI; configure docker / docker image (dternyak/eth-priv-to-addr) in CI

* docker build -> docker pull

* use travis build matrix to group tests and improve build times

* remove int-test call

* attempt travis 'job' with all tests running in parallel

* remove typo

* attempt travis 'job' with all tests running in parallel (round 2)

* organize integration tests

* refactor/cleanup

* refactor/address comments
2017-12-05 22:24:40 -08:00
William O'Beirne 8f878abab1 Mobile CSS Improvements (#525)
* Banner announcement cuts off mailchimp on mobile

* Hide site version on mobile. Added version to footer as well in case someone _really_ needs to check it.

* Shrink pre-footer font size on mobile.

* Fix column breakpoint for force offline send (Was stacking, now remains side-by-side.)

* Reduce header dropdown sizes at mobile. Force gas dropdown to the left side so its not offscreen.

* Columnify contracts for better mobile behavior and less code.

* Remove leftover string interpolation

* Better mobile header / nav sizing.
2017-12-05 11:51:21 -08:00
William O'Beirne 6cb0ebff5b Fix EquivalentValue crash on invalid tokens (#511) 2017-12-01 14:40:27 -06:00
Daniel Ternyak 4b3def2fce
Tag Release 0.0.5 (#507) 2017-12-01 10:34:27 -06:00
skubakdj c54453729c Web3 Future Proof, Refactor, Bugfixes (#481)
* correct web3 hide/show logic

* refactor web3 node lib

* refactor web3 wallet to use new web3 node

* update web3 node init to use new lib

* update web3 wallet saga to use new lib, address unlock flow bug

* remove comments

* add validators for web3 methods

* update web3 node to use latest standards

* remove legacy function

* update lib call, add account unlock check

* add & use new flavor of unsetWeb3Node

* address PR feedback

* add test, update tests, update snapshot
2017-12-01 10:32:29 -06:00
William O'Beirne b638b746de Custom Nodes - Final Touches (#501)
* Add warning about matching nodes, only allow one url:port combination of nodes.

* Fix up alert styling.

* Custom network form.

* Add custom network to redux store. Setup infrastructure for removal and display.

* Persist custom networks to LS, show them in display.

* Force chain id, make typing happy.

* Display custom networks in network dropdown.

* Fix form validation, purge unused custom networks.
2017-12-01 10:09:51 -06:00
William O'Beirne c88ff3ba69 Arrow function to prevent error in Sign Message (#502) 2017-11-30 15:58:28 -06:00
Eddie Wang 818ad9fef5 Add Private key to V3 keystore functionality (#336)
* setup components, reducers, actions, and added routes

* removed redux, using local state and ethereumjs-wallet

* added validation and state reset

* added visibility options and changed btn colors

* updated isValidPrivKey and updated some components to stateless functional comp

* componentize input and add placeholder message

* removed cn from KeystoreDetails

* adds isValidPrivate to buffer check and min pw length to 0

* remove packagelock to fix merge conflict

* added utilities tab removed keystore tab

* adds fixpkey in validators and uses it across two components

* added checksum removal and btn css fixes

* Fixed en.json formatting - also removed fixedPkey

* Added unit tests for isValidPrivKey

* add runtime checks and rename stripHexPrefix to strippedPrivateKey

* switch back to stripHexPrefix

* Add constant for n-factor

* enforce 9 char minimum
2017-11-30 14:16:30 -06:00
greenkeeper[bot] 92a4551085 Update typescript to the latest version 🚀 (#467)
* chore(package): update typescript to version 2.6.2

* fix RPC type error
2017-11-30 11:36:10 -06:00
Eddie Wang 980366694c RPC Error Handling (#384)
* create ensureOkResponse and check against RPC responses

* Merge with develop branch

* added single unit test

* main nodes added

* getBalance method

* remove console.log

* minor conflict fix - readd polyfill to integration test

* added two more method tests

* seperate rpcnode from extended classes

* fixes etherscan

* added all tests

* revert files with only formatting changes

* remove console.logs - still need to update snapshot before tests will pass

* updated snapshot due to RpcNode fixes for Infura and Etherscan nodes

* added RpcNodeTest config so we don't rely on constants in code

* undo formatting changes

* Multiple fixes to error handling tokens.

* Fixed TSC errors

* Minor styling edit - change async func to promise

* changed shape of tokenBalances

* change balance type back to stricter TokenValue type

* remove package.json change and include test for error state.

* minor change removing unneeded line of code

* added longer timeout for api

* update snapshot
2017-11-29 23:35:17 -06:00
skubakdj a40b22fc68 Modified File Blacklist for Travis (#448) 2017-11-29 22:26:27 -06:00
skubakdj 6c09e7160a Saga Testing (#415)
* add exports to config saga, refactor

* add config saga tests

* add exports to necessary files

* add remaining saga test & snapshots

* update orders saga spec to use Infinity constant

* update dWallet saga spec snapshot

* refactor config saga slightly

* update config saga spec

* update config saga snapshot

* update rates saga spec

* remove unused vars from config saga spec
2017-11-29 22:07:16 -06:00
William O'Beirne 5d3e461301 Read-Only Address Wallet (#386)
* Check in.

* Add read only wallet and new types for that. Convert some components to require full wallet.

* Fix readonly property, fix uncaught throw.

* Disable address only on some tabs.

* Use FullWalletOnly render callback to handle signing.

* Work around uncertain wallet type.

* Fix function args.

* Undo bug fix that should be done in another branch.

* Disable button while address is bad.

* Remove log.

* Convert anonymous functions to class functions.
2017-11-29 17:14:57 -06:00
William O'Beirne 5b07395ee4 Throw on CryptoCompare API error (#486)
* Throw properly on API error.
2017-11-29 13:45:38 -06:00
Eddie Wang 01f020ff59 Strip hex prefix from raw private key displayed during wallet generation (#388) 2017-11-28 18:56:16 -06:00
greenkeeper[bot] 6da5fac1d1 Update @types/history to the latest version 🚀 (#389)
* chore(package): update @types/history to version 4.6.2

* Rework type to newly added history overrides.
2017-11-28 18:47:29 -06:00
William O'Beirne 2451f817d4 Display less than for low balances (#485)
* Display less than for short balances.

* show 4 decimals places for short value
2017-11-28 18:28:30 -06:00
William O'Beirne 1221a73a46 Better Offline Detection / Handling (#478)
* Change navigator.onLine to actually pinging the network. Refactor notifications to take Infinity instead of 'infinity'

* Stop polling when forced offline.

* Show spinners if unit display balance is null, show offline text if were actually offline.

* Fix issue with typescript and connected union-prop components.

* Only ping the node when navigator.onLine changes.
2017-11-28 18:17:26 -06:00
James Prado 8d91979e26 Refactor & Update Footer to Match V3 (#455) 2017-11-27 23:43:30 -06:00
James Prado 34ca5a6d1d Show confirm transaction copy during hardware wallet signing (#454)
* Add msg for users to confirm tx on hw

* Update msg
2017-11-27 22:52:52 -06:00
William O'Beirne 37184e4c4e Remove duplicate transaction.ts file (#468) 2017-11-27 22:33:38 -06:00
skubakdj 142ec4adc8 Redux-Form Refactor - Bugfix (#469)
* remove walletPasswordForm prop

* update GenerateWallet test

* update GenerateWallet snapshot
2017-11-27 16:27:49 -06:00
skubakdj 2570abd977 Remove Redux-Form in Generate Wallet (#466)
* remove redux-form from package.json, vendors, reducers

* refactor GenerateWallet components, remove redux-form dependency
2017-11-27 14:31:23 -06:00
Daniel Ternyak a5fd608f17
Re-Order Decrypt Options to Match V3 (#445) 2017-11-21 18:32:20 -06:00
James Prado d28f2cee1f Remove Bity Rates from Local Storage (#435)
* Remove bityRates from localstorage

* Store swap.bityRates in ls as initial value

* Store swap bityrates as empty obj in ls
2017-11-21 13:55:46 -06:00
James Prado 0ef6380777 Wallet-Decrypt/Send Tooltips (#436)
* Update Help component && Fix some css errors
2017-11-21 12:33:20 -06:00
Daniel Ternyak 5e18ec4311
Tag Alpha 0.0.4 (#428) 2017-11-18 14:54:08 -06:00
William O'Beirne c0cd668c64 Custom Nodes (#322)
* Layed out components for custom nodes.

* Outline of custom nodes. Still missing various features and error handling.

* Persist custom nodes to local storage.

* Make custom nodes removable.

* Add latest block functions, call it when switching nodes.

* Initialize correct node, move node utils into utils file.

* Fix names

* Send headers along with rpc requests.

* Remove custom network options for now.

* PR feedback.

* One last log.

* Fix tests.

* Headers in batch too.

* Switch to node when you add it.

* Reduce hackery.

* Clean up linter and tsc.

* Fix latest block hex conversion.

* Unit tests.

* Fix missing property.

* Fix Modal title typing.
2017-11-18 14:33:53 -06:00
William O'Beirne 1510533ec7 Equivalent values for all tokens (ETH + ERC20s) (#420)
* Fetch all token rates at once. Add option for displaying all token values.

* Ensure spinner always shows before equivalent values are ready.

* Fix up test.
2017-11-18 14:15:02 -06:00
skubakdj c31490c8b4 Redux Reducer Tests (#390)
* set return type in resetWallet action creator

* update config reducer test

* update generateWallet reducer test

* update swap reducer test

* update wallet reducer test

* create customTokens reducer test

* create deterministicWallets reducer test

* create ens reducer test

* create notifications reducer test

* add crypto compare success/fail actions

* add rates reducer test

* remove unnecessary comments

* remove more comments

* remove duplicate import

* update wallet reducer test to use BN

* update dWallet reducer test to use BN

* update wallet reducer tests

* update rates reducer tests
2017-11-17 13:12:27 -08:00
Daniel Ternyak 8f69f103e0
Set Bity Rates Polling Cycle to 30 Seconds 2017-11-16 14:25:30 -06:00
skubakdj 2a6d93eaa4 Unset Web3 Node on Wallet Reset (#409)
* unset web3 node on wallet reset

* use wallet TypeKeys enum instead of strings
2017-11-16 12:16:09 -06:00
William O'Beirne 8bc1a348c7 Equivalent Values for Tokens (#366)
* Add select with tokens.

* Reformat state shape to allow multiple currency rates. Show those rates when selected.

* Add loader
2017-11-14 23:51:09 -06:00
James Prado 151b2d762f display network name if balance loaded (#402) 2017-11-14 23:47:03 -06:00
James Prado 05a9770a9b Fix account balance underline & spacing (#401) 2017-11-14 23:12:10 -06:00
James Prado 0d5d0cea9a Wallet Loading States & Spinner Update (#334)
* Add disclaimer modal to footer

* Remove duplicate code & unnecessary styles

* Fix formatting noise

* remove un-used css style

* Fix tslint error & add media query for modals

* Nest Media Query

* Replace '???' with Spinner & update spinner

* Add loading states for wallet balances

* Update wallet test

* Remove excess data passed to wallet balance reducer & Fix wallet balance types

* Merge 'develop' into 'loading-indicator'

* Add 'light' prop to Spinner

* Only show spinners when fetching data

* Remove format diff

* Apply naming conventions

* Remove network name when offline
2017-11-14 21:44:55 -06:00
Eddie Wang a9f78011cb Swap UX Cleanup (#339)
Fixes #226
Fixes #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
2017-11-14 10:37:56 -08:00
HenryNguyen5 8fe664c171 Replace bignumber.js with bn.js (#319)
* 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
2017-11-12 11:45:52 -08:00
skubakdj c9c147db52 Wallet Decrypt - Web3 (MetaMask / Mist) (#303)
* add support for web3, disabled, and hidden in node dropdown header

* add web3 node config actions

* add web3 wallet actions

* add web3 node support

* add web3 wallet & web3 wallet ui selection

* add web3 wallet & config sagas

* add web3 transaction support to SendTransaction tab

* add web3 node check & reset to redux store

* remove comments from Web3.tsx

* update comment

* correct spacing display issue in Web3 component

* convert getTransactionCount response to string

* disable web3 wallets in offline mode

* implement sendCallRequest method on Web3 node

* remove unused vars

* make typescript happy

* convert wallet constants to enum & apply to wallet action files

* update wallet reducer to use TypeKeys enum

* remove unnecessary console log

* remove unnecessary await

* make token balance math more readable

* use NewTabLink in Web3.tsx, allow NewTabLink to accept className

* move web3.ts to non-deterministic folder

* update imports & method names, implement message signing

* add web3 wallet export

* use bufferToHex
2017-11-09 19:30:20 -08:00
HenryNguyen5 a00269507c EthereumJS-Wallet (Part 3) (#316)
* 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
2017-11-08 10:16:43 -08:00
HenryNguyen5 3bea632a9a EthereumJS-Wallet (Part 2) (#310)
* 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
2017-11-07 10:42:53 -08:00
William O'Beirne cb130a9bb6 Warn / Prevent Outdated Browsers from Wallet Generation (#329) 2017-11-06 22:24:54 -08:00
James Prado 2075a416ae Animate transaction notifications & fix styles (#305)
* Add disclaimer modal to footer

* Remove duplicate code & unnecessary styles

* Fix formatting noise

* remove un-used css style

* Fix tslint error & add media query for modals

* Nest Media Query

* Add react-transition-group

* Animate notifications with react-transition-group

* Identify issue with notifications getting overridden

* Update RTG (react-transition-group) to v2 & identify keys as animation issue

* Add unique id on successful transactions for unique keys

* update classNames, remove unused import

* Revert removing lodash

* Remove unnecessary test util

* Remove formatting noise

* Remove all formatting noise

* Update CSS & Change notification unique id

* Add unique id for each notification
2017-11-06 22:20:19 -08:00
William O'Beirne ad084745c7 Various unlock / send style fixes (#331)
* Fix table spacing.

* Fix modal button wrapping

* Fix hanging send transaction button.

* Space
2017-10-30 14:29:27 -07:00
skubakdj 68e5972a03 Sign & Verify Message (#315)
* 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
2017-10-30 12:10:25 -07:00
skubakdj 9d58329450 Forward Angular Routes from V3 (#320) 2017-10-29 01:24:28 -07:00
William O'Beirne 5b81c42d27 Fix Trezor throwing on connect (#330) 2017-10-29 01:16:06 -07:00
HenryNguyen5 3434ab4ef9 Move thirdparty wallet definitions in ethereumjs-wallet out of root into /thirdparty (#325)
* Fix definition module for thirdparty wallets
2017-10-27 13:30:06 -07:00
HenryNguyen5 05725b660b EthereumJS-Wallet Prep (Definition and Package) (#309)
* 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

* Use proper interface naming for V3Wallet

* Use proper interface naming for PublicKeyOnlyWallet
2017-10-25 17:20:05 -07:00
HenryNguyen5 346f777976 Add definition file for bn.js (#317)
* Add definition file for bn.js

* Remove types-bn

* make isBN a static property

* Swap out bignumber for bn in vendor

* Remove types-bn
2017-10-25 12:33:57 -07:00
James Prado 70a2b3ca9a Update Jest & Enzyme, Add snapshot tests (#307)
* Add disclaimer modal to footer

* Remove duplicate code & unnecessary styles

* Fix formatting noise

* remove un-used css style

* Fix tslint error & add media query for modals

* Nest Media Query

* Update Jest & Enzyme, Add snapshot tests

* Fix tslint errors in /spec, Update mock localstorage

* Update types in tests, Fix tslint error

* Specify module versions for browser

* Update sendTransaction snapshot
2017-10-24 19:17:26 -07:00
HenryNguyen5 9095fc0986 Remove addProperties helper (#318) 2017-10-23 19:59:18 -07:00
Daniel Ternyak d72b478c89 Broadcast Tx (#304)
* 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
2017-10-23 13:48:55 -07:00
HenryNguyen5 b94bede473 Add "No Unused Params and Locals" Linting Rule (#297)
Add "No Unused Params and Locals" Linting Rule
2017-10-18 19:29:49 -07:00