@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
|
@@ -1,117 +0,0 @@
|
|
|
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
|
-
import { IRegistryFilter } from "../interfaces/IRegistryFilter.sol";
|
|
9
|
-
import {
|
|
10
|
-
OwnableUpgradeable
|
|
11
|
-
} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
12
|
-
|
|
13
|
-
interface IRegistry {
|
|
14
|
-
function publishCommittee(
|
|
15
|
-
uint256 e3Id,
|
|
16
|
-
address[] calldata ciphernodes,
|
|
17
|
-
bytes calldata publicKey
|
|
18
|
-
) external;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
contract MockNaiveRegistryFilter is IRegistryFilter, OwnableUpgradeable {
|
|
22
|
-
struct Committee {
|
|
23
|
-
address[] nodes;
|
|
24
|
-
uint32[2] threshold;
|
|
25
|
-
bytes publicKey;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
////////////////////////////////////////////////////////////
|
|
29
|
-
// //
|
|
30
|
-
// Storage Variables //
|
|
31
|
-
// //
|
|
32
|
-
////////////////////////////////////////////////////////////
|
|
33
|
-
|
|
34
|
-
address public registry;
|
|
35
|
-
|
|
36
|
-
mapping(uint256 e3 => Committee committee) public committees;
|
|
37
|
-
|
|
38
|
-
////////////////////////////////////////////////////////////
|
|
39
|
-
// //
|
|
40
|
-
// Errors //
|
|
41
|
-
// //
|
|
42
|
-
////////////////////////////////////////////////////////////
|
|
43
|
-
|
|
44
|
-
error CommitteeAlreadyExists();
|
|
45
|
-
error CommitteeAlreadyPublished();
|
|
46
|
-
error CommitteeDoesNotExist();
|
|
47
|
-
error CommitteeNotPublished();
|
|
48
|
-
error OnlyRegistry();
|
|
49
|
-
|
|
50
|
-
////////////////////////////////////////////////////////////
|
|
51
|
-
// //
|
|
52
|
-
// Modifiers //
|
|
53
|
-
// //
|
|
54
|
-
////////////////////////////////////////////////////////////
|
|
55
|
-
|
|
56
|
-
modifier onlyRegistry() {
|
|
57
|
-
require(msg.sender == registry, OnlyRegistry());
|
|
58
|
-
_;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
////////////////////////////////////////////////////////////
|
|
62
|
-
// //
|
|
63
|
-
// Initialization //
|
|
64
|
-
// //
|
|
65
|
-
////////////////////////////////////////////////////////////
|
|
66
|
-
|
|
67
|
-
constructor(address _owner, address _enclave) {
|
|
68
|
-
initialize(_owner, _enclave);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function initialize(address _owner, address _registry) public initializer {
|
|
72
|
-
__Ownable_init(msg.sender);
|
|
73
|
-
setRegistry(_registry);
|
|
74
|
-
if (_owner != owner()) transferOwnership(_owner);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
////////////////////////////////////////////////////////////
|
|
78
|
-
// //
|
|
79
|
-
// Core Entrypoints //
|
|
80
|
-
// //
|
|
81
|
-
////////////////////////////////////////////////////////////
|
|
82
|
-
|
|
83
|
-
function requestCommittee(
|
|
84
|
-
uint256 e3Id,
|
|
85
|
-
uint32[2] calldata threshold
|
|
86
|
-
) external onlyRegistry returns (bool success) {
|
|
87
|
-
Committee storage committee = committees[e3Id];
|
|
88
|
-
require(committee.threshold.length == 0, CommitteeAlreadyExists());
|
|
89
|
-
committee.threshold = threshold;
|
|
90
|
-
success = true;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function publishCommittee(
|
|
94
|
-
uint256 e3Id,
|
|
95
|
-
address[] memory nodes,
|
|
96
|
-
bytes memory publicKey
|
|
97
|
-
) external onlyOwner {
|
|
98
|
-
Committee storage committee = committees[e3Id];
|
|
99
|
-
require(
|
|
100
|
-
keccak256(committee.publicKey) == keccak256(hex""),
|
|
101
|
-
CommitteeAlreadyPublished()
|
|
102
|
-
);
|
|
103
|
-
committee.nodes = nodes;
|
|
104
|
-
committee.publicKey = publicKey;
|
|
105
|
-
IRegistry(registry).publishCommittee(e3Id, nodes, publicKey);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
////////////////////////////////////////////////////////////
|
|
109
|
-
// //
|
|
110
|
-
// Set Functions //
|
|
111
|
-
// //
|
|
112
|
-
////////////////////////////////////////////////////////////
|
|
113
|
-
|
|
114
|
-
function setRegistry(address _registry) public onlyOwner {
|
|
115
|
-
registry = _registry;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mockInputValidator.d.ts","sourceRoot":"","sources":["../../../ignition/modules/mockInputValidator.ts"],"names":[],"mappings":"wBAaM,GAAG;AAJT,wBAIU"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naiveRegistryFilter.d.ts","sourceRoot":"","sources":["../../../ignition/modules/naiveRegistryFilter.ts"],"names":[],"mappings":"wBAmBM,GAAG;AAVT,wBAUU"}
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
|
-
import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";
|
|
8
|
-
export default buildModule("NaiveRegistryFilter", (m) => {
|
|
9
|
-
const ciphernodeRegistryAddress = m.getParameter("ciphernodeRegistryAddress");
|
|
10
|
-
const owner = m.getParameter("owner");
|
|
11
|
-
const naiveRegistryFilter = m.contract("NaiveRegistryFilter", [
|
|
12
|
-
owner,
|
|
13
|
-
ciphernodeRegistryAddress,
|
|
14
|
-
]);
|
|
15
|
-
return { naiveRegistryFilter };
|
|
16
|
-
});
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
|
|
2
|
-
import { MockInputValidator } from "../../types";
|
|
3
|
-
export declare const deployAndSaveMockInputValidator: (hre: HardhatRuntimeEnvironment) => Promise<{
|
|
4
|
-
inputValidator: MockInputValidator;
|
|
5
|
-
}>;
|
|
6
|
-
//# sourceMappingURL=mockInputValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mockInputValidator.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/mockInputValidator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EACL,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,+BAA+B,GAC1C,KAAK,yBAAyB,KAC7B,OAAO,CAAC;IACT,cAAc,EAAE,kBAAkB,CAAC;CACpC,CA0BA,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import MockInputValidatorModule from "../../ignition/modules/mockInputValidator";
|
|
2
|
-
import { MockInputValidator__factory as MockInputValidatorFactory, } from "../../types";
|
|
3
|
-
import { storeDeploymentArgs } from "../utils";
|
|
4
|
-
export const deployAndSaveMockInputValidator = async (hre) => {
|
|
5
|
-
const { ignition, ethers } = await hre.network.connect();
|
|
6
|
-
const [signer] = await ethers.getSigners();
|
|
7
|
-
const inputValidator = await ignition.deploy(MockInputValidatorModule);
|
|
8
|
-
await inputValidator.mockInputValidator.waitForDeployment();
|
|
9
|
-
const inputValidatorAddress = await inputValidator.mockInputValidator.getAddress();
|
|
10
|
-
const chain = hre.globalOptions.network;
|
|
11
|
-
const blockNumber = await ethers.provider.getBlockNumber();
|
|
12
|
-
storeDeploymentArgs({
|
|
13
|
-
blockNumber,
|
|
14
|
-
address: inputValidatorAddress,
|
|
15
|
-
}, "MockInputValidator", chain);
|
|
16
|
-
const inputValidatorContract = MockInputValidatorFactory.connect(inputValidatorAddress, signer);
|
|
17
|
-
return { inputValidator: inputValidatorContract };
|
|
18
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
|
|
2
|
-
import { NaiveRegistryFilter } from "../../types";
|
|
3
|
-
export interface NaiveRegistryFilterArgs {
|
|
4
|
-
ciphernodeRegistryAddress?: string;
|
|
5
|
-
owner?: string;
|
|
6
|
-
hre: HardhatRuntimeEnvironment;
|
|
7
|
-
}
|
|
8
|
-
export declare const deployAndSaveNaiveRegistryFilter: ({ ciphernodeRegistryAddress, owner, hre, }: NaiveRegistryFilterArgs) => Promise<{
|
|
9
|
-
naiveRegistryFilter: NaiveRegistryFilter;
|
|
10
|
-
}>;
|
|
11
|
-
//# sourceMappingURL=naiveRegistryFilter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"naiveRegistryFilter.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/naiveRegistryFilter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EACL,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,uBAAuB;IACtC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,yBAAyB,CAAC;CAChC;AAED,eAAO,MAAM,gCAAgC,GAAU,4CAIpD,uBAAuB,KAAG,OAAO,CAAC;IACnC,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CA4DA,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import NaiveRegistryFilterModule from "../../ignition/modules/naiveRegistryFilter";
|
|
2
|
-
import { NaiveRegistryFilter__factory as NaiveRegistryFilterFactory, } from "../../types";
|
|
3
|
-
import { readDeploymentArgs, storeDeploymentArgs } from "../utils";
|
|
4
|
-
export const deployAndSaveNaiveRegistryFilter = async ({ ciphernodeRegistryAddress, owner, hre, }) => {
|
|
5
|
-
const { ignition, ethers } = await hre.network.connect();
|
|
6
|
-
const [signer] = await ethers.getSigners();
|
|
7
|
-
const chain = hre.globalOptions.network;
|
|
8
|
-
const preDeployedArgs = readDeploymentArgs("NaiveRegistryFilter", chain);
|
|
9
|
-
if (!ciphernodeRegistryAddress ||
|
|
10
|
-
!owner ||
|
|
11
|
-
(preDeployedArgs?.constructorArgs?.ciphernodeRegistryAddress ===
|
|
12
|
-
ciphernodeRegistryAddress &&
|
|
13
|
-
preDeployedArgs?.constructorArgs?.owner === owner)) {
|
|
14
|
-
if (!preDeployedArgs?.address) {
|
|
15
|
-
throw new Error("NaiveRegistryFilter address not found, it must be deployed first");
|
|
16
|
-
}
|
|
17
|
-
const naiveRegistryFilterContract = NaiveRegistryFilterFactory.connect(preDeployedArgs.address, signer);
|
|
18
|
-
return { naiveRegistryFilter: naiveRegistryFilterContract };
|
|
19
|
-
}
|
|
20
|
-
const naiveRegistryFilter = await ignition.deploy(NaiveRegistryFilterModule, {
|
|
21
|
-
parameters: {
|
|
22
|
-
NaiveRegistryFilter: {
|
|
23
|
-
ciphernodeRegistryAddress,
|
|
24
|
-
owner,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
await naiveRegistryFilter.naiveRegistryFilter.waitForDeployment();
|
|
29
|
-
const naiveRegistryFilterAddress = await naiveRegistryFilter.naiveRegistryFilter.getAddress();
|
|
30
|
-
const blockNumber = await ethers.provider.getBlockNumber();
|
|
31
|
-
storeDeploymentArgs({
|
|
32
|
-
constructorArgs: {
|
|
33
|
-
ciphernodeRegistryAddress: ciphernodeRegistryAddress,
|
|
34
|
-
owner,
|
|
35
|
-
},
|
|
36
|
-
blockNumber,
|
|
37
|
-
address: naiveRegistryFilterAddress,
|
|
38
|
-
}, "NaiveRegistryFilter", chain);
|
|
39
|
-
const naiveRegistryFilterContract = NaiveRegistryFilterFactory.connect(naiveRegistryFilterAddress, signer);
|
|
40
|
-
return { naiveRegistryFilter: naiveRegistryFilterContract };
|
|
41
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CiphernodeRegistryOwnable.spec.d.ts","sourceRoot":"","sources":["../../../test/CiphernodeRegistry/CiphernodeRegistryOwnable.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,279 +0,0 @@
|
|
|
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
|
-
import { LeanIMT } from "@zk-kit/lean-imt";
|
|
7
|
-
import { expect } from "chai";
|
|
8
|
-
import { network } from "hardhat";
|
|
9
|
-
import { poseidon2 } from "poseidon-lite";
|
|
10
|
-
import CiphernodeRegistryModule from "../../ignition/modules/ciphernodeRegistry";
|
|
11
|
-
import NaiveRegistryFilterModule from "../../ignition/modules/naiveRegistryFilter";
|
|
12
|
-
import { CiphernodeRegistryOwnable__factory as CiphernodeRegistryFactory, NaiveRegistryFilter__factory as NaiveRegistryFilterFactory, } from "../../types";
|
|
13
|
-
const AddressOne = "0x0000000000000000000000000000000000000001";
|
|
14
|
-
const AddressTwo = "0x0000000000000000000000000000000000000002";
|
|
15
|
-
const AddressThree = "0x0000000000000000000000000000000000000003";
|
|
16
|
-
const { ethers, networkHelpers, ignition } = await network.connect();
|
|
17
|
-
const { loadFixture } = networkHelpers;
|
|
18
|
-
const data = "0xda7a";
|
|
19
|
-
const dataHash = ethers.keccak256(data);
|
|
20
|
-
// Hash function used to compute the tree nodes.
|
|
21
|
-
const hash = (a, b) => poseidon2([a, b]);
|
|
22
|
-
describe("CiphernodeRegistryOwnable", function () {
|
|
23
|
-
async function setup() {
|
|
24
|
-
const [owner, notTheOwner] = await ethers.getSigners();
|
|
25
|
-
const registryContract = await ignition.deploy(CiphernodeRegistryModule, {
|
|
26
|
-
parameters: {
|
|
27
|
-
CiphernodeRegistry: {
|
|
28
|
-
enclaveAddress: await owner.getAddress(),
|
|
29
|
-
owner: await owner.getAddress(),
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
const filterContract = await ignition.deploy(NaiveRegistryFilterModule, {
|
|
34
|
-
parameters: {
|
|
35
|
-
NaiveRegistryFilter: {
|
|
36
|
-
owner: await owner.getAddress(),
|
|
37
|
-
ciphernodeRegistryAddress: await registryContract.cipherNodeRegistry.getAddress(),
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
const registry = CiphernodeRegistryFactory.connect(await registryContract.cipherNodeRegistry.getAddress(), owner);
|
|
42
|
-
const filter = NaiveRegistryFilterFactory.connect(await filterContract.naiveRegistryFilter.getAddress(), owner);
|
|
43
|
-
const tree = new LeanIMT(hash);
|
|
44
|
-
await registry.addCiphernode(AddressOne);
|
|
45
|
-
tree.insert(BigInt(AddressOne));
|
|
46
|
-
await registry.addCiphernode(AddressTwo);
|
|
47
|
-
tree.insert(BigInt(AddressTwo));
|
|
48
|
-
return {
|
|
49
|
-
owner,
|
|
50
|
-
notTheOwner,
|
|
51
|
-
registry,
|
|
52
|
-
filter,
|
|
53
|
-
tree,
|
|
54
|
-
request: {
|
|
55
|
-
e3Id: 1,
|
|
56
|
-
filter: await filter.getAddress(),
|
|
57
|
-
threshold: [2, 2],
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
describe("constructor / initialize()", function () {
|
|
62
|
-
it("correctly sets `_owner` and `enclave` ", async function () {
|
|
63
|
-
const poseidonFactory = await ethers.getContractFactory("PoseidonT3");
|
|
64
|
-
const poseidonDeployment = await poseidonFactory.deploy();
|
|
65
|
-
const [deployer] = await ethers.getSigners();
|
|
66
|
-
if (!deployer)
|
|
67
|
-
throw new Error("Bad getSigners() output");
|
|
68
|
-
const ciphernodeRegistryFactory = await ethers.getContractFactory("CiphernodeRegistryOwnable", {
|
|
69
|
-
libraries: {
|
|
70
|
-
PoseidonT3: await poseidonDeployment.getAddress(),
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
const ciphernodeRegistry = await ciphernodeRegistryFactory.deploy(deployer.address, AddressTwo);
|
|
74
|
-
expect(await ciphernodeRegistry.owner()).to.equal(deployer.address);
|
|
75
|
-
expect(await ciphernodeRegistry.enclave()).to.equal(AddressTwo);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe("requestCommittee()", function () {
|
|
79
|
-
it("reverts if committee has already been requested for given e3Id", async function () {
|
|
80
|
-
const { registry, request } = await loadFixture(setup);
|
|
81
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
82
|
-
await expect(registry.requestCommittee(request.e3Id, request.filter, request.threshold)).to.be.revertedWithCustomError(registry, "CommitteeAlreadyRequested");
|
|
83
|
-
});
|
|
84
|
-
it("stores the registry filter for the given e3Id", async function () {
|
|
85
|
-
const { registry, request } = await loadFixture(setup);
|
|
86
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
87
|
-
expect(await registry.getFilter(request.e3Id)).to.equal(request.filter);
|
|
88
|
-
});
|
|
89
|
-
it("stores the root of the ciphernode registry at the time of the request", async function () {
|
|
90
|
-
const { registry, request } = await loadFixture(setup);
|
|
91
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
92
|
-
expect(await registry.rootAt(request.e3Id)).to.equal(await registry.root());
|
|
93
|
-
});
|
|
94
|
-
it("requests a committee from the given filter", async function () {
|
|
95
|
-
const { registry, request } = await loadFixture(setup);
|
|
96
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
97
|
-
expect(await registry.getFilter(request.e3Id)).to.equal(request.filter);
|
|
98
|
-
});
|
|
99
|
-
it("emits a CommitteeRequested event", async function () {
|
|
100
|
-
const { registry, request } = await loadFixture(setup);
|
|
101
|
-
await expect(registry.requestCommittee(request.e3Id, request.filter, request.threshold))
|
|
102
|
-
.to.emit(registry, "CommitteeRequested")
|
|
103
|
-
.withArgs(request.e3Id, request.filter, request.threshold);
|
|
104
|
-
});
|
|
105
|
-
it("reverts if filter.requestCommittee() fails", async function () {
|
|
106
|
-
const { owner, registry, filter, request } = await loadFixture(setup);
|
|
107
|
-
await filter.setRegistry(await owner.getAddress());
|
|
108
|
-
await filter.requestCommittee(request.e3Id, request.threshold);
|
|
109
|
-
await filter.setRegistry(await registry.getAddress());
|
|
110
|
-
await expect(registry.requestCommittee(request.e3Id, request.filter, request.threshold)).to.be.revertedWithCustomError(filter, "CommitteeAlreadyExists");
|
|
111
|
-
});
|
|
112
|
-
it("returns true if the request is successful", async function () {
|
|
113
|
-
const { registry, request } = await loadFixture(setup);
|
|
114
|
-
expect(await registry.requestCommittee.staticCall(request.e3Id, request.filter, request.threshold)).to.be.true;
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
describe("publishCommittee()", function () {
|
|
118
|
-
it("reverts if the caller is not the filter for the given e3Id", async function () {
|
|
119
|
-
const { registry, request } = await loadFixture(setup);
|
|
120
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
121
|
-
await expect(registry.publishCommittee(request.e3Id, "0xc0de", data)).to.be.revertedWithCustomError(registry, "OnlyFilter");
|
|
122
|
-
});
|
|
123
|
-
it("stores the public key of the committee", async function () {
|
|
124
|
-
const { filter, registry, request } = await loadFixture(setup);
|
|
125
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
126
|
-
await filter.publishCommittee(request.e3Id, [AddressOne, AddressTwo], data);
|
|
127
|
-
expect(await registry.committeePublicKey(request.e3Id)).to.equal(dataHash);
|
|
128
|
-
});
|
|
129
|
-
it("emits a CommitteePublished event", async function () {
|
|
130
|
-
const { filter, registry, request } = await loadFixture(setup);
|
|
131
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
132
|
-
await expect(await filter.publishCommittee(request.e3Id, [AddressOne, AddressTwo], data))
|
|
133
|
-
.to.emit(registry, "CommitteePublished")
|
|
134
|
-
.withArgs(request.e3Id, data);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
describe("addCiphernode()", function () {
|
|
138
|
-
it("reverts if the caller is not the owner", async function () {
|
|
139
|
-
const { registry, notTheOwner } = await loadFixture(setup);
|
|
140
|
-
await expect(registry.connect(notTheOwner).addCiphernode(AddressThree))
|
|
141
|
-
.to.be.revertedWithCustomError(registry, "OwnableUnauthorizedAccount")
|
|
142
|
-
.withArgs(await notTheOwner.getAddress());
|
|
143
|
-
});
|
|
144
|
-
it("adds the ciphernode to the registry", async function () {
|
|
145
|
-
const { registry } = await loadFixture(setup);
|
|
146
|
-
expect(await registry.addCiphernode(AddressThree));
|
|
147
|
-
expect(await registry.isCiphernodeEligible(AddressThree)).to.be.true;
|
|
148
|
-
});
|
|
149
|
-
it("increments numCiphernodes", async function () {
|
|
150
|
-
const { registry } = await loadFixture(setup);
|
|
151
|
-
const numCiphernodes = await registry.numCiphernodes();
|
|
152
|
-
expect(await registry.addCiphernode(AddressThree));
|
|
153
|
-
expect(await registry.numCiphernodes()).to.equal(numCiphernodes + BigInt(1));
|
|
154
|
-
});
|
|
155
|
-
it("emits a CiphernodeAdded event", async function () {
|
|
156
|
-
const { registry } = await loadFixture(setup);
|
|
157
|
-
const treeSize = await registry.treeSize();
|
|
158
|
-
const numCiphernodes = await registry.numCiphernodes();
|
|
159
|
-
await expect(await registry.addCiphernode(AddressThree))
|
|
160
|
-
.to.emit(registry, "CiphernodeAdded")
|
|
161
|
-
.withArgs(AddressThree, treeSize, numCiphernodes + BigInt(1), treeSize + BigInt(1));
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
describe("removeCiphernode()", function () {
|
|
165
|
-
it("reverts if the caller is not the owner", async function () {
|
|
166
|
-
const { registry, notTheOwner } = await loadFixture(setup);
|
|
167
|
-
await expect(registry.connect(notTheOwner).removeCiphernode(AddressOne, []))
|
|
168
|
-
.to.be.revertedWithCustomError(registry, "OwnableUnauthorizedAccount")
|
|
169
|
-
.withArgs(await notTheOwner.getAddress());
|
|
170
|
-
});
|
|
171
|
-
it("removes the ciphernode from the registry", async function () {
|
|
172
|
-
const { registry } = await loadFixture(setup);
|
|
173
|
-
const tree = new LeanIMT(hash);
|
|
174
|
-
tree.insert(BigInt(AddressOne));
|
|
175
|
-
tree.insert(BigInt(AddressTwo));
|
|
176
|
-
const index = tree.indexOf(BigInt(AddressOne));
|
|
177
|
-
const proof = tree.generateProof(index);
|
|
178
|
-
tree.update(index, BigInt(0));
|
|
179
|
-
expect(await registry.isEnabled(AddressOne)).to.be.true;
|
|
180
|
-
expect(await registry.removeCiphernode(AddressOne, proof.siblings));
|
|
181
|
-
expect(await registry.isEnabled(AddressOne)).to.be.false;
|
|
182
|
-
expect(await registry.root()).to.equal(tree.root);
|
|
183
|
-
});
|
|
184
|
-
it("decrements numCiphernodes", async function () {
|
|
185
|
-
const { registry, tree } = await loadFixture(setup);
|
|
186
|
-
const numCiphernodes = await registry.numCiphernodes();
|
|
187
|
-
const index = tree.indexOf(BigInt(AddressOne));
|
|
188
|
-
const proof = tree.generateProof(index);
|
|
189
|
-
expect(await registry.removeCiphernode(AddressOne, proof.siblings));
|
|
190
|
-
expect(await registry.numCiphernodes()).to.equal(numCiphernodes - BigInt(1));
|
|
191
|
-
});
|
|
192
|
-
it("emits a CiphernodeRemoved event", async function () {
|
|
193
|
-
const { registry, tree } = await loadFixture(setup);
|
|
194
|
-
const numCiphernodes = await registry.numCiphernodes();
|
|
195
|
-
const size = await registry.treeSize();
|
|
196
|
-
const index = tree.indexOf(BigInt(AddressOne));
|
|
197
|
-
const proof = tree.generateProof(index);
|
|
198
|
-
await expect(registry.removeCiphernode(AddressOne, proof.siblings))
|
|
199
|
-
.to.emit(registry, "CiphernodeRemoved")
|
|
200
|
-
.withArgs(AddressOne, index, numCiphernodes - BigInt(1), size);
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
describe("setEnclave()", function () {
|
|
204
|
-
it("reverts if the caller is not the owner", async function () {
|
|
205
|
-
const { registry, notTheOwner } = await loadFixture(setup);
|
|
206
|
-
await expect(registry.connect(notTheOwner).setEnclave(AddressThree)).to.be.revertedWithCustomError(registry, "OwnableUnauthorizedAccount");
|
|
207
|
-
});
|
|
208
|
-
it("sets the enclave address", async function () {
|
|
209
|
-
const { registry } = await loadFixture(setup);
|
|
210
|
-
expect(await registry.setEnclave(AddressThree));
|
|
211
|
-
expect(await registry.enclave()).to.equal(AddressThree);
|
|
212
|
-
});
|
|
213
|
-
it("emits an EnclaveSet event", async function () {
|
|
214
|
-
const { registry } = await loadFixture(setup);
|
|
215
|
-
await expect(await registry.setEnclave(AddressThree))
|
|
216
|
-
.to.emit(registry, "EnclaveSet")
|
|
217
|
-
.withArgs(AddressThree);
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
describe("committeePublicKey()", function () {
|
|
221
|
-
it("returns the public key of the committee for the given e3Id", async function () {
|
|
222
|
-
const { filter, registry, request } = await loadFixture(setup);
|
|
223
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
224
|
-
await filter.publishCommittee(request.e3Id, [AddressOne, AddressTwo], data);
|
|
225
|
-
expect(await registry.committeePublicKey(request.e3Id)).to.equal(dataHash);
|
|
226
|
-
});
|
|
227
|
-
it("reverts if the committee has not been published", async function () {
|
|
228
|
-
const { registry, request } = await loadFixture(setup);
|
|
229
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
230
|
-
await expect(registry.committeePublicKey(request.e3Id)).to.be.revertedWithCustomError(registry, "CommitteeNotPublished");
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
describe("isCiphernodeEligible()", function () {
|
|
234
|
-
it("returns true if the ciphernode is in the registry", async function () {
|
|
235
|
-
const { registry } = await loadFixture(setup);
|
|
236
|
-
expect(await registry.isCiphernodeEligible(AddressOne)).to.be.true;
|
|
237
|
-
});
|
|
238
|
-
it("returns false if the ciphernode is not in the registry", async function () {
|
|
239
|
-
const { registry } = await loadFixture(setup);
|
|
240
|
-
expect(await registry.isCiphernodeEligible(AddressThree)).to.be.false;
|
|
241
|
-
});
|
|
242
|
-
});
|
|
243
|
-
describe("isEnabled()", function () {
|
|
244
|
-
it("returns true if the ciphernode is currently enabled", async function () {
|
|
245
|
-
const { registry } = await loadFixture(setup);
|
|
246
|
-
expect(await registry.isEnabled(AddressOne)).to.be.true;
|
|
247
|
-
});
|
|
248
|
-
it("returns false if the ciphernode is not currently enabled", async function () {
|
|
249
|
-
const { registry } = await loadFixture(setup);
|
|
250
|
-
expect(await registry.isEnabled(AddressThree)).to.be.false;
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
describe("root()", function () {
|
|
254
|
-
it("returns the root of the ciphernode registry merkle tree", async function () {
|
|
255
|
-
const { registry, tree } = await loadFixture(setup);
|
|
256
|
-
expect(await registry.root()).to.equal(tree.root);
|
|
257
|
-
});
|
|
258
|
-
});
|
|
259
|
-
describe("rootAt()", function () {
|
|
260
|
-
it("returns the root of the ciphernode registry merkle tree at the given e3Id", async function () {
|
|
261
|
-
const { registry, tree, request } = await loadFixture(setup);
|
|
262
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
263
|
-
expect(await registry.rootAt(request.e3Id)).to.equal(tree.root);
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
describe("getFilter()", function () {
|
|
267
|
-
it("returns the registry filter for the given e3Id", async function () {
|
|
268
|
-
const { registry, request } = await loadFixture(setup);
|
|
269
|
-
await registry.requestCommittee(request.e3Id, request.filter, request.threshold);
|
|
270
|
-
expect(await registry.getFilter(request.e3Id)).to.equal(request.filter);
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
describe("treeSize()", function () {
|
|
274
|
-
it("returns the size of the ciphernode registry merkle tree", async function () {
|
|
275
|
-
const { registry, tree } = await loadFixture(setup);
|
|
276
|
-
expect(await registry.treeSize()).to.equal(tree.size);
|
|
277
|
-
});
|
|
278
|
-
});
|
|
279
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NaiveRegistryFilter.spec.d.ts","sourceRoot":"","sources":["../../../test/CiphernodeRegistry/NaiveRegistryFilter.spec.ts"],"names":[],"mappings":""}
|