From 989b36f28e9649fd74b384f2a16bf8fd64bac85c Mon Sep 17 00:00:00 2001 From: Denis Davidyuk Date: Wed, 23 Jun 2021 06:09:00 +0300 Subject: [PATCH] refactor!: enable verification in deep props instead of extra variable --- src/ae/index.js | 2 +- src/chain/index.js | 4 ++-- src/chain/node.js | 6 +----- test/integration/aens.js | 4 ++-- test/integration/contract.js | 2 +- test/integration/ga.js | 11 ++++------- test/integration/transaction.js | 2 +- test/integration/txVerification.js | 2 +- 8 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/ae/index.js b/src/ae/index.js index 2ff0080292..0de3acb6ff 100644 --- a/src/ae/index.js +++ b/src/ae/index.js @@ -38,7 +38,7 @@ import { AE_AMOUNT_FORMATS } from '../utils/amount-formatter' * @rtype (tx: String, options: Object) => Promise[String] * @param {String} tx - Transaction * @param {Object} [options={}] options - Options - * @param {Object} [options.verify] verify - Verify transaction before broadcast, throw error if not valid + * @param {Object} [options.verify=true] verify - Verify transaction before broadcast, throw error if not valid * @return {Object} Transaction */ async function send (tx, options = {}) { diff --git a/src/chain/index.js b/src/chain/index.js index 2bbeefa7b9..715fefe1c2 100644 --- a/src/chain/index.js +++ b/src/chain/index.js @@ -37,7 +37,7 @@ import { required } from '@stamp/required' * @return {Object} Chain instance */ const Chain = stampit({ - deepProps: { Ae: { defaults: { waitMined: true } } }, + deepProps: { Ae: { defaults: { waitMined: true, verify: true } } }, statics: { waitMined (bool) { return this.deepProps({ Ae: { defaults: { waitMined: bool } } }) } } }, required({ methods: { @@ -74,7 +74,7 @@ const Chain = stampit({ * @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String] * @param {String} tx - Transaction to submit * @param {String} [options={}] - Options to pass to the implementation - * @param {String} [options.verify = false] - Verify transaction before broadcast. + * @param {String} [options.verify=true] - Verify transaction before broadcast. * @return {Object} Transaction */ diff --git a/src/chain/node.js b/src/chain/node.js index d5fdf11d34..cd03dfa419 100644 --- a/src/chain/node.js +++ b/src/chain/node.js @@ -36,8 +36,7 @@ import { DRY_RUN_ACCOUNT, NAME_ID_KEY } from '../tx/builder/schema' async function sendTransaction (tx, options = {}) { const { waitMined, verify } = R.merge(this.Ae.defaults, options) - // Verify transaction before broadcast - if (verify || (typeof verify !== 'boolean' && this.verifyTxBeforeSend)) { + if (verify) { const { validation, tx: txObject, txType } = await this.unpackAndVerify(tx) if (validation.length) { throw Object.assign(new Error('Transaction verification error: ' + JSON.stringify(validation)), { @@ -260,9 +259,6 @@ async function resolveName (nameOrId, prefix, { verify, resolveByNode } = {}) { * @example ChainNode({url: 'https://testnet.aeternity.io/'}) */ const ChainNode = Chain.compose(TransactionValidator, NodePool, { - init ({ verifyTx = true }) { - this.verifyTxBeforeSend = verifyTx - }, methods: { sendTransaction, balance, diff --git a/test/integration/aens.js b/test/integration/aens.js index 3c8f5a8c55..73c9d96878 100644 --- a/test/integration/aens.js +++ b/test/integration/aens.js @@ -67,7 +67,7 @@ describe('Aens', function () { const { pointers } = await aens.getName(name) pointers.length.should.be.equal(0) try { - await aens.spend(100, name, { onAccount, verify: true }) + await aens.spend(100, name, { onAccount }) } catch (e) { e.message.should.be.equal(`Name ${name} don't have pointers for ak`) } @@ -118,7 +118,7 @@ contract Identity = it('Spend by name', async () => { const current = await aens.address() const onAccount = aens.addresses().find(acc => acc !== current) - await aens.spend(100, name, { onAccount, verify: true }) + await aens.spend(100, name, { onAccount }) }) it('transfers names', async () => { diff --git a/test/integration/contract.js b/test/integration/contract.js index 96d8274894..f755b9f67e 100644 --- a/test/integration/contract.js +++ b/test/integration/contract.js @@ -420,7 +420,7 @@ describe('Contract', function () { await contract.poll(deployed.transaction, { interval: 50, attempts: 1200 }) expect(deployed.result).to.be.equal(undefined) deployed.txData.should.not.be.equal(undefined) - const result = await deployed.call('getArg', ['42'], { waitMined: false, verify: false }) + const result = await deployed.call('getArg', ['42'], { waitMined: false }) expect(result.result).to.be.equal(undefined) result.txData.should.not.be.equal(undefined) await contract.poll(result.hash, { interval: 50, attempts: 1200 }) diff --git a/test/integration/ga.js b/test/integration/ga.js index cbe02e1dc0..b953b4a994 100644 --- a/test/integration/ga.js +++ b/test/integration/ga.js @@ -44,11 +44,8 @@ describe('Generalize Account', function () { }) it('Fail on make GA on already GA account', async () => { - try { - await client.createGeneralizeAccount('authorize', authContract) - } catch (e) { - e.message.should.be.equal(`Account ${gaAccount.publicKey} is already GA`) - } + await client.createGeneralizeAccount('authorize', authContract) + .should.be.rejectedWith(`Account ${gaAccount.publicKey} is already GA`) }) it('Init MemoryAccount for GA and Spend using GA', async () => { @@ -59,8 +56,8 @@ describe('Generalize Account', function () { const r = () => Math.floor(Math.random() * 20).toString() const callData = await client.contractEncodeCall(authContract, 'authorize', [r()]) - await client.spend(10000, publicKey, { authData: { callData }, onAccount: gaAccount.publicKey, verify: false }) - await client.spend(10000, publicKey, { authData: { source: authContract, args: [r()] }, onAccount: gaAccount.publicKey, verify: false }) + await client.spend(10000, publicKey, { authData: { callData }, onAccount: gaAccount.publicKey }) + await client.spend(10000, publicKey, { authData: { source: authContract, args: [r()] }, onAccount: gaAccount.publicKey }) const balanceAfter = await client.balance(publicKey) balanceAfter.should.be.equal('20000') }) diff --git a/test/integration/transaction.js b/test/integration/transaction.js index afedebd1ec..d2bd6734cb 100644 --- a/test/integration/transaction.js +++ b/test/integration/transaction.js @@ -199,7 +199,7 @@ describe('Native Transaction', function () { const nativeTx = await clientNative.oracleRegisterTx(params) txFromAPI.should.be.equal(nativeTx) - await clientNative.send(nativeTx, { verify: true }) + await clientNative.send(nativeTx) const oId = (await client.api.getOracleByPubkey(oracleId)).id oId.should.be.equal(oracleId) diff --git a/test/integration/txVerification.js b/test/integration/txVerification.js index 199507b21c..6ed73febec 100644 --- a/test/integration/txVerification.js +++ b/test/integration/txVerification.js @@ -71,7 +71,7 @@ describe('Verify Transaction', function () { }) try { - await client.send(spendTx, { verify: true }) + await client.send(spendTx) } catch ({ errorData }) { const atLeastOneError = !!errorData.validation.length atLeastOneError.should.be.equal(true)