Skip to content

Commit 7337da2

Browse files
committed
Make the value commitment randomness in the transaction generation random.
1 parent 8347075 commit 7337da2

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

contracts/test/ProtocolAdapterMock.t.sol

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ contract ProtocolAdapterMockVerifierTest is Test {
226226
Resource[2][MAX_RESOURCES] resources;
227227
uint256[MAX_RESOURCES] bijection;
228228
uint256 targetResourcesLen;
229+
uint256[2][MAX_RESOURCES] valueCommitmentRandomness;
229230
}
230231

231232
function commitment(Resource memory resource) internal pure returns (bytes32 hash) {
@@ -295,15 +296,20 @@ contract ProtocolAdapterMockVerifierTest is Test {
295296
}
296297
// Compute action tree tags and action tree root
297298
bytes32[] memory actionTreeTags = new bytes32[](2 * truncatedResources.length);
299+
totalValueCommitmentRandomness = 0;
298300
for (uint256 i = 0; i < truncatedResources.length; ++i) {
299301
uint256 index = (i * 2);
300302

301303
actionTreeTags[index] = nullifier(truncatedResources[i][0], 0);
302304
actionTreeTags[index + 1] = commitment(truncatedResources[i][1]);
305+
// Adjust and accumulate the value randomness commitments
306+
params.valueCommitmentRandomness[i][0] = bound(params.valueCommitmentRandomness[i][0], 1, SECP256K1_ORDER-1);
307+
params.valueCommitmentRandomness[i][1] = bound(params.valueCommitmentRandomness[i][1], 1, SECP256K1_ORDER-1);
308+
totalValueCommitmentRandomness = addmod(totalValueCommitmentRandomness, params.valueCommitmentRandomness[i][0], SECP256K1_ORDER);
309+
totalValueCommitmentRandomness = addmod(totalValueCommitmentRandomness, params.valueCommitmentRandomness[i][1], SECP256K1_ORDER);
303310
}
304311
bytes32 actionTreeRoot = actionTreeTags.computeRoot();
305312
// Create logic and compliance verifier inputs
306-
totalValueCommitmentRandomness = 0;
307313
for (uint256 i = 0; i < truncatedResources.length; i++) {
308314
Resource memory consumedResource = truncatedResources[i][0];
309315
Resource memory createdResource = truncatedResources[i][1];
@@ -339,9 +345,10 @@ contract ProtocolAdapterMockVerifierTest is Test {
339345
kind: kind(consumedResource),
340346
quantity: consumedResource.quantity,
341347
consumed: true,
342-
valueCommitmentRandomness: 1
348+
valueCommitmentRandomness: params.valueCommitmentRandomness[i][0]
343349
})
344350
);
351+
345352
// Add the delta for the created resource
346353
unitDelta = Delta.add(
347354
unitDelta,
@@ -351,11 +358,10 @@ contract ProtocolAdapterMockVerifierTest is Test {
351358
kind: kind(createdResource),
352359
quantity: createdResource.quantity,
353360
consumed: false,
354-
valueCommitmentRandomness: 1
361+
valueCommitmentRandomness: params.valueCommitmentRandomness[i][1]
355362
})
356363
)
357364
);
358-
totalValueCommitmentRandomness += 2;
359365
// Create the compliance verifier input
360366
Compliance.Instance memory instance = Compliance.Instance({
361367
unitDeltaX: bytes32(unitDelta.x),
@@ -389,7 +395,7 @@ contract ProtocolAdapterMockVerifierTest is Test {
389395
for (uint256 i = 0; i < actions.length; i++) {
390396
uint256 valueCommitmentRandomness;
391397
(actions[i], valueCommitmentRandomness) = generateAction(params.actionParams[i]);
392-
totalValueCommitmentRandomness += valueCommitmentRandomness;
398+
totalValueCommitmentRandomness = addmod(totalValueCommitmentRandomness, valueCommitmentRandomness, SECP256K1_ORDER);
393399
}
394400
// Generate delta proof
395401
bytes memory proof = "";

0 commit comments

Comments
 (0)