1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-27 21:00:13 +01:00
Commit Graph

947 Commits

Author SHA1 Message Date
kumavis
970d4fd695 metamask - add missing diskState and memState subscriptions 2017-02-02 23:47:00 -08:00
kumavis
9e4ef45b6a migration #9 - break out CurrencyController substate 2017-02-02 23:32:24 -08:00
kumavis
b233e7e37c eth-store - cbs default to noop 2017-02-02 22:32:00 -08:00
kumavis
8b5e3aa287 migration #8 - break out NoticeController substate 2017-02-02 22:23:45 -08:00
kumavis
73edfc9f31 eth-store - convert to obs-store subclass 2017-02-02 22:05:06 -08:00
kumavis
f08f40aee2 txManager - depend on preferencesStore 2017-02-02 21:09:17 -08:00
kumavis
0c6df24ecf metamask - introduce networkStore 2017-02-02 20:59:47 -08:00
kumavis
99fa9ab13a migration 7 - break off TransactionManager substate 2017-02-02 20:20:13 -08:00
kumavis
bcb86f38cb messageManager - move view state to obs-store 2017-02-02 18:21:22 -08:00
kumavis
79ed2e902f keyring - replace getState with memStore 2017-02-02 17:07:52 -08:00
kumavis
134a4c7bc3 keyring - manage isUnlocked in memStore 2017-02-02 16:59:15 -08:00
kumavis
5c5aa6ea01 keyring - rm config dep 2017-02-02 16:54:16 -08:00
Kevin Serrano
9b6a06e679
Merge branch 'dev' into notice-management 2017-02-02 16:22:44 -08:00
Kevin Serrano
88882f547e
Change filepath for new location of notices. 2017-02-02 15:59:39 -08:00
kumavis
4c0cb9d92e metamask - memState - adopt configManager.isDisclaimerConfirmed from keyring controller 2017-02-01 16:38:09 -08:00
Frankie
10ce2a781f emit a update badge 2017-02-01 15:12:15 -08:00
Frankie
d93708b553 put updateBadge back in 2017-02-01 15:08:06 -08:00
Frankie
c7b9adbfcb swap out set state for updateState 2017-02-01 15:00:41 -08:00
Frankie
a96f892788 Fix messy merge 2017-02-01 13:25:36 -08:00
Frankie
54b1339f6a Merge branch 'dev' into messageManagerCleanUp 2017-02-01 13:05:58 -08:00
Frankie
ce0c3ed03c Merge branch 'dev' into messageManagerCleanUp 2017-02-01 12:03:42 -08:00
Frankie
1b16b46241 code clan up and tests 2017-02-01 11:54:01 -08:00
kumavis
1cb730144d metamask - adopt isInitialized from keyring controller 2017-02-01 00:31:26 -08:00
kumavis
cd5d952600 keyring - move identities into memStore 2017-02-01 00:17:48 -08:00
kumavis
41c93ceb7e keyring - add keyringtypes to memStore 2017-02-01 00:02:10 -08:00
kumavis
ad060e2678 metamask - inherit some configManager state from keyring controller 2017-01-31 22:35:11 -08:00
kumavis
c0d3db6a8c keyring - synchronous getState 2017-01-31 20:02:38 -08:00
kumavis
0b9d37c6c8 migration #6 - fix selectedAddress data source 2017-01-30 15:53:21 -08:00
kumavis
7ccaa263d2 inpage - set web3.eth.defaultAccount correctly 2017-01-30 15:38:32 -08:00
kumavis
2fa60cfcbf continue rename selectedAccount to selectedAddress 2017-01-30 15:25:12 -08:00
kumavis
f9b31fe2c3 rename selectedAccount to selectedAddress 2017-01-30 15:08:31 -08:00
kumavis
b1de2cdefa metamask - rename getSelectedAccount to getSelectedAddress 2017-01-30 13:09:46 -08:00
kumavis
7a0acb2333 migration #6 - move selectedAccount from keyringController to preferencesController 2017-01-30 13:01:54 -08:00
kumavis
4dafb09db2 metamask - move selectedAccount set/get to preferencesController 2017-01-30 13:01:07 -08:00
kumavis
0a1918f71a preferences - introduce preferences controller 2017-01-30 12:42:24 -08:00
Frankie
f40629e5ae Merge branch 'dev' into messageManagerCleanUp 2017-01-30 00:50:02 -08:00
kumavis
dd528d886f metamask - lookup selectedAccount via keyringController 2017-01-30 00:32:04 -08:00
kumavis
6480c2d8a6 public config - get selectedAccount from keyring controller substate 2017-01-29 23:59:17 -08:00
Frankie
fdee1e3701 Merge branch 'dev' into messageManagerCleanUp 2017-01-28 22:59:28 -08:00
kumavis
13e2003469 metamask - subscribe metamask store to keyringController substate 2017-01-28 22:12:15 -08:00
Frankie
8be68575bb Clean up message manger includes:
Provider egine bump
Remove presence of message manger in keyring controller
Change the status wording fom conf to approved
make Message manager a class
fix messages not being apart of the badge
re write message manger to better reflect controller pattern
2017-01-28 20:28:20 -08:00
kumavis
4dd6ba9c1b migration 5 - move keyring controller state to substate 2017-01-28 19:19:03 -08:00
kumavis
e9cdbf4f89 keyring - add and initialize obs-store 2017-01-28 13:12:12 -08:00
kumavis
1fd1746744 metamask - adopt shapeshift txs from keyringController 2017-01-27 23:05:29 -08:00
kumavis
3afd0ef27d tests - remove persistence and start with initial state 2017-01-27 23:04:34 -08:00
kumavis
ad9531d521 metamask - organize methods 2017-01-27 19:35:03 -08:00
Frankie
a8ed780d9b Merge branch 'dev' into messageManagerCleanUp 2017-01-27 14:17:12 -08:00
Frankie
451845142e Rewrite message controller to fit controller pattern 2017-01-27 14:16:35 -08:00
kumavis
efcd22905a metamask - fix setupProviderConnection 2017-01-26 23:03:11 -08:00
kumavis
95b846ba07 keymanager - small clean 2017-01-26 22:31:06 -08:00
kumavis
9ab8362843 metamask controller - cleanup remote api 2017-01-26 22:30:12 -08:00
kumavis
fc1b11e373 metamask - organize into sections 2017-01-26 21:19:09 -08:00
kumavis
832772414e metamask - use web3-stream-provider/handler instead of manual wiring 2017-01-26 21:18:17 -08:00
kumavis
2113979be7 metamask controller - adopt setup*Communication from background 2017-01-26 20:52:46 -08:00
kumavis
fc3a53ec7b background - stream disconnection fix 2017-01-26 20:18:28 -08:00
kumavis
2f79781ab9 metamask controller - adopt clearSeedWords from keyring controller 2017-01-26 20:17:36 -08:00
kumavis
dc86ddebb7 background - graceful publicConfigStore connection teardown 2017-01-26 16:07:35 -08:00
kumavis
af115aa4c1 background - organize metamask instantiation 2017-01-26 15:09:31 -08:00
kumavis
76ce348a04 obs-store - use published module 2017-01-24 19:47:00 -08:00
kumavis
a06ee45404 migrations - rename 005 to stubbed _multi-keyring 2017-01-24 16:30:42 -08:00
kumavis
bb1ee8e649 Merge branch 'dev' of github.com:MetaMask/metamask-plugin into obs-store2 2017-01-24 16:09:57 -08:00
kumavis
70b8e640f0 Merge branch 'dev' into i#1048 2017-01-24 15:39:33 -08:00
kumavis
463a56ff54 background controller - extract KeyringC.placeSeedWords to MetamaskC 2017-01-24 15:33:33 -08:00
Frankie
5811f2ab14 Merge pull request #1051 from MetaMask/hotfix1048
hotfix - addNewAccount  - dont assume hd keyring position
2017-01-24 13:38:24 -08:00
kumavis
745fff0c80 hotfix - dont assume hd keyring position 2017-01-24 13:29:48 -08:00
kumavis
01c88bb0bd keyring-controller - cleanup 2017-01-24 13:22:26 -08:00
kumavis
8049c1fc07 keyring-controller - cleanup 2017-01-24 13:21:55 -08:00
Frankie
48ffea0142 Move the assumption of their only being one hd keyring when requesting seed words to metamaskController 2017-01-24 12:28:05 -08:00
Frankie
8642ced310 Fix issue where generating a new account would put it in loose keys 2017-01-24 12:06:59 -08:00
kumavis
74dc20bdf1 Merge branch 'dev' into obs-store2 2017-01-21 10:06:50 -08:00
Frankie
56d400b0f8 Merge branch 'master' into upToDate 2017-01-20 14:01:58 -08:00
kumavis
9c6cf90538 keyring controller - placeSeedWords should use first hdKeyring 2017-01-20 13:52:21 -08:00
Dan Finlay
9f1884145a Merge branch 'dev' into i715-AddJsonImport 2017-01-18 17:24:12 -08:00
Dan Finlay
5d8a3dd99b Add ability to import v3 JSON wallets
There is now a menu item labeled "JSON File" for importing, and it can digest either:
- v1 MyEtherWallet JSON files
- v3 Account files (used by Geth, Mist, and MyEtherWallet).

