mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Rename recipientBlacklistChecker function (#8365)
This commit is contained in:
parent
a2a51e78d1
commit
9d535b949f
@ -25,7 +25,7 @@ import NonceTracker from 'nonce-tracker'
|
|||||||
import * as txUtils from './lib/util'
|
import * as txUtils from './lib/util'
|
||||||
import cleanErrorStack from '../../lib/cleanErrorStack'
|
import cleanErrorStack from '../../lib/cleanErrorStack'
|
||||||
import log from 'loglevel'
|
import log from 'loglevel'
|
||||||
import recipientBlacklistChecker from './lib/recipient-blacklist-checker'
|
import { throwIfAccountIsBlacklisted } from './lib/recipient-blacklist-checker'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
TRANSACTION_TYPE_CANCEL,
|
TRANSACTION_TYPE_CANCEL,
|
||||||
@ -234,9 +234,7 @@ class TransactionController extends EventEmitter {
|
|||||||
this.emit('newUnapprovedTx', txMeta)
|
this.emit('newUnapprovedTx', txMeta)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// check whether recipient account is blacklisted
|
throwIfAccountIsBlacklisted(txMeta.metamaskNetworkId, normalizedTxParams.to)
|
||||||
recipientBlacklistChecker.checkAccount(txMeta.metamaskNetworkId, normalizedTxParams.to)
|
|
||||||
// add default tx params
|
|
||||||
txMeta = await this.addTxGasDefaults(txMeta, getCodeResponse)
|
txMeta = await this.addTxGasDefaults(txMeta, getCodeResponse)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log.warn(error)
|
log.warn(error)
|
||||||
|
@ -1,17 +1,12 @@
|
|||||||
import blacklist from './recipient-blacklist'
|
import blacklist from './recipient-blacklist'
|
||||||
|
|
||||||
/** @module*/
|
|
||||||
export default {
|
|
||||||
checkAccount,
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a specified account on a specified network is blacklisted.
|
* Checks if a specified account on a specified network is blacklisted
|
||||||
@param {number} networkId
|
* @param {number} networkId
|
||||||
@param {string} account
|
* @param {string} account
|
||||||
*/
|
* @throws {Error} if the account is blacklisted on mainnet
|
||||||
function checkAccount (networkId, account) {
|
*/
|
||||||
|
export function throwIfAccountIsBlacklisted (networkId, account) {
|
||||||
const mainnetId = 1
|
const mainnetId = 1
|
||||||
if (networkId !== mainnetId) {
|
if (networkId !== mainnetId) {
|
||||||
return
|
return
|
||||||
|
@ -1,71 +1,53 @@
|
|||||||
import { strict as assert } from 'assert'
|
import { strict as assert } from 'assert'
|
||||||
import recipientBlackListChecker from '../../../../../app/scripts/controllers/transactions/lib/recipient-blacklist-checker'
|
import { throwIfAccountIsBlacklisted } from '../../../../../app/scripts/controllers/transactions/lib/recipient-blacklist-checker'
|
||||||
import { ROPSTEN_CODE, RINKEBY_CODE, KOVAN_CODE, GOERLI_CODE } from '../../../../../app/scripts/controllers/network/enums'
|
import { ROPSTEN_CODE, RINKEBY_CODE, KOVAN_CODE, GOERLI_CODE } from '../../../../../app/scripts/controllers/network/enums'
|
||||||
import KeyringController from 'eth-keyring-controller'
|
|
||||||
|
|
||||||
describe('Recipient Blacklist Checker', function () {
|
describe('Recipient Blacklist Checker', function () {
|
||||||
describe('#checkAccount', function () {
|
describe('#throwIfAccountIsBlacklisted', function () {
|
||||||
let publicAccounts
|
// Accounts from Ganache's original default seed phrase
|
||||||
|
const publicAccounts = [
|
||||||
before(async function () {
|
'0x627306090abab3a6e1400e9345bc60c78a8bef57',
|
||||||
const damnedMnemonic = 'candy maple cake sugar pudding cream honey rich smooth crumble sweet treat'
|
'0xf17f52151ebef6c7334fad080c5704d77216b732',
|
||||||
const keyringController = new KeyringController({})
|
'0xc5fdf4076b8f3a5357c5e395ab970b5b54098fef',
|
||||||
const Keyring = keyringController.getKeyringClassForType('HD Key Tree')
|
'0x821aea9a577a9b44299b9c15c88cf3087f3b5544',
|
||||||
const opts = {
|
'0x0d1d4e623d10f9fba5db95830f7d3839406c6af2',
|
||||||
mnemonic: damnedMnemonic,
|
'0x2932b7a2355d6fecc4b5c0b6bd44cc31df247a2e',
|
||||||
numberOfAccounts: 10,
|
'0x2191ef87e392377ec08e7c08eb105ef5448eced5',
|
||||||
}
|
'0x0f4f2ac550a1b4e2280d04c21cea7ebd822934b5',
|
||||||
const keyring = new Keyring(opts)
|
'0x6330a553fc93768f612722bb8c2ec78ac90b3bbc',
|
||||||
publicAccounts = await keyring.getAccounts()
|
'0x5aeda56215b167893e80b4fe645ba6d5bab767de',
|
||||||
})
|
]
|
||||||
|
|
||||||
it('does not fail on test networks', function () {
|
it('does not fail on test networks', function () {
|
||||||
let callCount = 0
|
|
||||||
const networks = [ROPSTEN_CODE, RINKEBY_CODE, KOVAN_CODE, GOERLI_CODE]
|
const networks = [ROPSTEN_CODE, RINKEBY_CODE, KOVAN_CODE, GOERLI_CODE]
|
||||||
for (const networkId of networks) {
|
for (const networkId of networks) {
|
||||||
publicAccounts.forEach((account) => {
|
for (const account of publicAccounts) {
|
||||||
recipientBlackListChecker.checkAccount(networkId, account)
|
assert.doesNotThrow(() => throwIfAccountIsBlacklisted(networkId, account))
|
||||||
callCount++
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
assert.equal(callCount, 40)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('fails on mainnet', function () {
|
it('fails on mainnet', function () {
|
||||||
const mainnetId = 1
|
for (const account of publicAccounts) {
|
||||||
let callCount = 0
|
assert.throws(
|
||||||
publicAccounts.forEach((account) => {
|
() => throwIfAccountIsBlacklisted(1, account),
|
||||||
try {
|
{ message: 'Recipient is a public account' },
|
||||||
recipientBlackListChecker.checkAccount(mainnetId, account)
|
)
|
||||||
assert.fail('function should have thrown an error')
|
}
|
||||||
} catch (err) {
|
|
||||||
assert.equal(err.message, 'Recipient is a public account')
|
|
||||||
}
|
|
||||||
callCount++
|
|
||||||
})
|
|
||||||
assert.equal(callCount, 10)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('fails for public account - uppercase', function () {
|
it('fails for public account - uppercase', function () {
|
||||||
const mainnetId = 1
|
assert.throws(
|
||||||
const publicAccount = '0X0D1D4E623D10F9FBA5DB95830F7D3839406C6AF2'
|
() => throwIfAccountIsBlacklisted(1, '0X0D1D4E623D10F9FBA5DB95830F7D3839406C6AF2'),
|
||||||
try {
|
{ message: 'Recipient is a public account' },
|
||||||
recipientBlackListChecker.checkAccount(mainnetId, publicAccount)
|
)
|
||||||
assert.fail('function should have thrown an error')
|
|
||||||
} catch (err) {
|
|
||||||
assert.equal(err.message, 'Recipient is a public account')
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('fails for public account - lowercase', async function () {
|
it('fails for public account - lowercase', function () {
|
||||||
const mainnetId = 1
|
assert.throws(
|
||||||
const publicAccount = '0x0d1d4e623d10f9fba5db95830f7d3839406c6af2'
|
() => throwIfAccountIsBlacklisted(1, '0x0d1d4e623d10f9fba5db95830f7d3839406c6af2'),
|
||||||
try {
|
{ message: 'Recipient is a public account' },
|
||||||
await recipientBlackListChecker.checkAccount(mainnetId, publicAccount)
|
)
|
||||||
assert.fail('function should have thrown an error')
|
|
||||||
} catch (err) {
|
|
||||||
assert.equal(err.message, 'Recipient is a public account')
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user