Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fixing making sent txs fail with correct error messages #7852

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions yarn-project/end-to-end/src/e2e_block_building.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand All @@ -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.',
);
});
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,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 () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.',
);
});
});
Expand Down
8 changes: 6 additions & 2 deletions yarn-project/end-to-end/src/e2e_prover/full.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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./,
);
});
});
3 changes: 2 additions & 1 deletion yarn-project/end-to-end/src/fixtures/fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand Down
4 changes: 3 additions & 1 deletion yarn-project/end-to-end/src/guides/dapp_testing.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,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
});

Expand Down
Loading