Fixes #715
2017-01-18 16:45:39 -08:00
Dan Finlay
b52346388b Added new modular private key import system
Now any strategy for importing a private key that can be described as a pure function can be very easily turned into a MetaMask import strategy.

I've created a generic and reusable UI action called `importNewAccount(strategy, args)`.

The `strategy` is a unique identifier defined in `app/scripts/account-import-strategies`, and the `args` will be passed to the member of the `strategies` array whose key matches the strategy string.

Strategies return private key hex strings, and are used by the metamask-controller to create a new keyring, and select that new account, before calling back.

This also implements @frankiebee's idea of showing the imported account when it's been imported (my oversight!).

This commit only moves us to this architecture, keeping feature parity for private key import, but has some untested code for importing geth-style JSON files as well!
2017-01-18 15:20:48 -08:00
Dan Finlay
0e01abdf71 Merge branch 'master' into Version-3.1.0 2017-01-18 12:25:35 -08:00
kumavis
b2c52f6b83 Merge branch 'dev' into i715-AddImportMenu 2017-01-18 11:49:15 -08:00
kumavis
3b7301488f tx-manager - use rpc-specified txHash 2017-01-18 11:33:37 -08:00
Frankie
e3650b336a Merge branch 'master' into fixSignedVsSubmitted 2017-01-18 11:30:41 -08:00
Frankie
460cbb985f Fix the dissplay for submitted transactions and the listner wating to hear when tx's were included in a block 2017-01-18 11:24:53 -08:00
Dan Finlay
1ff4894b67 Allow importing of private key strings
Fixes #1021

