@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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import poseidon from "poseidon-solidity";
|
|
2
|
+
import { storeDeploymentArgs } from "../utils";
|
|
3
|
+
/**
|
|
4
|
+
* Deploy and save PoseidonT3 contract behind a proxy
|
|
5
|
+
* @param param0
|
|
6
|
+
*/
|
|
7
|
+
export const deployAndSavePoseidonT3 = async ({ hre, }) => {
|
|
8
|
+
const { ethers } = await hre.network.connect();
|
|
9
|
+
const chain = hre.globalOptions.network;
|
|
10
|
+
// First check if the proxy exists
|
|
11
|
+
if ((await ethers.provider.getCode(poseidon.proxy.address)) === "0x") {
|
|
12
|
+
// probably on the hardhat network
|
|
13
|
+
// fund the keyless account
|
|
14
|
+
const [sender] = await ethers.getSigners();
|
|
15
|
+
let tx = await sender.sendTransaction({
|
|
16
|
+
to: poseidon.proxy.from,
|
|
17
|
+
value: poseidon.proxy.gas,
|
|
18
|
+
});
|
|
19
|
+
await tx.wait();
|
|
20
|
+
// then send the presigned transaction deploying the proxy
|
|
21
|
+
tx = await ethers.provider.broadcastTransaction(poseidon.proxy.tx);
|
|
22
|
+
await tx.wait();
|
|
23
|
+
console.log(`Proxy deployed to: ${poseidon.proxy.address}`);
|
|
24
|
+
}
|
|
25
|
+
// Then deploy the hasher, if needed
|
|
26
|
+
if ((await ethers.provider.getCode(poseidon.PoseidonT3.address)) === "0x") {
|
|
27
|
+
const [sender] = await ethers.getSigners();
|
|
28
|
+
let tx = await sender.sendTransaction({
|
|
29
|
+
to: poseidon.proxy.address,
|
|
30
|
+
data: poseidon.PoseidonT3.data,
|
|
31
|
+
});
|
|
32
|
+
await tx.wait();
|
|
33
|
+
console.log(`PoseidonT3 deployed to: ${poseidon.PoseidonT3.address}`);
|
|
34
|
+
}
|
|
35
|
+
const blockNumber = await ethers.provider.getBlockNumber();
|
|
36
|
+
storeDeploymentArgs({
|
|
37
|
+
blockNumber,
|
|
38
|
+
address: poseidon.PoseidonT3.address,
|
|
39
|
+
}, "PoseidonT3", chain);
|
|
40
|
+
return poseidon.PoseidonT3.address;
|
|
41
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { HardhatRuntimeEnvironment } from "hardhat/types/hre";
|
|
2
|
+
import { SlashingManager } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* The arguments for the deployAndSaveSlashingManager function
|
|
5
|
+
*/
|
|
6
|
+
export interface SlashingManagerArgs {
|
|
7
|
+
admin?: string;
|
|
8
|
+
bondingRegistry?: string;
|
|
9
|
+
hre: HardhatRuntimeEnvironment;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Deploys the SlashingManager contract and saves the deployment arguments
|
|
13
|
+
* @param param0 - The deployment arguments
|
|
14
|
+
* @returns The deployed SlashingManager contract
|
|
15
|
+
*/
|
|
16
|
+
export declare const deployAndSaveSlashingManager: ({ admin, bondingRegistry, hre, }: SlashingManagerArgs) => Promise<{
|
|
17
|
+
slashingManager: SlashingManager;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=slashingManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slashingManager.d.ts","sourceRoot":"","sources":["../../../scripts/deployAndSave/slashingManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,eAAe,EAEhB,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,yBAAyB,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAU,kCAIhD,mBAAmB,KAAG,OAAO,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;CAClC,CAyDA,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { SlashingManager__factory as SlashingManagerFactory, } from "../../types";
|
|
2
|
+
import { readDeploymentArgs, storeDeploymentArgs } from "../utils";
|
|
3
|
+
/**
|
|
4
|
+
* Deploys the SlashingManager contract and saves the deployment arguments
|
|
5
|
+
* @param param0 - The deployment arguments
|
|
6
|
+
* @returns The deployed SlashingManager contract
|
|
7
|
+
*/
|
|
8
|
+
export const deployAndSaveSlashingManager = async ({ admin, bondingRegistry, hre, }) => {
|
|
9
|
+
const { ethers } = await hre.network.connect();
|
|
10
|
+
const [signer] = await ethers.getSigners();
|
|
11
|
+
const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
|
|
12
|
+
const preDeployedArgs = readDeploymentArgs("SlashingManager", chain);
|
|
13
|
+
if (!admin ||
|
|
14
|
+
!bondingRegistry ||
|
|
15
|
+
(preDeployedArgs?.constructorArgs?.admin === admin &&
|
|
16
|
+
preDeployedArgs?.constructorArgs?.bondingRegistry === bondingRegistry)) {
|
|
17
|
+
if (!preDeployedArgs?.address) {
|
|
18
|
+
throw new Error("SlashingManager address not found, it must be deployed first");
|
|
19
|
+
}
|
|
20
|
+
const slashingManagerContract = SlashingManagerFactory.connect(preDeployedArgs.address, signer);
|
|
21
|
+
return { slashingManager: slashingManagerContract };
|
|
22
|
+
}
|
|
23
|
+
const slashingManagerFactory = await ethers.getContractFactory("SlashingManager");
|
|
24
|
+
const slashingManager = await slashingManagerFactory.deploy(admin, bondingRegistry);
|
|
25
|
+
await slashingManager.waitForDeployment();
|
|
26
|
+
const blockNumber = await ethers.provider.getBlockNumber();
|
|
27
|
+
const slashingManagerAddress = await slashingManager.getAddress();
|
|
28
|
+
storeDeploymentArgs({
|
|
29
|
+
constructorArgs: {
|
|
30
|
+
admin,
|
|
31
|
+
bondingRegistry,
|
|
32
|
+
},
|
|
33
|
+
blockNumber,
|
|
34
|
+
address: slashingManagerAddress,
|
|
35
|
+
}, "SlashingManager", chain);
|
|
36
|
+
const slashingManagerContract = SlashingManagerFactory.connect(slashingManagerAddress, signer);
|
|
37
|
+
return { slashingManager: slashingManagerContract };
|
|
38
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"AAkBA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,YAAY,OAAO,kBAyLtD,CAAC"}
|
|
@@ -4,15 +4,24 @@
|
|
|
4
4
|
// without even the implied warranty of MERCHANTABILITY
|
|
5
5
|
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
6
|
import hre from "hardhat";
|
|
7
|
+
import { autoCleanForLocalhost } from "./cleanIgnitionState";
|
|
8
|
+
import { deployAndSaveBondingRegistry } from "./deployAndSave/bondingRegistry";
|
|
7
9
|
import { deployAndSaveCiphernodeRegistryOwnable } from "./deployAndSave/ciphernodeRegistryOwnable";
|
|
8
10
|
import { deployAndSaveEnclave } from "./deployAndSave/enclave";
|
|
9
|
-
import {
|
|
11
|
+
import { deployAndSaveEnclaveTicketToken } from "./deployAndSave/enclaveTicketToken";
|
|
12
|
+
import { deployAndSaveEnclaveToken } from "./deployAndSave/enclaveToken";
|
|
13
|
+
import { deployAndSaveMockStableToken } from "./deployAndSave/mockStableToken";
|
|
14
|
+
import { deployAndSavePoseidonT3 } from "./deployAndSave/poseidonT3";
|
|
15
|
+
import { deployAndSaveSlashingManager } from "./deployAndSave/slashingManager";
|
|
10
16
|
import { deployMocks } from "./deployMocks";
|
|
11
17
|
/**
|
|
12
18
|
* Deploys the Enclave contracts
|
|
13
19
|
*/
|
|
14
20
|
export const deployEnclave = async (withMocks) => {
|
|
15
21
|
const { ethers } = await hre.network.connect();
|
|
22
|
+
// Auto-clean state for local networks to prevent stale state issues
|
|
23
|
+
const networkName = hre.globalOptions.network ?? "localhost";
|
|
24
|
+
await autoCleanForLocalhost(networkName);
|
|
16
25
|
const [owner] = await ethers.getSigners();
|
|
17
26
|
const ownerAddress = await owner.getAddress();
|
|
18
27
|
const polynomial_degree = ethers.toBigInt(2048);
|
|
@@ -20,41 +29,105 @@ export const deployEnclave = async (withMocks) => {
|
|
|
20
29
|
const moduli = [ethers.toBigInt("18014398492704769")];
|
|
21
30
|
const encoded = ethers.AbiCoder.defaultAbiCoder().encode(["uint256", "uint256", "uint256[]"], [polynomial_degree, plaintext_modulus, moduli]);
|
|
22
31
|
const THIRTY_DAYS_IN_SECONDS = 60 * 60 * 24 * 30;
|
|
32
|
+
const SORTITION_SUBMISSION_WINDOW = 10;
|
|
23
33
|
const addressOne = "0x0000000000000000000000000000000000000001";
|
|
24
|
-
const
|
|
25
|
-
|
|
34
|
+
const poseidonT3 = await deployAndSavePoseidonT3({ hre });
|
|
35
|
+
const shouldDeployMocks = process.env.DEPLOY_MOCKS === "true" || withMocks;
|
|
36
|
+
let feeTokenAddress;
|
|
37
|
+
if (shouldDeployMocks) {
|
|
38
|
+
console.log("Deploying mock Fee token...");
|
|
39
|
+
const { mockStableToken } = await deployAndSaveMockStableToken({
|
|
40
|
+
initialSupply: 1000000,
|
|
41
|
+
hre,
|
|
42
|
+
});
|
|
43
|
+
feeTokenAddress = await mockStableToken.getAddress();
|
|
44
|
+
console.log("MockFeeToken deployed to:", feeTokenAddress);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
throw new Error("Fee token address must be provided for production deployment");
|
|
48
|
+
}
|
|
49
|
+
console.log("Deploying ENCL token...");
|
|
50
|
+
const { enclaveToken } = await deployAndSaveEnclaveToken({
|
|
26
51
|
owner: ownerAddress,
|
|
27
|
-
|
|
52
|
+
hre,
|
|
53
|
+
});
|
|
54
|
+
const enclaveTokenAddress = await enclaveToken.getAddress();
|
|
55
|
+
console.log("EnclaveToken deployed to:", enclaveTokenAddress);
|
|
56
|
+
console.log("Deploying EnclaveTicketToken...");
|
|
57
|
+
const { enclaveTicketToken } = await deployAndSaveEnclaveTicketToken({
|
|
58
|
+
baseToken: feeTokenAddress,
|
|
28
59
|
registry: addressOne,
|
|
60
|
+
owner: ownerAddress,
|
|
29
61
|
hre,
|
|
30
62
|
});
|
|
31
|
-
const
|
|
32
|
-
console.log("
|
|
63
|
+
const enclaveTicketTokenAddress = await enclaveTicketToken.getAddress();
|
|
64
|
+
console.log("EnclaveTicketToken deployed to:", enclaveTicketTokenAddress);
|
|
65
|
+
console.log("Deploying SlashingManager...");
|
|
66
|
+
const { slashingManager } = await deployAndSaveSlashingManager({
|
|
67
|
+
admin: ownerAddress,
|
|
68
|
+
bondingRegistry: addressOne,
|
|
69
|
+
hre,
|
|
70
|
+
});
|
|
71
|
+
const slashingManagerAddress = await slashingManager.getAddress();
|
|
72
|
+
console.log("SlashingManager deployed to:", slashingManagerAddress);
|
|
73
|
+
console.log("Deploying BondingRegistry...");
|
|
74
|
+
const { bondingRegistry } = await deployAndSaveBondingRegistry({
|
|
75
|
+
owner: ownerAddress,
|
|
76
|
+
ticketToken: enclaveTicketTokenAddress,
|
|
77
|
+
licenseToken: enclaveTokenAddress,
|
|
78
|
+
registry: addressOne,
|
|
79
|
+
slashedFundsTreasury: ownerAddress,
|
|
80
|
+
ticketPrice: ethers.parseUnits("10", 6).toString(),
|
|
81
|
+
licenseRequiredBond: ethers.parseEther("100").toString(),
|
|
82
|
+
minTicketBalance: 1,
|
|
83
|
+
exitDelay: 7 * 24 * 60 * 60,
|
|
84
|
+
hre,
|
|
85
|
+
});
|
|
86
|
+
const bondingRegistryAddress = await bondingRegistry.getAddress();
|
|
87
|
+
console.log("BondingRegistry deployed to:", bondingRegistryAddress);
|
|
88
|
+
console.log("Deploying CiphernodeRegistry...");
|
|
33
89
|
const { ciphernodeRegistry } = await deployAndSaveCiphernodeRegistryOwnable({
|
|
34
|
-
|
|
90
|
+
poseidonT3Address: poseidonT3,
|
|
91
|
+
enclaveAddress: addressOne,
|
|
35
92
|
owner: ownerAddress,
|
|
93
|
+
submissionWindow: SORTITION_SUBMISSION_WINDOW,
|
|
36
94
|
hre,
|
|
37
95
|
});
|
|
38
96
|
const ciphernodeRegistryAddress = await ciphernodeRegistry.getAddress();
|
|
39
|
-
console.log("CiphernodeRegistry deployed to:
|
|
40
|
-
|
|
41
|
-
|
|
97
|
+
console.log("CiphernodeRegistry deployed to:", ciphernodeRegistryAddress);
|
|
98
|
+
console.log("Deploying Enclave...");
|
|
99
|
+
const { enclave } = await deployAndSaveEnclave({
|
|
100
|
+
params: [encoded],
|
|
42
101
|
owner: ownerAddress,
|
|
102
|
+
maxDuration: THIRTY_DAYS_IN_SECONDS.toString(),
|
|
103
|
+
registry: ciphernodeRegistryAddress,
|
|
104
|
+
bondingRegistry: bondingRegistryAddress,
|
|
105
|
+
feeToken: feeTokenAddress,
|
|
43
106
|
hre,
|
|
44
107
|
});
|
|
45
|
-
const
|
|
46
|
-
console.log("
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
108
|
+
const enclaveAddress = await enclave.getAddress();
|
|
109
|
+
console.log("Enclave deployed to:", enclaveAddress);
|
|
110
|
+
///////////////////////////////////////////
|
|
111
|
+
// Configure cross-contract dependencies
|
|
112
|
+
///////////////////////////////////////////
|
|
113
|
+
console.log("Configuring cross-contract dependencies...");
|
|
114
|
+
console.log("Setting Enclave address in CiphernodeRegistry...");
|
|
115
|
+
await ciphernodeRegistry.setEnclave(enclaveAddress);
|
|
116
|
+
console.log("Setting BondingRegistry address in CiphernodeRegistry...");
|
|
117
|
+
await ciphernodeRegistry.setBondingRegistry(bondingRegistryAddress);
|
|
118
|
+
console.log("Setting Submission Window in CiphernodeRegistry...");
|
|
119
|
+
console.log("SORTITION_SUBMISSION_WINDOW:", SORTITION_SUBMISSION_WINDOW);
|
|
120
|
+
await ciphernodeRegistry.setSortitionSubmissionWindow(SORTITION_SUBMISSION_WINDOW);
|
|
121
|
+
console.log("Setting BondingRegistry address in EnclaveTicketToken...");
|
|
122
|
+
await enclaveTicketToken.setRegistry(bondingRegistryAddress);
|
|
123
|
+
console.log("Setting CiphernodeRegistry address in BondingRegistry...");
|
|
124
|
+
await bondingRegistry.setRegistry(ciphernodeRegistryAddress);
|
|
125
|
+
console.log("Setting BondingRegistry address in SlashingManager...");
|
|
126
|
+
await slashingManager.setBondingRegistry(bondingRegistryAddress);
|
|
127
|
+
console.log("Setting SlashingManager address in BondingRegistry...");
|
|
128
|
+
await bondingRegistry.setSlashingManager(slashingManagerAddress);
|
|
129
|
+
console.log("Setting Enclave as reward distributor in BondingRegistry...");
|
|
130
|
+
await bondingRegistry.setRewardDistributor(enclaveAddress);
|
|
58
131
|
if (shouldDeployMocks) {
|
|
59
132
|
const { decryptionVerifierAddress, e3ProgramAddress } = await deployMocks();
|
|
60
133
|
const encryptionSchemeId = ethers.keccak256(ethers.toUtf8Bytes("fhe.rs:BFV"));
|
|
@@ -72,4 +145,17 @@ export const deployEnclave = async (withMocks) => {
|
|
|
72
145
|
await tx.wait();
|
|
73
146
|
console.log(`Successfully enabled E3 Program in Enclave contract`);
|
|
74
147
|
}
|
|
148
|
+
console.log(`
|
|
149
|
+
============================================
|
|
150
|
+
Deployment Complete!
|
|
151
|
+
============================================
|
|
152
|
+
MockFeeToken: ${feeTokenAddress}
|
|
153
|
+
EnclaveToken (ENCL): ${enclaveTokenAddress}
|
|
154
|
+
EnclaveTicketToken: ${enclaveTicketTokenAddress}
|
|
155
|
+
SlashingManager: ${slashingManagerAddress}
|
|
156
|
+
BondingRegistry: ${bondingRegistryAddress}
|
|
157
|
+
CiphernodeRegistry: ${ciphernodeRegistryAddress}
|
|
158
|
+
Enclave: ${enclaveAddress}
|
|
159
|
+
============================================
|
|
160
|
+
`);
|
|
75
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployMocks.d.ts","sourceRoot":"","sources":["../../scripts/deployMocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deployMocks.d.ts","sourceRoot":"","sources":["../../scripts/deployMocks.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,eAAe,CA+B3D,CAAC"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
import hre from "hardhat";
|
|
7
7
|
import { deployAndSaveMockComputeProvider } from "./deployAndSave/mockComputeProvider";
|
|
8
8
|
import { deployAndSaveMockDecryptionVerifier } from "./deployAndSave/mockDecryptionVerifier";
|
|
9
|
-
import { deployAndSaveMockInputValidator } from "./deployAndSave/mockInputValidator";
|
|
10
9
|
import { deployAndSaveMockProgram } from "./deployAndSave/mockProgram";
|
|
11
10
|
/**
|
|
12
11
|
* Deploys the mock contracts and returns the addresses.
|
|
@@ -14,14 +13,14 @@ import { deployAndSaveMockProgram } from "./deployAndSave/mockProgram";
|
|
|
14
13
|
* @returns The addresses of the mock contracts.
|
|
15
14
|
*/
|
|
16
15
|
export const deployMocks = async () => {
|
|
16
|
+
console.log("Deploying Compute Provider");
|
|
17
17
|
const { computeProvider } = await deployAndSaveMockComputeProvider(hre);
|
|
18
18
|
const computeProviderAddress = await computeProvider.getAddress();
|
|
19
|
+
console.log("Deploying Decryption Verifier");
|
|
19
20
|
const { decryptionVerifier } = await deployAndSaveMockDecryptionVerifier(hre);
|
|
20
21
|
const decryptionVerifierAddress = await decryptionVerifier.getAddress();
|
|
21
|
-
|
|
22
|
-
const inputValidatorAddress = await inputValidator.getAddress();
|
|
22
|
+
console.log("Deploying E3 Program");
|
|
23
23
|
const { e3Program } = await deployAndSaveMockProgram({
|
|
24
|
-
mockInputValidator: inputValidatorAddress,
|
|
25
24
|
hre,
|
|
26
25
|
});
|
|
27
26
|
const e3ProgramAddress = await e3Program.getAddress();
|
|
@@ -30,13 +29,11 @@ export const deployMocks = async () => {
|
|
|
30
29
|
----------------------------------------------------------------------
|
|
31
30
|
MockComputeProvider:${computeProviderAddress}
|
|
32
31
|
MockDecryptionVerifier:${decryptionVerifierAddress}
|
|
33
|
-
MockInputValidator:${inputValidatorAddress}
|
|
34
32
|
MockE3Program:${e3ProgramAddress}
|
|
35
33
|
`);
|
|
36
34
|
return {
|
|
37
35
|
computeProviderAddress,
|
|
38
36
|
decryptionVerifierAddress,
|
|
39
|
-
inputValidatorAddress,
|
|
40
37
|
e3ProgramAddress,
|
|
41
38
|
};
|
|
42
39
|
};
|
package/dist/scripts/index.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
export * from "./deployEnclave";
|
|
2
2
|
export * from "./deployMocks";
|
|
3
3
|
export * from "./utils";
|
|
4
|
+
export * from "./cleanIgnitionState";
|
|
5
|
+
export * from "./deployAndSave/bondingRegistry";
|
|
4
6
|
export * from "./deployAndSave/ciphernodeRegistryOwnable";
|
|
5
7
|
export * from "./deployAndSave/enclave";
|
|
6
|
-
export * from "./deployAndSave/
|
|
8
|
+
export * from "./deployAndSave/enclaveTicketToken";
|
|
9
|
+
export * from "./deployAndSave/enclaveToken";
|
|
10
|
+
export * from "./deployAndSave/mockStableToken";
|
|
11
|
+
export * from "./deployAndSave/slashingManager";
|
|
7
12
|
export * from "./deployAndSave/mockComputeProvider";
|
|
8
13
|
export * from "./deployAndSave/mockDecryptionVerifier";
|
|
9
|
-
export * from "./deployAndSave/mockInputValidator";
|
|
10
14
|
export * from "./deployAndSave/mockProgram";
|
|
15
|
+
export * from "./verify";
|
|
11
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../scripts/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC"}
|
package/dist/scripts/index.js
CHANGED
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
export * from "./deployEnclave";
|
|
7
7
|
export * from "./deployMocks";
|
|
8
8
|
export * from "./utils";
|
|
9
|
+
export * from "./cleanIgnitionState";
|
|
10
|
+
export * from "./deployAndSave/bondingRegistry";
|
|
9
11
|
export * from "./deployAndSave/ciphernodeRegistryOwnable";
|
|
10
12
|
export * from "./deployAndSave/enclave";
|
|
11
|
-
export * from "./deployAndSave/
|
|
13
|
+
export * from "./deployAndSave/enclaveTicketToken";
|
|
14
|
+
export * from "./deployAndSave/enclaveToken";
|
|
15
|
+
export * from "./deployAndSave/mockStableToken";
|
|
16
|
+
export * from "./deployAndSave/slashingManager";
|
|
12
17
|
export * from "./deployAndSave/mockComputeProvider";
|
|
13
18
|
export * from "./deployAndSave/mockDecryptionVerifier";
|
|
14
|
-
export * from "./deployAndSave/mockInputValidator";
|
|
15
19
|
export * from "./deployAndSave/mockProgram";
|
|
20
|
+
export * from "./verify";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type Provider } from "ethers";
|
|
2
|
+
/**
|
|
3
|
+
* ERC-1967 admin slot: keccak256("eip1967.proxy.admin") - 1
|
|
4
|
+
* This is where TransparentUpgradeableProxy stores the ProxyAdmin address
|
|
5
|
+
* https://docs.openzeppelin.com/contracts/5.x/api/proxy#ERC1967Utils-getAdmin--
|
|
6
|
+
*/
|
|
7
|
+
export declare const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
|
|
8
|
+
/**
|
|
9
|
+
* Gets the ProxyAdmin address from a TransparentUpgradeableProxy
|
|
10
|
+
* @param provider The ethers provider
|
|
11
|
+
* @param proxyAddress The address of the proxy contract
|
|
12
|
+
* @returns The address of the auto-deployed ProxyAdmin
|
|
13
|
+
*/
|
|
14
|
+
export declare function getProxyAdmin(provider: Provider, proxyAddress: string): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Verifies that the ProxyAdmin is owned by the expected owner
|
|
17
|
+
* @param proxyAdmin The ProxyAdmin contract instance
|
|
18
|
+
* @param expectedOwner The expected owner address
|
|
19
|
+
* @throws Error if owner doesn't match
|
|
20
|
+
*/
|
|
21
|
+
export declare function verifyProxyAdminOwner(proxyAdmin: any, expectedOwner: string): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../scripts/proxy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,QAAQ,EAAc,MAAM,QAAQ,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,uEACuC,CAAC;AAEvE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 { getAddress } from "ethers";
|
|
7
|
+
/**
|
|
8
|
+
* ERC-1967 admin slot: keccak256("eip1967.proxy.admin") - 1
|
|
9
|
+
* This is where TransparentUpgradeableProxy stores the ProxyAdmin address
|
|
10
|
+
* https://docs.openzeppelin.com/contracts/5.x/api/proxy#ERC1967Utils-getAdmin--
|
|
11
|
+
*/
|
|
12
|
+
export const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
|
|
13
|
+
/**
|
|
14
|
+
* Gets the ProxyAdmin address from a TransparentUpgradeableProxy
|
|
15
|
+
* @param provider The ethers provider
|
|
16
|
+
* @param proxyAddress The address of the proxy contract
|
|
17
|
+
* @returns The address of the auto-deployed ProxyAdmin
|
|
18
|
+
*/
|
|
19
|
+
export async function getProxyAdmin(provider, proxyAddress) {
|
|
20
|
+
const adminSlotValue = await provider.getStorage(proxyAddress, ERC1967_ADMIN_SLOT);
|
|
21
|
+
// Extract the address from the storage slot (last 20 bytes)
|
|
22
|
+
const addressHex = "0x" + adminSlotValue.slice(-40);
|
|
23
|
+
return getAddress(addressHex);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Verifies that the ProxyAdmin is owned by the expected owner
|
|
27
|
+
* @param proxyAdmin The ProxyAdmin contract instance
|
|
28
|
+
* @param expectedOwner The expected owner address
|
|
29
|
+
* @throws Error if owner doesn't match
|
|
30
|
+
*/
|
|
31
|
+
export async function verifyProxyAdminOwner(proxyAdmin, expectedOwner) {
|
|
32
|
+
const actualOwner = await proxyAdmin.owner();
|
|
33
|
+
if (actualOwner.toLowerCase() !== expectedOwner.toLowerCase()) {
|
|
34
|
+
throw new Error(`ProxyAdmin owner mismatch. Expected ${expectedOwner}, got ${actualOwner}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runVerification.d.ts","sourceRoot":"","sources":["../../scripts/runVerification.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
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 hre from "hardhat";
|
|
7
|
+
import { verifyContracts } from "./verify";
|
|
8
|
+
async function main() {
|
|
9
|
+
const { ethers } = await hre.network.connect();
|
|
10
|
+
const [signer] = await ethers.getSigners();
|
|
11
|
+
const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
|
|
12
|
+
verifyContracts(chain);
|
|
13
|
+
}
|
|
14
|
+
main().catch((error) => {
|
|
15
|
+
console.error(error);
|
|
16
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upgrades the BondingRegistry contract implementation and saves the deployment arguments
|
|
3
|
+
* This keeps the same proxy address, only updates the implementation
|
|
4
|
+
*/
|
|
5
|
+
export declare const upgradeBondingRegistry: () => Promise<void>;
|
|
6
|
+
//# sourceMappingURL=bondingRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bondingRegistry.d.ts","sourceRoot":"","sources":["../../../scripts/upgrade/bondingRegistry.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,sBAAsB,qBAiDlC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 hre from "hardhat";
|
|
7
|
+
import { upgradeAndSaveBondingRegistry } from "../deployAndSave/bondingRegistry";
|
|
8
|
+
import { readDeploymentArgs } from "../utils";
|
|
9
|
+
/**
|
|
10
|
+
* Upgrades the BondingRegistry contract implementation and saves the deployment arguments
|
|
11
|
+
* This keeps the same proxy address, only updates the implementation
|
|
12
|
+
*/
|
|
13
|
+
export const upgradeBondingRegistry = async () => {
|
|
14
|
+
const { ethers } = await hre.network.connect();
|
|
15
|
+
const [signer] = await ethers.getSigners();
|
|
16
|
+
const signerAddress = await signer.getAddress();
|
|
17
|
+
const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
|
|
18
|
+
console.log("Signer:", signerAddress);
|
|
19
|
+
const preDeployedArgs = readDeploymentArgs("BondingRegistry", chain);
|
|
20
|
+
if (!preDeployedArgs?.address) {
|
|
21
|
+
throw new Error("BondingRegistry proxy not found. Deploy first before upgrading.");
|
|
22
|
+
}
|
|
23
|
+
if (!preDeployedArgs?.proxyRecords?.implementationAddress) {
|
|
24
|
+
throw new Error("Existing deployment is not proxy-based. Cannot upgrade non-proxy deployments.");
|
|
25
|
+
}
|
|
26
|
+
console.log("BondingRegistry Proxy Address (from deployments):", preDeployedArgs.address);
|
|
27
|
+
const code = await ethers.provider.getCode(preDeployedArgs.address);
|
|
28
|
+
if (code === "0x") {
|
|
29
|
+
throw new Error(`No contract found at proxy address ${preDeployedArgs.address}`);
|
|
30
|
+
}
|
|
31
|
+
console.log("Proxy contract exists on-chain");
|
|
32
|
+
const { bondingRegistry, implementationAddress } = await upgradeAndSaveBondingRegistry({
|
|
33
|
+
ownerAddress: signerAddress,
|
|
34
|
+
hre,
|
|
35
|
+
});
|
|
36
|
+
const bondingRegistryAddress = await bondingRegistry.getAddress();
|
|
37
|
+
console.log(`
|
|
38
|
+
============================================
|
|
39
|
+
Upgrade Complete!
|
|
40
|
+
============================================
|
|
41
|
+
Proxy Address: ${bondingRegistryAddress}
|
|
42
|
+
New Implementation: ${implementationAddress}
|
|
43
|
+
============================================
|
|
44
|
+
`);
|
|
45
|
+
};
|
|
46
|
+
upgradeBondingRegistry().catch((error) => {
|
|
47
|
+
console.error(error);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upgrades the CiphernodeRegistryOwnable contract implementation and saves the deployment arguments
|
|
3
|
+
* This keeps the same proxy address, only updates the implementation
|
|
4
|
+
*/
|
|
5
|
+
export declare const upgradeCiphernodeRegistryOwnable: () => Promise<void>;
|
|
6
|
+
//# sourceMappingURL=ciphernodeRegistryOwnable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ciphernodeRegistryOwnable.d.ts","sourceRoot":"","sources":["../../../scripts/upgrade/ciphernodeRegistryOwnable.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,eAAO,MAAM,gCAAgC,qBAsD5C,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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 hre from "hardhat";
|
|
7
|
+
import { upgradeAndSaveCiphernodeRegistryOwnable } from "../deployAndSave/ciphernodeRegistryOwnable";
|
|
8
|
+
import { deployAndSavePoseidonT3 } from "../deployAndSave/poseidonT3";
|
|
9
|
+
import { readDeploymentArgs } from "../utils";
|
|
10
|
+
/**
|
|
11
|
+
* Upgrades the CiphernodeRegistryOwnable contract implementation and saves the deployment arguments
|
|
12
|
+
* This keeps the same proxy address, only updates the implementation
|
|
13
|
+
*/
|
|
14
|
+
export const upgradeCiphernodeRegistryOwnable = async () => {
|
|
15
|
+
const { ethers } = await hre.network.connect();
|
|
16
|
+
const [signer] = await ethers.getSigners();
|
|
17
|
+
const signerAddress = await signer.getAddress();
|
|
18
|
+
const chain = (await signer.provider?.getNetwork())?.name ?? "localhost";
|
|
19
|
+
console.log("Signer:", signerAddress);
|
|
20
|
+
const poseidonT3 = await deployAndSavePoseidonT3({ hre });
|
|
21
|
+
const preDeployedArgs = readDeploymentArgs("CiphernodeRegistryOwnable", chain);
|
|
22
|
+
if (!preDeployedArgs?.address) {
|
|
23
|
+
throw new Error("CiphernodeRegistryOwnable proxy not found. Deploy first before upgrading.");
|
|
24
|
+
}
|
|
25
|
+
if (!preDeployedArgs?.proxyRecords?.implementationAddress) {
|
|
26
|
+
throw new Error("Existing deployment is not proxy-based. Cannot upgrade non-proxy deployments.");
|
|
27
|
+
}
|
|
28
|
+
console.log("CiphernodeRegistryOwnable Proxy Address (from deployments):", preDeployedArgs.address);
|
|
29
|
+
const code = await ethers.provider.getCode(preDeployedArgs.address);
|
|
30
|
+
if (code === "0x") {
|
|
31
|
+
throw new Error(`No contract found at proxy address ${preDeployedArgs.address}`);
|
|
32
|
+
}
|
|
33
|
+
console.log("Proxy contract exists on-chain");
|
|
34
|
+
const { ciphernodeRegistry, implementationAddress } = await upgradeAndSaveCiphernodeRegistryOwnable({
|
|
35
|
+
poseidonT3Address: poseidonT3,
|
|
36
|
+
ownerAddress: signerAddress,
|
|
37
|
+
hre,
|
|
38
|
+
});
|
|
39
|
+
const ciphernodeRegistryAddress = await ciphernodeRegistry.getAddress();
|
|
40
|
+
console.log(`
|
|
41
|
+
============================================
|
|
42
|
+
Upgrade Complete!
|
|
43
|
+
============================================
|
|
44
|
+
Proxy Address: ${ciphernodeRegistryAddress}
|
|
45
|
+
New Implementation: ${implementationAddress}
|
|
46
|
+
============================================
|
|
47
|
+
`);
|
|
48
|
+
};
|
|
49
|
+
upgradeCiphernodeRegistryOwnable().catch((error) => {
|
|
50
|
+
console.error(error);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enclave.d.ts","sourceRoot":"","sources":["../../../scripts/upgrade/enclave.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,eAAO,MAAM,cAAc,qBA8C1B,CAAC"}
|