Skip to content

Commit ceb7eea

Browse files
committed
refactor: use struct and move assume functions
1 parent 396925f commit ceb7eea

1 file changed

Lines changed: 30 additions & 39 deletions

File tree

contracts/test/proofs/DeltaProof.t.sol

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -55,26 +55,25 @@ contract DeltaProofTest is Test {
5555
/// @notice Test that Delta.add correctly adds deltas
5656
function test_add_delta_correctness(
5757
uint256 kind,
58-
uint256 valueCommitmentRandomness1,
59-
uint128 quantity1,
60-
bool consumed1,
61-
uint256 valueCommitmentRandomness2,
62-
uint128 quantity2,
63-
bool consumed2
58+
FuzzerInstanceInputsExceptKind memory input1,
59+
FuzzerInstanceInputsExceptKind memory input2
6460
) public {
6561
// Construct delta instance inputs from the above parameters
6662
DeltaGen.InstanceInputs memory deltaInputs1 = DeltaGen.InstanceInputs({
6763
kind: kind,
68-
quantity: quantity1,
69-
consumed: consumed1,
70-
valueCommitmentRandomness: valueCommitmentRandomness1
64+
quantity: input1.quantity,
65+
consumed: input1.consumed,
66+
valueCommitmentRandomness: input1.valueCommitmentRandomness
7167
});
7268
DeltaGen.InstanceInputs memory deltaInputs2 = DeltaGen.InstanceInputs({
7369
kind: kind,
74-
quantity: quantity2,
75-
consumed: consumed2,
76-
valueCommitmentRandomness: valueCommitmentRandomness2
70+
quantity: input2.quantity,
71+
consumed: input2.consumed,
72+
valueCommitmentRandomness: input2.valueCommitmentRandomness
7773
});
74+
_assumeDeltaInstance(deltaInputs1);
75+
_assumeDeltaInstance(deltaInputs2);
76+
7877
// Filter out overflows
7978
vm.assume(
8079
deltaInputs1.consumed != deltaInputs2.consumed
@@ -86,48 +85,40 @@ contract DeltaProofTest is Test {
8685
);
8786

8887
// Add the deltas
89-
SignMagnitude.Number memory sum = SignMagnitude.Number(deltaInputs1.consumed, deltaInputs1.quantity).add(
90-
SignMagnitude.Number(deltaInputs2.consumed, deltaInputs2.quantity)
91-
);
88+
SignMagnitude.Number memory summedNumber = SignMagnitude.Number(deltaInputs1.consumed, deltaInputs1.quantity)
89+
.add(SignMagnitude.Number(deltaInputs2.consumed, deltaInputs2.quantity));
9290

9391
// Compute the inputs corresponding to the sum of deltas
94-
DeltaGen.InstanceInputs memory deltaInputs3 = DeltaGen.InstanceInputs({
92+
DeltaGen.InstanceInputs memory summedDeltaInputs = DeltaGen.InstanceInputs({
9593
kind: deltaInputs1.kind,
96-
quantity: sum.magnitude,
97-
consumed: sum.isNegative,
94+
quantity: summedNumber.magnitude,
95+
consumed: summedNumber.isNegative,
9896
valueCommitmentRandomness: deltaInputs1.valueCommitmentRandomness + deltaInputs2.valueCommitmentRandomness
9997
});
100-
_assumeDeltaInstance(deltaInputs1);
101-
_assumeDeltaInstance(deltaInputs2);
102-
_assumeDeltaInstance(deltaInputs3);
98+
_assumeDeltaInstance(summedDeltaInputs);
99+
103100
// Generate a delta proof and instance from the above tags and preimage
104101
uint256[2] memory instance1 = DeltaGen.generateInstance(vm, deltaInputs1);
105102
uint256[2] memory instance2 = DeltaGen.generateInstance(vm, deltaInputs2);
106-
uint256[2] memory instance3 = DeltaGen.generateInstance(vm, deltaInputs3);
103+
uint256[2] memory expectedDelta = DeltaGen.generateInstance(vm, summedDeltaInputs);
104+
107105
// Verify that the deltas add correctly
108-
uint256[2] memory instance4 = Delta.add(instance1, instance2);
109-
assertEq(instance3[0], instance4[0]);
110-
assertEq(instance3[1], instance4[1]);
106+
uint256[2] memory computedDelta = Delta.add(instance1, instance2);
107+
108+
assertEq(computedDelta[0], expectedDelta[0]);
109+
assertEq(computedDelta[1], expectedDelta[1]);
111110
}
112111

113112
/// @notice Test that Delta.verify rejects a delta proof that does not correspond to instance
114113
function test_verify_inconsistent_delta_fails1(
115-
uint256 kind,
116-
uint256 valueCommitmentRandomness,
117-
uint128 quantity,
118-
bool consumed,
119-
bytes32 verifyingKey
114+
DeltaGen.InstanceInputs memory deltaInstanceInputs,
115+
bytes32 fuzzedVerifyingKey
120116
) public {
121-
// Construct delta instance inputs from the above parameters
122-
DeltaGen.InstanceInputs memory deltaInstanceInputs = DeltaGen.InstanceInputs({
123-
kind: kind,
124-
quantity: quantity,
125-
consumed: consumed,
126-
valueCommitmentRandomness: valueCommitmentRandomness
127-
});
128117
// Construct delta proof inputs from the above parameters
129-
DeltaGen.ProofInputs memory deltaProofInputs =
130-
DeltaGen.ProofInputs({valueCommitmentRandomness: valueCommitmentRandomness, verifyingKey: verifyingKey});
118+
DeltaGen.ProofInputs memory deltaProofInputs = DeltaGen.ProofInputs({
119+
valueCommitmentRandomness: deltaInstanceInputs.valueCommitmentRandomness,
120+
verifyingKey: fuzzedVerifyingKey
121+
});
131122
// Filter out inadmissible private keys or equal keys
132123
deltaProofInputs.valueCommitmentRandomness = deltaInstanceInputs.valueCommitmentRandomness;
133124
vm.assume(deltaInstanceInputs.kind.modOrder() != 0);

0 commit comments

Comments
 (0)