Commit Graph

55 Commits

Author SHA1 Message Date
William O'Beirne ecccdcfc33 MEW-01-005 Web - Remove all HTTP links (#978)
* Replace custom linter rule with no-http-string rule. Fix exceptions.

* Replaced all http links in translations with https links.
2018-02-01 16:51:14 -06:00
William O'Beirne 7fe2888633 Passwordify Private Key & Mnemonic Inputs (#925)
* Create reusable password toggle component, convert private key and mnemonic to it.

* Convert keystore modal to togglable password.

* Remove the restore keystore tab code (defunct).

* Replace wallet info with togglable password. Allow for controlled togglable password.

* Convert last password component (generate) and cleanup unneeded files and styles.
2018-01-26 16:11:52 -06:00
William O'Beirne a58097eeaa Various Browser Quirk Fixes (#881)
* Fix large images in onboarding in safari.

* Fix shapeshift banner centering, adjusted spacing and logo.

* Fix jagged rates.

* Fix small password input on Firefox.

* Remove top and bottom padding on form inputs that would cause cut off text.

* Dont remove top and bottom padding on textareas.

* Prevent flickering from rerender of promos.
2018-01-22 14:44:13 -06:00
James Prado b7ba8ac22d Routing Improvements (#859)
* Nest Routes

* Update routing for subtabs

* Revert 'remove subtabs component'

* Update contract routes

* Update subtabs component

* Remove typo

* Update routing to handle disabled subroutes

* add disable prop to request payment tab

* Update request payment disabled condition

* Add CaptureRouteNotFound & RouteNotFound components

* Update ENS routing

* Remove any type

* Display 404 before unlocking wallet
2018-01-22 06:24:05 -06:00
Daniel Ternyak ab5fa1a799
Support Non-Ethereum Networks (#849)
* Make UnlockHeader a PureComponent

* MVP

* actually disable wallet format if not determined to be valid format for wallet

* default to correct derivation in mnemonic modal

* cleanup

* fix tslint

* use enums for HD wallet getPath

* Add stricter typing

* Fix labels not updating on selector

* Ban hardware wallet support for custom network unsupported chainIds

* Fix type error

* Fix custom node dPath not being saved

* Fix mnemonic modal

* default path bugfixes

* add react-select

* misc fixes; rabbit holing hard.

* fix tslint

* revert identicon changes

* reload on network change :/

* actually reload on network change

* really really reload on network change

* tslint fixes

* Update styles

* set table width

* fix package versioning

* push broken sagas

* Fix saga test

* fix tslint

* address round of review

* move non-selectors out to utilty; adjust reload timer

* cleanup network util comments

* manage wallet disable at WalletDecrypt instead of in both WalletDecrypt and WalletButton

* Separate WalletDecrypt props into ownProps / StateProps

* disable payment requests on non-eth networks

* specialize connect; separate props

* remove unused state prop

* remove bad import

* create tests for networks

* Clarify Lite-Send error on non-ethereum networkS

* remove string option for network config name

* Create concept of always-on 'EXTRA_PATHS'; include SINGULAR_DTV legacy dPath in 'EXTRA_PATHS'

* fix multiple imports

* address PR comments
2018-01-20 14:06:28 -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
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 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
William O'Beirne cf57d6e2ab Fix generate in safari (#595) 2017-12-15 09:48:17 -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
James Prado 0759ccd23f Update Knowledge-Base Links (#533) 2017-12-06 15:04:57 -08: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
Eddie Wang 01f020ff59 Strip hex prefix from raw private key displayed during wallet generation (#388) 2017-11-28 18:56:16 -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
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 6f7e3c27e2 Fix regressions introduced in #241 (#247)
* Fix location query

* Remove unnecessary polyfill

* Fix tslint error & update history types

* Parse search str using Node Query String

* Revert "Parse search str using Node Query String"

This reverts commit 0a482dabf29c3fbcbfd3112b974d6b98c14dca2e.

* fix formatting

* Add query-string

* Rename App container to TabSection & pass it location prop

* Add react-router withRouter HOC to NavigationLink

* various adjustments/finalizations

* Add location to props interface
2017-10-03 21:13:49 -07:00
James Prado ad83b5a181 Update React-Router(-DOM) to 4.x and Simplify Routing (#241) 2017-09-28 19:09:01 -07:00
Daniel Ternyak af84a589c5 Redux promise middleware (v2) (#233)
* add redux-promise-middleware to package.json and update package-lock.json

* intergrate redux-promise-middleware and simplify rates by replacing saga with promise

* fix unrelated breaking test

* -improve user messaging when network request fails. \n Clean up rates actions and reducers

* Address tslint errors
2017-09-25 20:41:11 -07:00
Daniel Ternyak 3660260efb Fix Typescript Refactor (#229)
* Remove console logs.

* Fix undefined error by binding method.

* Show 0's in input field.

* Remove various unused imports.
2017-09-24 20:29:49 -07:00
HenryNguyen5 5d4b36d453 Migrate to Typescript (#224)
* Refactor babel/types

* Refactor entry point

* Refactor actions

* Refactor api

* Full project refactor -- Broad type fixing sweep

* - completely fix merge conflicts
- handle various type errors

* Add tslint to package.json

* Dependency cleanup

* Fix module resolution

* Work on type definitions for untyped libs

* progress commit

* Add more definition typing

* various type additions

* Add unit types

* Fix sagaiterator  + unit types

* various types added

* additional type additions

* Fix typing on Sagas

* remove flowfixmes; swap translate for translateRaw

* Get rid of contracts - awaiting Henry's contract PR

* Remove contracts from routing

* Fix most of actions/reducers

* refactor actions directory structure

* fix reducer action type imports

* Fix most of type errors pre-actions refactor

* fix action creator imports in containers

* Refactor more

* Refactor index of actions

* fix action imports; use module level index export

* package-lock.json updated

* Use action types in props

* Type up action creators

* Fix most of connect errors

* Typefixing progress

* More types

* Fix run-time errors

* Caching improvements for webpack

* Remove path resolve from webpack

* Update non-breaking packages to latest version

* Fix token typing

* Remove unused color code

* Fix wallet decrypt dispatch

* Set redux-form related props/functions to ANY, since we're stripping it out later on

* Revert BigNumber.js package changes

* Extend window to custom object for Perf

* Format Navigation

* Typecase keystore errors as any (since we shouldnt touch this)

* Push wallet context fix

* - find/replace value->payload in swap
- properly type swap state properties
- extract inline reducer into reducer function

* - type local storage retrieved items as generic

* - bind all RPCClient methods with fat arrow

* - reformat

* Change to enums for constants

* Change state into any

* Fix swap errors

* ensure that seconds are passed into state as integers

* Fix rest of errors

* use parseInt explicitly instead of type coercion

* Fix derivation-checker, remove flow command, add tslint command, add tslint-react, tell travis to use tslint instead of flow.

* Whoops, remove those tests.

* Remove unsupported (yet) config option.

* Fix precommit to target ts and tsx files.

* Fix some errors, ignore some silly rules.

* Revert jest to v19, use ts-jest and make all tests typescript. Fixes all but one.

* Get rid of saga tests

* Fix tslint errors
2017-09-24 19:06:28 -07:00
Daniel Ternyak d654b60949 Fix Send Regressions (#170) 2017-09-07 15:14:52 -05:00
William O'Beirne de7d4fbaa2 v3 Style Import (#151)
* Convert bootstrap to sass instead of checked in and less

* Darken body, adjust header.

* First pass at tab styles, each tab will need a lot of individual love tho.

* Update footer to main site content, improve responsiveness.

* Missing key added.

* Fix dropdowns.

* Convert GenerateWallet HTML over, still needs styling.

* Send form.

* Current rates styled.

* CurrencySwap form styles.

* SwapInfoHeader styled.

* Finish up swap restyling, minor usability improvements for mobile.

* Fix up notifications / alert customizations

* Import v3 variables.

* Fix notification spacing.

* Align input height base with buttons.

* Revert height base, add additional bootstrap overrides.

* Grid overrides.

* Move overrides to their own folder. Adjust naming.

* Fix inconsistencies.

* Style generate wallet pt 1.

* Style generate wallet pt 2

* Style generate wallet pt 3

* Fix swap

* Added some missing overries, fixed the fallout.

* Remove header text, indicate alpha version.

* Fix radio / checkbox weights.

* Bind => arrow

* Convert simpledropdown to proper form select, instead of weirdly implemented nonfuncitoning dropdown.

* Fix token balances buttons, footr icons.
2017-09-05 14:52:01 -05:00
William O'Beirne f5b6a49463 Translation updates (#120)
* Updated all translations, moved into their own folders.

* Switch translations to use Markdown component.

* Remove markup tests, since were using a module now.

* Fix flow errors, render react elements instead of dangerouslysetinnerhtml.

* Make translate a connected component, so it updates with Redux.

* Fix flow errors

* First pass at returning raw when needed for placeholder.

* Added aria test.

* Fixed flow errors and linter warnings.

* Move settimeout to saga.

* Change reload to 250 ms from 1500 ms
2017-08-28 13:05:38 -05:00
skubakdj 982d70a56c Use async in download wallet (#127)
* convert keystore gen to async

* add & use type UtcKeystore

* add types, refactor

* remove unneeded prop checking
2017-08-24 10:34:08 +02:00
skubakdj 187d2e16ad Fix flow errors (#110)
* simplify getAddress method

* refactor to handle async wallet getAddress

* fix bug on BaseWallet

* remove unnecessary catch
2017-08-09 07:01:34 -05:00
William O'Beirne 1aad9d1c21 Standardize Redux Actions / Reducers (#95)
* Convert Swap to consistent style

* Generate wallet reducer cleanup.

* Confirm empty action in swap reducer

* Union types. Fix gen wallet collision

* Fix not using all actions in reducer. Added reducer state for is fetching from bity. Added todo to make that a loader.

* Readme instructions.

* Remove common action constants.

* Bring all actions and reducers inline with readme instructions.

* Readme fixes

* address comments
2017-07-27 12:05:09 -05:00
Daniel Ternyak 0b72b8ff6a update GenerateWallet hasDownloadedWalletFile prop type from invalid 'boolean' to valid 'bool' type (#58) 2017-07-17 20:47:01 -05:00
Daniel Ternyak 37008e9fe9 Complete Generate/Create Wallet Flow (#38)
* GenerateWallet: Download real UTC file.

* Paper wallet (#45)

* Working paper wallet (#52)

* Reset Generate Wallet state when component will unmount
2017-07-16 16:02:13 -05:00
Daniel Ternyak 1a4fac1dec accidently swapped verb and namespace order for action creators originally; fixed 2017-06-20 01:28:22 -05:00
Daniel Ternyak ba6d46e91d reformat 2017-06-20 01:14:35 -05:00
Daniel Ternyak ff81133b5e reformat 2017-06-20 01:14:23 -05:00
Daniel Ternyak 3644cb5515 format 2017-06-20 01:13:21 -05:00
Daniel Ternyak 3cee501da1 format 2017-06-20 01:08:26 -05:00
Daniel Ternyak 9a612eb6de use standard action creator naming convention 2017-06-20 00:59:54 -05:00
Daniel Ternyak c46ed8f6ed clean up Generate Wallet actions to not use boilerplate 2017-06-19 22:15:38 -05:00
Daniel Ternyak ee8c411c4e Remove comments. 2017-06-11 20:08:19 -05:00
Daniel Ternyak db70e17a67 PR comments 2017-05-30 22:34:57 -05:00
Daniel Ternyak 62dcec96d9 fix merge conflicts 2017-05-30 18:35:30 -05:00
crptm 96cf7f5969 eslint 2017-05-31 00:36:52 +04:00
Daniel Ternyak f4e7f0648b improve GenerateWalletPasswordComponent translation support 2017-05-30 01:18:44 -05:00
Daniel Ternyak cf36d9eb52 footer, generate wallet improved translations 2017-05-29 23:53:28 -05:00
Daniel Ternyak 180173735e use new redux state and actions in component 2017-04-27 01:15:27 -05:00
Daniel Ternyak 5d63e693ec pass new redux state and props through smart container 2017-04-27 01:15:07 -05:00
Daniel Ternyak 947bc1ce4b Create stateless component for Ledger Trezor Warning on GenerateWallet Page 2017-04-27 01:12:15 -05:00
Daniel Ternyak 0c457c8e82 whitespace reformatting 2017-04-26 23:02:38 -05:00
Daniel Ternyak 3d8461617e restructure routing/container structure 2017-04-26 22:58:01 -05:00
Daniel Ternyak 6f6826c88c Bring in Confirm/Download and wire up initial local state 2017-04-26 22:16:01 -05:00