* 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
* offline-send mvp
* cleanup unneeded imports
* - create pollOfflineStatus action, action creator, interface
* expand UnlockHeader when collapse-button is clicked, instead of div
* kick-off pollOfflineStatus upon SendTransaction mount.
* Create sagas for polling offline status
* remove comment
* - create CONFIG_FORCE_OFFLINE action, action creator, interface
* Adjust OfflineToggle terms to "Force Online/Offline", and understand when forced offline and when really offline.
* - Assume offline in SendTransaction when either offline or forcedOffline
* - handle forceOffline action in reducer
- adjust state type / provide default state for forceOffline in config reducer
* adjust test to pass with different key name
* fix incorrect import
* - allow size to be specified in offline toggle
* - Decode and display nonce in confirmation modal
* - set default nonces when forced offline and have online connectivity based on transaction count
- pass nonce to generateCompleteTransaction
- refactor componentDidUpdate
* Allow optional nonce to be passed to generateCompleteTransaction
* - create stripHexPrefix function
* - cleanup sagas
* move getParam into helper util
* update address on component update
* - show spinner while transaction is being signed
- reset state when wallet instance changes (new wallet instantiated via UnlockHeader)
* center-align offline message
* Adjust force offline/online button text
* - validate nonces when offline
- only estimate gas when online
- don't show send tx button when offline
* - break generateCompleteTransactionFromRawTransaction into multiple functions.
- support offline generation in generateCompleteTransaction (and generateCompleteTransactionFromRawTransaction). Balance checking is now only done when not offline to support offline generation.
* Create Help component (to be used as a tooltip)
* Disable hardware wallets when offline.
* Hide Send Entire Balance when balance is falsy
* Show help icon in nonce field.
* - show helper instructions on how to broadcast when user is offline after generating a tx
- hardcoded gas limits when offline
- refactors
* create isPositiveInteger helper function
* fix nonce validation
* really fix nonce validation (specifically the input highlighting)
* remove stray // @flow's
* remove offline tab nav
* remove unused action arg
* address PR comments
* Add messages for no js and bad browser. Share styles with alpha agreement.
* Bad browser checks and shower.
* No flash of bad browser
* Typsecriptify
* Use babel minifier instead of uglify
* Move all checks directly to HTML to avoid issues.
* remove duplicate badBrowser declaration
* add static vendor js libraries
* add ledger config
* add ledger components
* add ledger wallet
* bugfix: trezor, set dPath on change
* add rlp type package, update types
* change address to public
* update tslint script to exclude all files in directory
* revert to private address and use getAddress()
* remove unnecessary eslint line out of library files
* remove IWallet import
* Fix ts errors
* Remove version controlled vendor files from DLL
* configure gitignore
* create CONFIG_NODE_CHANGE_INTENT action, action creator, and type
* pass changeNodeIntent intstead of changeNode to Header
* create saga for handling node changes that will refresh only when network changes
* Convert all dropdowns to use a single dropdown shell component. Restyle header ones to look like v3.
* Right align some.
* Color dropdown component, which node selector uses.
* Prettier fixes.
* 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
* 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
* Add all v3s nodes, create node libs for etherscan and infura.
* Add all network configs for alternatives.
* Color and animate nav border on network selection.
* Address PR comments.
* Persist network selection to local storage.
* Modifiy TransactionSucceeded to link to network-specific explorer.
* - Reload on Node Change to reset state. Should be refactored in the future so that we are not forcing clients to reload.
* Improve build speed by using cheap source maps and dropping eslint loader.
* use old 'source-map' on dev when SLOW_BUILD_SPEED env variable exists
* Increase build speed further via caching and DLL
* Cleanup code
* Add step to readme
* Move DLL loader to dev instead of base
* Add post install script
* Revert readme change
* ignore dll dir
* Remove unused imports.
* Create and use .toPrecision forwarding method for `Unit`
* Error handling when unlocking trezor devices.
* Use translateRaw to fulfill string req;
* - Refactor rates actions and action creators to use standard network request state pattern (REQUESTED / SUCCE
- Only Request Rates once AccountInfo Component has mounted, instead of upon saga instantiation (uneeded overhead). This allows also us to issue subsequent fiat rates requests to update the "equivalent values" should the users session persist.
- Show '???' as account balance when balance is null
- Wallet initial state with balance as null instead of 0. We don't actually know what the balance is, and we shouldn't have 0 as a default as this may confuse users and doesn't accurately reflect their balance.
* - Display 'No rates were loaded.' in EquivalentValues when rates are null, instead of nothing.
- Remove unneeded imports.
* Remove unneeded imports and reformat.
* Fix error messaging (show error message instead of error Object)
* remove console.log
* inform flow how silly it is being
* fix wallet test to reflect balance being null by default
* figure out way to have flow understand that rates will not be undefined
* open external links in new tab
* handle case where balance is null in equivalanet values
* Remove unused imports.
* Create and use .toPrecision forwarding method for `Unit`
* Error handling when unlocking trezor devices.
* Use translateRaw to fulfill string req;
* remove 'transate' property and ng-scopes
* use bigs (surprised flow did not catch this)
* fix dropdown not expanding -- switch to simpledropdown
* Don't use generics for no real reason
* Create Ether, Wei, and GWei types, and annotate.
Also contains refactors and UX improvements
1. clear previously generated rawTX/signedTx when changes to transaction inputs are made.
2. reset generated rawTx/signedTx while new generateTx is loading
* add toString helper method and use in place of .amount.toString()
* support optional base in toString helper method and use
* incorporate PR suggestions (destructure, resolve via callback)
* accept hot module changes, move routes into root component
* Fix "You cannot change <Router routes>; it will be ignored" error message by implementing solution in Github: https://github.com/ReactTraining/react-router/issues/2704#issuecomment-211352123
Router is only instantiated once in a production setting (e.g. not webpack-dev-server), so there is minimal overhead on producing a random key value for `Router`.
* Refactor bity config
* fix bug in refactor that would cause destinationKind amount to not load
* use function instead of string replace for building blockexplorers per PR comment
* First pass at handling API failure.
* Bity saga logic upgrade.
* Reusable response.ok logic. Small optimization to array join.
* Flow fixes.
* Streamlined some error handling, moved types.
* refactor notificationMessage
* MVP Bitcoin QR
* refactor currentrates and add loading state
* fix text space
* translate hardcoded text
* only show QR code when attempting to swap Bitcoin as the origin kind
* remove commented import
* add flow typings
* Don't show a notification of a stringified element
* hide buttons during send loading state
* fix transaction succeeded not clickable; provide error in action
* move BroadcastStatusTransaction into 'libs/transaction'
* use more succint Array.prototype.find
* rename resetState -> resetTransaction
* refactor and component componentDidUpdate logic
* rename disabled -> generateDisabled; comment componentDidUpdate
* add size to Spinner, use in ConfirmationModal; disable instead of hide buttons in Modal
* fix flow not understanding that an object wouldn't be null in this case anyway. silly flow
* various refactors; send entire balance working
* 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
* Added alpha banner to top of site.
* Grey out non functioning nav items. Redirect help to groovehq.
* Disable view wallet while it's just a stub.
* Disable non-implemented wallets.
* Add a little arrow icon.
* Replaced toEther function with toUnit to reduce the number of conversion functions wed need. Add tests for conversion functions.
* First pass at a styled confirm transaction modal.
* More data about data
* Hook up generated transaction with modal
* Fix modal position
* Add from address. Restyle a bit.
* Only show textareas and button if transaction has been generated.
* Remove need for param.
* Copy.
* Use non-relative path.
* Initial crack at transaction token support.
* Fix flow type
* Unit tests for contracts and erc20
* Convert contract class to ethereumjs-abi, caught a bug
* Add decodeArgs for contracts, decodeTransfer for erc20
* Show token value in modal
* Show value from transaction data in confirmation.
* Show address of receiver, not token contract
* Flow type
* Only accept bigs
* Unlog
* Use ethereumjs-abis method ID function
* Get transaction stuff out of state. Leave todo notes.
* Intuit token from transaction to address.
* Move generate transaction out of node and into libs/transaction.
* timeout -> interval
* Promise.reject -> throw
* Get default currency from network.
* Add more unit tests for decoding. Adopt the $ prefix for decoding calls.
* Use signed transaction in confirmation modal.
* Generating transaction ,placing into read only textareas.
* Fix async wallet getAddress cases.
* Chain id from network
* remove leftover console log
* Check balance before generating transaction.
* Translate error msgs, check for invalid address.
* Errors for gas limit and gas price issues.
* relayout rpc code, start contract helper
* Dont ask for estimate if theres no value
* Split out conversion of ether to wei hex into lib function.
* big.js -> bignumber.js
### Re-implements:
* min/max validators on initial currency swap selection
* polling of order status
* timer that persists across refreshes via localStorage (computed based on `createdTime` and `validFor` amount)
* swap persists across refreshes once order is created.
* various type refactors
### New additions:
* *SimpleButton* (can be PRd separately on request)
* clear loading state after order create (via SimpleButton and font-awesome)
* buffers for non-BTC swaps (bity does not actually accept 0.01 BTC worth of ETH as they claim they do in their JSON response, so a magic number of 10% is added to the minimum).
* Empty component, routes setup.
* Shared components for all Contracts inputs. Dont do anything yet.
* Check in reducer work so far. Still WIP.
* Header styling
* Check in input work so far, splitting to new branch.
* Strip down contracts inputs. Split out into form and explorer
* Contract selector
* Constantized config actions to use in contract saga.
* Interact explorer UI, no functionality
* Convert to constants, hook up errors
* Deploy and style cleanup.
* Remove unnecessary class.
* Fix flow errors with css modules
* Attempt at fixing all newly introduced flow errors in the contracts branch.
* Removed unused validator.
* Remove action constants, fix flow specificity in reducers
* Fix unit tests
* Move network contracts out of redux / sagas, and read directly from state with a selector in mapStateToProps.
* Fix initialState -> INITIAL_STATE rename
* foreach push -> concat
* 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
* add types for swap action creators (and separate out to separate module)
* DRY up swapInformation and onGoingSwapInformation -> SwapInfoHeader.
* stop bity rate loading when Swap will unmount
* split out SimpleDropdown to separate module
* various additional refactors
* README proposal.
* First pass at implementation of proposal on Footer and Header. Footer could use some work.
* Cleanup, and readme additions
* First pass at basic modal
* Modal open / close
* Modal close on esc key.
* Freeze body scrolling when modal is open.
* Use the index bestowed upon me.
* No close on shade click
* Only render children if modal is open. Also, dont show cursor on shade
* Use flexbox for simpler content height / scroll behavior.
* type modal, fix body scroll when mounted opened
* Modal width is sized by content, not hard coded sizes.
* Remove size from flow prop types.
Still needs lots of work at this point, but all the visuals are done,
it's been renamed to what Taylor said it should be called, and all the
Aria labels have been properly updated.
If you were to mix-and-match or use multiple markdown elements in one
string, this would cause a React key error. This fixes it by key-ing all
the things!