A top-right menu item now allows `Account Import`.  It has a menu (with one item for now) that allows importing a private key string.

Errors are displayed, and a success navigates the user to their account list, where the imported account is labeled `LOOSE`.
2017-01-17 16:24:45 -08:00
Dan Finlay
c53932a19a Merge branch 'dev' into conversion-api-err 2017-01-17 12:08:47 -08:00
Dan Finlay
8fcade92d3 Fix bug where signed messages were not dismissed 2017-01-17 00:13:38 -08:00
Dan Finlay
7ae2e005ed Fix removeHexPrefix to stripHexPrefix 2017-01-17 00:03:56 -08:00
Dan Finlay
d5ad84aa12 Wrote fix for eth.sign 2017-01-16 23:26:48 -08:00
kumavis
82012cbbce keyring - simple - throw error if wallet not found for address 2017-01-16 11:54:59 -08:00
kumavis
e7cf0f4bdd keyring - simple - fix address generation 2017-01-16 11:49:31 -08:00
kumavis
ef81bde98b eth-store - emit update on new account add 2017-01-14 21:46:40 -08:00
kumavis
f49fb149cc background - txManager - filter txs by network 2017-01-14 21:29:46 -08:00
kumavis
c3d491a37c background - return txHash to provider-engine on done 2017-01-14 20:51:29 -08:00
Frankie
fdcf03f57d Fix the inclusion of the txFee in the meta tx object 2017-01-14 13:32:35 -08:00
Frankie
87505e1742 fix for linting 2017-01-13 18:01:50 -08:00
Frankie
580d93188c Satisfy review needs:
removed unnecessary this.query = opts.query from constructor
Created a tx error state for errors in approveTransaction
validateTxParams has been moved to tx-utils
removed "value" arg from _setTxStatus
2017-01-13 17:47:20 -08:00
Frankie
212ef0b850 fix the maxcost not being included in txMeta 2017-01-13 16:53:10 -08:00
kumavis
d06c54e0b7 Merge branch 'bug-submitTx' of github.com:MetaMask/metamask-plugin into bug-submitTx 2017-01-13 15:51:36 -08:00
kumavis
d755b66e20 background - metamask controller - fix 'this' ref 2017-01-13 15:51:08 -08:00
kumavis
9f162e72b4 Merge branch 'dev' into bug-submitTx 2017-01-13 13:26:57 -08:00
Frankie
1ffaab1d9b Merge branch 'dev' into integrateTxManagerUI 2017-01-13 11:31:51 -08:00
Frankie
5ed52eed68 Clean up code 2017-01-13 10:44:22 -08:00
kumavis
29e83d71a8 background - handle tx finalization in controllers instead of provider-engine 2017-01-13 02:00:11 -08:00
kumavis
bc1615f032 background - fix metamaskController store -> diskStore persistence 2017-01-12 14:40:04 -08:00
kumavis
80514d73b5 migrations - wip - 005 multivault migration 2017-01-12 02:24:33 -08:00
kumavis
b33c51c0a6 migrations - introduce promise-based migrator 2017-01-12 01:17:05 -08:00
kumavis
3bc996878b background - move pojo migrator to outside of metamask controller 2017-01-11 22:47:56 -08:00
kumavis
8012ede126 background - introduce ObservableStore 2017-01-11 19:31:21 -08:00
kumavis
65ba9fc39e bugfix - portstream - dont wrap cb in try catch 2017-01-11 19:09:49 -08:00
Frankie
f9efb0817d Merge branch 'dev' into integrateTxManagerUI 2017-01-11 16:07:03 -08:00
Frankie
576e2ad64d Fix wording and icon of failed txs 2017-01-11 15:44:21 -08:00
Dan Finlay
d87a7b2a76 Send update to UI when changing selected account
Fixes #981
2017-01-11 15:15:37 -08:00
kumavis
89a5eff270 currency conversion - less noisy error 2017-01-11 14:40:35 -08:00
Frankie
bbd2f2738b Add to CHANGELOG 2017-01-11 12:23:00 -08:00
Frankie
0b59dafc34 Merge branch 'dev' into integrateTxManagerUI 2017-01-11 12:17:17 -08:00
Frankie
0fae263a9a Take some of the tx Logic out of the UI and create a visble state for pending and unaproved transactions 2017-01-11 12:16:37 -08:00
kumavis
26e4ff40e1 rpc - fix sync account cache setting 2017-01-11 02:33:57 -08:00
kumavis
61637c738b web3 provider - override eth_syncing and web3_clientVersion 2017-01-11 00:46:44 -08:00
Dan Finlay
21e2e4efd8 Remove erroneous OOG estimation logic. 2017-01-10 14:20:46 -08:00
kumavis
b301c0fb48 deps - replace promise-request with fetch 2017-01-10 12:04:26 -08:00
kumavis
4c1b7700ad Merge branch 'dev' into TearDownOnDisconnect 2017-01-05 14:25:31 -05:00
kumavis
00ac5ca058 Merge branch 'dev' into TearDownOnDisconnect 2017-01-05 14:18:34 -05:00
Dan Finlay
73ee0ae766 Merge branch 'dev' into fixTxManager 2017-01-05 11:18:13 -08:00
Frankie
e62f70660d MetaMask Controller - Convert to EventEmitter 2017-01-05 11:06:18 -08:00
Dan Finlay
7659f5894a Combine two identical then blocks 2017-01-05 11:03:30 -08:00
Frankie
cf6817092b remove unnecessary try statments 2017-01-04 15:03:45 -08:00
Dan Finlay
6c99d09404 Fixed bugs with sanity-checking
- Was incorrectly calling some eth-query methods (left over from old local eth-query)
- Was still passing block to getAccount in addAccount
- Now emitting update only after all account balances are loaded, reducing UI update traffic.
2017-01-04 14:54:40 -08:00
Dan Finlay
ead8a05034 Fix dependency reference 2017-01-04 14:21:36 -08:00
Dan Finlay
a107b66854 Caught typo 2017-01-04 14:15:53 -08:00
Dan Finlay
18e6d266c1 Add descriptive comment 2017-01-04 14:07:08 -08:00
Dan Finlay
381a60695d Linted 2017-01-04 14:05:00 -08:00
Dan Finlay
3588aabdf2 Removed reliance on eth-store internal custom eth-query 2017-01-04 14:01:32 -08:00
Dan Finlay
08351f801a Move eth-store@1.1.0 into local repo. 2017-01-04 13:56:21 -08:00
Frankie
32e8063a77 clean up 2017-01-04 13:13:34 -08:00
Frankie
354fa763d4 Merge branch 'dev' into fixtTxManager 2017-01-04 13:05:29 -08:00
Frankie
e6da8e2762 Fix signing of transactions 2017-01-04 13:04:33 -08:00
Dan Finlay
33b4d213f1 Fix sendUpdate for new promisified getState method 2017-01-03 11:15:38 -08:00
Dan Finlay
1b9906372b Update UI state on ethStore updates
UI was remarkably not relying on ethStore for updates, so things like account balances were frozen until user activity.

