@enclave-e3/contracts 0.1.4 → 0.1.6
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/README.md +46 -2
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +135 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +27 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +77 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +126 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +43 -0
- package/artifacts/build-info/solc-0_8_28-5150b9e6b6cf4df4986fccba97bea37a16fdfebc.json +311 -0
- package/artifacts/build-info/solc-0_8_28-5150b9e6b6cf4df4986fccba97bea37a16fdfebc.output.json +1 -0
- package/artifacts/contracts/Enclave.sol/Enclave.json +239 -147
- package/artifacts/contracts/Enclave.sol/artifacts.d.ts +6 -6
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +881 -0
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +326 -10
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
- package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +21 -3
- package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +247 -27
- package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/{IRegistryFilter.sol/IRegistryFilter.json → ISlashVerifier.sol/ISlashVerifier.json} +10 -10
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +759 -0
- package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +116 -0
- package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +1217 -0
- package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +351 -57
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
- package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +1107 -0
- package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +328 -12
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +328 -12
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
- package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +4 -4
- package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +3 -3
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +26 -32
- package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +38 -0
- package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +425 -0
- package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +1222 -0
- package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +1460 -0
- package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +27 -0
- package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +3 -3
- package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +3 -3
- package/contracts/Enclave.sol +230 -81
- package/contracts/interfaces/IBondingRegistry.sol +446 -0
- package/contracts/interfaces/ICiphernodeRegistry.sol +153 -9
- package/contracts/interfaces/IComputeProvider.sol +12 -2
- package/contracts/interfaces/IDecryptionVerifier.sol +11 -6
- package/contracts/interfaces/IE3.sol +21 -17
- package/contracts/interfaces/IE3Program.sol +30 -17
- package/contracts/interfaces/IEnclave.sol +95 -21
- package/contracts/interfaces/ISlashVerifier.sol +23 -0
- package/contracts/interfaces/ISlashingManager.sol +426 -0
- package/contracts/lib/ExitQueueLib.sol +490 -0
- package/contracts/registry/BondingRegistry.sol +737 -0
- package/contracts/registry/CiphernodeRegistryOwnable.sol +393 -26
- package/contracts/slashing/SlashingManager.sol +367 -0
- package/contracts/test/MockCiphernodeRegistry.sol +118 -24
- package/contracts/test/MockComputeProvider.sol +2 -2
- package/contracts/test/MockE3Program.sol +17 -14
- package/contracts/test/MockSlashingVerifier.sol +19 -0
- package/contracts/test/MockStableToken.sol +28 -0
- package/contracts/token/EnclaveTicketToken.sol +243 -0
- package/contracts/token/EnclaveToken.sol +267 -0
- package/dist/hardhat.config.d.ts.map +1 -1
- package/dist/hardhat.config.js +35 -16
- package/dist/ignition/modules/{mockInputValidator.d.ts → bondingRegistry.d.ts} +1 -1
- package/dist/ignition/modules/bondingRegistry.d.ts.map +1 -0
- package/dist/ignition/modules/bondingRegistry.js +35 -0
- package/dist/ignition/modules/ciphernodeRegistry.d.ts.map +1 -1
- package/dist/ignition/modules/ciphernodeRegistry.js +12 -2
- package/dist/ignition/modules/enclave.d.ts.map +1 -1
- package/dist/ignition/modules/enclave.js +16 -7
- package/dist/ignition/modules/{naiveRegistryFilter.d.ts → enclaveTicketToken.d.ts} +1 -1
- package/dist/ignition/modules/enclaveTicketToken.d.ts.map +1 -0
- package/dist/ignition/modules/enclaveTicketToken.js +17 -0
- package/dist/ignition/modules/enclaveToken.d.ts +3 -0
- package/dist/ignition/modules/enclaveToken.d.ts.map +1 -0
- package/dist/ignition/modules/{mockInputValidator.js → enclaveToken.js} +4 -4
- package/dist/ignition/modules/mockCiphernodeRegistry.d.ts.map +1 -1
- package/dist/ignition/modules/mockCiphernodeRegistry.js +0 -1
- package/dist/ignition/modules/mockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
- package/dist/ignition/modules/mockCiphernodeRegistryEmptyKey.js +0 -1
- package/dist/ignition/modules/mockComputeProvider.d.ts.map +1 -1
- package/dist/ignition/modules/mockComputeProvider.js +0 -1
- package/dist/ignition/modules/mockDecryptionVerifier.d.ts.map +1 -1
- package/dist/ignition/modules/mockDecryptionVerifier.js +0 -1
- package/dist/ignition/modules/mockE3Program.d.ts.map +1 -1
- package/dist/ignition/modules/mockE3Program.js +1 -3
- package/dist/ignition/modules/mockSlashingVerifier.d.ts +3 -0
- package/dist/ignition/modules/mockSlashingVerifier.d.ts.map +1 -0
- package/dist/ignition/modules/mockSlashingVerifier.js +10 -0
- package/dist/ignition/modules/mockStableToken.d.ts +3 -0
- package/dist/ignition/modules/mockStableToken.d.ts.map +1 -0
- package/dist/ignition/modules/mockStableToken.js +11 -0
- package/dist/ignition/modules/poseidonT3.d.ts.map +1 -1
- package/dist/ignition/modules/poseidonT3.js +0 -1
- package/dist/ignition/modules/slashingManager.d.ts +3 -0
- package/dist/ignition/modules/slashingManager.d.ts.map +1 -0
- package/dist/ignition/modules/slashingManager.js +16 -0
- package/dist/scripts/cleanIgnitionState.d.ts +12 -0
- package/dist/scripts/cleanIgnitionState.d.ts.map +1 -0
- package/dist/scripts/cleanIgnitionState.js +41 -0
- package/dist/scripts/deployAndSave/bondingRegistry.d.ts +38 -0
- package/dist/scripts/deployAndSave/bondingRegistry.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/bondingRegistry.js +133 -0
- package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.d.ts +11 -1
- package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/ciphernodeRegistryOwnable.js +76 -19
- package/dist/scripts/deployAndSave/enclave.d.ts +16 -2
- package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/enclave.js +89 -22
- package/dist/scripts/deployAndSave/enclaveTicketToken.d.ts +20 -0
- package/dist/scripts/deployAndSave/enclaveTicketToken.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/enclaveTicketToken.js +41 -0
- package/dist/scripts/deployAndSave/enclaveToken.d.ts +18 -0
- package/dist/scripts/deployAndSave/enclaveToken.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/enclaveToken.js +57 -0
- package/dist/scripts/deployAndSave/mockComputeProvider.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/mockComputeProvider.js +5 -5
- package/dist/scripts/deployAndSave/mockDecryptionVerifier.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/mockDecryptionVerifier.js +5 -5
- package/dist/scripts/deployAndSave/mockProgram.d.ts +1 -2
- package/dist/scripts/deployAndSave/mockProgram.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/mockProgram.js +7 -19
- package/dist/scripts/deployAndSave/mockStableToken.d.ts +18 -0
- package/dist/scripts/deployAndSave/mockStableToken.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/mockStableToken.js +36 -0
- package/dist/scripts/deployAndSave/poseidonT3.d.ts +11 -0
- package/dist/scripts/deployAndSave/poseidonT3.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/poseidonT3.js +41 -0
- package/dist/scripts/deployAndSave/slashingManager.d.ts +19 -0
- package/dist/scripts/deployAndSave/slashingManager.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/slashingManager.js +38 -0
- package/dist/scripts/deployEnclave.d.ts.map +1 -1
- package/dist/scripts/deployEnclave.js +109 -23
- package/dist/scripts/deployMocks.d.ts +0 -1
- package/dist/scripts/deployMocks.d.ts.map +1 -1
- package/dist/scripts/deployMocks.js +3 -6
- package/dist/scripts/index.d.ts +7 -2
- package/dist/scripts/index.d.ts.map +1 -1
- package/dist/scripts/index.js +7 -2
- package/dist/scripts/proxy.d.ts +22 -0
- package/dist/scripts/proxy.d.ts.map +1 -0
- package/dist/scripts/proxy.js +36 -0
- package/dist/scripts/runVerification.d.ts +2 -0
- package/dist/scripts/runVerification.d.ts.map +1 -0
- package/dist/scripts/runVerification.js +16 -0
- package/dist/scripts/upgrade/bondingRegistry.d.ts +6 -0
- package/dist/scripts/upgrade/bondingRegistry.d.ts.map +1 -0
- package/dist/scripts/upgrade/bondingRegistry.js +49 -0
- package/dist/scripts/upgrade/ciphernodeRegistryOwnable.d.ts +6 -0
- package/dist/scripts/upgrade/ciphernodeRegistryOwnable.d.ts.map +1 -0
- package/dist/scripts/upgrade/ciphernodeRegistryOwnable.js +52 -0
- package/dist/scripts/upgrade/enclave.d.ts +6 -0
- package/dist/scripts/upgrade/enclave.d.ts.map +1 -0
- package/dist/scripts/upgrade/enclave.js +49 -0
- package/dist/scripts/utils.d.ts +51 -2
- package/dist/scripts/utils.d.ts.map +1 -1
- package/dist/scripts/utils.js +67 -4
- package/dist/scripts/verify.d.ts +6 -0
- package/dist/scripts/verify.d.ts.map +1 -0
- package/dist/scripts/verify.js +142 -0
- package/dist/tasks/ciphernode.d.ts +2 -0
- package/dist/tasks/ciphernode.d.ts.map +1 -1
- package/dist/tasks/ciphernode.js +290 -19
- package/dist/tasks/enclave.d.ts.map +1 -1
- package/dist/tasks/enclave.js +76 -31
- package/dist/test/Enclave.spec.js +377 -370
- package/dist/test/Registry/BondingRegistry.spec.d.ts +2 -0
- package/dist/test/Registry/BondingRegistry.spec.d.ts.map +1 -0
- package/dist/test/Registry/BondingRegistry.spec.js +684 -0
- package/dist/test/Registry/CiphernodeRegistryOwnable.spec.d.ts.map +1 -0
- package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +374 -0
- package/dist/test/Slashing/SlashingManager.spec.d.ts +2 -0
- package/dist/test/Slashing/SlashingManager.spec.d.ts.map +1 -0
- package/dist/test/Slashing/SlashingManager.spec.js +672 -0
- package/dist/types/@openzeppelin/contracts/index.d.ts +3 -0
- package/dist/types/@openzeppelin/contracts/index.d.ts.map +1 -0
- package/dist/types/@openzeppelin/contracts/proxy/index.d.ts +3 -0
- package/dist/types/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts +97 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts.map +1 -0
- package/dist/types/{contracts/registry/NaiveRegistryFilter.js → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.js} +0 -4
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts +81 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts.map +1 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.js +12 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts +52 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts.map +1 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.js +8 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +3 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts.map +1 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/index.d.ts +4 -0
- package/dist/types/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
- package/dist/types/@openzeppelin/index.d.ts +3 -0
- package/dist/types/@openzeppelin/index.d.ts.map +1 -0
- package/dist/types/contracts/Enclave.d.ts +126 -53
- package/dist/types/contracts/Enclave.d.ts.map +1 -1
- package/dist/types/contracts/Enclave.js +12 -0
- package/dist/types/contracts/index.d.ts +6 -0
- package/dist/types/contracts/index.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +622 -0
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -0
- package/dist/types/contracts/interfaces/IBondingRegistry.js +24 -0
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +245 -15
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +16 -0
- package/dist/types/contracts/interfaces/IE3Program.d.ts +20 -10
- package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IEnclave.d.ts +149 -20
- package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IEnclave.js +12 -0
- package/dist/types/contracts/interfaces/{IRegistryFilter.d.ts → ISlashVerifier.d.ts} +16 -16
- package/dist/types/contracts/interfaces/ISlashVerifier.d.ts.map +1 -0
- package/dist/types/contracts/interfaces/ISlashVerifier.js +1 -0
- package/dist/types/contracts/interfaces/ISlashingManager.d.ts +384 -0
- package/dist/types/contracts/interfaces/ISlashingManager.d.ts.map +1 -0
- package/dist/types/contracts/interfaces/ISlashingManager.js +24 -0
- package/dist/types/contracts/interfaces/index.d.ts +3 -2
- package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/contracts/lib/ExitQueueLib.d.ts +73 -0
- package/dist/types/contracts/lib/ExitQueueLib.d.ts.map +1 -0
- package/dist/types/contracts/lib/ExitQueueLib.js +12 -0
- package/dist/types/contracts/lib/index.d.ts +2 -0
- package/dist/types/contracts/lib/index.d.ts.map +1 -0
- package/dist/types/contracts/lib/index.js +1 -0
- package/dist/types/contracts/registry/BondingRegistry.d.ts +821 -0
- package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -0
- package/dist/types/contracts/registry/BondingRegistry.js +44 -0
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +194 -34
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +20 -0
- package/dist/types/contracts/registry/index.d.ts +1 -1
- package/dist/types/contracts/registry/index.d.ts.map +1 -1
- package/dist/types/contracts/slashing/SlashingManager.d.ts +592 -0
- package/dist/types/contracts/slashing/SlashingManager.d.ts.map +1 -0
- package/dist/types/contracts/slashing/SlashingManager.js +36 -0
- package/dist/types/contracts/slashing/index.d.ts +2 -0
- package/dist/types/contracts/slashing/index.d.ts.map +1 -0
- package/dist/types/contracts/slashing/index.js +1 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +247 -17
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +16 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +247 -17
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +16 -0
- package/dist/types/contracts/test/MockE3Program.d.ts +20 -14
- package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
- package/dist/types/contracts/test/{MockInputValidator.d.ts → MockSlashingVerifier.d.ts} +15 -15
- package/dist/types/contracts/test/MockSlashingVerifier.d.ts.map +1 -0
- package/dist/types/contracts/test/MockSlashingVerifier.js +1 -0
- package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.d.ts +227 -0
- package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.d.ts.map +1 -0
- package/dist/types/contracts/test/MockStableToken.sol/MockUSDC.js +12 -0
- package/dist/types/contracts/test/MockStableToken.sol/index.d.ts +2 -0
- package/dist/types/contracts/test/MockStableToken.sol/index.d.ts.map +1 -0
- package/dist/types/contracts/test/MockStableToken.sol/index.js +1 -0
- package/dist/types/contracts/test/index.d.ts +3 -3
- package/dist/types/contracts/test/index.d.ts.map +1 -1
- package/dist/types/contracts/token/EnclaveTicketToken.d.ts +574 -0
- package/dist/types/contracts/token/EnclaveTicketToken.d.ts.map +1 -0
- package/dist/types/contracts/token/EnclaveTicketToken.js +24 -0
- package/dist/types/contracts/token/EnclaveToken.d.ts +775 -0
- package/dist/types/contracts/token/EnclaveToken.d.ts.map +1 -0
- package/dist/types/contracts/token/EnclaveToken.js +48 -0
- package/dist/types/contracts/token/index.d.ts +3 -0
- package/dist/types/contracts/token/index.d.ts.map +1 -0
- package/dist/types/contracts/token/index.js +1 -0
- package/dist/types/factories/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/types/factories/@openzeppelin/contracts/index.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/index.js +4 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/index.d.ts +2 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/index.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/index.js +4 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +118 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +157 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts +57 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.js +78 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +105 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +141 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +3 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.js +5 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/index.js +5 -0
- package/dist/types/factories/@openzeppelin/index.d.ts +2 -0
- package/dist/types/factories/@openzeppelin/index.d.ts.map +1 -0
- package/dist/types/factories/@openzeppelin/index.js +4 -0
- package/dist/types/factories/contracts/Enclave__factory.d.ts +190 -104
- package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/Enclave__factory.js +241 -134
- package/dist/types/factories/contracts/index.d.ts +3 -0
- package/dist/types/factories/contracts/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/index.js +3 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +678 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +882 -0
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +253 -9
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +325 -9
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +16 -2
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +20 -2
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +190 -24
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +246 -26
- package/dist/types/factories/contracts/interfaces/ISlashVerifier__factory.d.ts +26 -0
- package/dist/types/factories/contracts/interfaces/ISlashVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/interfaces/{IRegistryFilter__factory.js → ISlashVerifier__factory.js} +7 -7
- package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.d.ts +594 -0
- package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/interfaces/ISlashingManager__factory.js +760 -0
- package/dist/types/factories/contracts/interfaces/index.d.ts +3 -2
- package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/index.js +3 -2
- package/dist/types/factories/contracts/lib/ExitQueueLib__factory.d.ts +107 -0
- package/dist/types/factories/contracts/lib/ExitQueueLib__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/lib/ExitQueueLib__factory.js +138 -0
- package/dist/types/factories/contracts/lib/index.d.ts +2 -0
- package/dist/types/factories/contracts/lib/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/lib/index.js +4 -0
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +958 -0
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +1239 -0
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +272 -40
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +343 -49
- package/dist/types/factories/contracts/registry/index.d.ts +1 -1
- package/dist/types/factories/contracts/registry/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/index.js +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +879 -0
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1129 -0
- package/dist/types/factories/contracts/slashing/index.d.ts +2 -0
- package/dist/types/factories/contracts/slashing/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/slashing/index.js +4 -0
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +254 -10
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +326 -10
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +254 -10
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +326 -10
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +2 -2
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +2 -2
- package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockDecryptionVerifier__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +23 -27
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.js +28 -34
- package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.d.ts +43 -0
- package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/test/MockSlashingVerifier__factory.js +60 -0
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +338 -0
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +447 -0
- package/dist/types/factories/contracts/test/MockStableToken.sol/index.d.ts +2 -0
- package/dist/types/factories/contracts/test/MockStableToken.sol/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/test/MockStableToken.sol/index.js +4 -0
- package/dist/types/factories/contracts/test/index.d.ts +2 -2
- package/dist/types/factories/contracts/test/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/index.js +2 -2
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +894 -0
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1175 -0
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1101 -0
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1439 -0
- package/dist/types/factories/contracts/token/index.d.ts +3 -0
- package/dist/types/factories/contracts/token/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/token/index.js +5 -0
- package/dist/types/factories/index.d.ts +1 -0
- package/dist/types/factories/index.d.ts.map +1 -1
- package/dist/types/factories/index.js +1 -0
- package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.d.ts +1 -1
- package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.d.ts.map +1 -1
- package/dist/types/factories/poseidon-solidity/PoseidonT3__factory.js +1 -1
- package/dist/types/index.d.ts +28 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -6
- package/package.json +30 -21
- package/LICENSE.md +0 -165
- package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.json +0 -130
- package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.output.json +0 -1
- package/artifacts/contracts/interfaces/IInputValidator.sol/IInputValidator.json +0 -38
- package/artifacts/contracts/interfaces/IInputValidator.sol/artifacts.d.ts +0 -27
- package/artifacts/contracts/interfaces/IRegistryFilter.sol/artifacts.d.ts +0 -27
- package/artifacts/contracts/registry/NaiveRegistryFilter.sol/NaiveRegistryFilter.json +0 -309
- package/artifacts/contracts/registry/NaiveRegistryFilter.sol/artifacts.d.ts +0 -27
- package/artifacts/contracts/test/MockInputValidator.sol/MockInputValidator.json +0 -43
- package/artifacts/contracts/test/MockInputValidator.sol/artifacts.d.ts +0 -27
- package/artifacts/contracts/test/MockRegistryFilter.sol/IRegistry.json +0 -37
- package/artifacts/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.json +0 -262
- package/artifacts/contracts/test/MockRegistryFilter.sol/artifacts.d.ts +0 -43
- package/contracts/interfaces/IInputValidator.sol +0 -18
- package/contracts/interfaces/IRegistryFilter.sol +0 -13
- package/contracts/registry/NaiveRegistryFilter.sol +0 -124
- package/contracts/test/MockInputValidator.sol +0 -29
- package/contracts/test/MockRegistryFilter.sol +0 -117
- package/dist/ignition/modules/mockInputValidator.d.ts.map +0 -1
- package/dist/ignition/modules/naiveRegistryFilter.d.ts.map +0 -1
- package/dist/ignition/modules/naiveRegistryFilter.js +0 -16
- package/dist/scripts/deployAndSave/mockInputValidator.d.ts +0 -6
- package/dist/scripts/deployAndSave/mockInputValidator.d.ts.map +0 -1
- package/dist/scripts/deployAndSave/mockInputValidator.js +0 -18
- package/dist/scripts/deployAndSave/naiveRegistryFilter.d.ts +0 -11
- package/dist/scripts/deployAndSave/naiveRegistryFilter.d.ts.map +0 -1
- package/dist/scripts/deployAndSave/naiveRegistryFilter.js +0 -41
- package/dist/test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.d.ts.map +0 -1
- package/dist/test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.js +0 -279
- package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.d.ts +0 -2
- package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.d.ts.map +0 -1
- package/dist/test/CiphernodeRegistry/NaiveRegistryFilter.spec.js +0 -160
- package/dist/types/contracts/interfaces/IInputValidator.d.ts +0 -36
- package/dist/types/contracts/interfaces/IInputValidator.d.ts.map +0 -1
- package/dist/types/contracts/interfaces/IRegistryFilter.d.ts.map +0 -1
- package/dist/types/contracts/registry/NaiveRegistryFilter.d.ts +0 -187
- package/dist/types/contracts/registry/NaiveRegistryFilter.d.ts.map +0 -1
- package/dist/types/contracts/test/MockInputValidator.d.ts.map +0 -1
- package/dist/types/contracts/test/MockRegistryFilter.sol/IRegistry.d.ts +0 -38
- package/dist/types/contracts/test/MockRegistryFilter.sol/IRegistry.d.ts.map +0 -1
- package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.d.ts +0 -163
- package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.d.ts.map +0 -1
- package/dist/types/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.js +0 -8
- package/dist/types/contracts/test/MockRegistryFilter.sol/index.d.ts +0 -3
- package/dist/types/contracts/test/MockRegistryFilter.sol/index.d.ts.map +0 -1
- package/dist/types/factories/contracts/interfaces/IInputValidator__factory.d.ts +0 -26
- package/dist/types/factories/contracts/interfaces/IInputValidator__factory.d.ts.map +0 -1
- package/dist/types/factories/contracts/interfaces/IInputValidator__factory.js +0 -39
- package/dist/types/factories/contracts/interfaces/IRegistryFilter__factory.d.ts +0 -26
- package/dist/types/factories/contracts/interfaces/IRegistryFilter__factory.d.ts.map +0 -1
- package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.d.ts +0 -251
- package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.d.ts.map +0 -1
- package/dist/types/factories/contracts/registry/NaiveRegistryFilter__factory.js +0 -331
- package/dist/types/factories/contracts/test/MockInputValidator__factory.d.ts +0 -47
- package/dist/types/factories/contracts/test/MockInputValidator__factory.d.ts.map +0 -1
- package/dist/types/factories/contracts/test/MockInputValidator__factory.js +0 -65
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.d.ts +0 -26
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.d.ts.map +0 -1
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/IRegistry__factory.js +0 -38
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.d.ts +0 -216
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.d.ts.map +0 -1
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter__factory.js +0 -284
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.d.ts +0 -3
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.d.ts.map +0 -1
- package/dist/types/factories/contracts/test/MockRegistryFilter.sol/index.js +0 -5
- /package/dist/test/{CiphernodeRegistry → Registry}/CiphernodeRegistryOwnable.spec.d.ts +0 -0
- /package/dist/types/{contracts/test/MockRegistryFilter.sol → @openzeppelin/contracts}/index.js +0 -0
- /package/dist/types/{contracts/interfaces/IInputValidator.js → @openzeppelin/contracts/proxy/index.js} +0 -0
- /package/dist/types/{contracts/interfaces/IRegistryFilter.js → @openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.js} +0 -0
- /package/dist/types/{contracts/test/MockInputValidator.js → @openzeppelin/contracts/proxy/transparent/index.js} +0 -0
- /package/dist/types/{contracts/test/MockRegistryFilter.sol/IRegistry.js → @openzeppelin/index.js} +0 -0
package/dist/tasks/ciphernode.js
CHANGED
|
@@ -7,41 +7,312 @@ import { LeanIMT } from "@zk-kit/lean-imt";
|
|
|
7
7
|
import { ZeroAddress } from "ethers";
|
|
8
8
|
import { task } from "hardhat/config";
|
|
9
9
|
import { poseidon2 } from "poseidon-lite";
|
|
10
|
-
export const ciphernodeAdd = task("ciphernode:add", "Register a ciphernode to the registry")
|
|
10
|
+
export const ciphernodeAdd = task("ciphernode:add", "Register a ciphernode to the bonding registry and ciphernode registry")
|
|
11
|
+
.addOption({
|
|
12
|
+
name: "licenseBondAmount",
|
|
13
|
+
description: "amount of ENCL to bond (in wei, e.g., 1000000000000000000000 for 1000 ENCL)",
|
|
14
|
+
defaultValue: "1000000000000000000000",
|
|
15
|
+
})
|
|
16
|
+
.addOption({
|
|
17
|
+
name: "ticketAmount",
|
|
18
|
+
description: "amount of USDC to deposit for tickets (in wei, e.g., 1,000,000,000 for 1000 USDC)",
|
|
19
|
+
defaultValue: "1000000000",
|
|
20
|
+
})
|
|
21
|
+
.setAction(async () => ({
|
|
22
|
+
default: async ({ licenseBondAmount, ticketAmount }, hre) => {
|
|
23
|
+
const connection = await hre.network.connect();
|
|
24
|
+
const { ethers } = connection;
|
|
25
|
+
const [signer] = await ethers.getSigners();
|
|
26
|
+
console.log(`Registering ciphernode: ${signer.address}`);
|
|
27
|
+
const { deployAndSaveBondingRegistry } = await import("../scripts/deployAndSave/bondingRegistry");
|
|
28
|
+
const { deployAndSaveEnclaveTicketToken } = await import("../scripts/deployAndSave/enclaveTicketToken");
|
|
29
|
+
const { deployAndSaveEnclaveToken } = await import("../scripts/deployAndSave/enclaveToken");
|
|
30
|
+
const { deployAndSaveMockStableToken } = await import("../scripts/deployAndSave/mockStableToken");
|
|
31
|
+
const { bondingRegistry } = await deployAndSaveBondingRegistry({ hre });
|
|
32
|
+
const { enclaveToken } = await deployAndSaveEnclaveToken({ hre });
|
|
33
|
+
const { enclaveTicketToken } = await deployAndSaveEnclaveTicketToken({
|
|
34
|
+
hre,
|
|
35
|
+
});
|
|
36
|
+
const { mockStableToken } = await deployAndSaveMockStableToken({ hre });
|
|
37
|
+
const licenseToken = enclaveToken.connect(signer);
|
|
38
|
+
const ticketToken = enclaveTicketToken.connect(signer);
|
|
39
|
+
const usdcToken = mockStableToken.connect(signer);
|
|
40
|
+
const bondingRegistryConnected = bondingRegistry.connect(signer);
|
|
41
|
+
try {
|
|
42
|
+
console.log("Step 1: Checking balances...");
|
|
43
|
+
const enclBalance = await licenseToken.balanceOf(signer.address);
|
|
44
|
+
const usdcBalance = await usdcToken.balanceOf(signer.address);
|
|
45
|
+
console.log(`ENCL balance: ${ethers.formatEther(enclBalance)}`);
|
|
46
|
+
console.log(`USDC balance: ${ethers.formatUnits(usdcBalance, 6)}`);
|
|
47
|
+
const licenseBondAmountBigInt = BigInt(licenseBondAmount);
|
|
48
|
+
const ticketAmountBigInt = BigInt(ticketAmount);
|
|
49
|
+
if (enclBalance < licenseBondAmountBigInt) {
|
|
50
|
+
throw new Error(`Insufficient ENCL balance. Need: ${ethers.formatEther(licenseBondAmountBigInt)}, Have: ${ethers.formatEther(enclBalance)}`);
|
|
51
|
+
}
|
|
52
|
+
if (usdcBalance < ticketAmountBigInt) {
|
|
53
|
+
throw new Error(`Insufficient USDC balance. Need: ${ethers.formatUnits(ticketAmountBigInt, 6)}, Have: ${ethers.formatUnits(usdcBalance, 6)}`);
|
|
54
|
+
}
|
|
55
|
+
console.log("Step 2: Approving ENCL for license bond...");
|
|
56
|
+
const approveTx = await licenseToken.approve(await bondingRegistry.getAddress(), licenseBondAmountBigInt);
|
|
57
|
+
await approveTx.wait();
|
|
58
|
+
console.log("ENCL approved");
|
|
59
|
+
console.log("Step 3: Bonding license...");
|
|
60
|
+
const bondTx = await bondingRegistryConnected.bondLicense(licenseBondAmountBigInt);
|
|
61
|
+
await bondTx.wait();
|
|
62
|
+
console.log(`Licensed bonded: ${ethers.formatEther(licenseBondAmountBigInt)} ENCL`);
|
|
63
|
+
console.log("Step 4: Registering as operator...");
|
|
64
|
+
const isRegistered = await bondingRegistry.isRegistered(signer.address);
|
|
65
|
+
if (!isRegistered) {
|
|
66
|
+
const registerTx = await bondingRegistryConnected.registerOperator();
|
|
67
|
+
await registerTx.wait();
|
|
68
|
+
console.log("Operator registered (automatically added to CiphernodeRegistry)");
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log("Ciphernode is already registered as operator");
|
|
72
|
+
}
|
|
73
|
+
console.log("Step 5: Approving USDC for ticket purchase...");
|
|
74
|
+
const approveUsdcTx = await usdcToken.approve(ticketToken.getAddress(), ticketAmountBigInt);
|
|
75
|
+
await approveUsdcTx.wait();
|
|
76
|
+
console.log("USDC approved");
|
|
77
|
+
console.log("Step 6: Adding ticket balance...");
|
|
78
|
+
const ticketTx = await bondingRegistryConnected.addTicketBalance(ticketAmountBigInt);
|
|
79
|
+
await ticketTx.wait();
|
|
80
|
+
console.log(`Ticket balance added: ${ethers.formatUnits(ticketAmountBigInt, 6)} USDC worth`);
|
|
81
|
+
const isActive = await bondingRegistry.isActive(signer.address);
|
|
82
|
+
const licenseBond = await bondingRegistry.getLicenseBond(signer.address);
|
|
83
|
+
const ticketBalance = await bondingRegistry.getTicketBalance(signer.address);
|
|
84
|
+
console.log("\n=== Registration Complete ===");
|
|
85
|
+
console.log(`Ciphernode: ${signer.address}`);
|
|
86
|
+
console.log(`Registered: ${isRegistered}`);
|
|
87
|
+
console.log(`Active: ${isActive}`);
|
|
88
|
+
console.log(`License Bond: ${ethers.formatEther(licenseBond)} ENCL`);
|
|
89
|
+
console.log(`Ticket Balance: ${ethers.formatUnits(ticketBalance, 6)} USDC worth`);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
console.error("Registration failed:", error);
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
}))
|
|
97
|
+
.build();
|
|
98
|
+
export const ciphernodeRemove = task("ciphernode:remove", "Deregister a ciphernode from the bonding registry")
|
|
99
|
+
.addOption({
|
|
100
|
+
name: "siblings",
|
|
101
|
+
description: "comma separated siblings from tree proof",
|
|
102
|
+
defaultValue: "",
|
|
103
|
+
})
|
|
104
|
+
.setAction(async () => ({
|
|
105
|
+
default: async ({ siblings }, hre) => {
|
|
106
|
+
const connection = await hre.network.connect();
|
|
107
|
+
const { ethers } = connection;
|
|
108
|
+
const [signer] = await ethers.getSigners();
|
|
109
|
+
console.log(`Deregistering ciphernode: ${signer.address}`);
|
|
110
|
+
const { deployAndSaveBondingRegistry } = await import("../scripts/deployAndSave/bondingRegistry");
|
|
111
|
+
const { bondingRegistry } = await deployAndSaveBondingRegistry({ hre });
|
|
112
|
+
const bondingRegistryConnected = bondingRegistry.connect(signer);
|
|
113
|
+
const siblingsArray = siblings.split(",").map((s) => BigInt(s));
|
|
114
|
+
try {
|
|
115
|
+
console.log("Deregistering operator (will also remove from CiphernodeRegistry)...");
|
|
116
|
+
const tx = await bondingRegistryConnected.deregisterOperator(siblingsArray);
|
|
117
|
+
await tx.wait();
|
|
118
|
+
console.log(`Ciphernode ${signer.address} deregistered`);
|
|
119
|
+
console.log("Note: Funds are now in exit queue. Use claimExits() after the exit delay period.");
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.error("Deregistration failed:", error);
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
}))
|
|
127
|
+
.build();
|
|
128
|
+
export const ciphernodeMintTokens = task("ciphernode:mint-tokens", "Mint ENCL and USDC tokens for a ciphernode (for testing)")
|
|
11
129
|
.addOption({
|
|
12
130
|
name: "ciphernodeAddress",
|
|
13
|
-
description: "address of ciphernode to
|
|
131
|
+
description: "address of ciphernode to mint tokens for",
|
|
14
132
|
defaultValue: ZeroAddress,
|
|
133
|
+
})
|
|
134
|
+
.addOption({
|
|
135
|
+
name: "enclAmount",
|
|
136
|
+
description: "amount of ENCL to mint (in ether units, e.g., 2000 for 2000 ENCL)",
|
|
137
|
+
defaultValue: "2000",
|
|
138
|
+
})
|
|
139
|
+
.addOption({
|
|
140
|
+
name: "usdcAmount",
|
|
141
|
+
description: "amount of USDC to mint (in USDC units, e.g., 1000 for 1000 USDC)",
|
|
142
|
+
defaultValue: "1000",
|
|
15
143
|
})
|
|
16
144
|
.setAction(async () => ({
|
|
17
|
-
default: async ({ ciphernodeAddress }, hre) => {
|
|
18
|
-
const
|
|
19
|
-
const {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
145
|
+
default: async ({ ciphernodeAddress, enclAmount, usdcAmount }, hre) => {
|
|
146
|
+
const connection = await hre.network.connect();
|
|
147
|
+
const { ethers } = connection;
|
|
148
|
+
if (ciphernodeAddress === ZeroAddress) {
|
|
149
|
+
throw new Error("Ciphernode address is required. Use --ciphernode-address option.");
|
|
150
|
+
}
|
|
151
|
+
const { deployAndSaveEnclaveToken } = await import("../scripts/deployAndSave/enclaveToken");
|
|
152
|
+
const { enclaveToken } = await deployAndSaveEnclaveToken({ hre });
|
|
153
|
+
const { deployAndSaveMockStableToken } = await import("../scripts/deployAndSave/mockStableToken");
|
|
154
|
+
const { mockStableToken } = await deployAndSaveMockStableToken({
|
|
155
|
+
hre,
|
|
156
|
+
});
|
|
157
|
+
const [signer] = await ethers.getSigners();
|
|
158
|
+
const enclaveTokenContract = enclaveToken.connect(signer);
|
|
159
|
+
const mockUSDCContract = mockStableToken.connect(signer);
|
|
160
|
+
try {
|
|
161
|
+
console.log(`Minting tokens for: ${ciphernodeAddress}`);
|
|
162
|
+
console.log(`Minting ${enclAmount} ENCL...`);
|
|
163
|
+
const enclTx = await enclaveTokenContract.mintAllocation(ciphernodeAddress, ethers.parseEther(enclAmount), "Ciphernode allocation");
|
|
164
|
+
await enclTx.wait();
|
|
165
|
+
console.log(`${enclAmount} ENCL minted`);
|
|
166
|
+
console.log(`Minting ${usdcAmount} USDC...`);
|
|
167
|
+
const usdcTx = await mockUSDCContract.mint(ciphernodeAddress, ethers.parseUnits(usdcAmount, 6));
|
|
168
|
+
await usdcTx.wait();
|
|
169
|
+
console.log(`${usdcAmount} USDC minted`);
|
|
170
|
+
const enclBalance = await enclaveTokenContract.balanceOf(ciphernodeAddress);
|
|
171
|
+
const usdcBalance = await mockUSDCContract.balanceOf(ciphernodeAddress);
|
|
172
|
+
console.log("\n=== Token Balances ===");
|
|
173
|
+
console.log(`ENCL: ${ethers.formatEther(enclBalance)}`);
|
|
174
|
+
console.log(`USDC: ${ethers.formatUnits(usdcBalance, 6)}`);
|
|
175
|
+
const transfersRestricted = await enclaveTokenContract.transfersRestricted();
|
|
176
|
+
if (transfersRestricted) {
|
|
177
|
+
console.log("Allowing EnclaveToken to be transferrable...");
|
|
178
|
+
const transferEnabledTx = await enclaveTokenContract.setTransferRestriction(false);
|
|
179
|
+
await transferEnabledTx.wait();
|
|
180
|
+
console.log("EnclaveToken transfers are now enabled");
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
console.error("Token minting failed:", error);
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
23
187
|
},
|
|
24
188
|
}))
|
|
25
189
|
.build();
|
|
26
|
-
export const
|
|
190
|
+
export const ciphernodeAdminAdd = task("ciphernode:admin-add", "Register a ciphernode using admin privileges (for testing/setup)")
|
|
27
191
|
.addOption({
|
|
28
192
|
name: "ciphernodeAddress",
|
|
29
|
-
description: "address of ciphernode to
|
|
193
|
+
description: "address of ciphernode to register",
|
|
30
194
|
defaultValue: ZeroAddress,
|
|
31
195
|
})
|
|
32
196
|
.addOption({
|
|
33
|
-
name: "
|
|
34
|
-
description: "
|
|
197
|
+
name: "adminPrivateKey",
|
|
198
|
+
description: "private key of admin wallet (optional, uses anvil first key if not provided)",
|
|
35
199
|
defaultValue: "",
|
|
200
|
+
})
|
|
201
|
+
.addOption({
|
|
202
|
+
name: "licenseBondAmount",
|
|
203
|
+
description: "amount of ENCL to bond (in ether units, e.g., 1000 for 1000 ENCL)",
|
|
204
|
+
defaultValue: "1000",
|
|
205
|
+
})
|
|
206
|
+
.addOption({
|
|
207
|
+
name: "ticketAmount",
|
|
208
|
+
description: "amount of USDC for tickets (in USDC units, e.g., 1000 for 1000 USDC)",
|
|
209
|
+
defaultValue: "1000",
|
|
36
210
|
})
|
|
37
211
|
.setAction(async () => ({
|
|
38
|
-
default: async ({ ciphernodeAddress,
|
|
39
|
-
const
|
|
40
|
-
const {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
212
|
+
default: async ({ ciphernodeAddress, adminPrivateKey, licenseBondAmount, ticketAmount }, hre) => {
|
|
213
|
+
const connection = await hre.network.connect();
|
|
214
|
+
const { ethers } = connection;
|
|
215
|
+
if (ciphernodeAddress === ZeroAddress) {
|
|
216
|
+
throw new Error("Ciphernode address is required. Use --ciphernode-address option.");
|
|
217
|
+
}
|
|
218
|
+
let adminWallet;
|
|
219
|
+
if (adminPrivateKey) {
|
|
220
|
+
adminWallet = new ethers.Wallet(adminPrivateKey, ethers.provider);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
const anvilFirstKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
|
|
224
|
+
adminWallet = new ethers.Wallet(anvilFirstKey, ethers.provider);
|
|
225
|
+
}
|
|
226
|
+
console.log(`Admin wallet: ${adminWallet.address}`);
|
|
227
|
+
console.log(`Registering ciphernode: ${ciphernodeAddress}`);
|
|
228
|
+
const { deployAndSaveBondingRegistry } = await import("../scripts/deployAndSave/bondingRegistry");
|
|
229
|
+
const { bondingRegistry } = await deployAndSaveBondingRegistry({ hre });
|
|
230
|
+
const { deployAndSaveEnclaveToken } = await import("../scripts/deployAndSave/enclaveToken");
|
|
231
|
+
const { enclaveToken } = await deployAndSaveEnclaveToken({ hre });
|
|
232
|
+
const { deployAndSaveMockStableToken } = await import("../scripts/deployAndSave/mockStableToken");
|
|
233
|
+
const { mockStableToken: mockUSDC } = await deployAndSaveMockStableToken({
|
|
234
|
+
hre,
|
|
235
|
+
});
|
|
236
|
+
const enclaveTokenConnected = enclaveToken.connect(adminWallet);
|
|
237
|
+
const mockUSDCConnected = mockUSDC.connect(adminWallet);
|
|
238
|
+
const ticketTokenAddress = await bondingRegistry.ticketToken();
|
|
239
|
+
try {
|
|
240
|
+
const licenseBondWei = ethers.parseEther(licenseBondAmount);
|
|
241
|
+
const ticketAmountWei = ethers.parseUnits(ticketAmount, 6);
|
|
242
|
+
console.log("Step 1: Minting and transferring ENCL to ciphernode...");
|
|
243
|
+
const enclTx = await enclaveTokenConnected.mintAllocation(adminWallet.address, licenseBondWei, "Admin allocation for ciphernode registration");
|
|
244
|
+
await enclTx.wait();
|
|
245
|
+
const transferTx = await enclaveTokenConnected.transfer(ciphernodeAddress, licenseBondWei);
|
|
246
|
+
await transferTx.wait();
|
|
247
|
+
console.log(`${licenseBondAmount} ENCL transferred to ciphernode`);
|
|
248
|
+
console.log("Step 2: Minting USDC to admin...");
|
|
249
|
+
const usdcTx = await mockUSDCConnected.mint(adminWallet.address, ticketAmountWei);
|
|
250
|
+
await usdcTx.wait();
|
|
251
|
+
console.log(`${ticketAmount} USDC minted to admin`);
|
|
252
|
+
console.log("Step 3: Impersonating ciphernode for license operations...");
|
|
253
|
+
await connection.provider.request({
|
|
254
|
+
method: "hardhat_impersonateAccount",
|
|
255
|
+
params: [ciphernodeAddress],
|
|
256
|
+
});
|
|
257
|
+
await connection.provider.request({
|
|
258
|
+
method: "hardhat_setBalance",
|
|
259
|
+
params: [ciphernodeAddress, "0x1000000000000000000000"],
|
|
260
|
+
});
|
|
261
|
+
const ciphernodeSigner = await ethers.getSigner(ciphernodeAddress);
|
|
262
|
+
const enclaveTokenAsCiphernode = enclaveToken.connect(ciphernodeSigner);
|
|
263
|
+
const bondingRegistryAsCiphernode = bondingRegistry.connect(ciphernodeSigner);
|
|
264
|
+
const approveTx = await enclaveTokenAsCiphernode.approve(await bondingRegistry.getAddress(), licenseBondWei);
|
|
265
|
+
await approveTx.wait();
|
|
266
|
+
const bondTx = await bondingRegistryAsCiphernode.bondLicense(licenseBondWei);
|
|
267
|
+
await bondTx.wait();
|
|
268
|
+
console.log(`License bonded: ${licenseBondAmount} ENCL`);
|
|
269
|
+
const registerTx = await bondingRegistryAsCiphernode.registerOperator();
|
|
270
|
+
await registerTx.wait();
|
|
271
|
+
console.log("Operator registered (automatically added to CiphernodeRegistry)");
|
|
272
|
+
await connection.provider.request({
|
|
273
|
+
method: "hardhat_stopImpersonatingAccount",
|
|
274
|
+
params: [ciphernodeAddress],
|
|
275
|
+
});
|
|
276
|
+
console.log("Step 4: Adding ticket balance via admin...");
|
|
277
|
+
const approveUsdcTx = await mockUSDCConnected.approve(ticketTokenAddress, ticketAmountWei);
|
|
278
|
+
await approveUsdcTx.wait();
|
|
279
|
+
await connection.provider.request({
|
|
280
|
+
method: "hardhat_impersonateAccount",
|
|
281
|
+
params: [ciphernodeAddress],
|
|
282
|
+
});
|
|
283
|
+
await connection.provider.request({
|
|
284
|
+
method: "hardhat_setBalance",
|
|
285
|
+
params: [ciphernodeAddress, "0x1000000000000000000000"],
|
|
286
|
+
});
|
|
287
|
+
const ciphernodeSigner2 = await ethers.getSigner(ciphernodeAddress);
|
|
288
|
+
const bondingRegistryAsCiphernode2 = bondingRegistry.connect(ciphernodeSigner2);
|
|
289
|
+
const usdcTransferTx = await mockUSDCConnected.transfer(ciphernodeAddress, ticketAmountWei);
|
|
290
|
+
await usdcTransferTx.wait();
|
|
291
|
+
const mockUSDCAsCiphernode = mockUSDC.connect(ciphernodeSigner2);
|
|
292
|
+
const approveUsdcAsCiphernodeTx = await mockUSDCAsCiphernode.approve(ticketTokenAddress, ticketAmountWei);
|
|
293
|
+
await approveUsdcAsCiphernodeTx.wait();
|
|
294
|
+
const addTicketTx = await bondingRegistryAsCiphernode2.addTicketBalance(ticketAmountWei);
|
|
295
|
+
await addTicketTx.wait();
|
|
296
|
+
console.log(`Ticket balance added: ${ticketAmount} USDC worth`);
|
|
297
|
+
await connection.provider.request({
|
|
298
|
+
method: "hardhat_stopImpersonatingAccount",
|
|
299
|
+
params: [ciphernodeAddress],
|
|
300
|
+
});
|
|
301
|
+
const isRegistered = await bondingRegistry.isRegistered(ciphernodeAddress);
|
|
302
|
+
const isActive = await bondingRegistry.isActive(ciphernodeAddress);
|
|
303
|
+
const licenseBond = await bondingRegistry.getLicenseBond(ciphernodeAddress);
|
|
304
|
+
const ticketBalance = await bondingRegistry.getTicketBalance(ciphernodeAddress);
|
|
305
|
+
console.log("\n=== Registration Complete ===");
|
|
306
|
+
console.log(`Ciphernode: ${ciphernodeAddress}`);
|
|
307
|
+
console.log(`Registered: ${isRegistered}`);
|
|
308
|
+
console.log(`Active: ${isActive}`);
|
|
309
|
+
console.log(`License Bond: ${ethers.formatEther(licenseBond)} ENCL`);
|
|
310
|
+
console.log(`Ticket Balance: ${ethers.formatUnits(ticketBalance, 6)} USDC worth`);
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
console.error("Admin registration failed:", error);
|
|
314
|
+
throw error;
|
|
315
|
+
}
|
|
45
316
|
},
|
|
46
317
|
}))
|
|
47
318
|
.build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../tasks/enclave.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../tasks/enclave.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,iDAkMnB,CAAC;AAEX,eAAO,MAAM,QAAQ,iDAyBX,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDA2DnB,CAAC;AAEX,eAAO,MAAM,UAAU,iDA4Cb,CAAC;AAEX,eAAO,MAAM,YAAY,iDA+Cf,CAAC;AAEX,eAAO,MAAM,iBAAiB,iDAsEpB,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDAsEnB,CAAC"}
|
package/dist/tasks/enclave.js
CHANGED
|
@@ -62,31 +62,40 @@ export const requestCommittee = task("committee:new", "Request a new ciphernode
|
|
|
62
62
|
description: "parameters for the compute provider",
|
|
63
63
|
defaultValue: ZeroAddress,
|
|
64
64
|
type: ArgumentType.STRING,
|
|
65
|
+
})
|
|
66
|
+
.addOption({
|
|
67
|
+
name: "customParams",
|
|
68
|
+
description: "parameters for the custom params",
|
|
69
|
+
defaultValue: ZeroAddress,
|
|
70
|
+
type: ArgumentType.STRING,
|
|
65
71
|
})
|
|
66
72
|
.setAction(async () => ({
|
|
67
|
-
default: async ({
|
|
73
|
+
default: async ({ thresholdQuorum, thresholdTotal, windowStart, windowEnd, duration, e3Address, e3Params, computeParams, customParams, }, hre) => {
|
|
74
|
+
const connection = await hre.network.connect();
|
|
75
|
+
const { ethers } = connection;
|
|
68
76
|
const { deployAndSaveEnclave } = await import("../scripts/deployAndSave/enclave");
|
|
69
|
-
const {
|
|
77
|
+
const { deployAndSaveMockStableToken } = await import("../scripts/deployAndSave/mockStableToken");
|
|
78
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
79
|
+
hre,
|
|
80
|
+
});
|
|
81
|
+
const { mockStableToken: mockUSDC } = await deployAndSaveMockStableToken({
|
|
82
|
+
hre,
|
|
83
|
+
});
|
|
84
|
+
const [signer] = await ethers.getSigners();
|
|
85
|
+
const enclaveContract = enclave.connect(signer);
|
|
86
|
+
const mockUSDCContract = mockUSDC.connect(signer);
|
|
70
87
|
const enclaveArgs = readDeploymentArgs("Enclave", hre.globalOptions.network);
|
|
71
88
|
if (!enclaveArgs) {
|
|
72
89
|
throw new Error("Enclave deployment arguments not found");
|
|
73
90
|
}
|
|
74
|
-
const registryArgs = readDeploymentArgs("
|
|
91
|
+
const registryArgs = readDeploymentArgs("CiphernodeRegistryOwnable", hre.globalOptions.network);
|
|
75
92
|
if (!registryArgs) {
|
|
76
93
|
throw new Error("CiphernodeRegistry deployment arguments not found");
|
|
77
94
|
}
|
|
78
|
-
const filterArgs = readDeploymentArgs("NaiveRegistryFilter", hre.globalOptions.network);
|
|
79
|
-
if (!filterArgs) {
|
|
80
|
-
throw new Error("NaiveRegistryFilter deployment arguments not found");
|
|
81
|
-
}
|
|
82
95
|
const mockE3ProgramArgs = readDeploymentArgs("MockE3Program", hre.globalOptions.network);
|
|
83
96
|
let e3ProgramParams = e3Params;
|
|
84
|
-
const mockInputValidatorArgs = readDeploymentArgs("MockInputValidator", hre.globalOptions.network);
|
|
85
97
|
if (e3ProgramParams === ZeroAddress) {
|
|
86
|
-
|
|
87
|
-
throw new Error("MockInputValidator deployment arguments not found");
|
|
88
|
-
}
|
|
89
|
-
e3ProgramParams = zeroPadValue(mockInputValidatorArgs.address, 32);
|
|
98
|
+
e3ProgramParams = zeroPadValue(e3ProgramParams, 32);
|
|
90
99
|
}
|
|
91
100
|
let computeProviderParams = computeParams;
|
|
92
101
|
const mockDecryptionVerifierArgs = readDeploymentArgs("MockDecryptionVerifier", hre.globalOptions.network);
|
|
@@ -96,24 +105,36 @@ export const requestCommittee = task("committee:new", "Request a new ciphernode
|
|
|
96
105
|
}
|
|
97
106
|
computeProviderParams = zeroPadValue(mockDecryptionVerifierArgs.address, 32);
|
|
98
107
|
}
|
|
99
|
-
console.log({
|
|
100
|
-
|
|
101
|
-
threshold: [thresholdQuorum, thresholdTotal],
|
|
102
|
-
startWindow: [windowStart, windowEnd],
|
|
103
|
-
duration: duration,
|
|
104
|
-
e3Program: e3Address === ZeroAddress ? mockE3ProgramArgs.address : e3Address,
|
|
105
|
-
e3ProgramParams,
|
|
108
|
+
console.log("Preparing request with the following parameters:", {
|
|
109
|
+
computeParams,
|
|
106
110
|
computeProviderParams,
|
|
107
111
|
});
|
|
108
|
-
const
|
|
109
|
-
filter: filter === ZeroAddress ? filterArgs.address : filter,
|
|
112
|
+
const requestParams = {
|
|
110
113
|
threshold: [thresholdQuorum, thresholdTotal],
|
|
111
114
|
startWindow: [windowStart, windowEnd],
|
|
112
115
|
duration: duration,
|
|
113
116
|
e3Program: e3Address === ZeroAddress ? mockE3ProgramArgs.address : e3Address,
|
|
114
117
|
e3ProgramParams,
|
|
115
118
|
computeProviderParams,
|
|
116
|
-
|
|
119
|
+
customParams,
|
|
120
|
+
};
|
|
121
|
+
console.log("Request parameters:", requestParams);
|
|
122
|
+
const fee = await enclaveContract.getE3Quote(requestParams);
|
|
123
|
+
console.log(`E3 fee: ${ethers.formatUnits(fee, 6)} USDC`);
|
|
124
|
+
const usdcBalance = await mockUSDCContract.balanceOf(signer.address);
|
|
125
|
+
console.log(`USDC balance: ${ethers.formatUnits(usdcBalance, 6)} USDC`);
|
|
126
|
+
if (usdcBalance < fee) {
|
|
127
|
+
const mintAmount = fee - usdcBalance + ethers.parseUnits("1000", 6);
|
|
128
|
+
console.log(`Minting ${ethers.formatUnits(mintAmount, 6)} USDC...`);
|
|
129
|
+
const mintTx = await mockUSDCContract.mint(signer.address, mintAmount);
|
|
130
|
+
await mintTx.wait();
|
|
131
|
+
console.log("USDC minted");
|
|
132
|
+
}
|
|
133
|
+
console.log("Approving USDC spending...");
|
|
134
|
+
const approveTx = await mockUSDCContract.approve(await enclaveContract.getAddress(), fee);
|
|
135
|
+
await approveTx.wait();
|
|
136
|
+
console.log("USDC approved");
|
|
137
|
+
const tx = await enclaveContract.request(requestParams);
|
|
117
138
|
console.log("Requesting committee... ", tx.hash);
|
|
118
139
|
await tx.wait();
|
|
119
140
|
console.log(`Committee requested`);
|
|
@@ -130,7 +151,9 @@ export const enableE3 = task("enclave:enableE3", "Enable an E3 program")
|
|
|
130
151
|
.setAction(async () => ({
|
|
131
152
|
default: async ({ e3Address }, hre) => {
|
|
132
153
|
const { deployAndSaveEnclave } = await import("../scripts/deployAndSave/enclave");
|
|
133
|
-
const { enclave } = await deployAndSaveEnclave({
|
|
154
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
155
|
+
hre,
|
|
156
|
+
});
|
|
134
157
|
const tx = await enclave.enableE3Program(e3Address);
|
|
135
158
|
console.log("Enabling E3 program... ", tx.hash);
|
|
136
159
|
await tx.wait();
|
|
@@ -159,9 +182,12 @@ export const publishCommittee = task("committee:publish", "Publish the publickey
|
|
|
159
182
|
})
|
|
160
183
|
.setAction(async () => ({
|
|
161
184
|
default: async ({ e3Id, nodes, publicKey }, hre) => {
|
|
162
|
-
const {
|
|
163
|
-
const {
|
|
185
|
+
const { deployAndSaveCiphernodeRegistryOwnable } = await import("../scripts/deployAndSave/ciphernodeRegistryOwnable");
|
|
186
|
+
const { deployAndSavePoseidonT3 } = await import("../scripts/deployAndSave/poseidonT3");
|
|
187
|
+
const poseidonT3 = await deployAndSavePoseidonT3({ hre });
|
|
188
|
+
const { ciphernodeRegistry } = await deployAndSaveCiphernodeRegistryOwnable({
|
|
164
189
|
hre,
|
|
190
|
+
poseidonT3Address: poseidonT3,
|
|
165
191
|
});
|
|
166
192
|
const nodesToSend = nodes
|
|
167
193
|
.split(",")
|
|
@@ -170,7 +196,7 @@ export const publishCommittee = task("committee:publish", "Publish the publickey
|
|
|
170
196
|
if (nodesToSend.length === 0 && nodes.length > 0) {
|
|
171
197
|
throw new Error("Invalid nodes format: no valid addresses found");
|
|
172
198
|
}
|
|
173
|
-
const tx = await
|
|
199
|
+
const tx = await ciphernodeRegistry.publishCommittee(e3Id, nodesToSend, publicKey);
|
|
174
200
|
console.log("Publishing committee... ", tx.hash);
|
|
175
201
|
await tx.wait();
|
|
176
202
|
console.log(`Committee public key published`);
|
|
@@ -189,11 +215,24 @@ export const activateE3 = task("e3:activate", "Activate an E3 program")
|
|
|
189
215
|
description: "public key of the committee",
|
|
190
216
|
defaultValue: "",
|
|
191
217
|
type: ArgumentType.STRING,
|
|
218
|
+
})
|
|
219
|
+
.addOption({
|
|
220
|
+
name: "publicKeyFile",
|
|
221
|
+
description: "path to file containing the public key",
|
|
222
|
+
defaultValue: "",
|
|
223
|
+
type: ArgumentType.STRING,
|
|
192
224
|
})
|
|
193
225
|
.setAction(async () => ({
|
|
194
|
-
default: async ({ e3Id, publicKey }, hre) => {
|
|
226
|
+
default: async ({ e3Id, publicKey: publicKeyArg, publicKeyFile }, hre) => {
|
|
227
|
+
const publicKey = publicKeyArg ||
|
|
228
|
+
(publicKeyFile ? fs.readFileSync(publicKeyFile, "utf8").trim() : "") ||
|
|
229
|
+
process.env.PUBLIC_KEY;
|
|
230
|
+
if (!publicKey)
|
|
231
|
+
throw new Error("No public key provided!");
|
|
195
232
|
const { deployAndSaveEnclave } = await import("../scripts/deployAndSave/enclave");
|
|
196
|
-
const { enclave } = await deployAndSaveEnclave({
|
|
233
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
234
|
+
hre,
|
|
235
|
+
});
|
|
197
236
|
const tx = await enclave.activate(e3Id, publicKey);
|
|
198
237
|
console.log("Activating E3 program... ", tx.hash);
|
|
199
238
|
await tx.wait();
|
|
@@ -223,7 +262,9 @@ export const publishInput = task("e3:publishInput", "Publish input for an E3 pro
|
|
|
223
262
|
.setAction(async () => ({
|
|
224
263
|
default: async ({ e3Id, data, dataFile }, hre) => {
|
|
225
264
|
const { deployAndSaveEnclave } = await import("../scripts/deployAndSave/enclave");
|
|
226
|
-
const { enclave } = await deployAndSaveEnclave({
|
|
265
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
266
|
+
hre,
|
|
267
|
+
});
|
|
227
268
|
let dataToSend = data;
|
|
228
269
|
if (dataFile) {
|
|
229
270
|
const file = fs.readFileSync(dataFile);
|
|
@@ -270,7 +311,9 @@ export const publishCiphertext = task("e3:publishCiphertext", "Publish ciphertex
|
|
|
270
311
|
.setAction(async () => ({
|
|
271
312
|
default: async ({ e3Id, data, dataFile, proof, proofFile }, hre) => {
|
|
272
313
|
const { deployAndSaveEnclave } = await import("../scripts/deployAndSave/enclave");
|
|
273
|
-
const { enclave } = await deployAndSaveEnclave({
|
|
314
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
315
|
+
hre,
|
|
316
|
+
});
|
|
274
317
|
let dataToSend = data;
|
|
275
318
|
if (dataFile) {
|
|
276
319
|
const file = fs.readFileSync(dataFile);
|
|
@@ -322,7 +365,9 @@ export const publishPlaintext = task("e3:publishPlaintext", "Publish plaintext o
|
|
|
322
365
|
.setAction(async () => ({
|
|
323
366
|
default: async ({ e3Id, data, dataFile, proof, proofFile }, hre) => {
|
|
324
367
|
const { deployAndSaveEnclave } = await import("../scripts/deployAndSave/enclave");
|
|
325
|
-
const { enclave } = await deployAndSaveEnclave({
|
|
368
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
369
|
+
hre,
|
|
370
|
+
});
|
|
326
371
|
let dataToSend = data;
|
|
327
372
|
if (dataFile) {
|
|
328
373
|
const file = fs.readFileSync(dataFile);
|