From 36b93b200a550383a42921a8d05156328477a28f Mon Sep 17 00:00:00 2001 From: StanislavShevchenko Date: Thu, 23 Jan 2020 11:18:34 +0200 Subject: [PATCH] refactor: added verified Admin address and check test --- .env.dev | 2 +- src/server/blockchain/AdminWallet.js | 39 +++++++++++-------- .../blockchain/__tests__/adminWallet.test.js | 7 +--- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/.env.dev b/.env.dev index 1cdcb01c..9fbb0ecb 100644 --- a/.env.dev +++ b/.env.dev @@ -29,6 +29,6 @@ FUSE_API=https://explorer.fuse.io TWILIO_AUTH_ID= TWILIO_AUTH_TOKEN= TWILIO_PHONE_NUMBER= -NUMBER_OF_ADMIN_WALLET_ACCOUNTS=10 +NUMBER_OF_ADMIN_WALLET_ACCOUNTS=1 ADMIN_MIN_BALANCE=100000 MARKET_PASSWORD=markettokenmarkettokenmarkettoke diff --git a/src/server/blockchain/AdminWallet.js b/src/server/blockchain/AdminWallet.js index 9f670cd7..f3dbdccc 100644 --- a/src/server/blockchain/AdminWallet.js +++ b/src/server/blockchain/AdminWallet.js @@ -129,12 +129,17 @@ export class Wallet { this.network = conf.network this.networkId = conf.ethereum.network_id + this.proxyContract = new this.web3.eth.Contract( + ProxyContractABI.abi, + get(ContractsAddress, `${this.network}.AdminWallet`) + ) + txManager.getTransactionCount = this.web3.eth.getTransactionCount await txManager.createListIfNotExists(this.addresses) for (let addr of this.addresses) { const balance = await this.web3.eth.getBalance(addr) - log.info(`admin wallet ${addr} balance ${balance}`) - if (balance > adminMinBalance) { + if ((await this.isVerifiedAdmin(addr)) && balance > adminMinBalance) { + log.info(`admin wallet ${addr} balance ${balance}`) this.filledAddresses.push(addr) } } @@ -150,12 +155,6 @@ export class Wallet { { from: this.address } ) - this.proxyContract = new this.web3.eth.Contract( - ProxyContractABI.abi, - get(ContractsAddress, `${this.network}.AdminWallet`), - { from: this.address } - ) - this.signUpBonusContract = new this.web3.eth.Contract( SignUpBonusABI.abi, get(ContractsAddress, `${this.network}.SignupBonus`), @@ -184,14 +183,6 @@ export class Wallet { nonce: this.nonce, ContractsAddress: ContractsAddress[this.network] }) - await this.removeWhitelisted('0x6ddfF36dE47671BF9a2ad96438e518DD633A0e63').catch(_ => _) - const whitelistTest = await this.whitelistUser('0x6ddfF36dE47671BF9a2ad96438e518DD633A0e63', 'x') - const topwalletTest = await this.topWallet( - '0x6ddfF36dE47671BF9a2ad96438e518DD633A0e63', - moment().subtract(1, 'day'), - true - ) - log.info('wallet tests:', { whitelist: whitelistTest.status, topwallet: topwalletTest.status }) } catch (e) { log.error('Error initializing wallet', { e, errMessage: e.message }) if (conf.env !== 'test') process.exit(-1) @@ -364,6 +355,22 @@ export class Wallet { return tx } + /** + * + * @param {string} address + * @returns {Promise} + */ + async isVerifiedAdmin(address: string): Promise { + const tx: boolean = await this.proxyContract.methods + .isAdmin(address) + .call() + .catch(e => { + log.error('Error isAdmin', { e, errMessage: e.message }) + throw e + }) + return tx + } + /** * top wallet if needed * @param {string} address diff --git a/src/server/blockchain/__tests__/adminWallet.test.js b/src/server/blockchain/__tests__/adminWallet.test.js index a3526d24..652ce4d3 100644 --- a/src/server/blockchain/__tests__/adminWallet.test.js +++ b/src/server/blockchain/__tests__/adminWallet.test.js @@ -48,7 +48,7 @@ describe('adminwallet', () => { const promises = [] for (let i = 0; i < 5; i++) { const unverifiedAddress = generateWalletAddress() - const tx = await AdminWallet.whitelistUser(unverifiedAddress, 'did:gd') + // console.log('unverifiedAddress', unverifiedAddress) promises.push(AdminWallet.topWallet(unverifiedAddress, null, true)) } const res = await Promise.all(promises).catch(_ => false) @@ -57,14 +57,12 @@ describe('adminwallet', () => { test('adminWallet bad transaction in queue', async () => { const unverifiedAddress = generateWalletAddress() - const unverifiedAddress2 = generateWalletAddress() const from = AdminWallet.address const testValue = 10 const badGas = 10 let tx //good tx - await AdminWallet.whitelistUser(unverifiedAddress, 'did:gd') tx = await AdminWallet.topWallet(unverifiedAddress, null, true) expect(tx).toBeTruthy() @@ -80,8 +78,7 @@ describe('adminwallet', () => { ).rejects.toThrow() //good tx - await AdminWallet.whitelistUser(unverifiedAddress2, 'did:gd') - tx = await AdminWallet.topWallet(unverifiedAddress2, null, true) + tx = await AdminWallet.topWallet(unverifiedAddress, null, true) expect(tx).toBeTruthy() })