Fixes #963
2017-01-03 11:10:20 -08:00
Dan Finlay
af2c7004b0 Make single letter variables more verbose 2017-01-02 15:08:18 -08:00
Dan Finlay
25d0ac1476 Merge branch 'dev' into ShowDifferentAccounts 2017-01-02 14:04:27 -08:00
Dan Finlay
edc5f9e821 Add tolerance for hex prefixed private keys to simple keychain 2017-01-02 13:55:43 -08:00
kumavis
616721f47d inpage-provider - add isMetaMask
adds `metamaskInpageProvider.isMetaMask === true`
Fixes #727
2017-01-02 12:20:09 -08:00
Dan Finlay
21af3de43d Merge branch 'FixMigrationPasswordBug' into ShowDifferentAccounts 2016-12-23 17:10:56 -08:00
Dan Finlay
e95c937569 Add additional migration test 2016-12-23 17:09:24 -08:00
Frankie
fa3e708f34 Merge branch 'dev' into TxManager 2016-12-23 12:48:36 -08:00
Frankie
fde69ea0ba fix some minor spelling mistakes and clean up code 2016-12-23 12:43:42 -08:00
Dan Finlay
a10fe6b6f4 Return keyring metadata on metamask state object
Required making the getState methods for both keyringController and metamaskController async.
They both now return promises, and the main metamask-controller.getState method is now nodeified.

Will allow the UI to render loose keys differently than persisted keys.
2016-12-22 17:17:07 -08:00
Dan Finlay
1861bf8e2b Remove log 2016-12-22 14:46:14 -08:00
Dan Finlay
898e96fd6a Merge pull request #948 from MetaMask/RecoverLostAccounts
Auto-Recover accounts lost to BIP44 derivation fix
2016-12-22 14:43:43 -08:00
Dan Finlay
98527c1c25 Fix account injection bug
It seems `selectedAddress` was removed from the keyring-controller’s state, and is used to populate the injected current account.

I couldn't help myself, I dug around, I found a PR named [changed all instances of selectedAddress to selectedAccount](f5b0795ac5) by @Zanibas.  Sorry, Kevin!  Had you actually changed all instances, this bug would not have happened.

Fixes #908
2016-12-22 14:43:00 -08:00
Dan Finlay
9e54e3baa0 Break up migration function 2016-12-22 13:56:45 -08:00
Dan Finlay
291403c13f Don't bother changing selected accounts since accounts are recovered 2016-12-22 13:45:45 -08:00
Dan Finlay
cf3951c9df Remove logs 2016-12-22 13:40:12 -08:00
Dan Finlay
0df656850d Linted 2016-12-21 17:30:10 -08:00
Dan Finlay
ebeaf3b3d6 Restructured migration
Migrator now returns a lostAccount array that includes objects
these objects include keys of address and privateKey,
this allows the MetamaskController to restore the lost accounts
even without customizing the idStore or the KeyringController.

