Commit Graph

931 Commits

Author SHA1 Message Date
Dan Finlay fff5a6765e Added failing test for #787 2016-11-07 11:25:23 -08: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
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 185396ff08 Fix dual vault creation bug 2016-11-02 16:35:46 -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
Dan Finlay 18e5173f06 Now migrating old vaults to new DEN format 2016-10-29 02:29:25 -07:00
Dan Finlay 331d9c91ee Add vault migration test 2016-10-28 13:26:14 -07:00
Dan Finlay 2690d1acfd Added hd wallet tests 2016-10-27 17:23:26 -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
Kevin Serrano b3cb3e9ec6
Remove debugger statement. 2016-10-25 13:24:57 -07:00
Kevin Serrano 678301a20e
Phase out extra warning screen. 2016-10-25 13:24:03 -07:00
kumavis 3af3565000 test - fix delegate-call test 2016-10-24 16:12:44 -07:00
kumavis 85d03cc8fb Merge branch 'master' into i743-FixDelegateCallFlag 2016-10-24 12:24:19 -07:00
Dan Finlay 152419a79b Merge branch 'master' into i328-MultiVault 2016-10-21 17:58:18 -07:00
Dan Finlay 626b52d24a Fix bug in new KeyringController vault restoring logic. 2016-10-21 13:11:30 -07:00
Dan Finlay ee73e373a0 Create new vault before each keyringController unit test 2016-10-21 12:26:56 -07:00
Dan Finlay 44aa1be277 Create basic keyring-controller unit test file 2016-10-21 12:11:54 -07:00
Dan Finlay c3e1c5c57f Added SimpleKeyring tests 2016-10-21 11:10:36 -07:00
Frankie d4c0a4949b Clean up tests 2016-10-20 12:26:35 -07:00
Dan Finlay 0deed17752 Fix tests 2016-10-20 12:07:53 -07:00
Frankie aa4746f4c7 Add test and ability for isHex to handle hex strings with hex-prefix 2016-10-19 19:35:44 -07:00
Frankie 4366f72fe1 Add unit test for isHex and add to CHANGELOG.md 2016-10-19 15:22:56 -07:00
Kevin Serrano afbc4c832b
Git merge resolution. 2016-10-19 14:57:30 -07:00
Kevin Serrano ad3fa24a28
Intermediary commit. 2016-10-19 14:55:08 -07:00
Kevin Serrano 17506fe14f
Merge in crypto. 2016-10-19 11:17:29 -07:00
Dan Finlay 049705004f Reproduced issue 743 in test case
This contract hex does include the value `f4`, but it was compiled from a contract with no instance of `.delegatecall`. I believe `f4` in this case is part of some other value or contract address, and `ethBinToOps` has some error in how it skips pushed data.

@kumavis
2016-10-17 14:48:25 -07:00
Dan Finlay 827d7553fc Restore hex prefix to gas price 2016-10-17 13:05:45 -07:00
Dan Finlay 91f43fa213 Increase gas estimate by 100000 wei
To prevent minor gas estimation errors, probably usually related to operating on dynamic state.

Fixes #738.
2016-10-17 12:47:37 -07:00
Dan Finlay 535d832a64 Merge branch 'master' into i328-MultiVault 2016-10-12 10:58:58 -07:00
Kevin Serrano 5c0c370fe4
Remove comments. 2016-10-11 15:52:44 -07:00
Kevin Serrano 5e9bc31c58
Cleanup. 2016-10-11 15:50:02 -07:00
Dan Finlay ea1a934c7d Add initial KeyringController files 2016-10-11 15:12:23 -07:00
Kevin Serrano e20e0f661d
Fix integration test. 2016-10-05 19:49:53 -07:00
Kevin Serrano c0d6dcff00
Rewritten to react standards. Way easier. 2016-10-05 02:42:19 -07:00
Dan Finlay cf31e19029 Remove logs 2016-09-14 18:24:52 -07:00
Dan Finlay 0626adc0b4 Merge pull request #669 from MetaMask/Version-2.12.1
Version 2.12.1
2016-09-14 18:23:12 -07:00
Dan Finlay c3d1404e72 Fix clearing of account cache on vault restore 2016-09-12 15:18:32 -07:00
Dan Finlay e0e38b879f Fix some references 2016-09-12 11:21:27 -07:00
Dan Finlay 363c2a0939 Fix account unlocking
SubmitPassword was not creating a new id-management

