@maci-protocol/testing 0.0.0-ci.00107eb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +262 -0
- package/LICENSE +21 -0
- package/README.md +16 -0
- package/build/hardhat.config.d.ts +5 -0
- package/build/hardhat.config.d.ts.map +1 -0
- package/build/hardhat.config.js +37 -0
- package/build/hardhat.config.js.map +1 -0
- package/build/ts/__tests__/e2e.full.test.d.ts +2 -0
- package/build/ts/__tests__/e2e.full.test.d.ts.map +1 -0
- package/build/ts/__tests__/e2e.full.test.js +839 -0
- package/build/ts/__tests__/e2e.full.test.js.map +1 -0
- package/build/ts/__tests__/e2e.nonQv.test.d.ts +2 -0
- package/build/ts/__tests__/e2e.nonQv.test.d.ts.map +1 -0
- package/build/ts/__tests__/e2e.nonQv.test.js +605 -0
- package/build/ts/__tests__/e2e.nonQv.test.js.map +1 -0
- package/build/ts/__tests__/e2e.test.d.ts +2 -0
- package/build/ts/__tests__/e2e.test.d.ts.map +1 -0
- package/build/ts/__tests__/e2e.test.js +1596 -0
- package/build/ts/__tests__/e2e.test.js.map +1 -0
- package/build/ts/__tests__/integration.test.d.ts +2 -0
- package/build/ts/__tests__/integration.test.d.ts.map +1 -0
- package/build/ts/__tests__/integration.test.js +288 -0
- package/build/ts/__tests__/integration.test.js.map +1 -0
- package/build/ts/__tests__/keyChange.test.d.ts +2 -0
- package/build/ts/__tests__/keyChange.test.d.ts.map +1 -0
- package/build/ts/__tests__/keyChange.test.js +455 -0
- package/build/ts/__tests__/keyChange.test.js.map +1 -0
- package/build/ts/__tests__/maciKeys.test.d.ts +2 -0
- package/build/ts/__tests__/maciKeys.test.d.ts.map +1 -0
- package/build/ts/__tests__/maciKeys.test.js +78 -0
- package/build/ts/__tests__/maciKeys.test.js.map +1 -0
- package/build/ts/__tests__/stress/stress.full.test.d.ts +2 -0
- package/build/ts/__tests__/stress/stress.full.test.d.ts.map +1 -0
- package/build/ts/__tests__/stress/stress.full.test.js +186 -0
- package/build/ts/__tests__/stress/stress.full.test.js.map +1 -0
- package/build/ts/__tests__/unit/fundWallet.test.d.ts +2 -0
- package/build/ts/__tests__/unit/fundWallet.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/fundWallet.test.js +15 -0
- package/build/ts/__tests__/unit/fundWallet.test.js.map +1 -0
- package/build/ts/__tests__/unit/joinPoll.test.d.ts +2 -0
- package/build/ts/__tests__/unit/joinPoll.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/joinPoll.test.js +160 -0
- package/build/ts/__tests__/unit/joinPoll.test.js.map +1 -0
- package/build/ts/__tests__/unit/poll.test.d.ts +2 -0
- package/build/ts/__tests__/unit/poll.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/poll.test.js +87 -0
- package/build/ts/__tests__/unit/poll.test.js.map +1 -0
- package/build/ts/__tests__/unit/publish.test.d.ts +2 -0
- package/build/ts/__tests__/unit/publish.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/publish.test.js +130 -0
- package/build/ts/__tests__/unit/publish.test.js.map +1 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts +2 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.js +52 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.js.map +1 -0
- package/build/ts/__tests__/unit/signup.test.d.ts +2 -0
- package/build/ts/__tests__/unit/signup.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/signup.test.js +65 -0
- package/build/ts/__tests__/unit/signup.test.js.map +1 -0
- package/build/ts/__tests__/unit/timeTravel.test.d.ts +2 -0
- package/build/ts/__tests__/unit/timeTravel.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/timeTravel.test.js +14 -0
- package/build/ts/__tests__/unit/timeTravel.test.js.map +1 -0
- package/build/ts/__tests__/unit/utils.test.d.ts +2 -0
- package/build/ts/__tests__/unit/utils.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/utils.test.js +36 -0
- package/build/ts/__tests__/unit/utils.test.js.map +1 -0
- package/build/ts/constants.d.ts +82 -0
- package/build/ts/constants.d.ts.map +1 -0
- package/build/ts/constants.js +198 -0
- package/build/ts/constants.js.map +1 -0
- package/build/ts/index.d.ts +4 -0
- package/build/ts/index.d.ts.map +1 -0
- package/build/ts/index.js +23 -0
- package/build/ts/index.js.map +1 -0
- package/build/ts/testingClass.d.ts +43 -0
- package/build/ts/testingClass.d.ts.map +1 -0
- package/build/ts/testingClass.js +145 -0
- package/build/ts/testingClass.js.map +1 -0
- package/build/ts/types.d.ts +99 -0
- package/build/ts/types.d.ts.map +1 -0
- package/build/ts/types.js +3 -0
- package/build/ts/types.js.map +1 -0
- package/build/ts/user.d.ts +27 -0
- package/build/ts/user.d.ts.map +1 -0
- package/build/ts/user.js +36 -0
- package/build/ts/user.js.map +1 -0
- package/build/ts/utils.d.ts +70 -0
- package/build/ts/utils.d.ts.map +1 -0
- package/build/ts/utils.js +192 -0
- package/build/ts/utils.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const crypto_1 = require("@maci-protocol/crypto");
|
|
4
|
+
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
5
|
+
const sdk_1 = require("@maci-protocol/sdk");
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const filePerMode = {
|
|
9
|
+
[sdk_1.EMode.FULL]: {
|
|
10
|
+
voteTallyZkey: constants_1.testTallyVotesFullZkeyPath,
|
|
11
|
+
messageProcessorZkey: constants_1.testProcessMessageFullZkeyPath,
|
|
12
|
+
messageProcessorWitnessGenerator: constants_1.testProcessMessagesFullWitnessPath,
|
|
13
|
+
messageProcessorWitnessDatFile: constants_1.testProcessMessagesFullWitnessDatPath,
|
|
14
|
+
voteTallyWitnessGenerator: constants_1.testTallyVotesFullWitnessPath,
|
|
15
|
+
voteTallyWitnessDatFile: constants_1.testTallyVotesFullWitnessDatPath,
|
|
16
|
+
messageProcessorWasm: constants_1.testProcessMessagesFullWasmPath,
|
|
17
|
+
voteTallyWasm: constants_1.testTallyVotesFullWasmPath,
|
|
18
|
+
},
|
|
19
|
+
[sdk_1.EMode.NON_QV]: {
|
|
20
|
+
voteTallyZkey: constants_1.testVoteTallyNonQvZkeyPath,
|
|
21
|
+
messageProcessorZkey: constants_1.testProcessMessageNonQvZkeyPath,
|
|
22
|
+
messageProcessorWitnessGenerator: constants_1.testProcessMessagesNonQvWitnessPath,
|
|
23
|
+
messageProcessorWitnessDatFile: constants_1.testProcessMessagesNonQvWitnessDatPath,
|
|
24
|
+
voteTallyWitnessGenerator: constants_1.testVoteTallyNonQvWitnessPath,
|
|
25
|
+
voteTallyWitnessDatFile: constants_1.testVoteTallyNonQvWitnessDatPath,
|
|
26
|
+
messageProcessorWasm: constants_1.testProcessMessagesNonQvWasmPath,
|
|
27
|
+
voteTallyWasm: constants_1.testVoteTallyNonQvWasmPath,
|
|
28
|
+
},
|
|
29
|
+
[sdk_1.EMode.QV]: {
|
|
30
|
+
voteTallyZkey: constants_1.testTallyVotesZkeyPath,
|
|
31
|
+
messageProcessorZkey: constants_1.testProcessMessageZkeyPath,
|
|
32
|
+
messageProcessorWitnessGenerator: constants_1.testProcessMessagesWitnessPath,
|
|
33
|
+
messageProcessorWitnessDatFile: constants_1.testProcessMessagesWitnessDatPath,
|
|
34
|
+
voteTallyWitnessGenerator: constants_1.testTallyVotesWitnessPath,
|
|
35
|
+
voteTallyWitnessDatFile: constants_1.testTallyVotesWitnessDatPath,
|
|
36
|
+
messageProcessorWasm: constants_1.testProcessMessagesWasmPath,
|
|
37
|
+
voteTallyWasm: constants_1.testTallyVotesWasmPath,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const numberSignups = 100;
|
|
41
|
+
const numberMessagesPerUser = 2;
|
|
42
|
+
const pollDuration = 900000;
|
|
43
|
+
Object.entries(filePerMode).forEach((data) => {
|
|
44
|
+
const mode = Number(data[0]);
|
|
45
|
+
const files = data[1];
|
|
46
|
+
describe(`stress tests ${sdk_1.EMode[mode]}`, function test() {
|
|
47
|
+
const useWasm = (0, sdk_1.isArm)();
|
|
48
|
+
this.timeout(pollDuration);
|
|
49
|
+
let maciAddresses;
|
|
50
|
+
let initialVoiceCreditProxyContractAddress;
|
|
51
|
+
let signer;
|
|
52
|
+
const generateProofsArgs = {
|
|
53
|
+
outputDir: constants_1.testProofsDirPath,
|
|
54
|
+
tallyFile: constants_1.testTallyFilePath,
|
|
55
|
+
voteTallyZkey: files.voteTallyZkey,
|
|
56
|
+
messageProcessorZkey: files.messageProcessorZkey,
|
|
57
|
+
pollId: 0n,
|
|
58
|
+
rapidsnark: constants_1.testRapidsnarkPath,
|
|
59
|
+
messageProcessorWitnessGenerator: files.messageProcessorWitnessGenerator,
|
|
60
|
+
messageProcessorWitnessDatFile: files.messageProcessorWitnessDatFile,
|
|
61
|
+
voteTallyWitnessGenerator: files.voteTallyWitnessGenerator,
|
|
62
|
+
voteTallyWitnessDatFile: files.voteTallyWitnessDatFile,
|
|
63
|
+
coordinatorPrivateKey: constants_1.coordinatorPrivateKey,
|
|
64
|
+
messageProcessorWasm: files.messageProcessorWasm,
|
|
65
|
+
voteTallyWasm: files.voteTallyWasm,
|
|
66
|
+
useWasm,
|
|
67
|
+
mode,
|
|
68
|
+
};
|
|
69
|
+
const prepareTest = async () => {
|
|
70
|
+
const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
|
|
71
|
+
const signupPolicyContractAddress = await signupPolicy.getAddress();
|
|
72
|
+
const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
|
|
73
|
+
const pollPolicyContractAddress = await pollPolicy.getAddress();
|
|
74
|
+
// deploy the smart contracts
|
|
75
|
+
const maciContractsAddresses = await (0, sdk_1.deployMaci)({
|
|
76
|
+
...constants_1.deployArgs,
|
|
77
|
+
signer,
|
|
78
|
+
signupPolicyAddress: signupPolicyContractAddress,
|
|
79
|
+
});
|
|
80
|
+
// we set the verifying keys
|
|
81
|
+
const { verifyingKeysRegistryContractAddress } = maciContractsAddresses;
|
|
82
|
+
await (0, sdk_1.setVerifyingKeys)({
|
|
83
|
+
...(await (0, constants_1.verifyingKeysArgs)(signer, [mode])),
|
|
84
|
+
verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
|
|
85
|
+
});
|
|
86
|
+
const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
|
|
87
|
+
// deploy a poll contract
|
|
88
|
+
await (0, sdk_1.deployPoll)({
|
|
89
|
+
...constants_1.deployPollArgs,
|
|
90
|
+
signer,
|
|
91
|
+
pollStartTimestamp: startDate,
|
|
92
|
+
pollEndTimestamp: startDate + pollDuration,
|
|
93
|
+
relayers: [await signer.getAddress()],
|
|
94
|
+
maciAddress: maciContractsAddresses.maciContractAddress,
|
|
95
|
+
policyContractAddress: pollPolicyContractAddress,
|
|
96
|
+
initialVoiceCreditProxyContractAddress,
|
|
97
|
+
mode,
|
|
98
|
+
});
|
|
99
|
+
return maciContractsAddresses;
|
|
100
|
+
};
|
|
101
|
+
// before all tests we deploy the verifying keys registry contract and set the verifying keys
|
|
102
|
+
before(async () => {
|
|
103
|
+
signer = await (0, sdk_1.getDefaultSigner)();
|
|
104
|
+
const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
|
|
105
|
+
const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
|
|
106
|
+
initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
|
|
107
|
+
});
|
|
108
|
+
describe(`${numberSignups} signup(s), ${numberSignups * numberMessagesPerUser} message(s)`, () => {
|
|
109
|
+
const users = Array.from({ length: numberSignups }, () => new domainobjs_1.Keypair());
|
|
110
|
+
before(async () => {
|
|
111
|
+
// deploy the smart contracts
|
|
112
|
+
maciAddresses = await prepareTest();
|
|
113
|
+
});
|
|
114
|
+
after(async () => {
|
|
115
|
+
await (0, utils_1.clean)();
|
|
116
|
+
});
|
|
117
|
+
it("should signup users", async () => {
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
119
|
+
for (let index = 0; index < users.length; index += 1) {
|
|
120
|
+
// eslint-disable-next-line no-await-in-loop
|
|
121
|
+
await (0, sdk_1.signup)({
|
|
122
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
123
|
+
maciPublicKey: users[index].publicKey.serialize(),
|
|
124
|
+
sgData: constants_1.DEFAULT_SG_DATA,
|
|
125
|
+
signer,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
it("should join users", async () => {
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
131
|
+
for (let index = 0; index < users.length; index += 1) {
|
|
132
|
+
// eslint-disable-next-line no-await-in-loop
|
|
133
|
+
await (0, sdk_1.joinPoll)({
|
|
134
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
135
|
+
privateKey: users[index].privateKey.serialize(),
|
|
136
|
+
pollId: 0n,
|
|
137
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
138
|
+
useWasm,
|
|
139
|
+
pollJoiningWasm: constants_1.testPollJoiningWasmPath,
|
|
140
|
+
pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
|
|
141
|
+
rapidsnark: constants_1.testRapidsnarkPath,
|
|
142
|
+
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
143
|
+
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
144
|
+
signer,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
it("should publish messages", async () => {
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
150
|
+
for (let index = 0; index < users.length; index += 1) {
|
|
151
|
+
for (let voteOptionIndex = numberMessagesPerUser; voteOptionIndex >= 0; voteOptionIndex -= 1) {
|
|
152
|
+
// eslint-disable-next-line no-await-in-loop
|
|
153
|
+
await (0, sdk_1.publish)({
|
|
154
|
+
publicKey: users[index].publicKey.serialize(),
|
|
155
|
+
stateIndex: BigInt(index + 1),
|
|
156
|
+
voteOptionIndex: BigInt(voteOptionIndex),
|
|
157
|
+
nonce: 1n,
|
|
158
|
+
pollId: 0n,
|
|
159
|
+
newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS),
|
|
160
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
161
|
+
salt: (0, crypto_1.generateRandomSalt)(),
|
|
162
|
+
privateKey: users[index].privateKey.serialize(),
|
|
163
|
+
signer,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
it("should generate zk-SNARK proofs and verify them", async () => {
|
|
169
|
+
await (0, sdk_1.timeTravel)({ seconds: pollDuration, signer });
|
|
170
|
+
await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
|
|
171
|
+
const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
|
|
172
|
+
...generateProofsArgs,
|
|
173
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
174
|
+
signer,
|
|
175
|
+
});
|
|
176
|
+
await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
|
|
177
|
+
await (0, sdk_1.verify)({
|
|
178
|
+
...(await (0, constants_1.verifyArgs)(signer)),
|
|
179
|
+
tallyData: tallyFileData,
|
|
180
|
+
maciAddress: tallyFileData.maci,
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
//# sourceMappingURL=stress.full.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stress.full.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/stress/stress.full.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundWallet.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/fundWallet.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_1 = require("@maci-protocol/sdk");
|
|
4
|
+
const chai_1 = require("chai");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
describe("fundWallet", () => {
|
|
7
|
+
it("should increase the balance of a wallet", async () => {
|
|
8
|
+
const signer = await (0, sdk_1.getDefaultSigner)();
|
|
9
|
+
const balanceBefore = await signer.provider?.getBalance(ethers_1.ZeroAddress);
|
|
10
|
+
await (0, sdk_1.fundWallet)({ amount: 1000000000, address: ethers_1.ZeroAddress, signer });
|
|
11
|
+
const balanceAfter = await signer.provider?.getBalance(ethers_1.ZeroAddress);
|
|
12
|
+
(0, chai_1.expect)(Number(balanceAfter)).to.be.gt(Number(balanceBefore));
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=fundWallet.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundWallet.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/fundWallet.test.ts"],"names":[],"mappings":";;AAAA,4CAAkE;AAClE,+BAA8B;AAC9B,mCAAqC;AAErC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,GAAE,CAAC;QAExC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,oBAAW,CAAC,CAAC;QACrE,MAAM,IAAA,gBAAU,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,oBAAW,CAAC,CAAC;QAEpE,IAAA,aAAM,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinPoll.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/joinPoll.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
4
|
+
const sdk_1 = require("@maci-protocol/sdk");
|
|
5
|
+
const browser_1 = require("@maci-protocol/sdk/browser");
|
|
6
|
+
const chai_1 = require("chai");
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
const useWasm = (0, utils_1.isArm)();
|
|
10
|
+
describe("joinPoll", function test() {
|
|
11
|
+
let signer;
|
|
12
|
+
let maciAddresses;
|
|
13
|
+
let initialVoiceCreditProxyContractAddress;
|
|
14
|
+
const users = new Array(3).fill(undefined).map(() => new domainobjs_1.Keypair());
|
|
15
|
+
const mockPollId = 9000n;
|
|
16
|
+
this.timeout(900000);
|
|
17
|
+
// before all tests we deploy the verifying keys registry contract and set the verifying keys
|
|
18
|
+
before(async () => {
|
|
19
|
+
signer = await (0, sdk_1.getDefaultSigner)();
|
|
20
|
+
const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
|
|
21
|
+
const signupPolicyContractAddress = await signupPolicy.getAddress();
|
|
22
|
+
const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
|
|
23
|
+
const pollPolicyContractAddress = await pollPolicy.getAddress();
|
|
24
|
+
const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
|
|
25
|
+
const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
|
|
26
|
+
initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
|
|
27
|
+
const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
|
|
28
|
+
// deploy the smart contracts
|
|
29
|
+
maciAddresses = await (0, sdk_1.deployMaci)({
|
|
30
|
+
...constants_1.deployArgs,
|
|
31
|
+
signer,
|
|
32
|
+
signupPolicyAddress: signupPolicyContractAddress,
|
|
33
|
+
});
|
|
34
|
+
// we set the verifying keys
|
|
35
|
+
const { verifyingKeysRegistryContractAddress } = maciAddresses;
|
|
36
|
+
await (0, sdk_1.setVerifyingKeys)({
|
|
37
|
+
...(await (0, constants_1.verifyingKeysArgs)(signer)),
|
|
38
|
+
verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
|
|
39
|
+
});
|
|
40
|
+
// signup the user
|
|
41
|
+
await (0, sdk_1.signup)({
|
|
42
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
43
|
+
maciPublicKey: users[0].publicKey.serialize(),
|
|
44
|
+
sgData: constants_1.DEFAULT_SG_DATA,
|
|
45
|
+
signer,
|
|
46
|
+
});
|
|
47
|
+
await (0, sdk_1.signup)({
|
|
48
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
49
|
+
maciPublicKey: users[1].publicKey.serialize(),
|
|
50
|
+
sgData: constants_1.DEFAULT_SG_DATA,
|
|
51
|
+
signer,
|
|
52
|
+
});
|
|
53
|
+
await (0, sdk_1.signup)({
|
|
54
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
55
|
+
maciPublicKey: users[2].publicKey.serialize(),
|
|
56
|
+
sgData: constants_1.DEFAULT_SG_DATA,
|
|
57
|
+
signer,
|
|
58
|
+
});
|
|
59
|
+
// deploy a poll contract
|
|
60
|
+
await (0, sdk_1.deployPoll)({
|
|
61
|
+
...constants_1.deployPollArgs,
|
|
62
|
+
signer,
|
|
63
|
+
pollStartTimestamp: startDate,
|
|
64
|
+
pollEndTimestamp: startDate + constants_1.pollDuration,
|
|
65
|
+
relayers: [await signer.getAddress()],
|
|
66
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
67
|
+
policyContractAddress: pollPolicyContractAddress,
|
|
68
|
+
initialVoiceCreditProxyContractAddress,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
it("should allow to join the poll and return the user data", async () => {
|
|
72
|
+
const startBlock = await signer.provider?.getBlockNumber();
|
|
73
|
+
await (0, sdk_1.joinPoll)({
|
|
74
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
75
|
+
privateKey: users[0].privateKey.serialize(),
|
|
76
|
+
signer,
|
|
77
|
+
pollId: 0n,
|
|
78
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
79
|
+
useWasm,
|
|
80
|
+
pollJoiningWasm: constants_1.testPollJoiningWasmPath,
|
|
81
|
+
pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
|
|
82
|
+
rapidsnark: constants_1.testRapidsnarkPath,
|
|
83
|
+
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
84
|
+
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
85
|
+
});
|
|
86
|
+
const registeredUserData = await (0, sdk_1.getJoinedUserData)({
|
|
87
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
88
|
+
pollId: 0n,
|
|
89
|
+
pollPublicKey: users[0].publicKey.serialize(),
|
|
90
|
+
signer,
|
|
91
|
+
startBlock: startBlock || 0,
|
|
92
|
+
});
|
|
93
|
+
(0, chai_1.expect)(registeredUserData.isJoined).to.eq(true);
|
|
94
|
+
(0, chai_1.expect)(BigInt(registeredUserData.pollStateIndex)).to.eq(1);
|
|
95
|
+
});
|
|
96
|
+
it("should allow to join the poll using a precomputed inclusion proof", async () => {
|
|
97
|
+
const startBlock = await signer.provider?.getBlockNumber();
|
|
98
|
+
const stateTree = await (0, sdk_1.generateMaciStateTreeWithEndKey)({
|
|
99
|
+
maciContractAddress: maciAddresses.maciContractAddress,
|
|
100
|
+
signer,
|
|
101
|
+
userPublicKey: users[1].publicKey,
|
|
102
|
+
});
|
|
103
|
+
const inclusionProof = stateTree.signUpTree.generateProof(2);
|
|
104
|
+
await (0, browser_1.joinPoll)({
|
|
105
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
106
|
+
privateKey: users[1].privateKey.serialize(),
|
|
107
|
+
signer,
|
|
108
|
+
pollId: 0n,
|
|
109
|
+
inclusionProof,
|
|
110
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
111
|
+
pollJoiningWasm: constants_1.testPollJoiningWasmPath,
|
|
112
|
+
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
113
|
+
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
114
|
+
});
|
|
115
|
+
const registeredUserData = await (0, sdk_1.getJoinedUserData)({
|
|
116
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
117
|
+
pollId: 0n,
|
|
118
|
+
pollPublicKey: users[1].publicKey.serialize(),
|
|
119
|
+
signer,
|
|
120
|
+
startBlock: startBlock || 0,
|
|
121
|
+
});
|
|
122
|
+
(0, chai_1.expect)(registeredUserData.isJoined).to.eq(true);
|
|
123
|
+
(0, chai_1.expect)(BigInt(registeredUserData.pollStateIndex)).to.eq(2);
|
|
124
|
+
});
|
|
125
|
+
it("should throw error if poll does not exist", async () => {
|
|
126
|
+
await (0, chai_1.expect)((0, sdk_1.joinPoll)({
|
|
127
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
128
|
+
privateKey: users[0].privateKey.serialize(),
|
|
129
|
+
signer,
|
|
130
|
+
pollId: mockPollId,
|
|
131
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
132
|
+
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
133
|
+
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
134
|
+
})).eventually.rejectedWith("PollDoesNotExist(9000)");
|
|
135
|
+
});
|
|
136
|
+
it("should throw error if user did not sign up to maci and therefore state index is invalid", async () => {
|
|
137
|
+
const keypair = new domainobjs_1.Keypair();
|
|
138
|
+
await (0, chai_1.expect)((0, sdk_1.joinPoll)({
|
|
139
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
140
|
+
privateKey: keypair.privateKey.serialize(),
|
|
141
|
+
signer,
|
|
142
|
+
pollId: 0n,
|
|
143
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
144
|
+
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
145
|
+
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
146
|
+
})).eventually.rejectedWith("Invalid state index");
|
|
147
|
+
});
|
|
148
|
+
it("should throw error if current poll id is invalid", async () => {
|
|
149
|
+
await (0, chai_1.expect)((0, sdk_1.joinPoll)({
|
|
150
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
151
|
+
privateKey: users[0].privateKey.serialize(),
|
|
152
|
+
signer,
|
|
153
|
+
pollId: -1n,
|
|
154
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
155
|
+
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
156
|
+
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
157
|
+
})).eventually.rejectedWith("Invalid poll id");
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=joinPoll.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinPoll.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/joinPoll.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/poll.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const sdk_1 = require("@maci-protocol/sdk");
|
|
4
|
+
const chai_1 = require("chai");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
describe("poll", function test() {
|
|
7
|
+
this.timeout(900000);
|
|
8
|
+
let maciAddresses;
|
|
9
|
+
let initialVoiceCreditProxyContractAddress;
|
|
10
|
+
let pollAddresses;
|
|
11
|
+
let signer;
|
|
12
|
+
// before all tests we deploy the verifying keys registry contract and set the verifying keys
|
|
13
|
+
before(async () => {
|
|
14
|
+
signer = await (0, sdk_1.getDefaultSigner)();
|
|
15
|
+
const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
|
|
16
|
+
const signupPolicyContractAddress = await signupPolicy.getAddress();
|
|
17
|
+
const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
|
|
18
|
+
const pollPolicyContractAddress = await pollPolicy.getAddress();
|
|
19
|
+
const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
|
|
20
|
+
const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
|
|
21
|
+
initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
|
|
22
|
+
const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
|
|
23
|
+
// deploy the smart contracts
|
|
24
|
+
maciAddresses = await (0, sdk_1.deployMaci)({
|
|
25
|
+
...constants_1.deployArgs,
|
|
26
|
+
signer,
|
|
27
|
+
signupPolicyAddress: signupPolicyContractAddress,
|
|
28
|
+
});
|
|
29
|
+
// we set the verifying keys
|
|
30
|
+
const { verifyingKeysRegistryContractAddress } = maciAddresses;
|
|
31
|
+
await (0, sdk_1.setVerifyingKeys)({
|
|
32
|
+
...(await (0, constants_1.verifyingKeysArgs)(signer)),
|
|
33
|
+
verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
|
|
34
|
+
});
|
|
35
|
+
// deploy a poll contract
|
|
36
|
+
pollAddresses = await (0, sdk_1.deployPoll)({
|
|
37
|
+
...constants_1.deployPollArgs,
|
|
38
|
+
signer,
|
|
39
|
+
pollStartTimestamp: startDate,
|
|
40
|
+
pollEndTimestamp: startDate + constants_1.pollDuration,
|
|
41
|
+
relayers: [await signer.getAddress()],
|
|
42
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
43
|
+
policyContractAddress: pollPolicyContractAddress,
|
|
44
|
+
initialVoiceCreditProxyContractAddress,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("check deploy and get poll", () => {
|
|
48
|
+
it("should get current poll properly", async () => {
|
|
49
|
+
const pollData = await (0, sdk_1.getPoll)({
|
|
50
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
51
|
+
signer,
|
|
52
|
+
});
|
|
53
|
+
const samePollData = await (0, sdk_1.getPoll)({
|
|
54
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
55
|
+
pollId: pollData.id,
|
|
56
|
+
signer,
|
|
57
|
+
});
|
|
58
|
+
(0, chai_1.expect)(pollData.address).to.eq(pollAddresses.pollContractAddress);
|
|
59
|
+
(0, chai_1.expect)(pollData).to.deep.eq(samePollData);
|
|
60
|
+
});
|
|
61
|
+
it("should get finished poll properly", async () => {
|
|
62
|
+
const pollData = await (0, sdk_1.getPoll)({
|
|
63
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
64
|
+
provider: signer.provider,
|
|
65
|
+
});
|
|
66
|
+
await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
|
|
67
|
+
await (0, sdk_1.mergeSignups)({ pollId: BigInt(pollData.id), maciAddress: maciAddresses.maciContractAddress, signer });
|
|
68
|
+
const finishedPollData = await (0, sdk_1.getPoll)({
|
|
69
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
70
|
+
signer,
|
|
71
|
+
});
|
|
72
|
+
(0, chai_1.expect)(pollData.id).to.eq(finishedPollData.id);
|
|
73
|
+
(0, chai_1.expect)(pollData.address).to.eq(finishedPollData.address);
|
|
74
|
+
(0, chai_1.expect)(finishedPollData.isMerged).to.eq(true);
|
|
75
|
+
});
|
|
76
|
+
it("should throw error if there are no signer and provider", async () => {
|
|
77
|
+
await (0, chai_1.expect)((0, sdk_1.getPoll)({ maciAddress: maciAddresses.maciContractAddress, pollId: -1n })).eventually.rejectedWith("No signer and provider are provided");
|
|
78
|
+
});
|
|
79
|
+
it("should throw error if current poll id is invalid", async () => {
|
|
80
|
+
await (0, chai_1.expect)((0, sdk_1.getPoll)({ maciAddress: maciAddresses.maciContractAddress, pollId: -1n, signer })).eventually.rejectedWith("Invalid poll id -1");
|
|
81
|
+
});
|
|
82
|
+
it("should throw error if current poll is not deployed", async () => {
|
|
83
|
+
await (0, chai_1.expect)((0, sdk_1.getPoll)({ maciAddress: maciAddresses.maciContractAddress, pollId: 9000n, signer })).eventually.rejectedWith("MACI contract doesn't have any deployed poll 9000");
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=poll.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/poll.test.ts"],"names":[],"mappings":";;AAAA,4CAc4B;AAC5B,+BAA8B;AAI9B,+CAMyB;AAEzB,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI;IAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAErB,IAAI,aAA6B,CAAC;IAClC,IAAI,sCAA8C,CAAC;IACnD,IAAI,aAAiC,CAAC;IACtC,IAAI,MAAc,CAAC;IAEnB,6FAA6F;IAC7F,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,GAAG,MAAM,IAAA,sBAAgB,GAAE,CAAC;QAElC,MAAM,CAAC,YAAY,EAAE,AAAD,EAAG,mBAAmB,EAAE,oBAAoB,CAAC,GAAG,MAAM,IAAA,kCAA4B,EACpG,EAAE,EACF,MAAM,EACN,IAAI,CACL,CAAC;QACF,MAAM,2BAA2B,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAEpE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAA,kCAA4B,EACrD,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAC9D,MAAM,EACN,IAAI,CACL,CAAC;QACF,MAAM,yBAAyB,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAEhE,MAAM,sCAAsC,GAAG,MAAM,IAAA,kDAA4C,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChH,MAAM,uBAAuB,GAAG,MAAM,IAAA,2CAAqC,EACzE,EAAE,MAAM,EAAE,yCAA6B,EAAE,EACzC,sCAAsC,EACtC,MAAM,CACP,CAAC;QACF,sCAAsC,GAAG,MAAM,uBAAuB,CAAC,UAAU,EAAE,CAAC;QAEpF,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAiB,EAAC,MAAM,CAAC,CAAC;QAElD,6BAA6B;QAC7B,aAAa,GAAG,MAAM,IAAA,gBAAU,EAAC;YAC/B,GAAG,sBAAU;YACb,MAAM;YACN,mBAAmB,EAAE,2BAA2B;SACjD,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,EAAE,oCAAoC,EAAE,GAAG,aAAa,CAAC;QAC/D,MAAM,IAAA,sBAAgB,EAAC;YACrB,GAAG,CAAC,MAAM,IAAA,6BAAiB,EAAC,MAAM,CAAC,CAAC;YACpC,4BAA4B,EAAE,oCAAoC;SACnE,CAAC,CAAC;QAEH,yBAAyB;QACzB,aAAa,GAAG,MAAM,IAAA,gBAAU,EAAC;YAC/B,GAAG,0BAAc;YACjB,MAAM;YACN,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS,GAAG,wBAAY;YAC1C,QAAQ,EAAE,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,WAAW,EAAE,aAAa,CAAC,mBAAmB;YAC9C,qBAAqB,EAAE,yBAAyB;YAChD,sCAAsC;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,QAAQ,GAAG,MAAM,IAAA,aAAO,EAAC;gBAC7B,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,MAAM;aACP,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAA,aAAO,EAAC;gBACjC,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,MAAM,EAAE,QAAQ,CAAC,EAAE;gBACnB,MAAM;aACP,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAClE,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,QAAQ,GAAG,MAAM,IAAA,aAAO,EAAC;gBAC7B,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,QAAQ,EAAE,MAAM,CAAC,QAAS;aAC3B,CAAC,CAAC;YAEH,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YAE5G,MAAM,gBAAgB,GAAG,MAAM,IAAA,aAAO,EAAC;gBACrC,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,MAAM;aACP,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzD,IAAA,aAAM,EAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,IAAA,aAAM,EAAC,IAAA,aAAO,EAAC,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAC5G,qCAAqC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,IAAA,aAAM,EACV,IAAA,aAAO,EAAC,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CACjF,CAAC,UAAU,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,IAAA,aAAM,EACV,IAAA,aAAO,EAAC,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACnF,CAAC,UAAU,CAAC,YAAY,CAAC,mDAAmD,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/publish.test.ts"],"names":[],"mappings":""}
|