Also includes a patch that allows idStore to synchronously export private keys.
2016-12-21 17:21:10 -08:00
Dan Finlay
a3a64afdd5 Return undefined when vault is uninitialized 2016-12-21 17:20:14 -08:00
Dan Finlay
05ce7086f7 Added error when trying to unlock uninitialized vault 2016-12-21 17:19:53 -08:00
Frances Pangilinan
9e1c90eafc fix merge 2016-12-21 14:46:10 -08:00
Frankie
6f7c23fd28 Merge branch 'dev' into TxManager 2016-12-21 14:31:07 -08:00
Frances Pangilinan
a85c691b71 Remove txManager in keyring controller 2016-12-21 14:06:15 -08:00
Frances Pangilinan
1ebcbe296b Migrate all tx mutation code out of keyring controller and
Fix up txManager to reflect code review requests
2016-12-21 13:41:49 -08:00
Frances Pangilinan
6e78494846 First pass at revision requests 2016-12-21 13:41:32 -08:00
Dan Finlay
48f2ae2154 Move old keystore migration code to metamask controller
Allows keyring controller to be more generic, less opinionated, and who knows, maybe sooner publishable as its own thing.
2016-12-21 11:02:04 -08:00
Kevin Serrano
aea263a80d
Lint. 2016-12-20 16:45:22 -08:00
Dan Finlay
931ae5f64a Make notices confirmation configurable
- Confirm button will now dismiss the lost accounts array.
2016-12-20 15:24:08 -08:00
Dan Finlay
674b268982 Merge pull request #916 from MetaMask/i894-DetectBadAccounts
I894 detect bad accounts
2016-12-20 11:50:26 -08:00
Dan Finlay
26f1e6cbd2 Remove encryptor in favor of external browser-passworder
I broke out the encryptor lib into its own module on npm called browser-passworder.
2016-12-19 21:55:02 -08:00
Dan Finlay
20d2204ce6
Made changes according to feedback. 2016-12-19 19:32:59 -08:00
Dan Finlay
ead8329877 Merge pull request #937 from MetaMask/i900-forgot-password-flow
I900 forgot password flow
2016-12-19 16:01:01 -08:00
Kevin Serrano
e9bea92ac3
Lint. 2016-12-19 14:55:52 -08:00
Dan Finlay
77d2deb176 Merged master into dev 2016-12-19 13:37:27 -08:00
kumavis
b4a298e1a3 inpage - temporarily disable ping stream 2016-12-19 12:25:35 -08:00
kumavis
73998feeb2 move notice code from metamask-controller + config-manager, in to notice-controller 2016-12-16 12:44:47 -08:00
Kevin Serrano
1458b8c68e
Deactivate polling for now. 2016-12-16 11:39:41 -08:00
Dan Finlay
2b1d821da3 Cleanup 2016-12-16 11:26:39 -08:00
Kevin Serrano
851ba66cdd Add ability to show notices to user & get confirmation.
Implement generation of markdown for notice files.
Create npm command. Enhance notice generation.
Add test files to test multiple notices.
Add basic markdown support to notices.
Interval checks for updates.
Add extensionizer and linker
Add terms and conditions state file
Add link support to disclaimer.
Changelog addition.
2016-12-16 10:55:42 -08:00
Kevin Serrano
8819475a2e Add ability to show notices to user & get confirmation.
Implement generation of markdown for notice files.
Create npm command. Enhance notice generation.
Add test files to test multiple notices.
Add basic markdown support to notices.
Interval checks for updates.
Add extensionizer and linker
Add terms and conditions state file
Add link support to disclaimer.
Changelog addition.
2016-12-16 10:44:52 -08:00
Dan Finlay
83880a5c92 Remove morden testnet provider
Instances configured to point at Morden will now point at Ropsten.
2016-12-15 16:12:03 -08:00
Frances Pangilinan
da9349fe63 Clean up and comment functions 2016-12-14 15:04:33 -08:00
Frances Pangilinan
090935f90a Create a TxManager 2016-12-14 12:55:41 -08:00
Dan Finlay
7b9749e30c Got bad account detection working and added to state 2016-12-09 12:24:25 -08:00
Dan Finlay
ab9e15b782 Mostly added bad account detection
Currently riddled with logs, because the migrator is inexplicably returning before generating the new style accounts for comparison.
2016-12-08 14:22:02 -08:00
kumavis
26b60f1b5a inpage - correctly listen for incomming messages 2016-12-07 14:42:38 -08:00
Dan Finlay
c431783602 Remove redundant logging block 2016-12-01 10:21:56 -08:00
Dan Finlay
1880cda9b9 Fix vault encrypting & unlocking bug
This is only a bug in dev, but was committed yesterday.

Sometimes the `encrypt` method was being passed values other than the password as the encryption key, leading to un-unlockable vaults.

To find this, and avoid it for all time hereafter, I added several more steps to our oft-neglected integration test suite, which now fully initializes a vault, locks it, and unlocks it again, to make sure all of those steps definitely work always.
2016-11-30 19:36:24 -08:00
Dan Finlay
95bcc21a06 Add useful nodeify error message
If a nodified method does not return a Promise, it will throw an error, like this:
```
Error in event handler for (unknown): Error: The function setSelectedAccount did not return a Promise, but was nodeified.
```
2016-11-29 15:54:10 -08:00
Dan Finlay
df0b89074b Return promise correctly from setSelectedAddress 2016-11-29 15:50:26 -08:00
Dan Finlay
5bf1018d75 Flattened addTx async methods 2016-11-29 14:56:58 -08:00
Dan Finlay
ff3f6cc36a Bind ethQuery to estimateGas to allow it to be moved around. 2016-11-29 14:13:12 -08:00
Dan Finlay
85d5b12f8d Fix tx adding code
Broken in this commit:
bc39cd7b89

Synchronous methods were added to an `async.waterfall` array.

This commit also removes the delegate call checking, since we concluded it was misinformed.
2016-11-29 12:46:08 -08:00
Dan Finlay
4b6b1db4f0 Ordered keyringController methods the same in metamask-controller 2016-11-29 12:05:23 -08:00
Dan Finlay
b81f00849d Annotated KeyringController 2016-11-29 11:40:49 -08:00
Dan Finlay
9d401f9137 Fix nodeify usage 2016-11-28 17:27:28 -08:00
Dan Finlay
9e764b1935 Fix nodeify 2016-11-28 17:27:20 -08:00
Dan Finlay
80e76b45ee Denodeify most of KeyringController
Mostly Fixes #893

