diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js index 58c468e22..1bcee60ab 100644 --- a/app/scripts/controllers/transactions.js +++ b/app/scripts/controllers/transactions.js @@ -1,6 +1,5 @@ const EventEmitter = require('events') const extend = require('xtend') -const clone = require('clone') const ObservableStore = require('obs-store') const ethUtil = require('ethereumjs-util') const EthQuery = require('ethjs-query') @@ -8,6 +7,7 @@ const TxProviderUtil = require('../lib/tx-utils') const PendingTransactionTracker = require('../lib/pending-tx-tracker') const createId = require('../lib/random-id') const NonceTracker = require('../lib/nonce-tracker') +const txStateHistoryHelper = require('../lib/tx-state-history-helper') module.exports = class TransactionController extends EventEmitter { constructor (opts) { @@ -128,19 +128,17 @@ module.exports = class TransactionController extends EventEmitter { updateTx (txMeta) { // create txMeta snapshot for history - const txMetaForHistory = clone(txMeta) - // dont include previous history in this snapshot - delete txMetaForHistory.history - // add snapshot to tx history - if (!txMeta.history) txMeta.history = [] - txMeta.history.push(txMetaForHistory) + const currentState = txStateHistoryHelper.snapshotFromTxMeta(txMeta) + // recover previous tx state obj + const previousState = txStateHistoryHelper.replayHistory(txMeta.history) + // generate history entry and add to history + const entry = txStateHistoryHelper.generateHistoryEntry(previousState, currentState) + txMeta.history.push(entry) + // commit txMeta to state const txId = txMeta.id const txList = this.getFullTxList() const index = txList.findIndex(txData => txData.id === txId) - if (!txMeta.history) txMeta.history = [] - txMeta.history.push(txMetaForHistory) - txList[index] = txMeta this._saveTxList(txList) this.emit('update') @@ -148,16 +146,22 @@ module.exports = class TransactionController extends EventEmitter { // Adds a tx to the txlist addTx (txMeta) { - const txCount = this.getTxCount() - const network = this.getNetwork() - const fullTxList = this.getFullTxList() - const txHistoryLimit = this.txHistoryLimit + // initialize history + txMeta.history = [] + // capture initial snapshot of txMeta for history + const snapshot = txStateHistoryHelper.snapshotFromTxMeta(txMeta) + txMeta.history.push(snapshot) // checks if the length of the tx history is // longer then desired persistence limit // and then if it is removes only confirmed // or rejected tx's. // not tx's that are pending or unapproved + const txCount = this.getTxCount() + const network = this.getNetwork() + const fullTxList = this.getFullTxList() + const txHistoryLimit = this.txHistoryLimit + if (txCount > txHistoryLimit - 1) { const index = fullTxList.findIndex((metaTx) => ((metaTx.status === 'confirmed' || metaTx.status === 'rejected') && network === txMeta.metamaskNetworkId)) fullTxList.splice(index, 1) @@ -206,7 +210,6 @@ module.exports = class TransactionController extends EventEmitter { status: 'unapproved', metamaskNetworkId: this.getNetwork(), txParams: txParams, - history: [], } // add default tx params await this.addTxDefaults(txMeta) diff --git a/app/scripts/lib/tx-state-history-helper.js b/app/scripts/lib/tx-state-history-helper.js new file mode 100644 index 000000000..304069d57 --- /dev/null +++ b/app/scripts/lib/tx-state-history-helper.js @@ -0,0 +1,37 @@ +const jsonDiffer = require('fast-json-patch') +const clone = require('clone') + +module.exports = { + generateHistoryEntry, + replayHistory, + snapshotFromTxMeta, + migrateFromSnapshotsToDiffs, +} + + +function migrateFromSnapshotsToDiffs(longHistory) { + return ( + longHistory + // convert non-initial history entries into diffs + .map((entry, index) => { + if (index === 0) return entry + return generateHistoryEntry(longHistory[index - 1], entry) + }) + ) +} + +function generateHistoryEntry(previousState, newState) { + return jsonDiffer.compare(previousState, newState) +} + +function replayHistory(shortHistory) { + return shortHistory.reduce((val, entry) => jsonDiffer.applyPatch(val, entry).newDocument) +} + +function snapshotFromTxMeta(txMeta) { + // create txMeta snapshot for history + const snapshot = clone(txMeta) + // dont include previous history in this snapshot + delete snapshot.history + return snapshot +} \ No newline at end of file diff --git a/app/scripts/migrations/018.js b/app/scripts/migrations/018.js new file mode 100644 index 000000000..d27fe3f46 --- /dev/null +++ b/app/scripts/migrations/018.js @@ -0,0 +1,52 @@ +const version = 18 + +/* + +This migration updates "transaction state history" to diffs style + +*/ + +const clone = require('clone') +const txStateHistoryHelper = require('../lib/tx-state-history-helper') + + +module.exports = { + version, + + migrate: function (originalVersionedData) { + const versionedData = clone(originalVersionedData) + versionedData.meta.version = version + try { + const state = versionedData.data + const newState = transformState(state) + versionedData.data = newState + } catch (err) { + console.warn(`MetaMask Migration #${version}` + err.stack) + } + return Promise.resolve(versionedData) + }, +} + +function transformState (state) { + const newState = state + const transactions = newState.TransactionController.transactions + newState.TransactionController.transactions = transactions.map((txMeta) => { + // no history: initialize + if (!txMeta.history || txMeta.history.length === 0) { + const snapshot = txStateHistoryHelper.snapshotFromTxMeta(txMeta) + txMeta.history = [snapshot] + return txMeta + } + // has history: migrate + const newHistory = ( + txStateHistoryHelper.migrateFromSnapshotsToDiffs(txMeta.history) + // remove empty diffs + .filter((entry) => { + return !Array.isArray(entry) || entry.length > 0 + }) + ) + txMeta.history = newHistory + return txMeta + }) + return newState +} diff --git a/app/scripts/migrations/index.js b/app/scripts/migrations/index.js index f4c87499f..6bfc622f7 100644 --- a/app/scripts/migrations/index.js +++ b/app/scripts/migrations/index.js @@ -28,4 +28,5 @@ module.exports = [ require('./015'), require('./016'), require('./017'), + require('./018'), ] diff --git a/package.json b/package.json index 20170272a..9a09e6305 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "express": "^4.14.0", "extension-link-enabler": "^1.0.0", "extensionizer": "^1.0.0", + "fast-json-patch": "^2.0.4", "fast-levenshtein": "^2.0.6", "gulp": "github:gulpjs/gulp#4.0", "gulp-eslint": "^4.0.0", diff --git a/test/data/v17-long-history.json b/test/data/v17-long-history.json new file mode 100644 index 000000000..a33d425f8 --- /dev/null +++ b/test/data/v17-long-history.json @@ -0,0 +1,3053 @@ +{ + "meta": { + "version": 17 + }, + "data": { + "config": {}, + "NetworkController": { + "provider": { + "type": "ropsten", + "rpcTarget": "https://ropsten.infura.io/metamask" + }, + "network": "3" + }, + "NoticeController": { + "noticesList": [ + { + "read": true, + "date": "Thu Feb 09 2017", + "title": "Terms of Use", + "body": "", + "id": 0 + }, + { + "read": true, + "date": "Mon May 08 2017", + "title": "Privacy Notice", + "body": "", + "id": 2 + } + ] + }, + "CurrencyController": { + "currentCurrency": "USD", + "conversionRate": 295.81988556, + "conversionDate": 1502734981 + }, + "KeyringController": { + "vault": "{\"data\":\"fFwVD3Msyq1o9NsDbjMlyJ1ZfoMcqfTgjR9cium0C5Vnpk9IM6f/RTVXfk0J4c4UkbgbKd++q8t1S+D22s7Ddz/BT/fe0GrbwPvAYQi1oJuOI9/Lf7I0JbESGv4PheijCIH4h/FiO+tIAuqM0Co3PULM4mOHdzXD8SWmzxbDGx+4wG84EQE9a1NEbqEjyqrX02h3NwZsjrSeuV5TibpGJB9vnKNpDu9wF0DVKLtLCG5n67uoTI/ve9Z7hIDa03vNi/71iE4avFb6ogE2SAkFDncEcU0xXVkBMapBXjrpe5sIq08Ddo0Hhi4fkd4yFW77sAH4TKzd6bWSn2AK8HL8Gpcrk4R6Cvv8EtyjUqsOJfE4AmYI6rWfFutLqEAp\",\"iv\":\"9fJ/OGDVwUnu3H0U71qOGA==\",\"salt\":\"5yGOu/+yrrb3DyP+cvMKIZqjhSjrEY+bnceHnz9n8gM=\"}", + "walletNicknames": { + "0x3ae39e89dc7e736cce53091057a45bf44b1a566c": "Account 1", + "0xa7a467edcb16a51976418ec6133f14f7939dc378": "Account 2", + "0x03ce38bd04b4ad7581a7070570381a530951ebbe": "Account 3" + } + }, + "PreferencesController": { + "frequentRpcList": [], + "currentAccountTab": "history", + "tokens": [], + "selectedAddress": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c" + }, + "seedWords": null, + "InfuraController": { + "infuraNetworkStatus": { + "mainnet": "degraded", + "ropsten": "ok", + "kovan": "ok", + "rinkeby": "ok" + } + }, + "BlacklistController": { + "phishing": { + "version": 2, + "tolerance": 2, + "fuzzylist": [ + "metamask.io", + "myetherwallet.com" + ], + "whitelist": [ + "metamask.io", + "myetherwallet.com", + "ethereum.org", + "myetheroll.com", + "myetherapi.com", + "ledgerwallet.com", + "etherscan.io", + "etherid.org", + "ether.cards", + "etheroll.com", + "ethnews.com", + "ethex.market", + "ethereumdev.io", + "ethereumdev.kr", + "dether.io", + "ethermine.org", + "slaask.com", + "etherbtc.io", + "ethereal.capital", + "etherisc.com", + "m.famalk.net", + "etherecho.com", + "ethereum.os.tc", + "theethereum.wiki", + "metajack.im", + "etherhub.io", + "ethereum.network", + "ethereum.link", + "ethereum.com", + "prethereum.org", + "ethereumj.io", + "etheraus.com", + "ethereum.dev", + "1ethereum.ru", + "ethereum.nz", + "nethereum.com", + "metabank.com", + "metamas.com", + "metabase.com" + ], + "blacklist": [ + "numerai.tech", + "decentraiand.org", + "blockcrein.info", + "blockchealn.info", + "bllookchain.info", + "blockcbhain.info", + "myetherwallet.com.ethpromonodes.com", + "mettamask.io", + "tokenswap.org", + "netherum.com", + "etherexx.org", + "etherume.io", + "ethereum.plus", + "ehtereum.org", + "etereurm.org", + "etheream.com", + "ethererum.org", + "ethereum.io", + "0xtoken.com", + "cryptoalliance.herokuapp.com", + "bitspark2.com", + "indorsetoken.com", + "bittreat.com", + "iconexus.tk", + "iconexus.ml", + "iconexus.ga", + "iconexus.cf", + "etherwallet.online", + "wallet-ethereum.net", + "bitsdigit.com", + "etherswap.org", + "eos.ac", + "uasfwallet.com", + "ziber.io", + "multiply-ethereum.info", + "bittrex.comze.com", + "karbon.vacau.com", + "etherdelta.gitlhub.io", + "etherdelta.glthub.io", + "digitaldevelopersfund.vacau.com", + "district-0x.io", + "coin-dash.com", + "coindash.ru", + "district0x.net", + "aragonproject.io", + "coin-wallet.info", + "coinswallet.info", + "contribute-status.im", + "ether-api.com", + "ether-wall.com", + "mycoinwallet.net", + "ethereumchamber.com", + "ethereumchamber.net", + "ethereumchest.com", + "myetherweb.com.de", + "myetherieumwallet.com", + "myetehrwallet.com", + "myeterwalet.com", + "myetherwaiiet.com", + "myetherwallet.info", + "myetherwallet.ch", + "myetherwallet.om", + "myethervallet.com", + "myetherwallet.com.cm", + "myetherwallet.com.co", + "myetherwallet.com.de", + "myetherwallet.com.gl", + "myetherwallet.com.im", + "myetherwallet.com.ua", + "secure-myetherwallet.com", + "update-myetherwallet.com", + "wwwmyetherwallet.com", + "myeatherwallet.com", + "myetharwallet.com", + "myelherwallel.com", + "myetherwaillet.com", + "myetherwaliet.com", + "myetherwallel.com", + "myetherwallet.cam", + "myetherwallet.cc", + "myetherwallet.co", + "myetherwallet.cm", + "myetherwallet.cz", + "myetherwallet.org", + "myetherwallet.tech", + "myetherwallet.top", + "myetherwallet.net", + "etherclassicwallet.com", + "omg-omise.co", + "omise-go.com", + "tenx-tech.com", + "tokensale-tenx.tech", + "ubiqcoin.org", + "metamask.com", + "ethtrade.io", + "myetcwallet.com", + "account-kigo.net", + "bitcoin-wallet.net", + "blocklichan.info", + "bloclkicihan.info", + "coindash.ml", + "eos-bonus.com", + "eos-io.info", + "ether-wallet.net", + "ethereum-wallet.info", + "ethereum-wallet.net", + "ethereumchest.net", + "reservations-kigo.net", + "reservations-lodgix.com", + "secure-liverez.com", + "secure-onerooftop.com", + "settings-liverez.com", + "software-liverez.com", + "software-lodgix.com", + "unhackableetherwallets.com", + "www-myetherwallet.com", + "etherwallet.co.za", + "etherwalletchain.com", + "etherwallets.net", + "etherwallets.nl", + "my-ethwallet.com", + "my.ether-wallet.co", + "myetherwallet.com.am", + "myetherwallet.com.ht", + "myetherwalletcom.com", + "xn--myetherwalle-xoc.com", + "xn--myetherwalle-44i.com", + "xn--myetherwalle-xhk.com", + "xn--myetherwallt-cfb.com", + "xn--myetherwallt-6tb.com", + "xn--myetherwallt-xub.com", + "xn--myetherwallt-ovb.com", + "xn--myetherwallt-fwb.com", + "xn--myetherwallt-5wb.com", + "xn--myetherwallt-jzi.com", + "xn--myetherwallt-2ck.com", + "xn--myetherwallt-lok.com", + "xn--myetherwallt-lsl.com", + "xn--myetherwallt-ce6f.com", + "xn--myetherwalet-mcc.com", + "xn--myetherwalet-xhf.com", + "xn--myetherwalet-lcc.com", + "xn--myetherwaet-15ba.com", + "xn--myetherwalet-whf.com", + "xn--myetherwaet-v2ea.com", + "xn--myetherwllet-59a.com", + "xn--myetherwllet-jbb.com", + "xn--myetherwllet-wbb.com", + "xn--myetherwllet-9bb.com", + "xn--myetherwllet-ncb.com", + "xn--myetherwllet-0cb.com", + "xn--myetherwllet-5nb.com", + "xn--myetherwllet-ktd.com", + "xn--myetherwllet-mre.com", + "xn--myetherwllet-76e.com", + "xn--myetherwllet-o0l.com", + "xn--myetherwllet-c45f.com", + "xn--myetherallet-ejn.com", + "xn--myethewallet-4nf.com", + "xn--myethewallet-iof.com", + "xn--myethewallet-mpf.com", + "xn--myethewallet-6bk.com", + "xn--myethewallet-i31f.com", + "xn--myethrwallet-feb.com", + "xn--myethrwallt-fbbf.com", + "xn--myethrwallet-seb.com", + "xn--myethrwallt-rbbf.com", + "xn--myethrwallet-5eb.com", + "xn--myethrwallt-3bbf.com", + "xn--myethrwallet-0tb.com", + "xn--myethrwallt-tpbf.com", + "xn--myethrwallet-rub.com", + "xn--myethrwallt-iqbf.com", + "xn--myethrwallet-ivb.com", + "xn--myethrwallt-6qbf.com", + "xn--myethrwallet-8vb.com", + "xn--myethrwallt-vrbf.com", + "xn--myethrwallet-zwb.com", + "xn--myethrwallt-ksbf.com", + "xn--myethrwallet-dzi.com", + "xn--myethrwallt-wbif.com", + "xn--myethrwallet-wck.com", + "xn--myethrwallt-skjf.com", + "xn--myethrwallet-fok.com", + "xn--myethrwallt-fvjf.com", + "xn--myethrwallet-fsl.com", + "xn--myethrwallt-fwkf.com", + "xn--myethrwallet-5d6f.com", + "xn--myethrwallt-319ef.com", + "xn--myeterwallet-ufk.com", + "xn--myeterwallet-nrl.com", + "xn--myeterwallet-von.com", + "xn--myeterwallet-jl6c.com", + "xn--myeherwallet-ooc.com", + "xn--myeherwalle-6hci.com", + "xn--myeherwallet-v4i.com", + "xn--myeherwalle-zgii.com", + "xn--myeherwallet-ohk.com", + "xn--myeherwalle-6oji.com", + "xn--mytherwallet-ceb.com", + "xn--mythrwallet-cbbc.com", + "xn--mythrwallt-c7acf.com", + "xn--mytherwallet-peb.com", + "xn--mythrwallet-obbc.com", + "xn--mythrwallt-n7acf.com", + "xn--mytherwallet-2eb.com", + "xn--mythrwallet-0bbc.com", + "xn--mythrwallt-y7acf.com", + "xn--mytherwallet-xtb.com", + "xn--mythrwallet-qpbc.com", + "xn--mythrwallt-jlbcf.com", + "xn--mytherwallet-oub.com", + "xn--mythrwallet-fqbc.com", + "xn--mythrwallt-5lbcf.com", + "xn--mythrwallet-3qbc.com", + "xn--mythrwallt-smbcf.com", + "xn--mytherwallet-5vb.com", + "xn--mythrwallet-srbc.com", + "xn--mythrwallt-fnbcf.com", + "xn--mytherwallet-wwb.com", + "xn--mythrwallet-hsbc.com", + "xn--mythrwallt-1nbcf.com", + "xn--mytherwallet-9yi.com", + "xn--mythrwallet-tbic.com", + "xn--mythrwallt-dnhcf.com", + "xn--mytherwallet-tck.com", + "xn--mythrwallet-pkjc.com", + "xn--mythrwallt-lsicf.com", + "xn--mytherwallet-cok.com", + "xn--mythrwallet-cvjc.com", + "xn--mythrwallt-c2icf.com", + "xn--mytherwallet-csl.com", + "xn--mythrwallet-cwkc.com", + "xn--mythrwallt-c0jcf.com", + "xn--mytherwallet-2d6f.com", + "xn--mythrwallet-019ec.com", + "xn--mythrwallt-yq3ecf.com", + "xn--metherwallet-qlb.com", + "xn--metherwallet-1uf.com", + "xn--metherwallet-iyi.com", + "xn--metherwallet-zhk.com", + "xn--metherwallet-3ml.com", + "xn--mytherwallet-fvb.com", + "xn--myetherwallt-7db.com", + "xn--myetherwallt-leb.com", + "xn--myetherwallt-yeb.com", + "xn--yetherwallet-vjf.com", + "xn--yetherwallet-dfk.com", + "xn--yetherwallet-1t1f.com", + "xn--yetherwallet-634f.com" + ] + } + }, + "AddressBookController": { + "addressBook": [] + }, + "TransactionController": { + "transactions": [ + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d", + "nonce": 0 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d", + "nonce": 0 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", + "retryCount": 1 + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", + "retryCount": 1 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", + "retryCount": 1 + }, + { + "id": 6616756286038870, + "time": 1502573153664, + "status": "rejected", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "history": [ + { + "id": 6616756286038870, + "time": 1502573153664, + "status": "rejected", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038870, + "time": 1502573153664, + "status": "rejected", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d", + "nonce": 1 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d", + "nonce": 1 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", + "retryCount": 1 + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", + "retryCount": 1 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", + "retryCount": 1 + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 2 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 2 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", + "retryCount": 1 + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", + "retryCount": 1 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", + "retryCount": 1 + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", + "retryCount": 2 + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", + "retryCount": 2 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", + "retryCount": 2 + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 4 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 4 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", + "retryCount": 4 + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", + "retryCount": 4 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", + "retryCount": 4 + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 5 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 5 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", + "retryCount": 3 + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", + "retryCount": 3 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", + "retryCount": 3 + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + }, + "gasLimitSpecified": false, + "estimatedGas": "5209" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 6 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + } + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 6 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + } + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + } + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + } + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1", + "retryCount": 5 + }, + { + "id": 6616756286038876, + "time": 1502734928623, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x06", + "chainId": 3 + }, + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1", + "retryCount": 5 + } + ], + "gasLimitSpecified": false, + "estimatedGas": "5209", + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 3 + }, + "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", + "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1", + "retryCount": 5 + } + ] + } + } +} \ No newline at end of file diff --git a/test/unit/tx-controller-test.js b/test/unit/tx-controller-test.js index 57d7deccd..7bb193242 100644 --- a/test/unit/tx-controller-test.js +++ b/test/unit/tx-controller-test.js @@ -6,12 +6,15 @@ const clone = require('clone') const sinon = require('sinon') const TransactionController = require('../../app/scripts/controllers/transactions') const TxProvideUtils = require('../../app/scripts/lib/tx-utils') +const txStateHistoryHelper = require('../../app/scripts/lib/tx-state-history-helper') + const noop = () => true const currentNetworkId = 42 const otherNetworkId = 36 const privKey = new Buffer('8718b9618a37d1fc78c436511fc6df3c8258d3250635bba617f33003270ec03e', 'hex') const { createStubedProvider } = require('../stub/provider') + describe('Transaction Controller', function () { let txController, engine, provider, providerResultStub @@ -47,7 +50,7 @@ describe('Transaction Controller', function () { metamaskNetworkId: currentNetworkId, txParams, } - txController._saveTxList([txMeta]) + txController.addTx(txMeta) stub = sinon.stub(txController, 'addUnapprovedTransaction').returns(Promise.resolve(txMeta)) }) @@ -279,12 +282,15 @@ describe('Transaction Controller', function () { it('replaces the tx with the same id', function () { txController.addTx({ id: '1', status: 'unapproved', metamaskNetworkId: currentNetworkId, txParams: {} }, noop) txController.addTx({ id: '2', status: 'confirmed', metamaskNetworkId: currentNetworkId, txParams: {} }, noop) - txController.updateTx({ id: '1', status: 'blah', hash: 'foo', metamaskNetworkId: currentNetworkId, txParams: {} }) - var result = txController.getTx('1') - assert.equal(result.hash, 'foo') + const tx1 = txController.getTx('1') + tx1.status = 'blah' + tx1.hash = 'foo' + txController.updateTx(tx1) + const savedResult = txController.getTx('1') + assert.equal(savedResult.hash, 'foo') }) - it('updates gas price', function () { + it('updates gas price and adds history items', function () { const originalGasPrice = '0x01' const desiredGasPrice = '0x02' @@ -297,13 +303,22 @@ describe('Transaction Controller', function () { }, } - const updatedMeta = clone(txMeta) - txController.addTx(txMeta) - updatedMeta.txParams.gasPrice = desiredGasPrice - txController.updateTx(updatedMeta) - var result = txController.getTx('1') + const updatedTx = txController.getTx('1') + // verify tx was initialized correctly + assert.equal(updatedTx.history.length, 1, 'one history item (initial)') + assert.equal(Array.isArray(updatedTx.history[0]), false, 'first history item is initial state') + assert.deepEqual(updatedTx.history[0], txStateHistoryHelper.snapshotFromTxMeta(updatedTx), 'first history item is initial state') + // modify value and updateTx + updatedTx.txParams.gasPrice = desiredGasPrice + txController.updateTx(updatedTx) + // check updated value + const result = txController.getTx('1') assert.equal(result.txParams.gasPrice, desiredGasPrice, 'gas price updated') + // validate history was updated + assert.equal(result.history.length, 2, 'two history items (initial + diff)') + const expectedEntry = { op: 'replace', path: '/txParams/gasPrice', value: desiredGasPrice } + assert.deepEqual(result.history[1], [expectedEntry], 'two history items (initial + diff)') }) }) diff --git a/test/unit/tx-state-history-helper.js b/test/unit/tx-state-history-helper.js new file mode 100644 index 000000000..5bb6c9bee --- /dev/null +++ b/test/unit/tx-state-history-helper.js @@ -0,0 +1,23 @@ +const assert = require('assert') +const txStateHistoryHelper = require('../../app/scripts/lib/tx-state-history-helper') +const testVault = require('../data/v17-long-history.json') + + +describe('tx-state-history-helper', function () { + it('migrates history to diffs and can recover original values', function () { + testVault.data.TransactionController.transactions.forEach((tx, index) => { + const newHistory = txStateHistoryHelper.migrateFromSnapshotsToDiffs(tx.history) + newHistory.forEach((newEntry, index) => { + if (index === 0) { + assert.equal(Array.isArray(newEntry), false, 'initial history item IS NOT a json patch obj') + } else { + assert.equal(Array.isArray(newEntry), true, 'non-initial history entry IS a json patch obj') + } + const oldEntry = tx.history[index] + const historySubset = newHistory.slice(0, index + 1) + const reconstructedValue = txStateHistoryHelper.replayHistory(historySubset) + assert.deepEqual(oldEntry, reconstructedValue, 'was able to reconstruct old entry from diffs') + }) + }) + }) +})