From cee83a6a5a5e3a847cbef0d46178e75bac23cf44 Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Tue, 23 Jun 2026 19:37:00 +0100 Subject: [PATCH] chore: new contracts --- docs/pages/ciphernode-operators/index.mdx | 18 +- docs/pages/ciphernode-operators/running.mdx | 58 +++---- docs/pages/tutorials/deploy-to-testnet.mdx | 14 +- .../crisp-contracts/deployed_contracts.json | 155 +++++++++--------- .../contracts/test/Faucet.sol | 4 +- .../deployed_contracts.json | 118 ++++++------- .../scripts/deployFaucet.ts | 13 +- .../scripts/deployInterfold.ts | 10 +- 8 files changed, 198 insertions(+), 192 deletions(-) diff --git a/docs/pages/ciphernode-operators/index.mdx b/docs/pages/ciphernode-operators/index.mdx index 1dfd14f6b..ed25cba94 100644 --- a/docs/pages/ciphernode-operators/index.mdx +++ b/docs/pages/ciphernode-operators/index.mdx @@ -41,15 +41,15 @@ The Interfold protocol uses several contracts that work together: | Contract | Address | Deploy block | | --------------------- | -------------------------------------------- | ------------ | -| Interfold | `0x75496A79903442df15E9B546A947132D61F839dc` | 11121991 | -| CiphernodeRegistry | `0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718` | 11121978 | -| BondingRegistry | `0xfdE5DAbaD974223C401c867eDF3bB6262175F578` | 11121979 | -| SlashingManager | `0x1Ed62919aa6434066b39e80268072D52F4180459` | 11121977 | -| E3RefundManager | `0x2Fc45e78aB7DBBE2191a8191bd1b671B2349bdCD` | 11121993 | -| InterfoldTicketToken | `0xe880b2992a5a323705B0799F34de1fd2Ef2529dB` | 11121975 | -| InterfoldToken (FOLD) | `0x8d299447dc025c9dDc4639AcbBe2453edb5B950B` | 11121982 | -| MockUSDC (fee token) | `0x156e0411F66BC06d57a57cA85408FF7d88ad2587` | 11121974 | -| Faucet | `0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a` | 11122125 | +| Interfold | `0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26` | 11124539 | +| CiphernodeRegistry | `0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9` | 11124526 | +| BondingRegistry | `0x0c25cC9c034611D2F62686e68e61978F21eEc777` | 11124527 | +| SlashingManager | `0x7c0aCC0053370142Da824087640926814502Cf4a` | 11124525 | +| E3RefundManager | `0x01728C2d7E4586EdD2c29e34B35dEE1bdf6d5aEe` | 11124541 | +| InterfoldTicketToken | `0x4ba278FD34A701a5C47d49Accb0e30Fb0167584E` | 11124524 | +| InterfoldToken (FOLD) | `0x27b4427cdECd5B08adE6E174B3580A2d227BB223` | 11124530 | +| MockUSDC (fee token) | `0x08260aE8970E3555E48caA547988bAD397786E6D` | 11124519 | +| Faucet | `0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df` | 11124533 | The DKG and decryption aggregator circuits are deployed as the sole on-chain verifiers for BFV public-key publication and plaintext decryption respectively (each aggregator internally verifies diff --git a/docs/pages/ciphernode-operators/running.mdx b/docs/pages/ciphernode-operators/running.mdx index e992b6acf..ce0c57f46 100644 --- a/docs/pages/ciphernode-operators/running.mdx +++ b/docs/pages/ciphernode-operators/running.mdx @@ -97,23 +97,23 @@ chains: rpc_url: 'wss://ethereum-sepolia-rpc.publicnode.com' contracts: interfold: - address: '0x75496A79903442df15E9B546A947132D61F839dc' - deploy_block: 11121991 + address: '0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26' + deploy_block: 11124539 ciphernode_registry: - address: '0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718' - deploy_block: 11121978 + address: '0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9' + deploy_block: 11124526 bonding_registry: - address: '0xfdE5DAbaD974223C401c867eDF3bB6262175F578' - deploy_block: 11121979 + address: '0x0c25cC9c034611D2F62686e68e61978F21eEc777' + deploy_block: 11124527 slashing_manager: - address: '0x1Ed62919aa6434066b39e80268072D52F4180459' - deploy_block: 11121977 + address: '0x7c0aCC0053370142Da824087640926814502Cf4a' + deploy_block: 11124525 fee_token: - address: '0x156e0411F66BC06d57a57cA85408FF7d88ad2587' - deploy_block: 11121974 + address: '0x08260aE8970E3555E48caA547988bAD397786E6D' + deploy_block: 11124519 faucet: - address: '0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a' - deploy_block: 11122125 + address: '0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df' + deploy_block: 11124533 ``` ### Start Your Node @@ -186,23 +186,23 @@ chains: rpc_url: 'wss://ethereum-sepolia-rpc.publicnode.com' contracts: interfold: - address: '0x75496A79903442df15E9B546A947132D61F839dc' - deploy_block: 11121991 + address: '0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26' + deploy_block: 11124539 ciphernode_registry: - address: '0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718' - deploy_block: 11121978 + address: '0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9' + deploy_block: 11124526 bonding_registry: - address: '0xfdE5DAbaD974223C401c867eDF3bB6262175F578' - deploy_block: 11121979 + address: '0x0c25cC9c034611D2F62686e68e61978F21eEc777' + deploy_block: 11124527 slashing_manager: - address: '0x1Ed62919aa6434066b39e80268072D52F4180459' - deploy_block: 11121977 + address: '0x7c0aCC0053370142Da824087640926814502Cf4a' + deploy_block: 11124525 fee_token: - address: '0x156e0411F66BC06d57a57cA85408FF7d88ad2587' - deploy_block: 11121974 + address: '0x08260aE8970E3555E48caA547988bAD397786E6D' + deploy_block: 11124519 faucet: - address: '0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a' - deploy_block: 11122125 + address: '0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df' + deploy_block: 11124533 ``` ### Run the Container @@ -289,12 +289,12 @@ Each contract can be specified as a simple address string or with a deploy block ```yaml contracts: interfold: - address: '0x75496A79903442df15E9B546A947132D61F839dc' - deploy_block: 11121991 - ciphernode_registry: '0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718' + address: '0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26' + deploy_block: 11124539 + ciphernode_registry: '0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9' faucet: - address: '0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a' - deploy_block: 11122125 + address: '0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df' + deploy_block: 11124533 ``` --- diff --git a/docs/pages/tutorials/deploy-to-testnet.mdx b/docs/pages/tutorials/deploy-to-testnet.mdx index 1b8297517..7c9e3594e 100644 --- a/docs/pages/tutorials/deploy-to-testnet.mdx +++ b/docs/pages/tutorials/deploy-to-testnet.mdx @@ -28,12 +28,12 @@ You'll need: [Google Cloud faucet](https://cloud.google.com/application/web3/faucet/ethereum/sepolia), or [PoW faucet](https://sepolia-faucet.pk910.de). - **Test FOLD** — for ciphernode bonding (only if you're running your own nodes). The InterfoldToken - (FOLD) is deployed at `0x8d299447dc025c9dDc4639AcbBe2453edb5B950B`. + (FOLD) is deployed at `0x27b4427cdECd5B08adE6E174B3580A2d227BB223`. - **Test USDC** — for E3 fees and tickets. Mock USDC at - `0x156e0411F66BC06d57a57cA85408FF7d88ad2587`. + `0x08260aE8970E3555E48caA547988bAD397786E6D`. > **Faucet:** the quickest way to get both test tokens is the on-chain faucet at -> `0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a`. Run `interfold faucet` (with the `faucet` address +> `0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df`. Run `interfold faucet` (with the `faucet` address > set in your config) and it sends a fixed amount of FOLD and mock USDC to your signer. Each token > is only topped up if your balance is below the per-token threshold. If the faucet runs dry, reach > out on the [community Telegram](https://t.me/encaborations). @@ -60,9 +60,9 @@ PRIVATE_KEY=0x... CHAIN_ID=11155111 # Deployed Interfold contract addresses (Sepolia) -INTERFOLD_ADDRESS=0x75496A79903442df15E9B546A947132D61F839dc -CIPHERNODE_REGISTRY_ADDRESS=0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718 -FEE_TOKEN_ADDRESS=0x156e0411F66BC06d57a57cA85408FF7d88ad2587 +INTERFOLD_ADDRESS=0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26 +CIPHERNODE_REGISTRY_ADDRESS=0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9 +FEE_TOKEN_ADDRESS=0x08260aE8970E3555E48caA547988bAD397786E6D ``` --- @@ -155,7 +155,7 @@ Update your coordination server to point to Sepolia: # .env for the server WS_RPC_URL=wss://eth-sepolia.g.alchemy.com/v2/YOUR_KEY HTTP_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/YOUR_KEY -INTERFOLD_ADDRESS=0x75496A79903442df15E9B546A947132D61F839dc +INTERFOLD_ADDRESS=0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26 E3_PROGRAM_ADDRESS= CHAIN_ID=11155111 ``` diff --git a/examples/CRISP/packages/crisp-contracts/deployed_contracts.json b/examples/CRISP/packages/crisp-contracts/deployed_contracts.json index 60764aa47..0e3b3b5f0 100644 --- a/examples/CRISP/packages/crisp-contracts/deployed_contracts.json +++ b/examples/CRISP/packages/crisp-contracts/deployed_contracts.json @@ -1,32 +1,40 @@ { "sepolia": { + "MockPkVerifier": { + "blockNumber": 11124560, + "address": "0xa470a4184106Aa2a91d1a61054e7d2548c234cf7" + }, "PoseidonT3": { - "blockNumber": 11121973, + "blockNumber": 11124515, "address": "0x3333333C0A88F9BE4fd23ed0536F9B6c427e3B93" }, + "MockE3Program": { + "blockNumber": 11124563, + "address": "0xD0f57b89808BD283926DDD8E9F1323eC00473484" + }, "MockUSDC": { "constructorArgs": { "initialSupply": "1000000" }, - "blockNumber": 11121974, - "address": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587" + "blockNumber": 11124519, + "address": "0x08260aE8970E3555E48caA547988bAD397786E6D" }, "InterfoldTicketToken": { "constructorArgs": { - "baseToken": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587", + "baseToken": "0x08260aE8970E3555E48caA547988bAD397786E6D", "registry": "0x0000000000000000000000000000000000000001", "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B" }, - "blockNumber": 11121975, - "address": "0xe880b2992a5a323705B0799F34de1fd2Ef2529dB" + "blockNumber": 11124524, + "address": "0x4ba278FD34A701a5C47d49Accb0e30Fb0167584E" }, "SlashingManager": { "constructorArgs": { "initialDelay": "172800", "admin": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B" }, - "blockNumber": 11121977, - "address": "0x1Ed62919aa6434066b39e80268072D52F4180459" + "blockNumber": 11124525, + "address": "0x7c0aCC0053370142Da824087640926814502Cf4a" }, "CiphernodeRegistryOwnable": { "constructorArgs": { @@ -36,19 +44,19 @@ "proxyRecords": { "initData": "0xcd6dc6870000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000000000000000000000000000000000000000000a", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718", - "proxyAdminAddress": "0xBF3435f24258F7FB4A4d63E8D8E447EB90c55ad4", - "implementationAddress": "0x210245769216855633E6D7A2A6555B231f6d6d5b" + "proxyAddress": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9", + "proxyAdminAddress": "0x28BcA81FFab695bffEf7e021dae978C547555301", + "implementationAddress": "0x25E459116C3Db7073A63B39c130D1399d9F972eF" }, - "blockNumber": 11121978, - "address": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718" + "blockNumber": 11124526, + "address": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9" }, "BondingRegistry": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "ticketToken": "0xe880b2992a5a323705B0799F34de1fd2Ef2529dB", + "ticketToken": "0x4ba278FD34A701a5C47d49Accb0e30Fb0167584E", "licenseToken": "0x0000000000000000000000000000000000000000", - "registry": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718", + "registry": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9", "slashedFundsTreasury": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", "ticketPrice": "10000000", "licenseRequiredBond": "100000000000000000000", @@ -56,117 +64,106 @@ "exitDelay": "604800" }, "proxyRecords": { - "initData": "0x7333fa820000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000e880b2992a5a323705b0799f34de1fd2ef2529db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ad1e67d369a9404bb51dcdd1e7e0f30f813ed7180000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000093a80", + "initData": "0x7333fa820000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b0000000000000000000000004ba278fd34a701a5c47d49accb0e30fb0167584e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd7e1ea2ad8195217d9b25b13fac667b6fc4dd90000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000093a80", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578", - "proxyAdminAddress": "0xc3cE30cef164F0daEc29b13773de844E363726F6", - "implementationAddress": "0xfC25aCbDfED1bB804FD3C1034AE27158d60cEB02" + "proxyAddress": "0x0c25cC9c034611D2F62686e68e61978F21eEc777", + "proxyAdminAddress": "0x2700f92229f650cDa42941d14caCeb68aF888a50", + "implementationAddress": "0x22419cD7be7ebc7B6373F73BA9260EFd1F2E9C62" }, - "blockNumber": 11121979, - "address": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578" + "blockNumber": 11124527, + "address": "0x0c25cC9c034611D2F62686e68e61978F21eEc777" }, "InterfoldToken": { "constructorArgs": { -<<<<<<< HEAD "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "ccaStart": "1782210660", - "ccaEnd": "1782815460", - "noMoreLocks": "1912847460", + "ccaStart": "1782242172", + "ccaEnd": "1782846972", + "noMoreLocks": "1912878972", "claimSource": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "bondingRegistry": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578" -======= - "owner": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "ccaStart": "1782168274", - "ccaEnd": "1782773074", - "claimSource": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "bondingRegistry": "0xa513E6E4b8f2a923D98304ec87F64353C4D5C853", - "noMoreLocks": "1912805074" ->>>>>>> a5c9072e5 (fix: events) + "bondingRegistry": "0x0c25cC9c034611D2F62686e68e61978F21eEc777" }, - "blockNumber": 11121982, - "address": "0x8d299447dc025c9dDc4639AcbBe2453edb5B950B" + "blockNumber": 11124530, + "address": "0x27b4427cdECd5B08adE6E174B3580A2d227BB223" }, "Faucet": { "constructorArgs": { - "fold": "0x8d299447dc025c9dDc4639AcbBe2453edb5B950B", - "feeToken": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587" + "fold": "0x27b4427cdECd5B08adE6E174B3580A2d227BB223", + "feeToken": "0x08260aE8970E3555E48caA547988bAD397786E6D" }, - "blockNumber": 11122125, - "address": "0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a" + "blockNumber": 11124533, + "address": "0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df" }, "Interfold": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "registry": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718", - "bondingRegistry": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578", + "registry": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9", + "bondingRegistry": "0x0c25cC9c034611D2F62686e68e61978F21eEc777", "e3RefundManager": "0x0000000000000000000000000000000000000001", - "feeToken": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587", + "feeToken": "0x08260aE8970E3555E48caA547988bAD397786E6D", "maxDuration": "2592000", "timeoutConfig": "{\"dkgWindow\":7200,\"computeWindow\":86400,\"decryptionWindow\":3600}" }, "proxyRecords": { - "initData": "0x4d600e5d0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000ad1e67d369a9404bb51dcdd1e7e0f30f813ed718000000000000000000000000fde5dabad974223c401c867edf3bb6262175f5780000000000000000000000000000000000000000000000000000000000000001000000000000000000000000156e0411f66bc06d57a57ca85408ff7d88ad25870000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000e10", + "initData": "0x4d600e5d0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000ddd7e1ea2ad8195217d9b25b13fac667b6fc4dd90000000000000000000000000c25cc9c034611d2f62686e68e61978f21eec777000000000000000000000000000000000000000000000000000000000000000100000000000000000000000008260ae8970e3555e48caa547988bad397786e6d0000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000e10", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0x75496A79903442df15E9B546A947132D61F839dc", - "proxyAdminAddress": "0xf161d3FC81A80Fe943e977F83C19Dea981A829E4", - "implementationAddress": "0x1689B22Efae82e8B6089c035D0464128D2d36ac0" + "proxyAddress": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26", + "proxyAdminAddress": "0x4376E440d662d4664AB3d9AC249Dd5c784EE8A95", + "implementationAddress": "0xe37c4D9804Fa375BEf0D3dF4F94ad40065097538" }, - "blockNumber": 11121991, - "address": "0x75496A79903442df15E9B546A947132D61F839dc" + "blockNumber": 11124539, + "address": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26" }, "E3RefundManager": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "interfold": "0x75496A79903442df15E9B546A947132D61F839dc", + "interfold": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26", "treasury": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B" }, "proxyRecords": { - "initData": "0xc0c53b8b0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000075496a79903442df15e9b546a947132d61f839dc0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b", + "initData": "0xc0c53b8b0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000064cd2d88537a18d8e599d786447f9a07dd9c7f260000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0x2Fc45e78aB7DBBE2191a8191bd1b671B2349bdCD", - "proxyAdminAddress": "0x570ce8B0B6E7BDA4268Def459881107Ddff54f4c", - "implementationAddress": "0x8AF04B22EE9a77AB4abc1e01fe1FcF0a607f25C0" + "proxyAddress": "0x01728C2d7E4586EdD2c29e34B35dEE1bdf6d5aEe", + "proxyAdminAddress": "0xd6f03067e629c8C07FDC745E40c3d9004ddA3B43", + "implementationAddress": "0x3299FB4d17f31a5be39b0238ca739BFb418058b7" }, - "blockNumber": 11121993, - "address": "0x2Fc45e78aB7DBBE2191a8191bd1b671B2349bdCD" + "blockNumber": 11124541, + "address": "0x01728C2d7E4586EdD2c29e34B35dEE1bdf6d5aEe" }, "MockComputeProvider": { - "blockNumber": 11122010, - "address": "0x3fc2d4F9c2D2Fc1d14F868A5100553696dCc3F7F" + "blockNumber": 11124558, + "address": "0x6a5ffdcfa8cdC873E912a6efB9A9Ce35B98fE1F5" }, "MockDecryptionVerifier": { - "blockNumber": 11122011, - "address": "0x43e574aAE91210251D80bbf76a2c4E215c5E302E" - }, - "MockPkVerifier": { - "blockNumber": 11122012, - "address": "0xa796D34b83a0cC708aabF7A3f0966D2572Ca5500" - }, - "MockE3Program": { - "blockNumber": 11122013, - "address": "0x438a26372D46DDd581Ef0e1d6686e1d3F790f309" + "blockNumber": 11124559, + "address": "0x6655A78F56E2C9491d7F70Fcd649b65885164059" }, "MockRISC0Verifier": { - "address": "0x8DeE0C92d52b43ef087eBe7102Af760a6FEb18c1", - "blockNumber": 11122057 + "address": "0x7548C421F0ED6021D5E823b123EB01508D68eAB9", + "blockNumber": 11124578 }, "HonkVerifier": { - "address": "0xb3c905c0d2131bd3D86D14C8292C949218098516", - "blockNumber": 11122058 + "address": "0x4838c1dbb33E1B0818d61f510048B5958A48f66d", + "blockNumber": 11124579 }, "CRISPProgram": { - "address": "0x30C838af71Fc35bCd5176099eac0006E0558217b", - "blockNumber": 11122058, + "address": "0x6DB95806c2292F9d164608C266BE69E694eAE05C", + "blockNumber": 11124579, "constructorArgs": { - "interfold": "0x75496A79903442df15E9B546A947132D61F839dc", - "verifierAddress": "0x8DeE0C92d52b43ef087eBe7102Af760a6FEb18c1", - "honkVerifierAddress": "0xb3c905c0d2131bd3D86D14C8292C949218098516", + "interfold": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26", + "verifierAddress": "0x7548C421F0ED6021D5E823b123EB01508D68eAB9", + "honkVerifierAddress": "0x4838c1dbb33E1B0818d61f510048B5958A48f66d", "imageId": "0x0ad904cfaec1eeefa9b89a11020086ec51454423db1fee3b1ab614fff97368d6" } }, "MockVotingToken": { - "address": "0x72DD6bcBA3e93465d24C0c632E7504C05311CedF", - "blockNumber": 11122060 + "address": "0xe75eF05324C33cdC173E7A8f12e7beff4Ac6863C", + "blockNumber": 11124581 + } + }, + "undefined": { + "MockRISC0Verifier": { + "address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "blockNumber": 1 } } } \ No newline at end of file diff --git a/packages/interfold-contracts/contracts/test/Faucet.sol b/packages/interfold-contracts/contracts/test/Faucet.sol index 01f8af2cc..33834bdc7 100644 --- a/packages/interfold-contracts/contracts/test/Faucet.sol +++ b/packages/interfold-contracts/contracts/test/Faucet.sol @@ -11,8 +11,8 @@ contract Faucet { IERC20 public fold; IERC20 public feeToken; - uint256 public constant AMOUNT_FOLD = 100e18; - uint256 public constant AMOUNT_FEE_TOKEN = 10e6; + uint256 public constant AMOUNT_FOLD = 200e18; + uint256 public constant AMOUNT_FEE_TOKEN = 200e6; constructor(address _fold, address _feeToken) payable { fold = IERC20(_fold); diff --git a/packages/interfold-contracts/deployed_contracts.json b/packages/interfold-contracts/deployed_contracts.json index 574088729..7b8407497 100644 --- a/packages/interfold-contracts/deployed_contracts.json +++ b/packages/interfold-contracts/deployed_contracts.json @@ -1,32 +1,40 @@ { "sepolia": { + "MockPkVerifier": { + "blockNumber": 11124560, + "address": "0xa470a4184106Aa2a91d1a61054e7d2548c234cf7" + }, "PoseidonT3": { - "blockNumber": 11122071, + "blockNumber": 11124515, "address": "0x3333333C0A88F9BE4fd23ed0536F9B6c427e3B93" }, + "MockE3Program": { + "blockNumber": 11124563, + "address": "0xD0f57b89808BD283926DDD8E9F1323eC00473484" + }, "MockUSDC": { "constructorArgs": { "initialSupply": "1000000" }, - "blockNumber": 11121974, - "address": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587" + "blockNumber": 11124519, + "address": "0x08260aE8970E3555E48caA547988bAD397786E6D" }, "InterfoldTicketToken": { "constructorArgs": { - "baseToken": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587", + "baseToken": "0x08260aE8970E3555E48caA547988bAD397786E6D", "registry": "0x0000000000000000000000000000000000000001", "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B" }, - "blockNumber": 11121975, - "address": "0xe880b2992a5a323705B0799F34de1fd2Ef2529dB" + "blockNumber": 11124524, + "address": "0x4ba278FD34A701a5C47d49Accb0e30Fb0167584E" }, "SlashingManager": { "constructorArgs": { "initialDelay": "172800", "admin": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B" }, - "blockNumber": 11121977, - "address": "0x1Ed62919aa6434066b39e80268072D52F4180459" + "blockNumber": 11124525, + "address": "0x7c0aCC0053370142Da824087640926814502Cf4a" }, "CiphernodeRegistryOwnable": { "constructorArgs": { @@ -36,19 +44,19 @@ "proxyRecords": { "initData": "0xcd6dc6870000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000000000000000000000000000000000000000000a", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718", - "proxyAdminAddress": "0xBF3435f24258F7FB4A4d63E8D8E447EB90c55ad4", - "implementationAddress": "0x210245769216855633E6D7A2A6555B231f6d6d5b" + "proxyAddress": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9", + "proxyAdminAddress": "0x28BcA81FFab695bffEf7e021dae978C547555301", + "implementationAddress": "0x25E459116C3Db7073A63B39c130D1399d9F972eF" }, - "blockNumber": 11121978, - "address": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718" + "blockNumber": 11124526, + "address": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9" }, "BondingRegistry": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "ticketToken": "0xe880b2992a5a323705B0799F34de1fd2Ef2529dB", + "ticketToken": "0x4ba278FD34A701a5C47d49Accb0e30Fb0167584E", "licenseToken": "0x0000000000000000000000000000000000000000", - "registry": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718", + "registry": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9", "slashedFundsTreasury": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", "ticketPrice": "10000000", "licenseRequiredBond": "100000000000000000000", @@ -56,86 +64,78 @@ "exitDelay": "604800" }, "proxyRecords": { - "initData": "0x7333fa820000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000e880b2992a5a323705b0799f34de1fd2ef2529db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ad1e67d369a9404bb51dcdd1e7e0f30f813ed7180000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000093a80", + "initData": "0x7333fa820000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b0000000000000000000000004ba278fd34a701a5c47d49accb0e30fb0167584e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd7e1ea2ad8195217d9b25b13fac667b6fc4dd90000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000000000000000000000000000000000000009896800000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000093a80", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578", - "proxyAdminAddress": "0xc3cE30cef164F0daEc29b13773de844E363726F6", - "implementationAddress": "0xfC25aCbDfED1bB804FD3C1034AE27158d60cEB02" + "proxyAddress": "0x0c25cC9c034611D2F62686e68e61978F21eEc777", + "proxyAdminAddress": "0x2700f92229f650cDa42941d14caCeb68aF888a50", + "implementationAddress": "0x22419cD7be7ebc7B6373F73BA9260EFd1F2E9C62" }, - "blockNumber": 11121979, - "address": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578" + "blockNumber": 11124527, + "address": "0x0c25cC9c034611D2F62686e68e61978F21eEc777" }, "InterfoldToken": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "ccaStart": "1782210660", - "ccaEnd": "1782815460", - "noMoreLocks": "1912847460", + "ccaStart": "1782242172", + "ccaEnd": "1782846972", + "noMoreLocks": "1912878972", "claimSource": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "bondingRegistry": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578" + "bondingRegistry": "0x0c25cC9c034611D2F62686e68e61978F21eEc777" }, - "blockNumber": 11121982, - "address": "0x8d299447dc025c9dDc4639AcbBe2453edb5B950B" + "blockNumber": 11124530, + "address": "0x27b4427cdECd5B08adE6E174B3580A2d227BB223" }, "Faucet": { "constructorArgs": { - "fold": "0x8d299447dc025c9dDc4639AcbBe2453edb5B950B", - "feeToken": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587" + "fold": "0x27b4427cdECd5B08adE6E174B3580A2d227BB223", + "feeToken": "0x08260aE8970E3555E48caA547988bAD397786E6D" }, - "blockNumber": 11122125, - "address": "0xA43DDEE07BbeE473083Cb72561dfA3D3Be0b597a" + "blockNumber": 11124533, + "address": "0x94FCD9b624baAf023c7F48C5E7200eAd85dc87Df" }, "Interfold": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "registry": "0xAD1e67D369a9404BB51dcdd1e7E0f30f813ED718", - "bondingRegistry": "0xfdE5DAbaD974223C401c867eDF3bB6262175F578", + "registry": "0xDDd7e1eA2AD8195217D9B25B13fac667b6Fc4dD9", + "bondingRegistry": "0x0c25cC9c034611D2F62686e68e61978F21eEc777", "e3RefundManager": "0x0000000000000000000000000000000000000001", - "feeToken": "0x156e0411F66BC06d57a57cA85408FF7d88ad2587", + "feeToken": "0x08260aE8970E3555E48caA547988bAD397786E6D", "maxDuration": "2592000", "timeoutConfig": "{\"dkgWindow\":7200,\"computeWindow\":86400,\"decryptionWindow\":3600}" }, "proxyRecords": { - "initData": "0x4d600e5d0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000ad1e67d369a9404bb51dcdd1e7e0f30f813ed718000000000000000000000000fde5dabad974223c401c867edf3bb6262175f5780000000000000000000000000000000000000000000000000000000000000001000000000000000000000000156e0411f66bc06d57a57ca85408ff7d88ad25870000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000e10", + "initData": "0x4d600e5d0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b000000000000000000000000ddd7e1ea2ad8195217d9b25b13fac667b6fc4dd90000000000000000000000000c25cc9c034611d2f62686e68e61978f21eec777000000000000000000000000000000000000000000000000000000000000000100000000000000000000000008260ae8970e3555e48caa547988bad397786e6d0000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000000e10", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0x75496A79903442df15E9B546A947132D61F839dc", - "proxyAdminAddress": "0xf161d3FC81A80Fe943e977F83C19Dea981A829E4", - "implementationAddress": "0x1689B22Efae82e8B6089c035D0464128D2d36ac0" + "proxyAddress": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26", + "proxyAdminAddress": "0x4376E440d662d4664AB3d9AC249Dd5c784EE8A95", + "implementationAddress": "0xe37c4D9804Fa375BEf0D3dF4F94ad40065097538" }, - "blockNumber": 11121991, - "address": "0x75496A79903442df15E9B546A947132D61F839dc" + "blockNumber": 11124539, + "address": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26" }, "E3RefundManager": { "constructorArgs": { "owner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "interfold": "0x75496A79903442df15E9B546A947132D61F839dc", + "interfold": "0x64Cd2d88537A18D8E599d786447F9a07Dd9C7f26", "treasury": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B" }, "proxyRecords": { - "initData": "0xc0c53b8b0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000075496a79903442df15e9b546a947132d61f839dc0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b", + "initData": "0xc0c53b8b0000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b00000000000000000000000064cd2d88537a18d8e599d786447f9a07dd9c7f260000000000000000000000008837e47c4bb520ade83aab761c3b60679443af1b", "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", - "proxyAddress": "0x2Fc45e78aB7DBBE2191a8191bd1b671B2349bdCD", - "proxyAdminAddress": "0x570ce8B0B6E7BDA4268Def459881107Ddff54f4c", - "implementationAddress": "0x8AF04B22EE9a77AB4abc1e01fe1FcF0a607f25C0" + "proxyAddress": "0x01728C2d7E4586EdD2c29e34B35dEE1bdf6d5aEe", + "proxyAdminAddress": "0xd6f03067e629c8C07FDC745E40c3d9004ddA3B43", + "implementationAddress": "0x3299FB4d17f31a5be39b0238ca739BFb418058b7" }, - "blockNumber": 11121993, - "address": "0x2Fc45e78aB7DBBE2191a8191bd1b671B2349bdCD" + "blockNumber": 11124541, + "address": "0x01728C2d7E4586EdD2c29e34B35dEE1bdf6d5aEe" }, "MockComputeProvider": { - "blockNumber": 11122010, - "address": "0x3fc2d4F9c2D2Fc1d14F868A5100553696dCc3F7F" + "blockNumber": 11124558, + "address": "0x6a5ffdcfa8cdC873E912a6efB9A9Ce35B98fE1F5" }, "MockDecryptionVerifier": { - "blockNumber": 11122011, - "address": "0x43e574aAE91210251D80bbf76a2c4E215c5E302E" - }, - "MockPkVerifier": { - "blockNumber": 11122012, - "address": "0xa796D34b83a0cC708aabF7A3f0966D2572Ca5500" - }, - "MockE3Program": { - "blockNumber": 11122013, - "address": "0x438a26372D46DDd581Ef0e1d6686e1d3F790f309" + "blockNumber": 11124559, + "address": "0x6655A78F56E2C9491d7F70Fcd649b65885164059" } } } \ No newline at end of file diff --git a/packages/interfold-contracts/scripts/deployFaucet.ts b/packages/interfold-contracts/scripts/deployFaucet.ts index 0c269269c..a8961b1c2 100644 --- a/packages/interfold-contracts/scripts/deployFaucet.ts +++ b/packages/interfold-contracts/scripts/deployFaucet.ts @@ -30,8 +30,9 @@ import { * * Usage: hardhat run scripts/deployFaucet.ts --network sepolia */ -const FAUCET_FOLD_SUPPLY = 1_000_000n; // 1M FOLD (18 decimals applied below) -const FAUCET_USDC_SUPPLY = 1_000_000n; // 1M USDC (6 decimals applied below) +// Stock the faucet for this many self-serve claims; supply is derived from the +// contract's per-claim amounts below so it stays correct if those change. +const FAUCET_TARGET_MINTS = 1000n; const main = async () => { const { ethers } = await hre.network.connect(); @@ -65,9 +66,6 @@ const main = async () => { ); } - const foldSupply = ethers.parseEther(FAUCET_FOLD_SUPPLY.toString()); - const usdcSupply = ethers.parseUnits(FAUCET_USDC_SUPPLY.toString(), 6); - console.log("Deploying Faucet..."); const faucet = await new FaucetFactory(signer).deploy( foldAddress, @@ -78,6 +76,11 @@ const main = async () => { const blockNumber = await ethers.provider.getBlockNumber(); console.log("Faucet deployed to:", faucetAddress); + // Derive supply from the contract's per-claim amounts so it covers the + // target number of mints regardless of how the amounts are configured. + const foldSupply = (await faucet.AMOUNT_FOLD()) * FAUCET_TARGET_MINTS; + const usdcSupply = (await faucet.AMOUNT_FEE_TOKEN()) * FAUCET_TARGET_MINTS; + storeDeploymentArgs( { constructorArgs: { fold: foldAddress, feeToken: feeTokenAddress }, diff --git a/packages/interfold-contracts/scripts/deployInterfold.ts b/packages/interfold-contracts/scripts/deployInterfold.ts index 4732b2835..950127e1a 100644 --- a/packages/interfold-contracts/scripts/deployInterfold.ts +++ b/packages/interfold-contracts/scripts/deployInterfold.ts @@ -280,8 +280,9 @@ export const deployInterfold = async ( // out), so we mint unlocked FOLD and whitelist the faucet to bypass the // pre-TGE transfer gate. Only on sepolia, and only with mocks present. if (networkName === "sepolia" && mockStableToken) { - const FAUCET_FOLD_SUPPLY = ethers.parseEther("1000000"); // 1M FOLD - const FAUCET_USDC_SUPPLY = ethers.parseUnits("1000000", 6); // 1M USDC + // Stock the faucet for this many self-serve claims. Supply is derived from + // the contract's per-claim amounts so it stays correct if those change. + const FAUCET_TARGET_MINTS = 1000n; console.log("Deploying Faucet..."); const { faucet } = await deployAndSaveFaucet({ @@ -292,6 +293,11 @@ export const deployInterfold = async ( const faucetAddress = await faucet.getAddress(); console.log("Faucet deployed to:", faucetAddress); + const amountFold = await faucet.AMOUNT_FOLD(); + const amountFeeToken = await faucet.AMOUNT_FEE_TOKEN(); + const FAUCET_FOLD_SUPPLY = amountFold * FAUCET_TARGET_MINTS; + const FAUCET_USDC_SUPPLY = amountFeeToken * FAUCET_TARGET_MINTS; + // Whitelist the faucet so faucet -> tester FOLD transfers pass the // pre-TGE gate (transferWhitelist[from] short-circuits the restriction). console.log("Whitelisting Faucet in FOLD...");