Skip to content

Commit 3a398c3

Browse files
authored
Merge of #2158
2 parents fa1474a + 5a67573 commit 3a398c3

File tree

5 files changed

+149
-108
lines changed

5 files changed

+149
-108
lines changed

gateway-contracts/test/CiphertextCommits.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { expect } from "chai";
44
import { Wallet } from "ethers";
55
import hre from "hardhat";
66

7-
import { CiphertextCommits, CiphertextCommits__factory, GatewayConfig } from "../typechain-types";
7+
import { CiphertextCommits, CiphertextCommits__factory } from "../typechain-types";
88
import {
99
createBytes32,
1010
createCtHandle,
@@ -37,11 +37,9 @@ describe("CiphertextCommits", function () {
3737
const fakeTxSender = createRandomWallet();
3838
const fakeCiphertextDigest = createBytes32();
3939

40-
let gatewayConfig: GatewayConfig;
4140
let ciphertextCommits: CiphertextCommits;
4241
let coprocessorTxSenders: HardhatEthersSigner[];
4342
let owner: Wallet;
44-
let pauser: Wallet;
4543

4644
async function prepareFixture() {
4745
const fixtureData = await loadFixture(loadTestVariablesFixture);
@@ -69,11 +67,9 @@ describe("CiphertextCommits", function () {
6967
beforeEach(async function () {
7068
// Initialize globally used variables before each test
7169
const fixture = await loadFixture(prepareFixture);
72-
gatewayConfig = fixture.gatewayConfig;
7370
coprocessorTxSenders = fixture.coprocessorTxSenders;
7471
ciphertextCommits = fixture.ciphertextCommits;
7572
owner = fixture.owner;
76-
pauser = fixture.pauser;
7773
});
7874

7975
describe("Deployment", function () {

gateway-contracts/test/Decryption.ts

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -106,24 +106,6 @@ describe("Decryption", function () {
106106
// Define extra data for version 0
107107
const extraDataV0 = hre.ethers.solidityPacked(["uint8"], [0]);
108108

109-
let ciphertextCommits: CiphertextCommits;
110-
let decryption: Decryption;
111-
let protocolPayment: ProtocolPayment;
112-
let mockedZamaOFT: ZamaOFT;
113-
let owner: Wallet;
114-
let pauser: Wallet;
115-
let snsCiphertextMaterials: SnsCiphertextMaterialStruct[];
116-
let kmsSignatures: string[];
117-
let kmsTxSenders: HardhatEthersSigner[];
118-
let kmsSigners: HardhatEthersSigner[];
119-
let coprocessorTxSenders: HardhatEthersSigner[];
120-
let publicDecryptionPrice: bigint;
121-
let userDecryptionPrice: bigint;
122-
let tokenFundedTxSender: Wallet;
123-
let protocolPaymentAddress: string;
124-
let decryptionAddress: string;
125-
let mockedFeesSenderToBurnerAddress: string;
126-
127109
// Add ciphertext materials
128110
async function prepareAddCiphertextFixture() {
129111
const fixtureData = await loadFixture(loadTestVariablesFixture);
@@ -152,6 +134,8 @@ describe("Decryption", function () {
152134
}
153135

154136
describe("Deployment", function () {
137+
let decryption: Decryption;
138+
let owner: Wallet;
155139
let decryptionFactory: Decryption__factory;
156140

157141
beforeEach(async function () {
@@ -173,6 +157,21 @@ describe("Decryption", function () {
173157
});
174158

175159
describe("Public Decryption", function () {
160+
let ciphertextCommits: CiphertextCommits;
161+
let decryption: Decryption;
162+
let protocolPayment: ProtocolPayment;
163+
let mockedZamaOFT: ZamaOFT;
164+
let pauser: Wallet;
165+
let snsCiphertextMaterials: SnsCiphertextMaterialStruct[];
166+
let kmsSignatures: string[];
167+
let kmsTxSenders: HardhatEthersSigner[];
168+
let kmsSigners: HardhatEthersSigner[];
169+
let coprocessorTxSenders: HardhatEthersSigner[];
170+
let publicDecryptionPrice: bigint;
171+
let tokenFundedTxSender: Wallet;
172+
let protocolPaymentAddress: string;
173+
let decryptionAddress: string;
174+
let mockedFeesSenderToBurnerAddress: string;
176175
let eip712Message: EIP712;
177176

178177
// Expected decryption request ID (after a first request) for a public decryption request
@@ -215,7 +214,6 @@ describe("Decryption", function () {
215214
protocolPayment = fixtureData.protocolPayment;
216215
mockedZamaOFT = fixtureData.mockedZamaOFT;
217216
mockedFeesSenderToBurnerAddress = fixtureData.mockedFeesSenderToBurnerAddress;
218-
owner = fixtureData.owner;
219217
pauser = fixtureData.pauser;
220218
snsCiphertextMaterials = fixtureData.snsCiphertextMaterials;
221219
kmsSignatures = fixtureData.kmsSignatures;
@@ -225,7 +223,6 @@ describe("Decryption", function () {
225223
eip712Message = fixtureData.eip712Message;
226224
decryptionAddress = fixtureData.decryptionAddress;
227225
publicDecryptionPrice = fixtureData.publicDecryptionPrice;
228-
userDecryptionPrice = fixtureData.userDecryptionPrice;
229226
tokenFundedTxSender = fixtureData.tokenFundedTxSender;
230227

231228
protocolPaymentAddress = await protocolPayment.getAddress();
@@ -679,6 +676,21 @@ describe("Decryption", function () {
679676
});
680677

681678
describe("User Decryption", function () {
679+
let ciphertextCommits: CiphertextCommits;
680+
let decryption: Decryption;
681+
let protocolPayment: ProtocolPayment;
682+
let mockedZamaOFT: ZamaOFT;
683+
let pauser: Wallet;
684+
let snsCiphertextMaterials: SnsCiphertextMaterialStruct[];
685+
let kmsSignatures: string[];
686+
let kmsTxSenders: HardhatEthersSigner[];
687+
let kmsSigners: HardhatEthersSigner[];
688+
let coprocessorTxSenders: HardhatEthersSigner[];
689+
let userDecryptionPrice: bigint;
690+
let tokenFundedTxSender: Wallet;
691+
let protocolPaymentAddress: string;
692+
let decryptionAddress: string;
693+
let mockedFeesSenderToBurnerAddress: string;
682694
let userSignature: string;
683695
let userDecryptedShares: string[];
684696
let eip712RequestMessage: EIP712;
@@ -717,15 +729,7 @@ describe("Decryption", function () {
717729
};
718730

719731
// Define fake values
720-
const fakeUserAddress = createRandomAddress();
721732
const fakeContractAddresses = createRandomAddresses(3);
722-
const fakeContractAddress = fakeContractAddresses[0];
723-
const fakeContractAddressCtHandleContractPairs: CtHandleContractPairStruct[] = [
724-
{
725-
contractAddress: fakeContractAddress,
726-
ctHandle,
727-
},
728-
];
729733

730734
// Define utility values
731735
const tenDaysInSeconds = 10 * 24 * 60 * 60;
@@ -785,7 +789,7 @@ describe("Decryption", function () {
785789
decryption = fixtureData.decryption;
786790
protocolPayment = fixtureData.protocolPayment;
787791
mockedZamaOFT = fixtureData.mockedZamaOFT;
788-
owner = fixtureData.owner;
792+
mockedFeesSenderToBurnerAddress = fixtureData.mockedFeesSenderToBurnerAddress;
789793
pauser = fixtureData.pauser;
790794
snsCiphertextMaterials = fixtureData.snsCiphertextMaterials;
791795
userSignature = fixtureData.userSignature;
@@ -797,7 +801,6 @@ describe("Decryption", function () {
797801
eip712RequestMessage = fixtureData.eip712RequestMessage;
798802
eip712ResponseMessages = fixtureData.eip712ResponseMessages;
799803
decryptionAddress = fixtureData.decryptionAddress;
800-
publicDecryptionPrice = fixtureData.publicDecryptionPrice;
801804
userDecryptionPrice = fixtureData.userDecryptionPrice;
802805
tokenFundedTxSender = fixtureData.tokenFundedTxSender;
803806

@@ -1636,6 +1639,19 @@ describe("Decryption", function () {
16361639
});
16371640

16381641
describe("Delegated User Decryption", function () {
1642+
let ciphertextCommits: CiphertextCommits;
1643+
let decryption: Decryption;
1644+
let protocolPayment: ProtocolPayment;
1645+
let mockedZamaOFT: ZamaOFT;
1646+
let pauser: Wallet;
1647+
let snsCiphertextMaterials: SnsCiphertextMaterialStruct[];
1648+
let kmsSignatures: string[];
1649+
let kmsTxSenders: HardhatEthersSigner[];
1650+
let coprocessorTxSenders: HardhatEthersSigner[];
1651+
let userDecryptionPrice: bigint;
1652+
let tokenFundedTxSender: Wallet;
1653+
let protocolPaymentAddress: string;
1654+
let mockedFeesSenderToBurnerAddress: string;
16391655
let delegateSignature: string;
16401656
let userDecryptedShares: string[];
16411657
let eip712RequestMessage: EIP712;
@@ -1680,19 +1696,7 @@ describe("Decryption", function () {
16801696
};
16811697

16821698
// Define fake values.
1683-
const fakeDelegatorAddress = createRandomAddress();
16841699
const fakeContractAddresses = createRandomAddresses(3);
1685-
const fakeContractAddress = fakeContractAddresses[0];
1686-
const fakeContractAddressCtHandleContractPairs: CtHandleContractPairStruct[] = [
1687-
{
1688-
contractAddress: fakeContractAddress,
1689-
ctHandle,
1690-
},
1691-
];
1692-
const fakeDelegatorDelegationAccounts: IDecryption.DelegationAccountsStruct = {
1693-
delegatorAddress: fakeDelegatorAddress,
1694-
delegateAddress,
1695-
};
16961700

16971701
// Define utility values.
16981702
const tenDaysInSeconds = 10 * 24 * 60 * 60;
@@ -1754,7 +1758,6 @@ describe("Decryption", function () {
17541758
protocolPayment = fixtureData.protocolPayment;
17551759
mockedZamaOFT = fixtureData.mockedZamaOFT;
17561760
mockedFeesSenderToBurnerAddress = fixtureData.mockedFeesSenderToBurnerAddress;
1757-
owner = fixtureData.owner;
17581761
pauser = fixtureData.pauser;
17591762
snsCiphertextMaterials = fixtureData.snsCiphertextMaterials;
17601763
delegateSignature = fixtureData.delegateSignature;
@@ -2428,6 +2431,10 @@ describe("Decryption", function () {
24282431
});
24292432

24302433
describe("Pause", async function () {
2434+
let decryption: Decryption;
2435+
let owner: Wallet;
2436+
let pauser: Wallet;
2437+
24312438
beforeEach(async function () {
24322439
const fixtureData = await loadFixture(loadTestVariablesFixture);
24332440
decryption = fixtureData.decryption;

gateway-contracts/test/GatewayConfig.ts

Lines changed: 70 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -58,26 +58,6 @@ describe("GatewayConfig", function () {
5858
const fakeTxSender = createRandomWallet();
5959
const fakeSigner = createRandomWallet();
6060

61-
let gatewayConfig: GatewayConfig;
62-
let owner: Wallet;
63-
let pauser: Wallet;
64-
let nKmsNodes: number;
65-
let kmsNodes: KmsNodeStruct[];
66-
let kmsTxSenders: HardhatEthersSigner[];
67-
let kmsSigners: HardhatEthersSigner[];
68-
let coprocessors: CoprocessorStruct[];
69-
let nCoprocessors: number;
70-
let coprocessorTxSenders: HardhatEthersSigner[];
71-
let coprocessorSigners: HardhatEthersSigner[];
72-
let custodians: CustodianStruct[];
73-
let custodianTxSenders: HardhatEthersSigner[];
74-
let custodianSigners: HardhatEthersSigner[];
75-
let highMpcThreshold: number;
76-
let highPublicDecryptionThreshold: number;
77-
let highUserDecryptionThreshold: number;
78-
let highKmsGenThreshold: number;
79-
let highCoprocessorThreshold: number;
80-
8161
async function getInputsForDeployFixture() {
8262
const fixtureData = await loadFixture(loadTestVariablesFixture);
8363
const {
@@ -97,7 +77,7 @@ describe("GatewayConfig", function () {
9777
} = fixtureData;
9878

9979
// Create KMS nodes with the tx sender and signer addresses
100-
kmsNodes = [];
80+
const kmsNodes: KmsNodeStruct[] = [];
10181
for (let i = 0; i < nKmsNodes; i++) {
10282
kmsNodes.push({
10383
txSenderAddress: kmsTxSenders[i].address,
@@ -108,7 +88,7 @@ describe("GatewayConfig", function () {
10888
}
10989

11090
// Create coprocessors with the tx sender and signer addresses
111-
coprocessors = [];
91+
const coprocessors: CoprocessorStruct[] = [];
11292
for (let i = 0; i < nCoprocessors; i++) {
11393
coprocessors.push({
11494
txSenderAddress: coprocessorTxSenders[i].address,
@@ -118,7 +98,7 @@ describe("GatewayConfig", function () {
11898
}
11999

120100
// Create custodians with the tx sender addresses
121-
custodians = [];
101+
const custodians: CustodianStruct[] = [];
122102
for (let i = 0; i < nCustodians; i++) {
123103
custodians.push({
124104
txSenderAddress: custodianTxSenders[i].address,
@@ -127,34 +107,42 @@ describe("GatewayConfig", function () {
127107
});
128108
}
129109

130-
return fixtureData;
110+
return { ...fixtureData, kmsNodes, coprocessors, custodians };
131111
}
132112

133-
before(async function () {
134-
// Initialize globally used variables before each test
135-
const fixtureData = await loadFixture(getInputsForDeployFixture);
136-
gatewayConfig = fixtureData.gatewayConfig;
137-
owner = fixtureData.owner;
138-
pauser = fixtureData.pauser;
139-
nKmsNodes = fixtureData.nKmsNodes;
140-
kmsTxSenders = fixtureData.kmsTxSenders;
141-
kmsSigners = fixtureData.kmsSigners;
142-
nCoprocessors = fixtureData.nCoprocessors;
143-
coprocessorTxSenders = fixtureData.coprocessorTxSenders;
144-
coprocessorSigners = fixtureData.coprocessorSigners;
145-
146-
highMpcThreshold = nKmsNodes;
147-
highPublicDecryptionThreshold = nKmsNodes + 1;
148-
highUserDecryptionThreshold = nKmsNodes + 1;
149-
highKmsGenThreshold = nKmsNodes + 1;
150-
highCoprocessorThreshold = nCoprocessors + 1;
151-
});
152-
153113
describe("Deployment", function () {
114+
let gatewayConfig: GatewayConfig;
115+
let owner: Wallet;
116+
let kmsNodes: KmsNodeStruct[];
117+
let coprocessors: CoprocessorStruct[];
118+
let custodians: CustodianStruct[];
119+
let nKmsNodes: number;
120+
let nCoprocessors: number;
121+
let highMpcThreshold: number;
122+
let highPublicDecryptionThreshold: number;
123+
let highUserDecryptionThreshold: number;
124+
let highKmsGenThreshold: number;
125+
let highCoprocessorThreshold: number;
154126
let proxyContract: EmptyUUPSProxyGatewayConfig;
155127
let newGatewayConfigFactory: ContractFactory;
156128

157129
beforeEach(async function () {
130+
// Load fixture data locally
131+
const fixtureData = await loadFixture(getInputsForDeployFixture);
132+
gatewayConfig = fixtureData.gatewayConfig;
133+
owner = fixtureData.owner;
134+
kmsNodes = fixtureData.kmsNodes;
135+
coprocessors = fixtureData.coprocessors;
136+
custodians = fixtureData.custodians;
137+
nKmsNodes = fixtureData.nKmsNodes;
138+
nCoprocessors = fixtureData.nCoprocessors;
139+
140+
highMpcThreshold = nKmsNodes;
141+
highPublicDecryptionThreshold = nKmsNodes + 1;
142+
highUserDecryptionThreshold = nKmsNodes + 1;
143+
highKmsGenThreshold = nKmsNodes + 1;
144+
highCoprocessorThreshold = nCoprocessors + 1;
145+
158146
// Deploy a new proxy contract for the GatewayConfig contract
159147
const proxyImplementation = await hre.ethers.getContractFactory("EmptyUUPSProxyGatewayConfig", owner);
160148
proxyContract = await hre.upgrades.deployProxy(proxyImplementation, [owner.address], {
@@ -570,15 +558,48 @@ describe("GatewayConfig", function () {
570558
});
571559

572560
describe("After deployment", function () {
561+
let gatewayConfig: GatewayConfig;
562+
let owner: Wallet;
563+
let pauser: Wallet;
564+
let nKmsNodes: number;
565+
let kmsNodes: KmsNodeStruct[];
566+
let kmsTxSenders: HardhatEthersSigner[];
567+
let kmsSigners: HardhatEthersSigner[];
568+
let nCoprocessors: number;
569+
let coprocessors: CoprocessorStruct[];
570+
let coprocessorTxSenders: HardhatEthersSigner[];
571+
let coprocessorSigners: HardhatEthersSigner[];
572+
let custodians: CustodianStruct[];
573+
let custodianTxSenders: HardhatEthersSigner[];
574+
let custodianSigners: HardhatEthersSigner[];
575+
let highMpcThreshold: number;
576+
let highPublicDecryptionThreshold: number;
577+
let highUserDecryptionThreshold: number;
578+
let highKmsGenThreshold: number;
579+
let highCoprocessorThreshold: number;
580+
573581
beforeEach(async function () {
574-
const fixture = await loadFixture(loadTestVariablesFixture);
582+
const fixture = await loadFixture(getInputsForDeployFixture);
575583
gatewayConfig = fixture.gatewayConfig;
584+
owner = fixture.owner;
576585
pauser = fixture.pauser;
586+
nKmsNodes = fixture.nKmsNodes;
587+
kmsNodes = fixture.kmsNodes;
577588
kmsTxSenders = fixture.kmsTxSenders;
578589
kmsSigners = fixture.kmsSigners;
590+
nCoprocessors = fixture.nCoprocessors;
591+
coprocessors = fixture.coprocessors;
579592
coprocessorTxSenders = fixture.coprocessorTxSenders;
593+
coprocessorSigners = fixture.coprocessorSigners;
594+
custodians = fixture.custodians;
580595
custodianTxSenders = fixture.custodianTxSenders;
581596
custodianSigners = fixture.custodianSigners;
597+
598+
highMpcThreshold = nKmsNodes;
599+
highPublicDecryptionThreshold = nKmsNodes + 1;
600+
highUserDecryptionThreshold = nKmsNodes + 1;
601+
highKmsGenThreshold = nKmsNodes + 1;
602+
highCoprocessorThreshold = nCoprocessors + 1;
582603
});
583604

584605
describe("Operators updates", function () {
@@ -1454,6 +1475,10 @@ describe("GatewayConfig", function () {
14541475
});
14551476

14561477
describe("Pause", async function () {
1478+
let gatewayConfig: GatewayConfig;
1479+
let owner: Wallet;
1480+
let pauser: Wallet;
1481+
14571482
const fakeOwner = createRandomWallet();
14581483
const fakePauser = createRandomWallet();
14591484

0 commit comments

Comments
 (0)