@@ -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