@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
|
@@ -5,13 +5,18 @@
|
|
|
5
5
|
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
6
|
pragma solidity >=0.8.27;
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @title IDecryptionVerifier
|
|
10
|
+
* @notice Interface for verifying decrypted computation outputs
|
|
11
|
+
* @dev Implements cryptographic verification of plaintext outputs from encrypted computations
|
|
12
|
+
*/
|
|
8
13
|
interface IDecryptionVerifier {
|
|
9
|
-
/// @notice
|
|
10
|
-
///
|
|
11
|
-
/// @param e3Id ID of the E3
|
|
12
|
-
/// @param plaintextOutputHash The keccak256 hash of the plaintext output to be verified
|
|
13
|
-
/// @param proof ABI encoded proof of the
|
|
14
|
-
/// @return success Whether
|
|
14
|
+
/// @notice Verify the decryption of a computation output
|
|
15
|
+
/// @dev This function is called by the Enclave contract when plaintext output is published
|
|
16
|
+
/// @param e3Id ID of the E3 computation
|
|
17
|
+
/// @param plaintextOutputHash The keccak256 hash of the plaintext output to be verified
|
|
18
|
+
/// @param proof ABI encoded proof of the decryption validity
|
|
19
|
+
/// @return success Whether the plaintextOutputHash was successfully verified
|
|
15
20
|
function verify(
|
|
16
21
|
uint256 e3Id,
|
|
17
22
|
bytes32 plaintextOutputHash,
|
|
@@ -5,25 +5,29 @@
|
|
|
5
5
|
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
6
|
pragma solidity >=0.8.27;
|
|
7
7
|
|
|
8
|
-
import { IInputValidator } from "./IInputValidator.sol";
|
|
9
8
|
import { IE3Program } from "./IE3Program.sol";
|
|
10
9
|
import { IDecryptionVerifier } from "./IDecryptionVerifier.sol";
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @title E3
|
|
13
|
+
* @notice Represents a complete E3 (Encrypted Execution Environment) computation request and its lifecycle
|
|
14
|
+
* @dev This struct tracks all parameters, state, and results of an encrypted computation
|
|
15
|
+
* from request through completion
|
|
16
|
+
* @param seed Random seed for committee selection and computation initialization
|
|
17
|
+
* @param threshold M/N threshold for the committee (M required out of N total members)
|
|
18
|
+
* @param requestBlock Block number when the E3 computation was requested
|
|
19
|
+
* @param startWindow Start window for the computation: index 0 is minimum block, index 1 is the maximum block
|
|
20
|
+
* @param duration Duration of the E3 computation in blocks or time units
|
|
21
|
+
* @param expiration Timestamp when committee duties expire and computation is considered failed
|
|
22
|
+
* @param encryptionSchemeId Identifier for the encryption scheme used in this computation
|
|
23
|
+
* @param e3Program Address of the E3 Program contract that validates and verifies the computation
|
|
24
|
+
* @param e3ProgramParams ABI encoded computation parameters specific to the E3 program
|
|
25
|
+
* @param customParams Arbitrary ABI-encoded application-defined parameters.
|
|
26
|
+
* @param decryptionVerifier Address of the output verifier contract for decryption verification
|
|
27
|
+
* @param committeePublicKey The public key of the selected committee for this computation
|
|
28
|
+
* @param ciphertextOutput Hash of the encrypted output data produced by the computation
|
|
29
|
+
* @param plaintextOutput Decrypted output data after committee decryption
|
|
30
|
+
*/
|
|
27
31
|
struct E3 {
|
|
28
32
|
uint256 seed;
|
|
29
33
|
uint32[2] threshold;
|
|
@@ -34,7 +38,7 @@ struct E3 {
|
|
|
34
38
|
bytes32 encryptionSchemeId;
|
|
35
39
|
IE3Program e3Program;
|
|
36
40
|
bytes e3ProgramParams;
|
|
37
|
-
|
|
41
|
+
bytes customParams;
|
|
38
42
|
IDecryptionVerifier decryptionVerifier;
|
|
39
43
|
bytes32 committeePublicKey;
|
|
40
44
|
bytes32 ciphertextOutput;
|
|
@@ -5,33 +5,46 @@
|
|
|
5
5
|
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
6
|
pragma solidity >=0.8.27;
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @title IE3Program
|
|
10
|
+
* @notice Interface for E3 program validation and verification
|
|
11
|
+
* @dev E3 programs define the computation logic and validation rules for encrypted execution environments
|
|
12
|
+
*/
|
|
10
13
|
interface IE3Program {
|
|
11
|
-
/// @notice
|
|
12
|
-
/// @
|
|
13
|
-
/// @param
|
|
14
|
-
/// @param
|
|
15
|
-
/// @param
|
|
16
|
-
/// @
|
|
17
|
-
/// @return
|
|
14
|
+
/// @notice Validate E3 computation parameters and return encryption scheme and input validator
|
|
15
|
+
/// @dev This function is called by the Enclave contract during E3 request to configure the computation
|
|
16
|
+
/// @param e3Id ID of the E3 computation
|
|
17
|
+
/// @param seed Random seed for the computation
|
|
18
|
+
/// @param e3ProgramParams ABI encoded E3 program parameters
|
|
19
|
+
/// @param computeProviderParams ABI encoded compute provider parameters
|
|
20
|
+
/// @return encryptionSchemeId ID of the encryption scheme to be used for the computation
|
|
18
21
|
function validate(
|
|
19
22
|
uint256 e3Id,
|
|
20
23
|
uint256 seed,
|
|
21
24
|
bytes calldata e3ProgramParams,
|
|
22
25
|
bytes calldata computeProviderParams
|
|
23
|
-
)
|
|
24
|
-
external
|
|
25
|
-
returns (bytes32 encryptionSchemeId, IInputValidator inputValidator);
|
|
26
|
+
) external returns (bytes32 encryptionSchemeId);
|
|
26
27
|
|
|
27
|
-
/// @notice
|
|
28
|
-
/// @
|
|
29
|
-
/// @param
|
|
30
|
-
/// @param
|
|
31
|
-
/// @
|
|
28
|
+
/// @notice Verify the ciphertext output of an E3 computation
|
|
29
|
+
/// @dev This function is called by the Enclave contract when ciphertext output is published
|
|
30
|
+
/// @param e3Id ID of the E3 computation
|
|
31
|
+
/// @param ciphertextOutputHash The keccak256 hash of output data to be verified
|
|
32
|
+
/// @param proof ABI encoded data to verify the ciphertextOutputHash
|
|
33
|
+
/// @return success Whether the output data is valid
|
|
32
34
|
function verify(
|
|
33
35
|
uint256 e3Id,
|
|
34
36
|
bytes32 ciphertextOutputHash,
|
|
35
37
|
bytes memory proof
|
|
36
38
|
) external returns (bool success);
|
|
39
|
+
|
|
40
|
+
/// @notice Validate and process input data for a computation
|
|
41
|
+
/// @dev This function is called by the Enclave contract when input is published
|
|
42
|
+
/// @param e3Id ID of the E3 computation
|
|
43
|
+
/// @param sender The account that is submitting the input
|
|
44
|
+
/// @param data The input data to be validated
|
|
45
|
+
function validateInput(
|
|
46
|
+
uint256 e3Id,
|
|
47
|
+
address sender,
|
|
48
|
+
bytes memory data
|
|
49
|
+
) external;
|
|
37
50
|
}
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
pragma solidity >=0.8.27;
|
|
7
7
|
|
|
8
8
|
import { E3, IE3Program } from "./IE3.sol";
|
|
9
|
+
import { ICiphernodeRegistry } from "./ICiphernodeRegistry.sol";
|
|
10
|
+
import { IBondingRegistry } from "./IBondingRegistry.sol";
|
|
11
|
+
import { IDecryptionVerifier } from "./IDecryptionVerifier.sol";
|
|
12
|
+
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
9
13
|
|
|
10
14
|
interface IEnclave {
|
|
11
15
|
////////////////////////////////////////////////////////////
|
|
@@ -17,14 +21,8 @@ interface IEnclave {
|
|
|
17
21
|
/// @notice This event MUST be emitted when an Encrypted Execution Environment (E3) is successfully requested.
|
|
18
22
|
/// @param e3Id ID of the E3.
|
|
19
23
|
/// @param e3 Details of the E3.
|
|
20
|
-
/// @param filter Address of the pool of nodes from which the Cipher Node committee was selected.
|
|
21
24
|
/// @param e3Program Address of the Computation module selected.
|
|
22
|
-
event E3Requested(
|
|
23
|
-
uint256 e3Id,
|
|
24
|
-
E3 e3,
|
|
25
|
-
address filter,
|
|
26
|
-
IE3Program indexed e3Program
|
|
27
|
-
);
|
|
25
|
+
event E3Requested(uint256 e3Id, E3 e3, IE3Program indexed e3Program);
|
|
28
26
|
|
|
29
27
|
/// @notice This event MUST be emitted when an Encrypted Execution Environment (E3) is successfully activated.
|
|
30
28
|
/// @param e3Id ID of the E3.
|
|
@@ -70,6 +68,24 @@ interface IEnclave {
|
|
|
70
68
|
/// @param ciphernodeRegistry The address of the CiphernodeRegistry contract.
|
|
71
69
|
event CiphernodeRegistrySet(address ciphernodeRegistry);
|
|
72
70
|
|
|
71
|
+
/// @notice This event MUST be emitted any time the BondingRegistry is set.
|
|
72
|
+
/// @param bondingRegistry The address of the BondingRegistry contract.
|
|
73
|
+
event BondingRegistrySet(address bondingRegistry);
|
|
74
|
+
|
|
75
|
+
/// @notice This event MUST be emitted any time the fee token is set.
|
|
76
|
+
/// @param feeToken The address of the fee token.
|
|
77
|
+
event FeeTokenSet(address feeToken);
|
|
78
|
+
|
|
79
|
+
/// @notice This event MUST be emitted when rewards are distributed to committee members.
|
|
80
|
+
/// @param e3Id The ID of the E3 computation.
|
|
81
|
+
/// @param nodes The addresses of the committee members receiving rewards.
|
|
82
|
+
/// @param amounts The reward amounts for each committee member.
|
|
83
|
+
event RewardsDistributed(
|
|
84
|
+
uint256 indexed e3Id,
|
|
85
|
+
address[] nodes,
|
|
86
|
+
uint256[] amounts
|
|
87
|
+
);
|
|
88
|
+
|
|
73
89
|
/// @notice The event MUST be emitted any time an encryption scheme is enabled.
|
|
74
90
|
/// @param encryptionSchemeId The ID of the encryption scheme that was enabled.
|
|
75
91
|
event EncryptionSchemeEnabled(bytes32 encryptionSchemeId);
|
|
@@ -97,20 +113,21 @@ interface IEnclave {
|
|
|
97
113
|
////////////////////////////////////////////////////////////
|
|
98
114
|
|
|
99
115
|
/// @notice This struct contains the parameters to submit a request to Enclave.
|
|
100
|
-
/// @param filter The address of the pool of nodes from which to select the committee.
|
|
101
116
|
/// @param threshold The M/N threshold for the committee.
|
|
102
117
|
/// @param startWindow The start window for the computation.
|
|
103
118
|
/// @param duration The duration of the computation in seconds.
|
|
104
119
|
/// @param e3Program The address of the E3 Program.
|
|
105
120
|
/// @param e3ProgramParams The ABI encoded computation parameters.
|
|
121
|
+
/// @param computeProviderParams The ABI encoded compute provider parameters.
|
|
122
|
+
/// @param customParams Arbitrary ABI-encoded application-defined parameters.
|
|
106
123
|
struct E3RequestParams {
|
|
107
|
-
address filter;
|
|
108
124
|
uint32[2] threshold;
|
|
109
125
|
uint256[2] startWindow;
|
|
110
126
|
uint256 duration;
|
|
111
127
|
IE3Program e3Program;
|
|
112
128
|
bytes e3ProgramParams;
|
|
113
129
|
bytes computeProviderParams;
|
|
130
|
+
bytes customParams;
|
|
114
131
|
}
|
|
115
132
|
|
|
116
133
|
////////////////////////////////////////////////////////////
|
|
@@ -125,8 +142,8 @@ interface IEnclave {
|
|
|
125
142
|
/// @return e3Id ID of the E3.
|
|
126
143
|
/// @return e3 The E3 struct.
|
|
127
144
|
function request(
|
|
128
|
-
E3RequestParams
|
|
129
|
-
) external
|
|
145
|
+
E3RequestParams calldata requestParams
|
|
146
|
+
) external returns (uint256 e3Id, E3 memory e3);
|
|
130
147
|
|
|
131
148
|
/// @notice This function should be called to activate an Encrypted Execution Environment (E3) once it has been
|
|
132
149
|
/// initialized and is ready for input.
|
|
@@ -138,7 +155,7 @@ interface IEnclave {
|
|
|
138
155
|
/// @return success True if the E3 was successfully activated.
|
|
139
156
|
function activate(
|
|
140
157
|
uint256 e3Id,
|
|
141
|
-
bytes
|
|
158
|
+
bytes calldata publicKey
|
|
142
159
|
) external returns (bool success);
|
|
143
160
|
|
|
144
161
|
/// @notice This function should be called to publish input data for Encrypted Execution Environment (E3).
|
|
@@ -160,8 +177,8 @@ interface IEnclave {
|
|
|
160
177
|
/// @return success True if the output was successfully published.
|
|
161
178
|
function publishCiphertextOutput(
|
|
162
179
|
uint256 e3Id,
|
|
163
|
-
bytes
|
|
164
|
-
bytes
|
|
180
|
+
bytes calldata ciphertextOutput,
|
|
181
|
+
bytes calldata proof
|
|
165
182
|
) external returns (bool success);
|
|
166
183
|
|
|
167
184
|
/// @notice This function publishes the plaintext output of an Encrypted Execution Environment (E3).
|
|
@@ -172,8 +189,8 @@ interface IEnclave {
|
|
|
172
189
|
/// @param proof ABI encoded data to verify the plaintextOutput.
|
|
173
190
|
function publishPlaintextOutput(
|
|
174
191
|
uint256 e3Id,
|
|
175
|
-
bytes
|
|
176
|
-
bytes
|
|
192
|
+
bytes calldata plaintextOutput,
|
|
193
|
+
bytes calldata proof
|
|
177
194
|
) external returns (bool success);
|
|
178
195
|
|
|
179
196
|
////////////////////////////////////////////////////////////
|
|
@@ -189,6 +206,28 @@ interface IEnclave {
|
|
|
189
206
|
uint256 _maxDuration
|
|
190
207
|
) external returns (bool success);
|
|
191
208
|
|
|
209
|
+
/// @notice Sets the Ciphernode Registry contract address.
|
|
210
|
+
/// @dev This function MUST revert if the address is zero or the same as the current registry.
|
|
211
|
+
/// @param _ciphernodeRegistry The address of the new Ciphernode Registry contract.
|
|
212
|
+
/// @return success True if the registry was successfully set.
|
|
213
|
+
function setCiphernodeRegistry(
|
|
214
|
+
ICiphernodeRegistry _ciphernodeRegistry
|
|
215
|
+
) external returns (bool success);
|
|
216
|
+
|
|
217
|
+
/// @notice Sets the Bonding Registry contract address.
|
|
218
|
+
/// @dev This function MUST revert if the address is zero or the same as the current registry.
|
|
219
|
+
/// @param _bondingRegistry The address of the new Bonding Registry contract.
|
|
220
|
+
/// @return success True if the registry was successfully set.
|
|
221
|
+
function setBondingRegistry(
|
|
222
|
+
IBondingRegistry _bondingRegistry
|
|
223
|
+
) external returns (bool success);
|
|
224
|
+
|
|
225
|
+
/// @notice Sets the fee token used for E3 payments.
|
|
226
|
+
/// @dev This function MUST revert if the address is zero or the same as the current fee token.
|
|
227
|
+
/// @param _feeToken The address of the new fee token.
|
|
228
|
+
/// @return success True if the fee token was successfully set.
|
|
229
|
+
function setFeeToken(IERC20 _feeToken) external returns (bool success);
|
|
230
|
+
|
|
192
231
|
/// @notice This function should be called to enable an E3 Program.
|
|
193
232
|
/// @param e3Program The address of the E3 Program.
|
|
194
233
|
/// @return success True if the E3 Program was successfully enabled.
|
|
@@ -203,6 +242,32 @@ interface IEnclave {
|
|
|
203
242
|
IE3Program e3Program
|
|
204
243
|
) external returns (bool success);
|
|
205
244
|
|
|
245
|
+
/// @notice Sets or enables a decryption verifier for a specific encryption scheme.
|
|
246
|
+
/// @dev This function MUST revert if the verifier address is zero or already set to the same value.
|
|
247
|
+
/// @param encryptionSchemeId The unique identifier for the encryption scheme.
|
|
248
|
+
/// @param decryptionVerifier The address of the decryption verifier contract.
|
|
249
|
+
/// @return success True if the verifier was successfully set.
|
|
250
|
+
function setDecryptionVerifier(
|
|
251
|
+
bytes32 encryptionSchemeId,
|
|
252
|
+
IDecryptionVerifier decryptionVerifier
|
|
253
|
+
) external returns (bool success);
|
|
254
|
+
|
|
255
|
+
/// @notice Disables a previously enabled encryption scheme.
|
|
256
|
+
/// @dev This function MUST revert if the encryption scheme is not currently enabled.
|
|
257
|
+
/// @param encryptionSchemeId The unique identifier for the encryption scheme to disable.
|
|
258
|
+
/// @return success True if the encryption scheme was successfully disabled.
|
|
259
|
+
function disableEncryptionScheme(
|
|
260
|
+
bytes32 encryptionSchemeId
|
|
261
|
+
) external returns (bool success);
|
|
262
|
+
|
|
263
|
+
/// @notice Sets the allowed E3 program parameters.
|
|
264
|
+
/// @dev This function enables specific parameter sets for E3 programs (e.g., BFV encryption parameters).
|
|
265
|
+
/// @param _e3ProgramsParams Array of ABI encoded parameter sets to allow.
|
|
266
|
+
/// @return success True if the parameters were successfully set.
|
|
267
|
+
function setE3ProgramsParams(
|
|
268
|
+
bytes[] memory _e3ProgramsParams
|
|
269
|
+
) external returns (bool success);
|
|
270
|
+
|
|
206
271
|
////////////////////////////////////////////////////////////
|
|
207
272
|
// //
|
|
208
273
|
// Get Functions //
|
|
@@ -215,9 +280,18 @@ interface IEnclave {
|
|
|
215
280
|
/// @return e3 The struct representing the requested E3.
|
|
216
281
|
function getE3(uint256 e3Id) external view returns (E3 memory e3);
|
|
217
282
|
|
|
218
|
-
/// @notice This function returns
|
|
219
|
-
/// @dev This function MUST revert if the E3
|
|
220
|
-
/// @param
|
|
221
|
-
/// @return
|
|
222
|
-
function
|
|
283
|
+
/// @notice This function returns the fee of an E3
|
|
284
|
+
/// @dev This function MUST revert if the E3 parameters are invalid.
|
|
285
|
+
/// @param e3Params the struct representing the E3 request parameters
|
|
286
|
+
/// @return fee the fee of the E3
|
|
287
|
+
function getE3Quote(
|
|
288
|
+
E3RequestParams calldata e3Params
|
|
289
|
+
) external view returns (uint256 fee);
|
|
290
|
+
|
|
291
|
+
/// @notice Returns the decryption verifier for a given encryption scheme.
|
|
292
|
+
/// @param encryptionSchemeId The unique identifier for the encryption scheme.
|
|
293
|
+
/// @return The decryption verifier contract for the specified encryption scheme.
|
|
294
|
+
function getDecryptionVerifier(
|
|
295
|
+
bytes32 encryptionSchemeId
|
|
296
|
+
) external view returns (IDecryptionVerifier);
|
|
223
297
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: LGPL-3.0-only
|
|
2
|
+
//
|
|
3
|
+
// This file is provided WITHOUT ANY WARRANTY;
|
|
4
|
+
// without even the implied warranty of MERCHANTABILITY
|
|
5
|
+
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
|
+
pragma solidity >=0.8.27;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @title ISlashVerifier
|
|
10
|
+
* @notice Interface for verifying slash proofs
|
|
11
|
+
* @dev Slash verifiers implement cryptographic or logical verification of slash proposals
|
|
12
|
+
*/
|
|
13
|
+
interface ISlashVerifier {
|
|
14
|
+
/// @notice Verify a slash proof
|
|
15
|
+
/// @dev This function is called by the SlashingManager contract during slash proposal to verify proof validity
|
|
16
|
+
/// @param proposalId ID of the slash proposal
|
|
17
|
+
/// @param proof ABI encoded proof data supporting the slash
|
|
18
|
+
/// @return success Whether the proof was successfully verified
|
|
19
|
+
function verify(
|
|
20
|
+
uint256 proposalId,
|
|
21
|
+
bytes memory proof
|
|
22
|
+
) external view returns (bool success);
|
|
23
|
+
}
|