From 38d60486e508f111ee474d6dbc7500a43476167d Mon Sep 17 00:00:00 2001 From: esau <152162806+sklppy88@users.noreply.github.com> Date: Fri, 9 Aug 2024 19:27:08 +0200 Subject: [PATCH] fix: fixing making sent txs fail with correct error messages (#7852) This PR fixes the outdated error messages brought on by #7841. Please see that PR for more context. --- yarn-project/end-to-end/src/e2e_block_building.test.ts | 8 ++++++-- .../end-to-end/src/e2e_deploy_contract/legacy.test.ts | 4 +++- .../e2e_deploy_contract/private_initialization.test.ts | 2 +- .../end-to-end/src/e2e_private_voting_contract.test.ts | 4 ++-- yarn-project/end-to-end/src/e2e_prover/full.test.ts | 8 ++++++-- yarn-project/end-to-end/src/fixtures/fixtures.ts | 3 ++- yarn-project/end-to-end/src/guides/dapp_testing.test.ts | 4 +++- yarn-project/pxe/src/pxe_service/pxe_service.ts | 4 +--- 8 files changed, 24 insertions(+), 13 deletions(-) diff --git a/yarn-project/end-to-end/src/e2e_block_building.test.ts b/yarn-project/end-to-end/src/e2e_block_building.test.ts index caf6b83f7bc..fcbd8ef7d9f 100644 --- a/yarn-project/end-to-end/src/e2e_block_building.test.ts +++ b/yarn-project/end-to-end/src/e2e_block_building.test.ts @@ -208,7 +208,9 @@ describe('e2e_block_building', () => { it('private -> private', async () => { const nullifier = Fr.random(); await contract.methods.emit_nullifier(nullifier).send().wait(); - await expect(contract.methods.emit_nullifier(nullifier).send().wait()).rejects.toThrow('dropped'); + await expect(contract.methods.emit_nullifier(nullifier).send().wait()).rejects.toThrow( + 'The simulated transaction is unable to be added to state and is invalid.', + ); }); it('public -> public', async () => { @@ -230,7 +232,9 @@ describe('e2e_block_building', () => { it('public -> private', async () => { const nullifier = Fr.random(); await contract.methods.emit_nullifier_public(nullifier).send().wait(); - await expect(contract.methods.emit_nullifier(nullifier).send().wait()).rejects.toThrow('dropped'); + await expect(contract.methods.emit_nullifier(nullifier).send().wait()).rejects.toThrow( + 'The simulated transaction is unable to be added to state and is invalid.', + ); }); }); }); diff --git a/yarn-project/end-to-end/src/e2e_deploy_contract/legacy.test.ts b/yarn-project/end-to-end/src/e2e_deploy_contract/legacy.test.ts index 3c085962cf8..b8a2b2fde7a 100644 --- a/yarn-project/end-to-end/src/e2e_deploy_contract/legacy.test.ts +++ b/yarn-project/end-to-end/src/e2e_deploy_contract/legacy.test.ts @@ -81,7 +81,9 @@ describe('e2e_deploy_contract legacy', () => { const deployer = new ContractDeployer(TestContractArtifact, wallet); await deployer.deploy().send({ contractAddressSalt }).wait({ wallet }); - await expect(deployer.deploy().send({ contractAddressSalt }).wait()).rejects.toThrow(/dropped/); + await expect(deployer.deploy().send({ contractAddressSalt }).wait()).rejects.toThrow( + /The simulated transaction is unable to be added to state and is invalid./, + ); }); it('should not deploy a contract which failed the public part of the execution', async () => { diff --git a/yarn-project/end-to-end/src/e2e_deploy_contract/private_initialization.test.ts b/yarn-project/end-to-end/src/e2e_deploy_contract/private_initialization.test.ts index ca7dff265c2..8cb6d838b65 100644 --- a/yarn-project/end-to-end/src/e2e_deploy_contract/private_initialization.test.ts +++ b/yarn-project/end-to-end/src/e2e_deploy_contract/private_initialization.test.ts @@ -93,7 +93,7 @@ describe('e2e_deploy_contract private initialization', () => { .constructor(...initArgs) .send() .wait(), - ).rejects.toThrow(/dropped/); + ).rejects.toThrow(/The simulated transaction is unable to be added to state and is invalid./); }); it('refuses to call a private function that requires initialization', async () => { diff --git a/yarn-project/end-to-end/src/e2e_private_voting_contract.test.ts b/yarn-project/end-to-end/src/e2e_private_voting_contract.test.ts index f6ed9e3a1d3..98017673bcb 100644 --- a/yarn-project/end-to-end/src/e2e_private_voting_contract.test.ts +++ b/yarn-project/end-to-end/src/e2e_private_voting_contract.test.ts @@ -53,9 +53,9 @@ describe('e2e_voting_contract', () => { }), ).rejects.toThrow('The simulated transaction is unable to be added to state and is invalid.'); - // We try voting again, but our TX is dropped due to trying to emit duplicate nullifiers + // We try voting again, but our TX is invalid due to trying to emit duplicate nullifiers await expect(votingContract.methods.cast_vote(candidate).send().wait()).rejects.toThrow( - 'Reason: Tx dropped by P2P node.', + 'The simulated transaction is unable to be added to state and is invalid.', ); }); }); diff --git a/yarn-project/end-to-end/src/e2e_prover/full.test.ts b/yarn-project/end-to-end/src/e2e_prover/full.test.ts index 485c6d3d847..5fea29f6563 100644 --- a/yarn-project/end-to-end/src/e2e_prover/full.test.ts +++ b/yarn-project/end-to-end/src/e2e_prover/full.test.ts @@ -105,7 +105,11 @@ describe('full_prover', () => { sentPublicTx.wait({ timeout: 10, interval: 0.1 }), ]); - expect(String((results[0] as PromiseRejectedResult).reason)).toMatch(/Tx dropped by P2P node/); - expect(String((results[1] as PromiseRejectedResult).reason)).toMatch(/Tx dropped by P2P node/); + expect(String((results[0] as PromiseRejectedResult).reason)).toMatch( + /Error: The simulated transaction is unable to be added to state and is invalid./, + ); + expect(String((results[1] as PromiseRejectedResult).reason)).toMatch( + /Error: The simulated transaction is unable to be added to state and is invalid./, + ); }); }); diff --git a/yarn-project/end-to-end/src/fixtures/fixtures.ts b/yarn-project/end-to-end/src/fixtures/fixtures.ts index 25e9922b5cb..642c876952b 100644 --- a/yarn-project/end-to-end/src/fixtures/fixtures.ts +++ b/yarn-project/end-to-end/src/fixtures/fixtures.ts @@ -7,7 +7,8 @@ export const U128_UNDERFLOW_ERROR = "Assertion failed: attempt to subtract with export const U128_OVERFLOW_ERROR = "Assertion failed: attempt to add with overflow 'hi == high'"; export const BITSIZE_TOO_BIG_ERROR = "'self.__assert_max_bit_size(bit_size)'"; // TODO(https://github.com/AztecProtocol/aztec-packages/issues/5818): Make these a fixed error after transition. -export const DUPLICATE_NULLIFIER_ERROR = /dropped|duplicate nullifier|reverted/; +export const DUPLICATE_NULLIFIER_ERROR = + /dropped|duplicate nullifier|reverted|The simulated transaction is unable to be added to state and is invalid./; export const NO_L1_TO_L2_MSG_ERROR = /No non-nullified L1 to L2 message found for message hash|Tried to consume nonexistent L1-to-L2 message/; export const STATIC_CALL_STATE_MODIFICATION_ERROR = diff --git a/yarn-project/end-to-end/src/guides/dapp_testing.test.ts b/yarn-project/end-to-end/src/guides/dapp_testing.test.ts index bc5a5da0390..42c383196ce 100644 --- a/yarn-project/end-to-end/src/guides/dapp_testing.test.ts +++ b/yarn-project/end-to-end/src/guides/dapp_testing.test.ts @@ -214,7 +214,9 @@ describe('guides/dapp/testing', () => { await call2.prove(); await call1.send().wait(); - await expect(call2.send().wait()).rejects.toThrow(/dropped/); + await expect(call2.send().wait()).rejects.toThrow( + /The simulated transaction is unable to be added to state and is invalid./, + ); // docs:end:tx-dropped }); diff --git a/yarn-project/pxe/src/pxe_service/pxe_service.ts b/yarn-project/pxe/src/pxe_service/pxe_service.ts index e5525b9c141..bb4da9b8c8c 100644 --- a/yarn-project/pxe/src/pxe_service/pxe_service.ts +++ b/yarn-project/pxe/src/pxe_service/pxe_service.ts @@ -529,9 +529,7 @@ export class PXEService implements PXE { throw new Error(`A settled tx with equal hash ${txHash.toString()} exists.`); } - const isValidTx = await this.node.validateTx(tx); - - if (!isValidTx) { + if (!(await this.node.isValidTx(tx))) { throw new Error('The simulated transaction is unable to be added to state and is invalid.'); }