aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Finlay <somniac@me.com>2016-04-28 09:46:12 +0800
committerDan Finlay <somniac@me.com>2016-04-28 09:46:12 +0800
commit9b524b4f28bebbdf8351763b61e897f33021e25b (patch)
treed5b0f23ec9803f6956f42f9bbfbbd993608e1285
parentc66ac13cc93948945912690dffc4940f33fa1dfa (diff)
parentbd660d9aeb5638372605377fb92ce1362c3d8230 (diff)
downloadtangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.tar
tangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.tar.gz
tangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.tar.bz2
tangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.tar.lz
tangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.tar.xz
tangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.tar.zst
tangerine-wallet-browser-9b524b4f28bebbdf8351763b61e897f33021e25b.zip
Merge pull request #152 from MetaMask/FilterTransactionList
Filter transaction list for current network
-rw-r--r--app/scripts/background.js6
-rw-r--r--app/scripts/lib/idStore.js15
-rw-r--r--app/scripts/popup.js9
-rw-r--r--test/unit/explorer-link-test.js11
-rw-r--r--test/unit/idStore-test.js12
-rw-r--r--ui/app/account-detail.js3
-rw-r--r--ui/lib/explorer-link.js5
7 files changed, 45 insertions, 16 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index e5281b8d6..523df1261 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -11,6 +11,7 @@ const createTxNotification = require('./lib/tx-notification.js')
const configManager = require('./lib/config-manager-singleton')
const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex
const HostStore = require('./lib/remote-store.js').HostStore
+const Web3 = require('web3')
//
// connect to other contexts
@@ -51,6 +52,7 @@ function setupTrustedCommunication(connectionStream){
var providerConfig = configManager.getProvider()
var idStore = new IdentityStore()
+
var providerOpts = {
rpcUrl: configManager.getCurrentRpcAddress(),
getAccounts: function(cb){
@@ -62,6 +64,9 @@ var providerOpts = {
signTransaction: idStore.signTransaction.bind(idStore),
}
var provider = MetaMaskProvider(providerOpts)
+var web3 = new Web3(provider)
+idStore.web3 = web3
+idStore.getNetwork(3)
// log new blocks
provider.on('block', function(block){
@@ -222,6 +227,7 @@ function addUnconfirmedTx(txParams, cb){
function setRpcTarget(rpcTarget){
configManager.setRpcTarget(rpcTarget)
chrome.runtime.reload()
+ idStore.getNetwork(3) // 3 retry attempts
}
function useEtherscanProvider() {
diff --git a/app/scripts/lib/idStore.js b/app/scripts/lib/idStore.js
index 92d0f9668..e9aaed82e 100644
--- a/app/scripts/lib/idStore.js
+++ b/app/scripts/lib/idStore.js
@@ -16,11 +16,11 @@ module.exports = IdentityStore
inherits(IdentityStore, EventEmitter)
-function IdentityStore(ethStore) {
+function IdentityStore(opts = {}) {
EventEmitter.call(this)
// we just use the ethStore to auto-add accounts
- this._ethStore = ethStore
+ this._ethStore = opts.ethStore
// lightwallet key store
this._keyStore = null
// lightwallet wrapper
@@ -110,6 +110,16 @@ IdentityStore.prototype.setSelectedAddress = function(address){
this._didUpdate()
}
+IdentityStore.prototype.getNetwork = function(tries) {
+ if (tries === 0) return
+ this.web3.version.getNetwork((err, network) => {
+ if (err) {
+ return this.getNetwork(tries - 1, cb)
+ }
+ this._currentState.network = network
+ })
+}
+
IdentityStore.prototype.setLocked = function(cb){
delete this._keyStore
delete this._idmgmt
@@ -137,6 +147,7 @@ IdentityStore.prototype.addUnconfirmedTransaction = function(txParams, cb){
var time = (new Date()).getTime()
var txId = createId()
txParams.metamaskId = txId
+ txParams.metamaskNetworkId = this._currentState.network
var txData = {
id: txId,
txParams: txParams,
diff --git a/app/scripts/popup.js b/app/scripts/popup.js
index 6a39da661..e9ca7cd71 100644
--- a/app/scripts/popup.js
+++ b/app/scripts/popup.js
@@ -17,7 +17,7 @@ injectCss(css)
async.parallel({
currentDomain: getCurrentDomain,
accountManager: connectToAccountManager,
-}, getNetworkVersion)
+}, setupApp)
function connectToAccountManager(cb){
// setup communication with background
@@ -65,13 +65,6 @@ function getCurrentDomain(cb){
})
}
-function getNetworkVersion(cb, results) {
- web3.version.getNetwork(function(err, result) {
- results.networkVersion = result
- setupApp(err, results)
- })
-}
-
function setupApp(err, opts){
if (err) {
alert(err.stack)
diff --git a/test/unit/explorer-link-test.js b/test/unit/explorer-link-test.js
new file mode 100644
index 000000000..961b400fd
--- /dev/null
+++ b/test/unit/explorer-link-test.js
@@ -0,0 +1,11 @@
+var assert = require('assert')
+var linkGen = require('../../ui/lib/explorer-link')
+
+describe('explorer-link', function() {
+
+ it('adds testnet prefix to morden test network', function() {
+ var result = linkGen('hash', '2')
+ assert.notEqual(result.indexOf('testnet'), -1, 'testnet injected')
+ })
+
+})
diff --git a/test/unit/idStore-test.js b/test/unit/idStore-test.js
index d3fabfe9d..e9611d7e8 100644
--- a/test/unit/idStore-test.js
+++ b/test/unit/idStore-test.js
@@ -15,7 +15,9 @@ describe('IdentityStore', function() {
window.localStorage = {} // Hacking localStorage support into JSDom
idStore = new IdentityStore({
- addAccount(acct) { accounts.push(acct) },
+ ethStore: {
+ addAccount(acct) { accounts.push(acct) },
+ },
})
idStore.createNewVault(password, entropy, (err, seeds) => {
@@ -32,7 +34,9 @@ describe('IdentityStore', function() {
window.localStorage = {} // Hacking localStorage support into JSDom
idStore = new IdentityStore({
- addAccount(acct) { newAccounts.push(acct) },
+ ethStore: {
+ addAccount(acct) { newAccounts.push(acct) },
+ },
})
})
@@ -61,8 +65,8 @@ describe('IdentityStore', function() {
window.localStorage = {} // Hacking localStorage support into JSDom
idStore = new IdentityStore({
- addAccount(acct) {
- accounts.push(acct)
+ ethStore: {
+ addAccount(acct) { accounts.push(acct) },
},
})
})
diff --git a/ui/app/account-detail.js b/ui/app/account-detail.js
index 57f932a2b..250e7318c 100644
--- a/ui/app/account-detail.js
+++ b/ui/app/account-detail.js
@@ -16,7 +16,7 @@ function mapStateToProps(state) {
address: state.appState.currentView.context,
accountDetail: state.appState.accountDetail,
transactions: state.metamask.transactions,
- networkVersion: state.networkVersion,
+ networkVersion: state.metamask.network,
}
}
@@ -79,6 +79,7 @@ AccountDetailScreen.prototype.render = function() {
transactionList(transactions
.filter(tx => tx.txParams.from === state.address)
+ .filter(tx => tx.txParams.metamaskNetworkId === state.networkVersion)
.sort((a, b) => b.time - a.time), state.networkVersion),
this.exportedAccount(accountDetail),
diff --git a/ui/lib/explorer-link.js b/ui/lib/explorer-link.js
index a2e7872f9..92b3376fa 100644
--- a/ui/lib/explorer-link.js
+++ b/ui/lib/explorer-link.js
@@ -1,10 +1,13 @@
module.exports = function(hash, network) {
+ const net = parseInt(network)
let prefix
- switch (network) {
+ switch (net) {
case 1: // main net
prefix = ''
+ break
case 2: // morden test net
prefix = 'testnet.'
+ break
default:
prefix = ''
}