aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan J Miller <danjm.com@gmail.com>2019-01-26 02:09:18 +0800
committerGitHub <noreply@github.com>2019-01-26 02:09:18 +0800
commitab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2 (patch)
treec3becd6287f0742fa61d621d8ff06ab9ae0c3926
parent456bfaf9ed87fc84598d3f81f451e08e30ff5de0 (diff)
parentbf4b6770a0d9ae2dfb05da9c761a45bd3700b7a1 (diff)
downloadtangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.tar
tangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.tar.gz
tangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.tar.bz2
tangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.tar.lz
tangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.tar.xz
tangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.tar.zst
tangerine-wallet-browser-ab9c20db5b76fef2bc1add5a2ed31c2fb8ac78b2.zip
Merge pull request #6021 from MetaMask/i5943-shapeshift-tx
Order shapeshift transactions by time within the transactions list
-rw-r--r--development/states/tx-list-items.json969
-rw-r--r--test/e2e/beta/metamask-beta-ui.spec.js31
-rw-r--r--test/integration/lib/tx-list-items.js34
-rw-r--r--ui/app/selectors/transactions.js44
4 files changed, 1028 insertions, 50 deletions
diff --git a/development/states/tx-list-items.json b/development/states/tx-list-items.json
index 990f97ded..24daf3254 100644
--- a/development/states/tx-list-items.json
+++ b/development/states/tx-list-items.json
@@ -64,15 +64,963 @@
"tokens": [],
"transactions": {},
"selectedAddressTxList": [
- {"err":{"message":"Error: [ethjs-rpc] rpc error with payload {\"id\":8726092611900,\"jsonrpc\":\"2.0\",\"params\":[\"0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f\"],\"method\":\"eth_sendRawTransaction\"} Error: intrinsic gas too low","stack":"Error: [ethjs-rpc] rpc error with payload {\"id\":8726092611900,\"jsonrpc\":\"2.0\",\"params\":[\"0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f\"],\"method\":\"eth_sendRawTransaction\"} Error: intrinsic gas too low\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:72360:28\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103521:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27180:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27024:25)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:106691:25\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103501:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27033:9\n at eachLimit (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:26723:36)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:26937:16\n at end (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103498:5)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:106913:40"},"estimatedGas":"0xcf08","gasLimitSpecified":true,"gasPriceSpecified":true,"history":[{"id":4068311466147836,"loadingDefaults":true,"metamaskNetworkId":"1","status":"unapproved","time":1522378334455,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","gas":"0xcf08","gasPrice":"0x77359400","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0"}},[{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":true},{"op":"add","path":"/gasLimitSpecified","value":true},{"op":"add","path":"/estimatedGas","value":"0xcf08"}],[{"note":"confTx: user approved transaction","op":"replace","path":"/txParams/gas","value":"0x0"}],[{"note":"txStateManager: setting status to approved","op":"replace","path":"/status","value":"approved"}],[{"note":"transactions#approveTransaction","op":"add","path":"/txParams/nonce","value":"0x3"},{"op":"add","path":"/nonceDetails","value":{"local":{"details":{"highest":3,"startPoint":3},"name":"local","nonce":3},"network":{"details":{"baseCount":3},"name":"network","nonce":3},"params":{"highestLocalNonce":3,"highestSuggested":3,"nextNetworkNonce":3}}}],[{"note":"txStateManager: setting status to signed","op":"add","path":"/txParams/chainId","value":"0x3"},{"op":"replace","path":"/status","value":"signed"}],[{"note":"transactions#publishTransaction","op":"add","path":"/rawTx","value":"0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f"}],[{"op":"add","path":"/err","value":{"message":"Error: [ethjs-rpc] rpc error with payload {\"id\":8726092611900,\"jsonrpc\":\"2.0\",\"params\":[\"0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f\"],\"method\":\"eth_sendRawTransaction\"} Error: intrinsic gas too low","stack":"Error: [ethjs-rpc] rpc error with payload {\"id\":8726092611900,\"jsonrpc\":\"2.0\",\"params\":[\"0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f\"],\"method\":\"eth_sendRawTransaction\"} Error: intrinsic gas too low\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:72360:28\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103521:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27180:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27024:25)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:106691:25\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103501:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at iterateeCallback (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27014:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27196:16\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103503:9\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27315:16\n at replenish (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27029:17)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:27033:9\n at eachLimit (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:26723:36)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:26937:16\n at end (chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:103498:5)\n at chrome-extension://kedndjddlegigbgiknllkjcmbpcnoakf/scripts/background.js:106913:40"}}]],"id":4068311466147836,"loadingDefaults":false,"metamaskNetworkId":"1","nonceDetails":{"local":{"details":{"highest":3,"startPoint":3},"name":"local","nonce":3},"network":{"details":{"baseCount":3},"name":"network","nonce":3},"params":{"highestLocalNonce":3,"highestSuggested":3,"nextNetworkNonce":3}},"rawTx":"0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f","status":"failed","time":1522378334455,"txParams":{"chainId":"0x3","from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","gas":"0x0","gasPrice":"0x77359400","nonce":"0x3","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0"}},
- {"id":2315363930841933,"time":1522378572149,"status":"approved","metamaskNetworkId":"1","loadingDefaults":false,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0x0","gasPrice":"0x5f5e100"},"history":[{"id":2315363930841933,"time":1522378572149,"status":"unapproved","metamaskNetworkId":"1","loadingDefaults":true,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100"}},[{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":true},{"op":"add","path":"/gasLimitSpecified","value":true},{"op":"add","path":"/estimatedGas","value":"0xcf08"}],[{"op":"replace","path":"/txParams/gas","value":"0x0","note":"confTx: user approved transaction"}],[{"op":"replace","path":"/status","value":"approved","note":"txStateManager: setting status to approved"}]],"gasPriceSpecified":true,"gasLimitSpecified":true,"estimatedGas":"0xcf08"},
- {"estimatedGas":"8d41","firstRetryBlockNumber":"0x2cbc70","gasLimitSpecified":false,"gasPriceSpecified":false,"hash":"0xfbd997bf9bb85ca1598952ca23e7910502d527e06cb6ee1bbe7e7dd59d6909cd","history":[{"id":2079438776801906,"loadingDefaults":true,"metamaskNetworkId":"1","status":"unapproved","time":1522346270251,"txParams":{"data":"0xa9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b","from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0x66f30b996a7d345cd00badcfe75e81e25dc5e1eb"}},[{"op":"add","path":"/txParams/gasPrice","value":"0x37e11d600"},{"op":"add","path":"/txParams/value","value":"0x0"},{"op":"add","path":"/txParams/gas","value":"0xd3e1"},{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":false},{"op":"add","path":"/gasLimitSpecified","value":false},{"op":"add","path":"/estimatedGas","value":"8d41"}],[{"note":"confTx: user approved transaction","op":"replace","path":"/txParams/gasPrice","value":"0x5f5e100"}],[{"note":"txStateManager: setting status to approved","op":"replace","path":"/status","value":"approved"}],[{"note":"transactions#approveTransaction","op":"add","path":"/txParams/nonce","value":"0x2"},{"op":"add","path":"/nonceDetails","value":{"local":{"details":{"highest":2,"startPoint":2},"name":"local","nonce":2},"network":{"details":{"baseCount":2},"name":"network","nonce":2},"params":{"highestLocalNonce":2,"highestSuggested":2,"nextNetworkNonce":2}}}],[{"note":"txStateManager: setting status to signed","op":"add","path":"/txParams/chainId","value":"0x3"},{"op":"replace","path":"/status","value":"signed"}],[{"note":"transactions#publishTransaction","op":"add","path":"/rawTx","value":"0xf8a8028405f5e10082d3e19466f30b996a7d345cd00badcfe75e81e25dc5e1eb80b844a9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b2aa05cb38a3a68e49008da2e93839f6dedeb96b1630c2a73c4cf5eb3fcc74299a100a039f17c0807469bd101165fa0749dc7065832b4a7c3a382b6cf7e29228c2a683d"}],[{"note":"transactions#setTxHash","op":"add","path":"/hash","value":"0xfbd997bf9bb85ca1598952ca23e7910502d527e06cb6ee1bbe7e7dd59d6909cd"}],[{"note":"txStateManager - add submitted time stamp","op":"add","path":"/submittedTime","value":1522346282571}],[{"note":"txStateManager: setting status to submitted","op":"replace","path":"/status","value":"submitted"}],[{"note":"transactions/pending-tx-tracker#event: tx:block-update","op":"add","path":"/firstRetryBlockNumber","value":"0x2cbc70"}],[{"note":"txStateManager: setting status to confirmed","op":"replace","path":"/status","value":"confirmed"}]],"id":2079438776801906,"loadingDefaults":false,"metamaskNetworkId":"1","nonceDetails":{"local":{"details":{"highest":2,"startPoint":2},"name":"local","nonce":2},"network":{"details":{"baseCount":2},"name":"network","nonce":2},"params":{"highestLocalNonce":2,"highestSuggested":2,"nextNetworkNonce":2}},"rawTx":"0xf8a8028405f5e10082d3e19466f30b996a7d345cd00badcfe75e81e25dc5e1eb80b844a9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b2aa05cb38a3a68e49008da2e93839f6dedeb96b1630c2a73c4cf5eb3fcc74299a100a039f17c0807469bd101165fa0749dc7065832b4a7c3a382b6cf7e29228c2a683d","status":"confirmed","submittedTime":1522346282571,"time":1522346270251,"txParams":{"chainId":"0x3","data":"0xa9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b","from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","gas":"0xd3e1","gasPrice":"0x5f5e100","nonce":"0x2","to":"0x66f30b996a7d345cd00badcfe75e81e25dc5e1eb","value":"0x0"}},
- {"id":4087002078467524,"time":1522379587999,"status":"submitted","metamaskNetworkId":"1","loadingDefaults":false,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100","nonce":"0x3","chainId":"0x3"},"history":[{"id":4087002078467524,"time":1522379587999,"status":"unapproved","metamaskNetworkId":"1","loadingDefaults":true,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100"}},[{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":true},{"op":"add","path":"/gasLimitSpecified","value":true},{"op":"add","path":"/estimatedGas","value":"0xcf08"}],[],[{"op":"replace","path":"/status","value":"approved","note":"txStateManager: setting status to approved"}],[{"op":"add","path":"/txParams/nonce","value":"0x3","note":"transactions#approveTransaction"},{"op":"add","path":"/nonceDetails","value":{"params":{"highestLocalNonce":3,"highestSuggested":3,"nextNetworkNonce":3},"local":{"name":"local","nonce":3,"details":{"startPoint":3,"highest":3}},"network":{"name":"network","nonce":3,"details":{"baseCount":3}}}}],[{"op":"add","path":"/txParams/chainId","value":"0x3","note":"txStateManager: setting status to signed"},{"op":"replace","path":"/status","value":"signed"}],[{"op":"add","path":"/rawTx","value":"0xf863038405f5e10082cf0894f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a0d64ed427733ef67fe788fe85d3cfe51c43cfc83d07fa4ab8af5d3bc8c8199895a02699c131cc0ffcf842b54776ac611bdd165fdb87dd3ecff1554ec8da1bf3ff39","note":"transactions#publishTransaction"}],[{"op":"add","path":"/hash","value":"0x52f0929fc143d76f4e6255d95cebfc76b74f43726191bd4081a5ae9bd6c1fa4a","note":"transactions#setTxHash"}],[{"op":"add","path":"/submittedTime","value":1522379590158,"note":"txStateManager - add submitted time stamp"}],[{"op":"replace","path":"/status","value":"submitted","note":"txStateManager: setting status to submitted"}],[{"op":"add","path":"/firstRetryBlockNumber","value":"0x2cc718","note":"transactions/pending-tx-tracker#event: tx:block-update"}]],"gasPriceSpecified":true,"gasLimitSpecified":true,"estimatedGas":"0xcf08","nonceDetails":{"params":{"highestLocalNonce":3,"highestSuggested":3,"nextNetworkNonce":3},"local":{"name":"local","nonce":3,"details":{"startPoint":3,"highest":3}},"network":{"name":"network","nonce":3,"details":{"baseCount":3}}},"rawTx":"0xf863038405f5e10082cf0894f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a0d64ed427733ef67fe788fe85d3cfe51c43cfc83d07fa4ab8af5d3bc8c8199895a02699c131cc0ffcf842b54776ac611bdd165fdb87dd3ecff1554ec8da1bf3ff39","hash":"0x52f0929fc143d76f4e6255d95cebfc76b74f43726191bd4081a5ae9bd6c1fa4a","submittedTime":1522379590158,"firstRetryBlockNumber":"0x2cc718"},
- {"estimatedGas":"0x5208","gasLimitSpecified":false,"gasPriceSpecified":false,"history":[{"id":6301441591225658,"loadingDefaults":true,"metamaskNetworkId":"1","status":"unapproved","time":1522346051227,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0x81b7e08f65bdf5648606c89998a9cc8164397647","value":"0xde0b6b3a7640000"}},[{"op":"add","path":"/txParams/gasPrice","value":"0x4a817c800"},{"op":"add","path":"/txParams/gas","value":"0x5208"},{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":false},{"op":"add","path":"/gasLimitSpecified","value":false},{"op":"add","path":"/simpleSend","value":true},{"op":"add","path":"/estimatedGas","value":"0x5208"}],[{"note":"txStateManager: setting status to rejected","op":"replace","path":"/status","value":"rejected"}]],"id":6301441591225658,"loadingDefaults":false,"metamaskNetworkId":"1","simpleSend":true,"status":"rejected","time":1522346051227,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","gas":"0x5208","gasPrice":"0x4a817c800","to":"0x81b7e08f65bdf5648606c89998a9cc8164397647","value":"0xde0b6b3a7640000"}},
- {"id":2699829174766090,"time":1522381785750,"status":"unapproved","metamaskNetworkId":"1","loadingDefaults":false,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100"},"history":[{"id":2699829174766090,"time":1522381785750,"status":"unapproved","metamaskNetworkId":"1","loadingDefaults":true,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100"}},[{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":true},{"op":"add","path":"/gasLimitSpecified","value":true},{"op":"add","path":"/estimatedGas","value":"0xcf08"}]],"gasPriceSpecified":true,"gasLimitSpecified":true,"estimatedGas":"0xcf08"}
+ {
+ "err": {
+ "message": "Error: intrinsic gas too low",
+ "stack": "Error: some error"
+ },
+ "estimatedGas": "0xcf08",
+ "gasLimitSpecified": true,
+ "gasPriceSpecified": true,
+ "history": [
+ {
+ "id": 4068311466147836,
+ "loadingDefaults": true,
+ "metamaskNetworkId": "1",
+ "status": "unapproved",
+ "time": 1522378334455,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "gas": "0xcf08",
+ "gasPrice": "0x77359400",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0"
+ }
+ },
+ [
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "0xcf08"
+ }
+ ],
+ [
+ {
+ "note": "confTx: user approved transaction",
+ "op": "replace",
+ "path": "/txParams/gas",
+ "value": "0x0"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to approved",
+ "op": "replace",
+ "path": "/status",
+ "value": "approved"
+ }
+ ],
+ [
+ {
+ "note": "transactions#approveTransaction",
+ "op": "add",
+ "path": "/txParams/nonce",
+ "value": "0x3"
+ },
+ {
+ "op": "add",
+ "path": "/nonceDetails",
+ "value": {
+ "local": {
+ "details": {
+ "highest": 3,
+ "startPoint": 3
+ },
+ "name": "local",
+ "nonce": 3
+ },
+ "network": {
+ "details": {
+ "baseCount": 3
+ },
+ "name": "network",
+ "nonce": 3
+ },
+ "params": {
+ "highestLocalNonce": 3,
+ "highestSuggested": 3,
+ "nextNetworkNonce": 3
+ }
+ }
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to signed",
+ "op": "add",
+ "path": "/txParams/chainId",
+ "value": "0x3"
+ },
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "signed"
+ }
+ ],
+ [
+ {
+ "note": "transactions#publishTransaction",
+ "op": "add",
+ "path": "/rawTx",
+ "value": "0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f"
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/err",
+ "value": {
+ "message": "Error: intrinsic gas too low",
+ "stack":"Error: some error"
+ }
+ }
+ ]
+ ],
+ "id": 4068311466147836,
+ "loadingDefaults": false,
+ "metamaskNetworkId": "1",
+ "nonceDetails": {
+ "local": {
+ "details": {
+ "highest": 3,
+ "startPoint": 3
+ },
+ "name": "local",
+ "nonce": 3
+ },
+ "network": {
+ "details": {
+ "baseCount": 3
+ },
+ "name": "network",
+ "nonce": 3
+ },
+ "params": {
+ "highestLocalNonce": 3,
+ "highestSuggested": 3,
+ "nextNetworkNonce": 3
+ }
+ },
+ "rawTx": "0xf8610384773594008094f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a052e5246c9a404f756a246b8cec545099741aeb4e6e0add935a5b7a366fa88f95a0538eaa2421e50377c534244dcdcd15ace00bf9c0adbd9eb162baae2b9e89a36f",
+ "status": "failed",
+ "time": 1522378334455,
+ "txParams": {
+ "chainId": "0x3",
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "gas": "0x0",
+ "gasPrice": "0x77359400",
+ "nonce": "0x3",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0"
+ }
+ },
+ {
+ "id": 2315363930841933,
+ "time": 1522378572149,
+ "status": "approved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": false,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0x0",
+ "gasPrice": "0x5f5e100",
+ "nonce": "0x4"
+ },
+ "history": [
+ {
+ "id": 2315363930841933,
+ "time": 1522378572149,
+ "status": "unapproved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": true,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100"
+ }
+ },
+ [
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "0xcf08"
+ }
+ ],
+ [
+ {
+ "op": "replace",
+ "path": "/txParams/gas",
+ "value": "0x0",
+ "note": "confTx: user approved transaction"
+ }
+ ],
+ [
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "approved",
+ "note": "txStateManager: setting status to approved"
+ }
+ ]
+ ],
+ "gasPriceSpecified": true,
+ "gasLimitSpecified": true,
+ "estimatedGas": "0xcf08"
+ },
+ {
+ "estimatedGas": "8d41",
+ "firstRetryBlockNumber": "0x2cbc70",
+ "gasLimitSpecified": false,
+ "gasPriceSpecified": false,
+ "hash": "0xfbd997bf9bb85ca1598952ca23e7910502d527e06cb6ee1bbe7e7dd59d6909cd",
+ "history": [
+ {
+ "id": 2079438776801906,
+ "loadingDefaults": true,
+ "metamaskNetworkId": "1",
+ "status": "unapproved",
+ "time": 1522346270251,
+ "txParams": {
+ "data": "0xa9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b",
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0x66f30b996a7d345cd00badcfe75e81e25dc5e1eb"
+ }
+ },
+ [
+ {
+ "op": "add",
+ "path": "/txParams/gasPrice",
+ "value": "0x37e11d600"
+ },
+ {
+ "op": "add",
+ "path": "/txParams/value",
+ "value": "0x0"
+ },
+ {
+ "op": "add",
+ "path": "/txParams/gas",
+ "value": "0xd3e1"
+ },
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "8d41"
+ }
+ ],
+ [
+ {
+ "note": "confTx: user approved transaction",
+ "op": "replace",
+ "path": "/txParams/gasPrice",
+ "value": "0x5f5e100"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to approved",
+ "op": "replace",
+ "path": "/status",
+ "value": "approved"
+ }
+ ],
+ [
+ {
+ "note": "transactions#approveTransaction",
+ "op": "add",
+ "path": "/txParams/nonce",
+ "value": "0x2"
+ },
+ {
+ "op": "add",
+ "path": "/nonceDetails",
+ "value": {
+ "local": {
+ "details": {
+ "highest": 2,
+ "startPoint": 2
+ },
+ "name": "local",
+ "nonce": 2
+ },
+ "network": {
+ "details": {
+ "baseCount": 2
+ },
+ "name": "network",
+ "nonce": 2
+ },
+ "params": {
+ "highestLocalNonce": 2,
+ "highestSuggested": 2,
+ "nextNetworkNonce": 2
+ }
+ }
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to signed",
+ "op": "add",
+ "path": "/txParams/chainId",
+ "value": "0x3"
+ },
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "signed"
+ }
+ ],
+ [
+ {
+ "note": "transactions#publishTransaction",
+ "op": "add",
+ "path": "/rawTx",
+ "value": "0xf8a8028405f5e10082d3e19466f30b996a7d345cd00badcfe75e81e25dc5e1eb80b844a9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b2aa05cb38a3a68e49008da2e93839f6dedeb96b1630c2a73c4cf5eb3fcc74299a100a039f17c0807469bd101165fa0749dc7065832b4a7c3a382b6cf7e29228c2a683d"
+ }
+ ],
+ [
+ {
+ "note": "transactions#setTxHash",
+ "op": "add",
+ "path": "/hash",
+ "value": "0xfbd997bf9bb85ca1598952ca23e7910502d527e06cb6ee1bbe7e7dd59d6909cd"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager - add submitted time stamp",
+ "op": "add",
+ "path": "/submittedTime",
+ "value": 1522346282571
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to submitted",
+ "op": "replace",
+ "path": "/status",
+ "value": "submitted"
+ }
+ ],
+ [
+ {
+ "note": "transactions/pending-tx-tracker#event: tx:block-update",
+ "op": "add",
+ "path": "/firstRetryBlockNumber",
+ "value": "0x2cbc70"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to confirmed",
+ "op": "replace",
+ "path": "/status",
+ "value": "confirmed"
+ }
+ ]
+ ],
+ "id": 2079438776801906,
+ "loadingDefaults": false,
+ "metamaskNetworkId": "1",
+ "nonceDetails": {
+ "local": {
+ "details": {
+ "highest": 2,
+ "startPoint": 2
+ },
+ "name": "local",
+ "nonce": 2
+ },
+ "network": {
+ "details": {
+ "baseCount": 2
+ },
+ "name": "network",
+ "nonce": 2
+ },
+ "params": {
+ "highestLocalNonce": 2,
+ "highestSuggested": 2,
+ "nextNetworkNonce": 2
+ }
+ },
+ "rawTx": "0xf8a8028405f5e10082d3e19466f30b996a7d345cd00badcfe75e81e25dc5e1eb80b844a9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b2aa05cb38a3a68e49008da2e93839f6dedeb96b1630c2a73c4cf5eb3fcc74299a100a039f17c0807469bd101165fa0749dc7065832b4a7c3a382b6cf7e29228c2a683d",
+ "status": "confirmed",
+ "submittedTime": 1522346282571,
+ "time": 1522348270251,
+ "txParams": {
+ "chainId": "0x3",
+ "data": "0xa9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b",
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "gas": "0xd3e1",
+ "gasPrice": "0x5f5e100",
+ "nonce": "0x6",
+ "to": "0x66f30b996a7d345cd00badcfe75e81e25dc5e1ec",
+ "value": "0x0"
+ }
+ },
+ {
+ "estimatedGas": "8d41",
+ "firstRetryBlockNumber": "0x2cbc70",
+ "gasLimitSpecified": false,
+ "gasPriceSpecified": false,
+ "hash": "0xfbd997bf9bb85ca1598952ca23e7910502d527e06cb6ee1bbe7e7dd59d6909cd",
+ "history": [
+ {
+ "id": 2079438776801906,
+ "loadingDefaults": true,
+ "metamaskNetworkId": "1",
+ "status": "unapproved",
+ "time": 1522346270251,
+ "txParams": {
+ "data": "0xa9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b",
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0x66f30b996a7d345cd00badcfe75e81e25dc5e1eb"
+ }
+ },
+ [
+ {
+ "op": "add",
+ "path": "/txParams/gasPrice",
+ "value": "0x37e11d600"
+ },
+ {
+ "op": "add",
+ "path": "/txParams/value",
+ "value": "0x0"
+ },
+ {
+ "op": "add",
+ "path": "/txParams/gas",
+ "value": "0xd3e1"
+ },
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "8d41"
+ }
+ ],
+ [
+ {
+ "note": "confTx: user approved transaction",
+ "op": "replace",
+ "path": "/txParams/gasPrice",
+ "value": "0x5f5e100"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to approved",
+ "op": "replace",
+ "path": "/status",
+ "value": "approved"
+ }
+ ],
+ [
+ {
+ "note": "transactions#approveTransaction",
+ "op": "add",
+ "path": "/txParams/nonce",
+ "value": "0x2"
+ },
+ {
+ "op": "add",
+ "path": "/nonceDetails",
+ "value": {
+ "local": {
+ "details": {
+ "highest": 2,
+ "startPoint": 2
+ },
+ "name": "local",
+ "nonce": 2
+ },
+ "network": {
+ "details": {
+ "baseCount": 2
+ },
+ "name": "network",
+ "nonce": 2
+ },
+ "params": {
+ "highestLocalNonce": 2,
+ "highestSuggested": 2,
+ "nextNetworkNonce": 2
+ }
+ }
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to signed",
+ "op": "add",
+ "path": "/txParams/chainId",
+ "value": "0x3"
+ },
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "signed"
+ }
+ ],
+ [
+ {
+ "note": "transactions#publishTransaction",
+ "op": "add",
+ "path": "/rawTx",
+ "value": "0xf8a8028405f5e10082d3e19466f30b996a7d345cd00badcfe75e81e25dc5e1eb80b844a9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b2aa05cb38a3a68e49008da2e93839f6dedeb96b1630c2a73c4cf5eb3fcc74299a100a039f17c0807469bd101165fa0749dc7065832b4a7c3a382b6cf7e29228c2a683d"
+ }
+ ],
+ [
+ {
+ "note": "transactions#setTxHash",
+ "op": "add",
+ "path": "/hash",
+ "value": "0xfbd997bf9bb85ca1598952ca23e7910502d527e06cb6ee1bbe7e7dd59d6909cd"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager - add submitted time stamp",
+ "op": "add",
+ "path": "/submittedTime",
+ "value": 1522346282571
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to submitted",
+ "op": "replace",
+ "path": "/status",
+ "value": "submitted"
+ }
+ ],
+ [
+ {
+ "note": "transactions/pending-tx-tracker#event: tx:block-update",
+ "op": "add",
+ "path": "/firstRetryBlockNumber",
+ "value": "0x2cbc70"
+ }
+ ],
+ [
+ {
+ "note": "txStateManager: setting status to confirmed",
+ "op": "replace",
+ "path": "/status",
+ "value": "confirmed"
+ }
+ ]
+ ],
+ "id": 2079438776801906,
+ "loadingDefaults": false,
+ "metamaskNetworkId": "1",
+ "nonceDetails": {
+ "local": {
+ "details": {
+ "highest": 2,
+ "startPoint": 2
+ },
+ "name": "local",
+ "nonce": 2
+ },
+ "network": {
+ "details": {
+ "baseCount": 2
+ },
+ "name": "network",
+ "nonce": 2
+ },
+ "params": {
+ "highestLocalNonce": 2,
+ "highestSuggested": 2,
+ "nextNetworkNonce": 2
+ }
+ },
+ "rawTx": "0xf8a8028405f5e10082d3e19466f30b996a7d345cd00badcfe75e81e25dc5e1eb80b844a9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b2aa05cb38a3a68e49008da2e93839f6dedeb96b1630c2a73c4cf5eb3fcc74299a100a039f17c0807469bd101165fa0749dc7065832b4a7c3a382b6cf7e29228c2a683d",
+ "status": "confirmed",
+ "submittedTime": 1522346282571,
+ "time": 1522346270251,
+ "txParams": {
+ "chainId": "0x3",
+ "data": "0xa9059cbb000000000000000000000000e7884118ee52ec3f4eef715cb022279d7d4181a9000000000000000000000000000000000000000000000000000000000000000b",
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "gas": "0xd3e1",
+ "gasPrice": "0x5f5e100",
+ "nonce": "0x2",
+ "to": "0x66f30b996a7d345cd00badcfe75e81e25dc5e1eb",
+ "value": "0x0"
+ }
+ },
+ {
+ "id": 4087002078467524,
+ "time": 1522379587999,
+ "status": "submitted",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": false,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100",
+ "nonce": "0x3",
+ "chainId": "0x3"
+ },
+ "history": [
+ {
+ "id": 4087002078467524,
+ "time": 1522379587999,
+ "status": "unapproved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": true,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100"
+ }
+ },
+ [
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "0xcf08"
+ }
+ ],
+ [],
+ [
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "approved",
+ "note": "txStateManager: setting status to approved"
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/txParams/nonce",
+ "value": "0x3",
+ "note": "transactions#approveTransaction"
+ },
+ {
+ "op": "add",
+ "path": "/nonceDetails",
+ "value": {
+ "params": {
+ "highestLocalNonce": 3,
+ "highestSuggested": 3,
+ "nextNetworkNonce": 3
+ },
+ "local": {
+ "name": "local",
+ "nonce": 3,
+ "details": {
+ "startPoint": 3,
+ "highest": 3
+ }
+ },
+ "network": {
+ "name": "network",
+ "nonce": 3,
+ "details": {
+ "baseCount": 3
+ }
+ }
+ }
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/txParams/chainId",
+ "value": "0x3",
+ "note": "txStateManager: setting status to signed"
+ },
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "signed"
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/rawTx",
+ "value": "0xf863038405f5e10082cf0894f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a0d64ed427733ef67fe788fe85d3cfe51c43cfc83d07fa4ab8af5d3bc8c8199895a02699c131cc0ffcf842b54776ac611bdd165fdb87dd3ecff1554ec8da1bf3ff39",
+ "note": "transactions#publishTransaction"
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/hash",
+ "value": "0x52f0929fc143d76f4e6255d95cebfc76b74f43726191bd4081a5ae9bd6c1fa4a",
+ "note": "transactions#setTxHash"
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/submittedTime",
+ "value": 1522379590158,
+ "note": "txStateManager - add submitted time stamp"
+ }
+ ],
+ [
+ {
+ "op": "replace",
+ "path": "/status",
+ "value": "submitted",
+ "note": "txStateManager: setting status to submitted"
+ }
+ ],
+ [
+ {
+ "op": "add",
+ "path": "/firstRetryBlockNumber",
+ "value": "0x2cc718",
+ "note": "transactions/pending-tx-tracker#event: tx:block-update"
+ }
+ ]
+ ],
+ "gasPriceSpecified": true,
+ "gasLimitSpecified": true,
+ "estimatedGas": "0xcf08",
+ "nonceDetails": {
+ "params": {
+ "highestLocalNonce": 3,
+ "highestSuggested": 3,
+ "nextNetworkNonce": 3
+ },
+ "local": {
+ "name": "local",
+ "nonce": 3,
+ "details": {
+ "startPoint": 3,
+ "highest": 3
+ }
+ },
+ "network": {
+ "name": "network",
+ "nonce": 3,
+ "details": {
+ "baseCount": 3
+ }
+ }
+ },
+ "rawTx": "0xf863038405f5e10082cf0894f45d68f31b3c9ac84ff0d07b86c59b753a60b1e3808029a0d64ed427733ef67fe788fe85d3cfe51c43cfc83d07fa4ab8af5d3bc8c8199895a02699c131cc0ffcf842b54776ac611bdd165fdb87dd3ecff1554ec8da1bf3ff39",
+ "hash": "0x52f0929fc143d76f4e6255d95cebfc76b74f43726191bd4081a5ae9bd6c1fa4a",
+ "submittedTime": 1522379590158,
+ "firstRetryBlockNumber": "0x2cc718"
+ },
+ {
+ "id": 2699829174766090,
+ "time": 1522381785750,
+ "status": "unapproved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": false,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100"
+ },
+ "history": [
+ {
+ "id": 2699829174766090,
+ "time": 1522381785750,
+ "status": "unapproved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": true,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100"
+ }
+ },
+ [
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "0xcf08"
+ }
+ ]
+ ],
+ "gasPriceSpecified": true,
+ "gasLimitSpecified": true,
+ "estimatedGas": "0xcf08"
+ }
],
- "unapprovedTxs": {"2699829174766090":{"id":2699829174766090,"time":1522381785750,"status":"unapproved","metamaskNetworkId":"1","loadingDefaults":false,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100"},"history":[{"id":2699829174766090,"time":1522381785750,"status":"unapproved","metamaskNetworkId":"1","loadingDefaults":true,"txParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","to":"0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3","value":"0x0","gas":"0xcf08","gasPrice":"0x5f5e100"}},[{"op":"replace","path":"/loadingDefaults","value":false},{"op":"add","path":"/gasPriceSpecified","value":true},{"op":"add","path":"/gasLimitSpecified","value":true},{"op":"add","path":"/estimatedGas","value":"0xcf08"}]],"gasPriceSpecified":true,"gasLimitSpecified":true,"estimatedGas":"0xcf08"}},
- "unapprovedMsgs": {"2315363930841932":{"id":2315363930841932,"msgParams":{"from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4","data":"0x879a053d4800c6354e76c7985a865d2922c82fb5b3f4577b2fe08b998954f2e0"},"time":1522378539686,"status":"unapproved","type":"eth_sign"}},
+ "unapprovedTxs": {
+ "2699829174766090": {
+ "id": 2699829174766090,
+ "time": 1522381785750,
+ "status": "unapproved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": false,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100"
+ },
+ "history": [
+ {
+ "id": 2699829174766090,
+ "time": 1522381785750,
+ "status": "unapproved",
+ "metamaskNetworkId": "1",
+ "loadingDefaults": true,
+ "txParams": {
+ "from": "0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "to": "0xf45d68f31b3c9ac84ff0d07b86c59b753a60b1e3",
+ "value": "0x0",
+ "gas": "0xcf08",
+ "gasPrice": "0x5f5e100"
+ }
+ },
+ [
+ {
+ "op": "replace",
+ "path": "/loadingDefaults",
+ "value": false
+ },
+ {
+ "op": "add",
+ "path": "/gasPriceSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/gasLimitSpecified",
+ "value": true
+ },
+ {
+ "op": "add",
+ "path": "/estimatedGas",
+ "value": "0xcf08"
+ }
+ ]
+ ],
+ "gasPriceSpecified": true,
+ "gasLimitSpecified": true,
+ "estimatedGas": "0xcf08"
+ }
+ },
+ "unapprovedMsgs": {
+ "2315363930841932": {
+ "id": 2315363930841932,
+ "msgParams": {
+ "from":"0x5b1cbd5636d484bf1cb6927a9425db9e7dc73ce4",
+ "data":"0x879a053d4800c6354e76c7985a865d2922c82fb5b3f4577b2fe08b998954f2e0"
+ },
+ "time": 1522378539686,
+ "status": "unapproved",
+ "type": "eth_sign"
+ }
+ },
"unapprovedMsgCount": 0,
"unapprovedPersonalMsgs": {},
"unapprovedPersonalMsgCount": 0,
@@ -100,7 +1048,10 @@
"provider": {
"type": "testnet"
},
- "shapeShiftTxList": [{"depositAddress":"34vJ3AfmNcLiziA4VFgEVcQTwxVLD1qkke","depositType":"BTC","key":"shapeshift","response":{"status":"no_deposits","address":"34vJ3AfmNcLiziA4VFgEVcQTwxVLD1qkke"},"time":1522377459106}],
+ "shapeShiftTxList": [
+ {"depositAddress":"34vJ3AfmNcLiziA4VFgEVcQTwxVLD1qkke","depositType":"BTC","key":"shapeshift","response":{"status":"no_deposits","address":"34vJ3AfmNcLiziA4VFgEVcQTwxVLD1qkke"},"time":1522347459106},
+ {"depositAddress":"34vJ3AfmNcLiziA4VFgEVcQTwxVLD1qkkq","depositType":"BTC","key":"shapeshift","response":{"status":"no_deposits","address":"34vJ3AfmNcLiziA4VFgEVcQTwxVLD1qkkq"},"time":1522345459106}
+ ],
"lostAccounts": [],
"send": {},
"currentLocale": "en",
diff --git a/test/e2e/beta/metamask-beta-ui.spec.js b/test/e2e/beta/metamask-beta-ui.spec.js
index 489b9b9da..942651fc8 100644
--- a/test/e2e/beta/metamask-beta-ui.spec.js
+++ b/test/e2e/beta/metamask-beta-ui.spec.js
@@ -635,7 +635,7 @@ describe('MetaMask', function () {
await confirmButton.click()
await delay(largeDelayMs)
- driver.wait(async () => {
+ await driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
return confirmedTxes.length === 4
}, 10000)
@@ -695,7 +695,7 @@ describe('MetaMask', function () {
await confirmButton.click()
await delay(regularDelayMs)
- driver.wait(async () => {
+ await driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
return confirmedTxes.length === 5
}, 10000)
@@ -727,7 +727,7 @@ describe('MetaMask', function () {
await confirmButton.click()
await delay(regularDelayMs)
- driver.wait(async () => {
+ await driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
return confirmedTxes.length === 6
}, 10000)
@@ -911,7 +911,7 @@ describe('MetaMask', function () {
await driver.wait(until.elementTextMatches(txValues[0], /-50\s*TST/), 10000)
}
- driver.wait(async () => {
+ await driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
return confirmedTxes.length === 1
}, 10000)
@@ -962,26 +962,29 @@ describe('MetaMask', function () {
const [gasPriceInput, gasLimitInput] = await findElements(driver, By.css('.advanced-tab__gas-edit-row__input'))
await gasPriceInput.clear()
await delay(tinyDelayMs)
+
+ await gasPriceInput.sendKeys(Key.BACK_SPACE)
+ await gasPriceInput.sendKeys(Key.BACK_SPACE)
await gasPriceInput.sendKeys('10')
await delay(tinyDelayMs)
await gasLimitInput.clear()
await delay(tinyDelayMs)
await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'a'))
+ await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await gasLimitInput.sendKeys(Key.BACK_SPACE)
+ await gasLimitInput.sendKeys(Key.BACK_SPACE)
await gasLimitInput.sendKeys('60000')
await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'e'))
- // Needed for different behaviour of input in different versions of firefox
- const gasLimitInputValue = await gasLimitInput.getAttribute('value')
- if (gasLimitInputValue === '600001') {
- await gasLimitInput.sendKeys(Key.BACK_SPACE)
- }
-
const save = await findElement(driver, By.css('.page-container__footer-button'))
await save.click()
await driver.wait(until.stalenessOf(gasModal))
const gasFeeInputs = await findElements(driver, By.css('.confirm-detail-row__primary'))
- assert.equal(await gasFeeInputs[0].getText(), '0.0006')
+ const renderedGasFee = await gasFeeInputs[0].getText()
+ assert.equal(renderedGasFee, '0.0006')
})
it('submits the transaction', async function () {
@@ -991,7 +994,7 @@ describe('MetaMask', function () {
})
it('finds the transaction in the transactions list', async function () {
- driver.wait(async () => {
+ await driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
return confirmedTxes.length === 2
}, 10000)
@@ -1036,7 +1039,7 @@ describe('MetaMask', function () {
await driver.switchTo().window(extension)
await delay(regularDelayMs)
- driver.wait(async () => {
+ await driver.wait(async () => {
const pendingTxes = await findElements(driver, By.css('.transaction-list__pending-transactions .transaction-list-item'))
return pendingTxes.length === 1
}, 10000)
@@ -1116,7 +1119,7 @@ describe('MetaMask', function () {
})
it('finds the transaction in the transactions list', async function () {
- driver.wait(async () => {
+ await driver.wait(async () => {
const confirmedTxes = await findElements(driver, By.css('.transaction-list__completed-transactions .transaction-list-item'))
return confirmedTxes.length === 3
}, 10000)
diff --git a/test/integration/lib/tx-list-items.js b/test/integration/lib/tx-list-items.js
index ff196fac8..bf6f87937 100644
--- a/test/integration/lib/tx-list-items.js
+++ b/test/integration/lib/tx-list-items.js
@@ -16,7 +16,7 @@ QUnit.test('renders list items successfully', (assert) => {
global.ethQuery = global.ethQuery || {}
global.ethQuery.getTransactionCount = (_, cb) => {
- cb(null, '0x3')
+ cb(null, '0x4')
}
async function runTxListItemsTest (assert, done) {
@@ -30,25 +30,29 @@ async function runTxListItemsTest (assert, done) {
metamaskLogo[0].click()
const txListItems = await queryAsync($, '.transaction-list-item')
- assert.equal(txListItems.length, 7, 'all tx list items are rendered')
+ assert.equal(txListItems.length, 8, 'all tx list items are rendered')
- const approvedTx = txListItems[0]
+ const unapprovedMsg = txListItems[0]
+ const unapprovedMsgDescription = await findAsync($(unapprovedMsg), '.transaction-list-item__action')
+ assert.equal(unapprovedMsgDescription[0].textContent, 'Signature Request', 'unapprovedMsg has correct description')
+
+ const approvedTx = txListItems[2]
const approvedTxRenderedStatus = await findAsync($(approvedTx), '.transaction-list-item__status')
assert.equal(approvedTxRenderedStatus[0].textContent, 'pending', 'approvedTx has correct label')
- const unapprovedMsg = txListItems[1]
- const unapprovedMsgDescription = await findAsync($(unapprovedMsg), '.transaction-list-item__action')
- assert.equal(unapprovedMsgDescription[0].textContent, 'Signature Request', 'unapprovedMsg has correct description')
+ const confirmedTokenTx1 = txListItems[4]
+ const confirmedTokenTx1Address = await findAsync($(confirmedTokenTx1), '.transaction-list-item__status')
+ assert.equal(confirmedTokenTx1Address[0].textContent, 'Confirmed', 'confirmedTokenTx has correct status')
- const shapeShiftTx = txListItems[4]
- const shapeShiftTxStatus = await findAsync($(shapeShiftTx), '.flex-column div:eq(1)')
- assert.equal(shapeShiftTxStatus[0].textContent, 'No deposits received', 'shapeShiftTx has correct status')
+ const shapeShiftTx1 = txListItems[5]
+ const shapeShiftTx1Status = await findAsync($(shapeShiftTx1), '.flex-column div:eq(1)')
+ assert.equal(shapeShiftTx1Status[0].textContent, 'No deposits received', 'shapeShiftTx has correct status')
- const rejectedTx = txListItems[5]
- const rejectedTxRenderedStatus = await findAsync($(rejectedTx), '.transaction-list-item__status')
- assert.equal(rejectedTxRenderedStatus[0].textContent, 'Rejected', 'rejectedTx has correct label')
+ const confirmedTokenTx2 = txListItems[6]
+ const confirmedTokenTx2Address = await findAsync($(confirmedTokenTx2), '.transaction-list-item__status')
+ assert.equal(confirmedTokenTx2Address[0].textContent, 'Confirmed', 'confirmedTokenTx has correct status')
- const confirmedTokenTx = txListItems[6]
- const confirmedTokenTxAddress = await findAsync($(confirmedTokenTx), '.transaction-list-item__status')
- assert.equal(confirmedTokenTxAddress[0].textContent, 'Confirmed', 'confirmedTokenTx has correct address')
+ const shapeShiftTx2 = txListItems[7]
+ const shapeShiftTx2Address = await findAsync($(shapeShiftTx2), '.flex-column div:eq(1)')
+ assert.equal(shapeShiftTx2Address[0].textContent, 'No deposits received', 'shapeShiftTx has correct status')
}
diff --git a/ui/app/selectors/transactions.js b/ui/app/selectors/transactions.js
index 301e8d11f..fc1271c59 100644
--- a/ui/app/selectors/transactions.js
+++ b/ui/app/selectors/transactions.js
@@ -83,7 +83,7 @@ const insertOrderedNonce = (nonces, nonceToInsert) => {
for (let i = 0; i < nonces.length; i++) {
const nonce = nonces[i]
- if (Number(hexToDecimal(nonce)) < Number(hexToDecimal(nonceToInsert))) {
+ if (Number(hexToDecimal(nonce)) > Number(hexToDecimal(nonceToInsert))) {
insertIndex = i
break
}
@@ -138,17 +138,17 @@ const insertTransactionByTime = (transactions, transaction) => {
* @param {transactionGroup[]} transactionGroups - Array of transactionGroup objects.
* @param {transactionGroup} transactionGroup - transactionGroup object to be inserted into the
* array of transactionGroups.
- * @returns {transactionGroup[]}
*/
const insertTransactionGroupByTime = (transactionGroups, transactionGroup) => {
- const { primaryTransaction: { time } = {} } = transactionGroup
+ const { primaryTransaction: { time: groupToInsertTime } = {} } = transactionGroup
let insertIndex = transactionGroups.length
for (let i = 0; i < transactionGroups.length; i++) {
const txGroup = transactionGroups[i]
+ const { primaryTransaction: { time } = {} } = txGroup
- if (txGroup.time > time) {
+ if (time > groupToInsertTime) {
insertIndex = i
break
}
@@ -158,6 +158,22 @@ const insertTransactionGroupByTime = (transactionGroups, transactionGroup) => {
}
/**
+ * @name mergeShapeshiftTransactionGroups
+ * @private
+ * @description Inserts (mutates) shapeshift transactionGroups into an array of nonce-ordered
+ * transactionGroups by time. Shapeshift transactionGroups need to be sorted by time within the list
+ * of transactions as they do not have nonces.
+ * @param {transactionGroup[]} orderedTransactionGroups - Array of transactionGroups ordered by
+ * nonce.
+ * @param {transactionGroup[]} shapeshiftTransactionGroups - Array of shapeshift transactionGroups
+ */
+const mergeShapeshiftTransactionGroups = (orderedTransactionGroups, shapeshiftTransactionGroups) => {
+ shapeshiftTransactionGroups.forEach(shapeshiftGroup => {
+ insertTransactionGroupByTime(orderedTransactionGroups, shapeshiftGroup)
+ })
+}
+
+/**
* @name nonceSortedTransactionsSelector
* @description Returns an array of transactionGroups sorted by nonce in ascending order.
* @returns {transactionGroup[]}
@@ -166,11 +182,12 @@ export const nonceSortedTransactionsSelector = createSelector(
transactionsSelector,
(transactions = []) => {
const unapprovedTransactionGroups = []
+ const shapeshiftTransactionGroups = []
const orderedNonces = []
const nonceToTransactionsMap = {}
transactions.forEach(transaction => {
- const { txParams: { nonce } = {}, status, type, time: txTime } = transaction
+ const { txParams: { nonce } = {}, status, type, time: txTime, key } = transaction
if (typeof nonce === 'undefined') {
const transactionGroup = {
@@ -181,7 +198,11 @@ export const nonceSortedTransactionsSelector = createSelector(
hasCancelled: false,
}
- insertTransactionGroupByTime(unapprovedTransactionGroups, transactionGroup)
+ if (key === 'shapeshift') {
+ shapeshiftTransactionGroups.push(transactionGroup)
+ } else {
+ insertTransactionGroupByTime(unapprovedTransactionGroups, transactionGroup)
+ }
} else if (nonce in nonceToTransactionsMap) {
const nonceProps = nonceToTransactionsMap[nonce]
insertTransactionByTime(nonceProps.transactions, transaction)
@@ -224,6 +245,7 @@ export const nonceSortedTransactionsSelector = createSelector(
})
const orderedTransactionGroups = orderedNonces.map(nonce => nonceToTransactionsMap[nonce])
+ mergeShapeshiftTransactionGroups(orderedTransactionGroups, shapeshiftTransactionGroups)
return unapprovedTransactionGroups.concat(orderedTransactionGroups)
}
)
@@ -237,9 +259,7 @@ export const nonceSortedTransactionsSelector = createSelector(
export const nonceSortedPendingTransactionsSelector = createSelector(
nonceSortedTransactionsSelector,
(transactions = []) => (
- transactions
- .filter(({ primaryTransaction }) => primaryTransaction.status in pendingStatusHash)
- .reverse()
+ transactions.filter(({ primaryTransaction }) => primaryTransaction.status in pendingStatusHash)
)
)
@@ -252,9 +272,9 @@ export const nonceSortedPendingTransactionsSelector = createSelector(
export const nonceSortedCompletedTransactionsSelector = createSelector(
nonceSortedTransactionsSelector,
(transactions = []) => (
- transactions.filter(({ primaryTransaction }) => {
- return !(primaryTransaction.status in pendingStatusHash)
- })
+ transactions
+ .filter(({ primaryTransaction }) => !(primaryTransaction.status in pendingStatusHash))
+ .reverse()
)
)