@maci-protocol/website 0.0.0-ci.e998765 → 0.0.0-ci.eb56e07
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/blog/2024-02-28-maci-v1.2.0.md +1 -1
- package/blog/2025-03-21-roadmap-2025.md +1 -1
- package/blog/2025-08-18-maci-aragon-plugin.md +107 -0
- package/blog/2025-09-05-maci-coordinator-service.md +167 -0
- package/docusaurus.config.ts +7 -1
- package/package.json +16 -15
- package/versioned_docs/version-v0.x/introduction.md +0 -4
- package/versioned_docs/version-v1.2/circuits.md +8 -8
- package/versioned_docs/version-v1.2/contributing/contributing.md +4 -4
- package/versioned_docs/version-v1.2/deployment.md +1 -1
- package/versioned_docs/version-v1.2/integrating.md +1 -1
- package/versioned_docs/version-v1.2/key-change.md +1 -1
- package/versioned_docs/version-v1.2/poll-types.md +1 -1
- package/versioned_docs/version-v1.2/testing-in-detail.md +3 -3
- package/versioned_docs/version-v1.2/testing.md +1 -1
- package/versioned_docs/version-v1.2/topup.md +1 -1
- package/versioned_docs/version-v1.2/typedoc/core/index.md +2 -2
- package/versioned_docs/version-v1.2/versioning.md +3 -3
- package/versioned_docs/version-v1.2/workflow.md +1 -1
- package/versioned_docs/version-v2.x/contributing/contributing.md +4 -4
- package/versioned_docs/version-v2.x/core-concepts/key-change.md +1 -1
- package/versioned_docs/version-v2.x/core-concepts/merkle-trees.md +1 -1
- package/versioned_docs/version-v2.x/core-concepts/poll-types.md +1 -1
- package/versioned_docs/version-v2.x/core-concepts/workflow.md +1 -1
- package/versioned_docs/version-v2.x/guides/integrating.md +1 -1
- package/versioned_docs/version-v2.x/guides/testing/testing-in-detail.md +3 -3
- package/versioned_docs/version-v2.x/guides/testing/testing.md +1 -1
- package/versioned_docs/version-v2.x/processes/versioning.md +3 -3
- package/versioned_docs/version-v2.x/supported-networks/deployed-contracts.md +7 -7
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/AccQueue.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/MACI.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/MessageProcessor.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Params.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Poll.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/PollFactory.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/Tally.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/VkRegistry.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/smart-contracts/VoiceCreditProxy.md +1 -1
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/processMessages.md +4 -4
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/tallyVotes.md +2 -2
- package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +3 -3
- package/versioned_docs/version-v3.x/contributing/contributing.md +11 -5
- package/versioned_docs/version-v3.x/core-concepts/key-change.md +1 -1
- package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +1 -1
- package/versioned_docs/version-v3.x/core-concepts/poll-types.md +1 -1
- package/versioned_docs/version-v3.x/core-concepts/polls.md +1 -1
- package/versioned_docs/version-v3.x/core-concepts/workflow.md +1 -1
- package/versioned_docs/version-v3.x/guides/integrating.md +2 -2
- package/versioned_docs/version-v3.x/guides/sdk.md +121 -0
- package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +3 -3
- package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +30 -4
- package/versioned_docs/version-v3.x/guides/troubleshooting.md +47 -2
- package/versioned_docs/version-v3.x/processes/versioning.md +3 -3
- package/versioned_docs/version-v3.x/quick-start.md +2 -2
- package/versioned_docs/version-v3.x/security/trusted-setup.md +1 -1
- package/versioned_docs/version-v3.x/supported-networks/costs.md +725 -0
- package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +7 -7
- package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +16 -0
- package/versioned_docs/version-v3.x/technical-references/coordinator-service/index.md +15 -1
- package/versioned_docs/version-v3.x/technical-references/coordinator-service/installation.md +5 -33
- package/versioned_docs/version-v3.x/technical-references/coordinator-service/usage.md +64 -0
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Policies.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/smart-contracts/VoiceCreditProxy.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/technical-references.md +8 -8
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +66 -6
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +1 -1
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +2 -2
- package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +3 -3
|
@@ -53,6 +53,32 @@ To run Contracts only tests, run:
|
|
|
53
53
|
pnpm run test
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
To run e2e tests for hardhat tasks for `contracts` using the in-memory hardhat network:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pnpm run test:hardhat
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
You can update the `deploy-config.json` file to change policies or other deployment settings used by the test.
|
|
63
|
+
|
|
64
|
+
You can enhance test reporting and gas cost estimation by adding the following variables to your `.env` file:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# CoinMarkerCap api key for prices (gas reporter)
|
|
68
|
+
COINMARKETCAP_API_KEY=
|
|
69
|
+
# Gas price for gas reporter
|
|
70
|
+
# Allows you to manually specify the gas price (e.g. 3 gwei)
|
|
71
|
+
GAS_REPORTER_PRICE=
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
These variables are used by `hardhat-gas-reporter` to show cost estimates for gas usage in the test reports.
|
|
75
|
+
|
|
76
|
+
If you would like to run these E2E tests against a different [supported networks](/docs/supported-networks/), you can override the network like this:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pnpm exec hardhat test --network {NETWORK} ./tests/e2e/hardhatTasks.test.ts
|
|
80
|
+
```
|
|
81
|
+
|
|
56
82
|
### Circuits
|
|
57
83
|
|
|
58
84
|
To test the circuits, from the main `maci/` directory, run:
|
|
@@ -86,7 +112,7 @@ circuits.
|
|
|
86
112
|
|
|
87
113
|
Note the locations of the `.zkey` files as the smart contract tasks require them as part of the JSON configuration file.
|
|
88
114
|
|
|
89
|
-
For testing purposes you can download the required artifacts using the [`download-zkeys:test`](https://github.com/privacy-scaling-explorations/maci/blob/
|
|
115
|
+
For testing purposes you can download the required artifacts using the [`download-zkeys:test`](https://github.com/privacy-scaling-explorations/maci/blob/main/package.json#L15). The script will place all required artifacts inside the `cli/zkeys` folder.
|
|
90
116
|
|
|
91
117
|
You can run the script directly with bash or use pnpm: `pnpm run download:test-zkeys` from the monorepo root.
|
|
92
118
|
|
|
@@ -97,19 +123,19 @@ From the root folder, run:
|
|
|
97
123
|
**for c++ witness generator**
|
|
98
124
|
|
|
99
125
|
```bash
|
|
100
|
-
pnpm build:circuits-c -- --outPath
|
|
126
|
+
pnpm build:circuits-c -- --outPath ../../zkeys
|
|
101
127
|
```
|
|
102
128
|
|
|
103
129
|
**for wasm witness generator**
|
|
104
130
|
|
|
105
131
|
```bash
|
|
106
|
-
pnpm build:circuits-wasm -- --outPath
|
|
132
|
+
pnpm build:circuits-wasm -- --outPath ../../zkeys
|
|
107
133
|
```
|
|
108
134
|
|
|
109
135
|
**generate zkeys**
|
|
110
136
|
|
|
111
137
|
```bash
|
|
112
|
-
pnpm setup:zkeys --outPath
|
|
138
|
+
pnpm setup:zkeys --outPath ../../zkeys
|
|
113
139
|
```
|
|
114
140
|
|
|
115
141
|
### Check the Rapidsnark binary
|
|
@@ -71,7 +71,7 @@ Error: commitment mismatch
|
|
|
71
71
|
|
|
72
72
|
This is because commitments are generated using random salts, thus will differ at each `generateProofs` run.
|
|
73
73
|
|
|
74
|
-
In [core/Poll.ts](https://github.com/privacy-scaling-explorations/maci/blob/
|
|
74
|
+
In [core/Poll.ts](https://github.com/privacy-scaling-explorations/maci/blob/main/packages/core/ts/Poll.ts):
|
|
75
75
|
|
|
76
76
|
```
|
|
77
77
|
let newSbSalt = genRandomSalt();
|
|
@@ -140,7 +140,7 @@ event MergeMessageAqSubRoots(uint256 indexed _numSrQueueOps);
|
|
|
140
140
|
event MergeMessageAq(uint256 indexed _messageRoot);
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
Please remember to pull the latest MACI repo updates(`git fetch origin && git pull origin
|
|
143
|
+
Please remember to pull the latest MACI repo updates(`git fetch origin && git pull origin main`) and run `pnpm build` in the root of this monorepo.
|
|
144
144
|
|
|
145
145
|
### Verifier contract found the proof invalid
|
|
146
146
|
|
|
@@ -159,3 +159,48 @@ Error: The verifier contract found the proof invalid.
|
|
|
159
159
|
### The on-chain verification of total spent voice credits failed
|
|
160
160
|
|
|
161
161
|
If you ran the `verify` command and got this error, please ensure consistency in your use of quadratic voting throughout interactions with MACI, including poll deployment, proof generation, and verification.
|
|
162
|
+
|
|
163
|
+
### Proof generation process is killed
|
|
164
|
+
|
|
165
|
+
If your terminal output ends like this:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
[i] Starting to fetch logs from block 8386826
|
|
169
|
+
[i] Generating proofs of message processing...
|
|
170
|
+
[i] Progress: 1 / 1
|
|
171
|
+
[i] Wait until proof generation is finished
|
|
172
|
+
Killed
|
|
173
|
+
ELIFECYCLE Command failed with exit code 137.
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
This typically indicates the proof generation process was terminated due to exceeding the system's available memory limit (exit code `137` = SIGKILL by the OS, often due to OOM).
|
|
177
|
+
|
|
178
|
+
Increase Node.js' memory allocation by setting the `NODE_OPTIONS` environment variable before running the command:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
export NODE_OPTIONS="--max-old-space-size=4096"
|
|
182
|
+
# You can increase the value further (e.g., 8192 for 8GB) if your system has enough RAM:
|
|
183
|
+
export NODE_OPTIONS="--max-old-space-size=8192"
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Error: Not enough or too many values for input signals
|
|
187
|
+
|
|
188
|
+
If you see errors like:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Error: Not enough values for input signal currentVoteWeightsPathElements
|
|
192
|
+
at /home/maci/node_modules/.pnpm/circom_runtime@0.1.28/node_modules/circom_runtime/build/main.cjs:513:27
|
|
193
|
+
...
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
Error: Too many values for input signal ballots
|
|
198
|
+
at /home/maci/node_modules/.pnpm/circom_runtime@0.1.28/node_modules/circom_runtime/build/main.cjs:513:27
|
|
199
|
+
...
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
This usually happens when the Merkle tree depth configured in your MACI deployment does not match the depth expected by the zkey files used during proof generation.
|
|
203
|
+
To solve this:
|
|
204
|
+
|
|
205
|
+
- Download the correct zkey files from a trusted source.
|
|
206
|
+
- Verify that the `stateTreeDepth`, `messageTreeDepth`, and `voteOptionTreeDepth` used in your CLI or config match the values used to generate those zkey files.
|
|
@@ -19,7 +19,7 @@ MACI follows the [Semantic Versioning Specification (SemVer)](https://semver.org
|
|
|
19
19
|
|
|
20
20
|
All MACI packages are organized in our monorepo and follow a global release approach, meaning that all packages have the same version.
|
|
21
21
|
|
|
22
|
-
Currently, MACI core team manually decides when to release and what the version should be. Packages are released [automatically via CI](https://github.com/privacy-scaling-explorations/maci/blob/
|
|
22
|
+
Currently, MACI core team manually decides when to release and what the version should be. Packages are released [automatically via CI](https://github.com/privacy-scaling-explorations/maci/blob/main/.github/workflows/release.yml) when a new tag is created in GitHub. [You can view our releases and tags in GitHub](https://github.com/privacy-scaling-explorations/maci/releases).
|
|
23
23
|
|
|
24
24
|
## MACI Release Process
|
|
25
25
|
|
|
@@ -37,10 +37,10 @@ Version number '1.2.3' is used here as an example. You should replace the versio
|
|
|
37
37
|
git clone https://github.com/privacy-scaling-explorations/maci
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
3. Switch to the `
|
|
40
|
+
3. Switch to the `main` branch:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
git checkout
|
|
43
|
+
git checkout main
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
4. Install required dependencies:
|
|
@@ -73,7 +73,7 @@ Currently, the ceremony artifacts work with MACI version up to 2.x
|
|
|
73
73
|
In order to run MACI polls, a coordinator is required to publish their MACI public key. You will need to generate a MACI keypair, and treat the private key just as your ethereum private keys. Please store them in a safe place as you won't be able to finish a round if you lose access, or if compromised a bad actor could decrypt the vote and publish them online. You can generate a new key pair using maci-cli by running the following command in the root of the project:
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
pnpm run
|
|
76
|
+
pnpm run generate-maci-keypair
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
### Set the .env
|
|
@@ -219,7 +219,7 @@ pnpm run prove:[network] --poll [poll-id] \
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
:::info
|
|
222
|
-
The `--coordinator-private-key` is the one you generated earlier with `pnpm run
|
|
222
|
+
The `--coordinator-private-key` is the one you generated earlier with `pnpm run generate-maci-keypair`.
|
|
223
223
|
|
|
224
224
|
`--start-block` is the block number from which to start looking for events from. You can use the block that you deployed the contracts in.
|
|
225
225
|
|
|
@@ -17,7 +17,7 @@ to manage a large amount of value, and if their users accept that the risk of
|
|
|
17
17
|
coordinator misbehaviour is insufficient to justify doing the work of a
|
|
18
18
|
trusted setup. After all, MACI's security model presumes a trusted coordinator.
|
|
19
19
|
|
|
20
|
-
The [PSE team](https://pse.
|
|
20
|
+
The [PSE team](https://pse.main/) is making available a trusted set of zKeys for MACI's circuits,
|
|
21
21
|
which are available and accessible on
|
|
22
22
|
[p0tion's website](https://ceremony.pse.dev/).
|
|
23
23
|
For more info on trusted setup ceremonies please refer to p0tion's [docs](https://p0tion.super.site/).
|