This is because I broke up the old "createIdmgmt" method to not perform as much conditional logic.

Now the pieces are reusable and do what they should do.
2016-09-12 11:13:26 -07:00
Dan Finlay 5c1d8e299e Select first address when restoring vault
Fixes #642
2016-09-12 08:50:42 -07:00
Dan Finlay 9b861b6687 Fixed caching bug
Fixed bug where the second new vault created in an IdStore would initially return the accounts from the original store.

Also fixed some tests that were incorrect.
2016-09-10 15:45:34 -07:00
Dan Finlay 5e60b2f0c4 Correct assertion for BIP32 compliance
According to [axic's work here](https://github.com/MetaMask/metamask-plugin/issues/640#issuecomment-246133672), MetaMask is generating the correct address, so I've corrected that assertion accordingly.
2016-09-10 12:57:11 -07:00
Dan Finlay b1590f179e Remove log 2016-09-10 12:39:50 -07:00
Dan Finlay cdd367dc39 Add more bip44 assertions 2016-09-10 12:38:04 -07:00
Dan Finlay 8922ae1a55 Made bip44 assertions easier to add to 2016-09-10 12:35:52 -07:00
Dan Finlay 1b77d5300b Clean up tests 2016-09-10 12:15:05 -07:00
Dan Finlay 59fd86383f Correctly clear ethStore cache on new vault restore 2016-09-10 12:08:27 -07:00
Dan Finlay 6763871c41 Captured #640 in failing test 2016-09-10 11:46:50 -07:00
Dan Finlay 36dc63bc04 Add new eth-lightwallet salting to vault.
eth-lightwallet was previously not salting vault passwords, potentially making it easier to crack them once obtained.

This branch incorporates the API changes to allow us to take advantage of the new salting logic.

This is still throwing deprecation warnings, but that's actually a bug in eth-lightwallet I wrote, [I've submitted a PR for that here](https://github.com/ConsenSys/eth-lightwallet/pull/116).

Fixes #555
2016-09-09 19:42:18 -07:00
Dan Finlay dcc24804a1 Add negative value validation to tx approval 2016-09-06 15:23:48 -07:00
Dan Finlay e4e7489dd9 Add test for Edge compatibility 2016-08-29 17:34:12 -07:00
Kevin Serrano af375d7f8a Naming issue. 2016-08-24 14:02:51 -07:00
Kevin Serrano c82a494b4b Implement usage of nock. 2016-08-24 13:58:50 -07:00
Kevin Serrano 061fec1849 Now calls API functions with mock options. 2016-08-24 13:28:24 -07:00
Dan Finlay 3d451ddf3e Merge branch 'master' into i390-TransactionLimit 2016-08-22 11:59:08 -07:00
Frankie 7e3b0aca62 Add test 2016-08-19 17:30:19 -07:00
Dan Finlay bd9d89826c Added `view more` button to transaction list
Visible at the end of the transaction list, or if no transactions are listed, displayed right after the `No Transactions` message.
2016-08-18 16:23:12 -07:00
Dan Finlay 7389f9d0a0 Enforce tx history limit 2016-08-18 15:40:56 -07:00
Kevin Serrano 666f3cd66c Added compliance for tests and properly accounts for N/A conversions. 2016-08-16 15:11:40 -07:00
Kevin Serrano daba8e87bb Remove extra test. 2016-08-16 10:50:03 -07:00
Kevin Serrano 479abadaa7 Merge branch 'master' into usd-conversion 2016-08-04 13:26:03 -07:00
Kevin Serrano 0ae5305822 Merge branch 'master' into usd-conversion 2016-07-26 10:07:02 +09:00
Dan Finlay be74589f49 Fix extension tests 2016-07-25 17:33:22 -07:00
Dan Finlay 11dfb8e869 Ui testing (#481)
* Add UI Testing Framework and Simple UI Test

Added a Testem configuration that launches a Qunit page with an iFrame that builds and loads our mock-dev page and can interact with it and run tests on it.

Wrote a simple test that accepts the terms and conditions and transitions to the next page.

I am not doing any fancy redux-hooks for the async waiting, I've simply added a `tests/integration/helpers.js` file with a `wait()` function that returns a promise that should wait long enough.

Long term we should hook into the app lifecycle by some means for testing, so we only wait the right amount of time, and wait long enough for slower processes to complete, but this may work for the time being, just enough to run some basic automated browser tests.

* Separate UI tests from normal unit test suite

* Add UI tests to CI test script

* Add testem and phantom to circleCI pre-script

* Fix circle pre script

* Move pre scripts to dependencies key

* Remove phantom from build deps

* Fix testem runner page

* Add promise polyfill for PhantomJS

* Skip PhantomJS in testem

* Run browser tests in parallel

* Fix promise usage?

* Correct skip usage
2016-07-25 16:42:39 -07:00
Dan Finlay 6b3ffc9e5d Fix promise usage? 2016-07-22 17:08:17 -07:00
Dan Finlay f12394f7d5 Skip PhantomJS in testem 2016-07-22 17:02:59 -07:00
Dan Finlay 9f4f5f4bce Add promise polyfill for PhantomJS 2016-07-22 16:58:35 -07:00
Dan Finlay b939da8508 Fix testem runner page 2016-07-22 16:52:01 -07:00
Dan Finlay 2e61102147 Separate UI tests from normal unit test suite 2016-07-22 16:20:43 -07:00
Dan Finlay b724dd009c Add UI Testing Framework and Simple UI Test
Added a Testem configuration that launches a Qunit page with an iFrame that builds and loads our mock-dev page and can interact with it and run tests on it.

Wrote a simple test that accepts the terms and conditions and transitions to the next page.

I am not doing any fancy redux-hooks for the async waiting, I've simply added a `tests/integration/helpers.js` file with a `wait()` function that returns a promise that should wait long enough.

Long term we should hook into the app lifecycle by some means for testing, so we only wait the right amount of time, and wait long enough for slower processes to complete, but this may work for the time being, just enough to run some basic automated browser tests.
2016-07-22 15:43:30 -07:00
Kevin Serrano a612fcee64 Change function names. Add interval polling for api. Refactor functions. 2016-07-21 16:44:50 -07:00
Kevin Serrano 7b85802a0f Merge branch 'master' into usd-conversion 2016-07-21 11:30:57 -07:00
Dan Finlay 6658bea8d4 Implement some cross-browser practices (#473)
* Add mozilla plugin key to manifest

* Move all chrome references into platform-checking module

Addresses #453

* Add chrome global back to linter blacklist

* Add tests
2016-07-21 10:45:32 -07:00
Kevin Serrano aac810b1eb Progress on config manager. Plus tests. 2016-07-21 08:47:03 -07:00
Kevin Serrano 37f21cf18f Remove unused functions. Readd if necessary. 2016-07-11 16:01:52 -07:00
Kevin Serrano 31d0d1ec08 Refactor util tests. 2016-07-11 13:57:47 -07:00
Dan Finlay e8efe84320 Add nickname rendering for recipient address 2016-07-07 13:21:45 -07:00
Dan Finlay a02f43fb7f Merge branch 'master' into ConfirmationStyle 2016-07-07 11:38:11 -07:00
Frankie 2cc44df584 Revert back to original formatBalance 2016-07-07 11:20:02 -07:00
Dan Finlay 689bd58d81 Merged latest balance formatting code 2016-07-06 18:06:28 -07:00
Dan Finlay 7058dc4ee3 Began reworking tx conf view 2016-07-06 17:58:46 -07:00
Frankie 9d577ea023 Add decimal hendeling to ETH balance 2016-07-06 17:04:09 -07:00
Dan Finlay 2c89cd722e Simplify empty account balance rendering 2016-07-05 15:16:40 -07:00
Dan Finlay 78f2794d39 Remove useless and buggy clearWallet function 2016-06-30 11:34:34 -07:00
Dan Finlay f49b6ca1dc Replicated really strange bug with test 2016-06-30 11:30:46 -07:00
Dan Finlay 122018a96a Fixed tests 2016-06-24 16:13:27 -07:00
kumavis f0633463d0 stop pedantic linting 2016-06-23 16:53:27 -07:00
kumavis 7eb89613cc icon-factory - overhaul to provide svg or imagified el 2016-06-23 16:09:25 -07:00
Dan Finlay ff7b980143 Fix eth sign with dennis' test input 2016-06-21 17:13:02 -07:00
Dan Finlay 1cafdb8b1d Add linting to our mocha suite 2016-06-21 14:01:40 -07:00
Zac Mitton 9132f08507 added a failing case and fixed it by refactoring everything to strings 2016-06-20 18:46:29 -04:00
Dan Finlay 451be3b10e Merge branch 'master' into SignFullDataNotHash 2016-06-16 17:34:44 -07:00
Dan Finlay 0f564aa64d Add confirmation persisting to localStorage 2016-06-16 15:04:50 -07:00
Dan Finlay 408addb1b2 Fixed signing of hashes
Signing now always takes a 64 digit hex string, and returns a message signature which appropriately pads r, s, and v with zeroes.

Need to verify with Denis that this is the behavior he requires.
2016-06-16 11:46:35 -07:00
Dan Finlay 6b0a99a09a Began adding signMsg unit test 2016-06-15 14:58:17 -07:00
Dan Finlay d5c378b09a Cache identicons
Fixes #197

Also as a side effect, by creating this `iconFactory.cache` object, we have a convenient place for specifying stock icons for known contracts!

We can just hard-code image addresses in the `ui/lib/icon-factory.js` cache instantiation, and those values will be injected into the identicon image tag `src` attributes.
2016-06-06 14:05:13 -07:00
Dan Finlay 272bea31b5 Fix hashed address validation 2016-06-02 18:42:09 -07:00
Dan Finlay d0f8a14ace Add test case for sample hashed address 2016-06-01 16:14:49 -07:00
kumavis 36d6b3959e Merge pull request #222 from MetaMask/balances
Fixes #206
2016-05-25 19:42:51 -07:00
Zac Mitton 2ce9f1a776 correctly displaying small balances with tests 2016-05-25 18:29:03 -07:00
Dan Finlay e8c88a5551 Fix persistent warning bug 2016-05-25 15:39:18 -07:00
Dan Finlay 95a3cfe3fc Added ability to nickname wallets locally
The changes are persisted to localstorage, so they cannot be restored on a new computer, but for right now it's a nice organizational feature.
2016-05-20 16:18:54 -07:00
Dan Finlay 60270de53d Add full precision to send tx value field. 2016-05-19 14:46:50 -07:00
Dan Finlay 22a77b8041 Increase send value precision 2016-05-19 14:21:35 -07:00
Dan Finlay c8deb355f7 Add address capitalization checksumming 2016-05-19 12:06:45 -07:00
Dan Finlay 041b5493dc Streamlined some transition logic
Fixes #122

Had used multiple actions for some transitions, which would lead to brief intermediary states.

Now making a few actions much more explicit about what they route to, so there is less intermediary logic, and we can transition confidently to the correct view.
2016-05-13 01:24:05 -07:00
Dan Finlay 8bfa40d2d3 Move all users to new scalable backend 2016-05-11 13:10:54 -07:00
Dan Finlay 80c6f12839 Fix test 2016-05-10 15:42:09 -07:00
Dan Finlay e69131fb39 Remove test only statement 2016-05-10 10:46:55 -07:00
Dan Finlay 988165224b Fix outdated transitions
Fixes #151

- Cancelling or completing a tx now goes back to account detail view.
- Restoring a vault now does not select an unloaded account, shows account list.
- Account list now never selects an item only uses the cells as buttons.
2016-04-29 17:02:36 -07:00
Dan Finlay bd660d9aeb Fix test 2016-04-27 18:14:59 -07:00
Dan Finlay 39a84c0e47 Fix explorer link generation 2016-04-27 14:43:09 -07:00
Dan Finlay 2dd7bd6bd0 Make account detail view the primary view
- When unlocking, the first account is now selected by default and displayed as the main view.
 - There is now a "CHANGE ACCT" button on the detail view to show the accounts list.
 - Clicking an account from the accounts list now navigates to the detail view and selects that account.
 - Config/Info screen "back" buttons now fire a new action, `GO_HOME`, which is configured to navigate to the accountDetail view, putting that logic in one place.
 - When locking and unlocking again, the first account is always displayed, eventually we should persist the selection.
2016-04-25 12:38:43 -07:00
Dan Finlay ab9db44f4a Add migration to actual migration array, fix test 2016-04-22 13:59:42 -07:00
Dan Finlay 875a0731dd Deprecate rawtestrpc.metamask.io
This migration will move users who have their clients configured to point at `rawtestrpc.metamask.io` to point at our new test-net RPC, `testrpc.metamask.io`.
2016-04-22 13:32:56 -07:00
Dan Finlay 532edf670e Store metamaskId on metaTx instead of getTxWithParams method. 2016-04-20 09:29:37 -07:00
Dan Finlay d6ab6bb4fa Fix floating point input bug
When sending a transaction, we were converting to BN before handling decimals, which meant we were losing any precision past a decimal point, since BN does not handle decimals!

Put this numeric normalization into a utility function with a test around it and got it working.
2016-04-19 18:56:22 -07:00
Dan Finlay 901d23a029 Add extra tx methods to configManager 2016-04-19 17:32:09 -07:00
Dan Finlay a441e635bd Persist transactions to config-manager
Transactions are now stored, and are never deleted, they only have their status updated.

We can add deleting later if we'd like.

I've hacked on emitting the new unconfirmedTx key to the UI in the format it received before, I want Aaron's opinion on where I should actually do that.
2016-04-18 16:39:35 -07:00
Dan Finlay 65d73d7bb4 Unify test suites 2016-04-18 11:41:29 -07:00
Dan Finlay 8b62a8bec2 Fix plugin tests 2016-04-18 11:31:06 -07:00
Dan Finlay eddaf71e31 Migrate etherscan providers to our RPC 2016-04-12 14:16:39 -07:00
Dan Finlay c2046be0d8 Made configuration migrateable
Abstract all configuration data into a singleton called `configManager`, who is responsible for reading and writing to the persisted storage (localStorage, in our case).

Uses my new module [pojo-migrator](https://www.npmjs.com/package/pojo-migrator), and wraps it with the `ConfigManager` class, which we can hang any state setting or getting methods we need.

By keeping all the persisted state in one place, we can stabilize its outward-facing API, making the interactions increasingly atomic, which will allow us to add features that require restructuring the persisted data in the long term without having to rewrite UI or even `background.js` code.

All the restructuring and data-type management is kept in one neat little place.

This should make it very easy to add new configuration options like user-configured providers, per-domain vaults, and more!

I know this doesn't seem like a big user-facing feature, but we have a big laundry list of features that I think this will really help streamline.
2016-03-30 19:15:49 -07:00
Dan Finlay 72904e7a4f Correct the bip44 test account 2016-03-25 15:38:20 -07:00
Dan Finlay a2c7ccafa6 Implemented BIP44 compliance test.
Also added the hdPath that Christian had told me to our calls to the LightWallet, but this does not seem to have made us generate the same accounts as `testrpc` yet.
2016-03-25 14:51:19 -07:00
Dan Finlay 37fd45e5b7 Convert to bip44 hdTrees
Added initial test just to verify we can recover the accounts we generate in this way.

Still need to add compliance test to make sure this interoperates with testrpc's new mnemonic flag.
2016-03-25 12:41:18 -07:00
Dan Finlay da31f4daed Added basic es6 mocha test suite 2016-03-24 17:51:46 -07:00
kumavis 500a95a704 init commit 2015-07-31 18:38:02 -07:00