aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/controllers
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-06-07 03:05:38 +0800
committerkumavis <aaron@kumavis.me>2018-06-07 03:05:38 +0800
commit2198276bd533bec767cad954ef8b21c47c0f8c09 (patch)
tree6e4ff66926a954815a8421c0062012842f236785 /app/scripts/controllers
parentffb8fa16497d0c4a48e3bd4b918dde1ac3adcd5d (diff)
parent1fb408f62eb081311937420bb42da6c835510590 (diff)
downloadtangerine-wallet-browser-2198276bd533bec767cad954ef8b21c47c0f8c09.tar.gz
tangerine-wallet-browser-2198276bd533bec767cad954ef8b21c47c0f8c09.tar.zst
tangerine-wallet-browser-2198276bd533bec767cad954ef8b21c47c0f8c09.zip
Merge branch 'develop' of github.com:MetaMask/metamask-extension into network-remove-provider-engine
Diffstat (limited to 'app/scripts/controllers')
-rw-r--r--app/scripts/controllers/preferences.js1
-rw-r--r--app/scripts/controllers/transactions/index.js6
-rw-r--r--app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js24
-rw-r--r--app/scripts/controllers/transactions/lib/recipient-blacklist-config.json14
4 files changed, 44 insertions, 1 deletions
diff --git a/app/scripts/controllers/preferences.js b/app/scripts/controllers/preferences.js
index a5d8cc27b..8411e3a28 100644
--- a/app/scripts/controllers/preferences.js
+++ b/app/scripts/controllers/preferences.js
@@ -247,6 +247,7 @@ class PreferencesController {
* @return {Promise<string>}
*/
setAccountLabel (account, label) {
+ if (!account) throw new Error('setAccountLabel requires a valid address, got ' + String(account))
const address = normalizeAddress(account)
const {identities} = this.store.getState()
identities[address] = identities[address] || {}
diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js
index 79241ed1a..c270be294 100644
--- a/app/scripts/controllers/transactions/index.js
+++ b/app/scripts/controllers/transactions/index.js
@@ -10,6 +10,7 @@ const NonceTracker = require('./nonce-tracker')
const txUtils = require('./lib/util')
const cleanErrorStack = require('../../lib/cleanErrorStack')
const log = require('loglevel')
+const recipientBlacklistChecker = require('./lib/recipient-blacklist-checker')
/**
Transaction Controller is an aggregate of sub-controllers and trackers
@@ -162,8 +163,11 @@ class TransactionController extends EventEmitter {
let txMeta = this.txStateManager.generateTxMeta({ txParams: normalizedTxParams })
this.addTx(txMeta)
this.emit('newUnapprovedTx', txMeta)
- // add default tx params
+
try {
+ // check whether recipient account is blacklisted
+ recipientBlacklistChecker.checkAccount(txMeta.metamaskNetworkId, normalizedTxParams.to)
+ // add default tx params
txMeta = await this.addTxGasDefaults(txMeta)
} catch (error) {
console.log(error)
diff --git a/app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js b/app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js
new file mode 100644
index 000000000..84c6df1f0
--- /dev/null
+++ b/app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js
@@ -0,0 +1,24 @@
+const Config = require('./recipient-blacklist-config.json')
+
+/** @module*/
+module.exports = {
+ checkAccount,
+}
+
+/**
+ * Checks if a specified account on a specified network is blacklisted.
+ @param networkId {number}
+ @param account {string}
+*/
+function checkAccount (networkId, account) {
+
+ const mainnetId = 1
+ if (networkId !== mainnetId) {
+ return
+ }
+
+ const accountToCheck = account.toLowerCase()
+ if (Config.blacklist.includes(accountToCheck)) {
+ throw new Error('Recipient is a public account')
+ }
+}
diff --git a/app/scripts/controllers/transactions/lib/recipient-blacklist-config.json b/app/scripts/controllers/transactions/lib/recipient-blacklist-config.json
new file mode 100644
index 000000000..b348eb72e
--- /dev/null
+++ b/app/scripts/controllers/transactions/lib/recipient-blacklist-config.json
@@ -0,0 +1,14 @@
+{
+ "blacklist": [
+ "0x627306090abab3a6e1400e9345bc60c78a8bef57",
+ "0xf17f52151ebef6c7334fad080c5704d77216b732",
+ "0xc5fdf4076b8f3a5357c5e395ab970b5b54098fef",
+ "0x821aea9a577a9b44299b9c15c88cf3087f3b5544",
+ "0x0d1d4e623d10f9fba5db95830f7d3839406c6af2",
+ "0x2932b7a2355d6fecc4b5c0b6bd44cc31df247a2e",
+ "0x2191ef87e392377ec08e7c08eb105ef5448eced5",
+ "0x0f4f2ac550a1b4e2280d04c21cea7ebd822934b5",
+ "0x6330a553fc93768f612722bb8c2ec78ac90b3bbc",
+ "0x5aeda56215b167893e80b4fe645ba6d5bab767de"
+ ]
+}