A couple methods cache callbacks, and will require a larger refactor to fully denodeify.

Specifically, our methods involving web3 requests to sign a tx, sign a message, and approve or cancel either of those.

I think we should postpone those until the TxManager refactor, since it will likely handle this response caching itself.
2016-11-28 16:13:03 -08:00
Dan Finlay
b899119582 Merge branch 'master' into dev 2016-11-23 16:54:27 -08:00
Dan Finlay
d9dc2eac63 Fix more async usage of KeyringController 2016-11-23 14:35:29 -08:00
Dan Finlay
230a0ab876 Fix more keyring asyncifying tests 2016-11-23 11:58:34 -08:00
kumavis
c0a2eb146a rpc - add sync uninstallFilter support 2016-11-23 10:48:20 -08:00
Dan Finlay
600f5c31db Mostly got async keyringController tests passing 2016-11-23 00:23:41 -08:00
Dan Finlay
c77d355e98 Complete first pass at asyncrhonizing keyring controller 2016-11-22 23:36:11 -08:00
Dan Finlay
2efab79f5b Asynced keyrings and started on controller 2016-11-22 23:16:36 -08:00
Dan Finlay
05c8658ff3 Fix new encryptor migration logic 2016-11-22 17:41:54 -08:00
Dan Finlay
822face7a3 Fix password reference 2016-11-22 16:29:46 -08:00
Dan Finlay
6ebdebc0a5 Remove line of cruft 2016-11-22 16:18:18 -08:00
Dan Finlay
4b7b0a86d8 Refine isInitialized derivation method 2016-11-22 15:57:48 -08:00
Dan Finlay
de8da9ddf6 Simplify Encryptor API Surface
At least, the portion of it that we use.

Moved salting within the encryptor, so it does not need to be managed externally.

KeyringController now caches the password instead of a passwordDerivedKey, since it is ignorant of the salt.

Encryptor payload is now in a JSON format, so its portions are both base64 encoded *and* labeled appropriately.  The format is `{ "data": "0x0", "iv": "0x0", "salt": "string" }`.

Fixes #843
Fixes #859
2016-11-22 15:54:51 -08:00
Dan Finlay
2966d46fa2 Merge branch 'dev' into i843-MoveSaltIntoEncryptor 2016-11-22 15:36:50 -08:00
Dan Finlay
c8176c9439 Merge pull request #875 from MetaMask/i868-estimateGasTooHigh-dev
I868 estimate gas too high dev
2016-11-22 14:42:46 -08:00
kumavis
bc39cd7b89 KeyringController - estimateGas->analyzeGasUsage fix gasLimit + detect OOG 2016-11-22 14:28:31 -08:00
kumavis
e14efa8f17 Merge pull request #858 from MetaMask/i842-WaitForSeedWord
I842 wait for seed word
2016-11-22 16:18:43 -05:00
Dan Finlay
c4056a861a Move state update outside of conditional callback block 2016-11-22 13:13:10 -08:00
Dan Finlay
606c0b7618 Remove callback type check 2016-11-22 12:57:15 -08:00
kumavis
4669f262e2 Merge pull request #857 from MetaMask/i841-RenameMethod
Rename idStoreMigrator method for clarity
2016-11-22 15:55:48 -05:00
kumavis
e61d792832 Merge pull request #869 from MetaMask/dev-cleanup
Dev Cleanup Package
2016-11-22 15:23:55 -05:00
kumavis
49a1f43736 Merge branch 'master' into i868-estimateGasTooHigh 2016-11-22 15:14:25 -05:00
kumavis
fa2f0dee28 idStore - fix estimateGas calculation 2016-11-22 12:10:49 -08:00
Kevin Serrano
6dad4f1f20
Phase out ethereumjs-util from encryptor module. 2016-11-22 11:17:05 -08:00
Dan Finlay
0289444fcb Merge branch 'dev' into i842-WaitForSeedWord 2016-11-22 10:51:48 -08:00
Kevin Serrano
8261cf232d
Merge branch 'dev' into dev-cleanup 2016-11-22 10:50:15 -08:00
Dan Finlay
ca819781cb Merge pull request #866 from MetaMask/new-faucet-dev
Make ropsten faucet button point at the correct url.
2016-11-22 10:30:50 -08:00
Kevin Serrano
17669e4af8
Make ropsten faucet button point at the correct url. 2016-11-22 10:20:59 -08:00
Kevin Serrano
8d2afccdc0
Ropsten has sole access to the faucet. 2016-11-22 10:13:57 -08:00
Dan Finlay
136296aad6 Began moving salt into encryptor 2016-11-22 09:52:43 -08:00
Kevin Serrano
88ed1f191f
Add to changelog. 2016-11-22 09:45:28 -08:00
Dan Finlay
ea56426b23 Use callback in placeSeedWord method.
When displaying seed words, we were not using a callback, which had some race condition potential.  This is simply a little cleaner and more correct.

Fixes #842
2016-11-21 20:08:36 -08:00
Dan Finlay
9fb96128e6 Rename idStoreMigrator method for clarity
Fixes #841
2016-11-21 19:52:56 -08:00
Dan Finlay
ced36eb201 Improve Keyring organization
Separated public & private methods. (Fixes #845)
Made class method `type()` into a simple property. (Fixes #846)
2016-11-21 19:40:58 -08:00
Kevin Serrano
1cbab788ec
Change fauceting to become a response of an emit. 2016-11-21 16:46:26 -08:00
Kevin Serrano
f5b0795ac5
change all instances of selectedAddress to selectedAccount. 2016-11-21 16:21:16 -08:00
Kevin Serrano
9123e70434
Remove entropy from encryption and project. 2016-11-21 15:49:03 -08:00
Dan Finlay
7ab9d40820 Merge branch 'dev' into i831-AddRopsten-Dev 2016-11-21 11:03:32 -08:00
Dan Finlay
e8a8302624 Begin adding Ropsten support
Ropsten links will still not work until Etherscan publishes their ropsten link format.

At that time we will need to update ui/lib/account-link.js

Otherwise, fixes #831
2016-11-21 10:58:49 -08:00
Kevin Serrano
d6286cd13a
Maintain linting. 2016-11-18 16:27:26 -08:00
Kevin Serrano
bc6312e9e3
Promisify persistence of keyrings before returning key
Change single letter variables (shame)
2016-11-18 15:58:49 -08:00
Dan Finlay
ce1c5eb75a Update migration code for new hd wallet param name 2016-11-18 11:37:07 -08:00
Kevin Serrano
cd2442e3e7
Persist keyrings from migration to storage. 2016-11-18 10:48:00 -08:00
Kevin Serrano
bef023fb4a
Resolve merge conflict. 2016-11-18 09:23:20 -08:00
kumavis
39e0a33bba random-id - use Number.MAX_SAFE_INTEGER as max 2016-11-17 14:29:35 -08:00
Dan Finlay
8eb91e89bf Increment tx ids to avoid collisions
Fixes #791

It was possible for two requests to have the same ID, causing a crash and loss of StreamProvider connection.

This new id generation strategy creates a random ID, and increments it for each request.

In case the id generator is included from two different processes, I'm initializing the counter at a random number, and rolling it over a large number when it gets too big.
2016-11-17 14:05:12 -08:00
Dan Finlay
4352c7031a Merge branch 'i328-MultiVault' of github.com:MetaMask/metamask-plugin into i328-MultiVault 2016-11-17 13:51:32 -08:00
Dan Finlay
f229d32442 Replace old random-id code with incrementing id generator 2016-11-17 13:49:46 -08:00
Kevin Serrano
592b64a19f
Revert one cb to previous state. 2016-11-15 17:13:33 -08:00
Kevin Serrano
5bfb700fa8
Minimize dispatches by using emitters and relying on state updates. 2016-11-15 17:12:13 -08:00
Kevin Serrano
e18109f1ea
Fix semantics in comments 2016-11-15 13:45:21 -08:00
Kevin Serrano
585284cb88
Lints. 2016-11-15 13:44:22 -08:00
Kevin Serrano
64296df309
Resolve merge conflicts. 2016-11-15 13:43:15 -08:00
Kevin Serrano
1db0bc4b2a
Merge branch 'i328-MultiVault' of github.com:MetaMask/metamask-plugin into i328-MultiVault 2016-11-15 13:31:58 -08:00
Kevin Serrano
a4666de0ce
Minimize repeated code. 2016-11-15 13:31:22 -08:00
Kevin Serrano
b1fee2a1d3
Minimize repeated code. 2016-11-15 11:19:21 -08:00
Kevin Serrano
7de6b12aad
Re-enable disclaimer screen. Rename variables to reflect role more clearly. 2016-11-14 16:49:16 -08:00
Kevin Serrano
d891869eff
First attempt at fixing errors in confirmation screen. 2016-11-14 11:19:01 -08:00
Kevin Serrano
4826f7c0a0
Revert to previous anonymous function for promise. 2016-11-11 17:06:07 -08:00
Kevin Serrano
20cea5b2f5
Various keyring changes
- Rearrange the require statements.
- Remove unused web3.
- Simplify some callbacks and promises.
- Clarify certain parameters.
2016-11-11 15:41:04 -08:00
Kevin Serrano
bfeaae69f2
Clarify functions names. Package normalize inside util file. Fix require headers. 2016-11-11 15:40:12 -08:00
Kevin Serrano
7012747fb5
Package normalize inside sig util file. 2016-11-11 15:37:54 -08:00
Kevin Serrano
23263bec7d
Linting to the max. 2016-11-11 10:26:12 -08:00
kumavis
e123e3095b Merge branch 'master' into i328-MultiVault 2016-11-11 01:01:06 -05:00
kumavis
536cab0687 detect tx error - show warning and fix gasLimit 2016-11-10 21:19:34 -08:00
Frankie
17aac2dbc5 fix tx data so it has the network id 2016-11-10 19:07:12 -08:00
Frankie
f665b779cb Merge branch 'master' into i328-MultiVault 2016-11-10 16:53:47 -08:00
Kevin Serrano
e2b2083df0
remove gas field, due to alias redundancy. 2016-11-09 16:38:28 -08:00
Kevin Serrano
b6b4be61d9
Fix bug for increasing gas by 20 percent. 2016-11-09 16:29:24 -08:00
Dan Finlay
7068d2e71c Adjust gas buffer to be 20% over estimate 2016-11-08 08:39:41 -08:00
Dan Finlay
6f39924e60 Increase gas buffer
Fixes #795
2016-11-08 08:32:34 -08:00
Dan Finlay
161ff62fdc Merge branch 'master' into i328-MultiVault 2016-11-07 15:38:25 -08:00
Dan Finlay
553a6da011 Fix 787 gas buffer bug 2016-11-07 12:00:14 -08:00
Dan Finlay
1896928562 Fix gas price buffering
Our gas price buffering logic had a bug, because bn.js has inconsistent behavior when using hex-prefixed output.  The issue has been opened with them here:
https://github.com/indutny/bn.js/issues/151

We've corrected our usage in the mean time.
2016-11-07 11:56:20 -08:00
Dan Finlay
fc26a0a899 Fix network checking 2016-11-04 12:11:00 -07:00
Dan Finlay
abebe51f69 Add tolerance to normalize method 2016-11-03 16:34:55 -07:00
Dan Finlay
ba7d6b437f Fix password validation and persistence issue
Was wiping the vault on each successful password attempt... :P
2016-11-03 16:14:37 -07:00
Kevin Serrano
2afc06287d
Implement private key exporting. 2016-11-03 15:40:23 -07:00
Dan Finlay
e0246975a7 Finish fixing nicknaming bug 2016-11-03 13:44:29 -07:00
Dan Finlay
bd2a429a85 Fix account nicknaming bug
When nicknaming, we weren't normalizing the input, and so we were retrieving with differently formatted addresses than we were persisting.
2016-11-03 11:59:20 -07:00
Dan Finlay
9ca3c57339 Fix vault creation bug 2016-11-03 11:34:57 -07:00
Dan Finlay
4db976ae46 Don't faucet during tests 2016-11-03 11:22:10 -07:00
Dan Finlay
756f56cfee Don't faucet in development 2016-11-03 10:42:34 -07:00
Dan Finlay
185396ff08 Fix dual vault creation bug 2016-11-02 16:35:46 -07:00
Dan Finlay
ed1917d71a Fix initial vault creation 2016-11-02 16:18:47 -07:00
Dan Finlay
4cf1b606e4 Fix handling of migrating old vault style
Now old vaults are recognized as an "Initialized" MetaMask instance.

Upon logging in, when fetching the initial password-derived key, if there is no new-style vault, but there is an old style vault, it is migrated to the new format before proceeding through the usual unlocking steps.
2016-11-02 15:04:50 -07:00
Kevin Serrano
8f3db0dbc0
Add reveal of seed words. 2016-11-01 22:19:04 -07:00
Dan Finlay
b5f6ef8c01 Fixed bugs related to clearing caches when restoring to a new vault 2016-11-01 17:00:17 -07:00
Dan Finlay
498b30bddc Fix seed phrase restore 2016-11-01 11:51:51 -07:00
Kevin Serrano
db356a181a
Made progress on parity for MultiVault
- Deleted some unused items
- Renamed files and paths to match with new locations.
- Modified keyring controller logic to separate concerns.
- Fix account naming issues.
- Enable creation of new vault with default HD keyring.
- Formatting issues.
2016-11-01 11:30:10 -07:00
Kevin Serrano
e2f67a2cb8
Do not open MM page in dev mode. 2016-11-01 11:21:46 -07:00
Kevin Serrano
96643c222a
Implement seed word confirmation page.
Remove logs.
Move HD render files to ui/app.
2016-10-31 11:35:09 -07:00
Kevin Serrano
6fc498f8a0
Implement auto-fauceting 2016-10-31 09:47:20 -07:00
Kevin Serrano
f9409793d8
Merge branch 'i328-MultiVault' of github.com:MetaMask/metamask-plugin into i328-MultiVault 2016-10-30 16:02:11 -07:00
Dan Finlay
18e5173f06 Now migrating old vaults to new DEN format 2016-10-29 02:29:25 -07:00
Kevin Serrano
9b4f3825e7
Merge branch 'i328-MultiVault' of github.com:MetaMask/metamask-plugin into i328-MultiVault 2016-10-28 16:19:14 -07:00
Kevin Serrano
6eb6968037
Merge branch 'master' into i328-MultiVault 2016-10-28 16:19:03 -07:00
Dan Finlay
6ec471c6dc Configure BIP44 Keychain as default one 2016-10-28 12:10:35 -07:00
Dan Finlay
2690d1acfd Added hd wallet tests 2016-10-27 17:23:26 -07:00
Dan Finlay
f02e02bef8 Add hd wallet keyring 2016-10-27 16:59:46 -07:00
Dan Finlay
c834b4f637 Merge branch 'master' into i762-RenameWalletToAccount 2016-10-26 11:31:08 -07:00
Dan Finlay
21e7331111 Fix delegate call function reference 2 2016-10-25 17:41:50 -07:00
Dan Finlay
6c469a1826 Merge branch 'i328-MultiVault' of github.com:MetaMask/metamask-plugin into i328-MultiVault 2016-10-25 17:00:19 -07:00
Dan Finlay
f9ff6cb55e Merge branch 'master' into i328-MultiVault 2016-10-25 16:59:58 -07:00
Dan Finlay
b3613232a2 Rename wallet to account
Fixes #762
2016-10-25 16:54:43 -07:00
Dan Finlay
bda64ab132 Fix delegate call analysis
Fixed reference allowing transactions to be analyzed for delegate call again.
2016-10-25 14:58:04 -07:00
Kevin Serrano
678301a20e
Phase out extra warning screen. 2016-10-25 13:24:03 -07:00
kumavis
85d03cc8fb Merge branch 'master' into i743-FixDelegateCallFlag 2016-10-24 12:24:19 -07:00
Dan Finlay
518ff399fb Fix loading indication 2016-10-21 14:11:04 -07:00