@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,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 { upgradeAndSaveEnclave } from "../deployAndSave/enclave";
|
|
8
|
+
import { readDeploymentArgs } from "../utils";
|
|
9
|
+
/**
|
|
10
|
+
* Upgrades the Enclave contract implementation and saves the deployment arguments
|
|
11
|
+
* This keeps the same proxy address, only updates the implementation
|
|
12
|
+
*/
|
|
13
|
+
export const upgradeEnclave = 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("Enclave", chain);
|
|
20
|
+
if (!preDeployedArgs?.address) {
|
|
21
|
+
throw new Error("Enclave 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("Enclave 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 { enclave, implementationAddress } = await upgradeAndSaveEnclave({
|
|
33
|
+
ownerAddress: signerAddress,
|
|
34
|
+
hre,
|
|
35
|
+
});
|
|
36
|
+
const enclaveAddress = await enclave.getAddress();
|
|
37
|
+
console.log(`
|
|
38
|
+
============================================
|
|
39
|
+
Upgrade Complete!
|
|
40
|
+
============================================
|
|
41
|
+
Proxy Address: ${enclaveAddress}
|
|
42
|
+
New Implementation: ${implementationAddress}
|
|
43
|
+
============================================
|
|
44
|
+
`);
|
|
45
|
+
};
|
|
46
|
+
upgradeEnclave().catch((error) => {
|
|
47
|
+
console.error(error);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
});
|
package/dist/scripts/utils.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export declare const deploymentsFile: string;
|
|
1
2
|
export interface DeploymentArgs {
|
|
2
3
|
address: string;
|
|
3
|
-
constructorArgs?: Record<string, string>;
|
|
4
|
+
constructorArgs?: Record<string, string | string[]>;
|
|
5
|
+
proxyRecords?: Record<string, string | string[]>;
|
|
4
6
|
blockNumber?: number | null;
|
|
5
7
|
}
|
|
6
8
|
export interface ChainDeployments {
|
|
@@ -9,6 +11,39 @@ export interface ChainDeployments {
|
|
|
9
11
|
export interface Deployments {
|
|
10
12
|
[chainName: string]: ChainDeployments;
|
|
11
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Defines the Enclave.config.yaml structure
|
|
16
|
+
*/
|
|
17
|
+
export interface EnclaveConfig {
|
|
18
|
+
chains: Array<{
|
|
19
|
+
name: string;
|
|
20
|
+
rpc_url: string;
|
|
21
|
+
contracts: {
|
|
22
|
+
e3_program?: {
|
|
23
|
+
address: string;
|
|
24
|
+
deploy_block: number;
|
|
25
|
+
};
|
|
26
|
+
enclave?: {
|
|
27
|
+
address: string;
|
|
28
|
+
deploy_block: number;
|
|
29
|
+
};
|
|
30
|
+
ciphernode_registry?: {
|
|
31
|
+
address: string;
|
|
32
|
+
deploy_block: number;
|
|
33
|
+
};
|
|
34
|
+
bonding_registry?: {
|
|
35
|
+
address: string;
|
|
36
|
+
deploy_block: number;
|
|
37
|
+
};
|
|
38
|
+
fee_token?: {
|
|
39
|
+
address: string;
|
|
40
|
+
deploy_block: number;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
program: unknown;
|
|
45
|
+
nodes: unknown;
|
|
46
|
+
}
|
|
12
47
|
/**
|
|
13
48
|
* Store the deployment arguments for a given contract and chain
|
|
14
49
|
* @param args - The deployment arguments to store
|
|
@@ -30,7 +65,21 @@ export declare const readDeploymentArgs: (contractName: string, chain: string) =
|
|
|
30
65
|
export declare const readAllDeployments: () => Deployments;
|
|
31
66
|
/**
|
|
32
67
|
* Clean the deployments for a given network
|
|
33
|
-
* @param network
|
|
68
|
+
* @param network - The network for which to clean the deployments
|
|
34
69
|
*/
|
|
35
70
|
export declare const cleanDeployments: (network: string) => void;
|
|
71
|
+
/**
|
|
72
|
+
* Check if two arrays are equal by checking the values inside
|
|
73
|
+
* @param arr1 - The first array
|
|
74
|
+
* @param arr2 - The second array to check
|
|
75
|
+
* @returns Whether the two arrays are equal
|
|
76
|
+
*/
|
|
77
|
+
export declare function areArraysEqual<T>(arr1: T[], arr2: T[]): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* The function to update the enclave.config.yaml file with the deployed contract addresses
|
|
80
|
+
* @param chainToConfig - The chain name to update in the config
|
|
81
|
+
* @param pathToConfigFile - The path to the enclave.config.yaml file
|
|
82
|
+
* @param contractMapping - A mapping of contract names to config keys
|
|
83
|
+
*/
|
|
84
|
+
export declare const updateE3Config: (chainToConfig: string, pathToConfigFile: string, contractMapping: Record<string, string>, rpcUrl?: string) => void;
|
|
36
85
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../scripts/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../scripts/utils.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,QAAuC,CAAC;AAGpE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;CACxC;AAGD,MAAM,WAAW,WAAW;IAC1B,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE;YACT,UAAU,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YACvD,OAAO,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YACpD,mBAAmB,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YAChE,gBAAgB,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YAC7D,SAAS,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;SACvD,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,EACpB,cAAc,MAAM,EACpB,OAAO,MAAM,KACZ,IA4BF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,EACpB,OAAO,MAAM,KACZ,cAAc,GAAG,SAWnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,WAWrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,IAUlD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAY/D;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,eAAe,MAAM,EACrB,kBAAkB,MAAM,EACxB,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,SAAS,MAAM,KACd,IAsDF,CAAC"}
|
package/dist/scripts/utils.js
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
// without even the implied warranty of MERCHANTABILITY
|
|
5
5
|
// or FITNESS FOR A PARTICULAR PURPOSE.
|
|
6
6
|
import fs from "fs";
|
|
7
|
+
import yaml from "js-yaml";
|
|
7
8
|
import path from "path";
|
|
8
|
-
const deploymentsFile = path.join("deployed_contracts.json");
|
|
9
|
+
export const deploymentsFile = path.join("deployed_contracts.json");
|
|
9
10
|
/**
|
|
10
11
|
* Store the deployment arguments for a given contract and chain
|
|
11
12
|
* @param args - The deployment arguments to store
|
|
@@ -19,7 +20,7 @@ export const storeDeploymentArgs = (args, contractName, chain) => {
|
|
|
19
20
|
try {
|
|
20
21
|
deployments = JSON.parse(fs.readFileSync(deploymentsFile, "utf8"));
|
|
21
22
|
}
|
|
22
|
-
catch
|
|
23
|
+
catch {
|
|
23
24
|
console.warn("Failed to parse existing deployments file, starting fresh");
|
|
24
25
|
deployments = {};
|
|
25
26
|
}
|
|
@@ -63,14 +64,14 @@ export const readAllDeployments = () => {
|
|
|
63
64
|
try {
|
|
64
65
|
return JSON.parse(fs.readFileSync(deploymentsFile, "utf8"));
|
|
65
66
|
}
|
|
66
|
-
catch
|
|
67
|
+
catch {
|
|
67
68
|
console.warn("Failed to parse deployments file");
|
|
68
69
|
return {};
|
|
69
70
|
}
|
|
70
71
|
};
|
|
71
72
|
/**
|
|
72
73
|
* Clean the deployments for a given network
|
|
73
|
-
* @param network
|
|
74
|
+
* @param network - The network for which to clean the deployments
|
|
74
75
|
*/
|
|
75
76
|
export const cleanDeployments = (network) => {
|
|
76
77
|
if (!fs.existsSync(deploymentsFile)) {
|
|
@@ -82,3 +83,65 @@ export const cleanDeployments = (network) => {
|
|
|
82
83
|
}
|
|
83
84
|
fs.writeFileSync(deploymentsFile, JSON.stringify(deployments, null, 2));
|
|
84
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* Check if two arrays are equal by checking the values inside
|
|
88
|
+
* @param arr1 - The first array
|
|
89
|
+
* @param arr2 - The second array to check
|
|
90
|
+
* @returns Whether the two arrays are equal
|
|
91
|
+
*/
|
|
92
|
+
export function areArraysEqual(arr1, arr2) {
|
|
93
|
+
if (arr1.length !== arr2.length) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
97
|
+
if (arr1[i] !== arr2[i]) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The function to update the enclave.config.yaml file with the deployed contract addresses
|
|
105
|
+
* @param chainToConfig - The chain name to update in the config
|
|
106
|
+
* @param pathToConfigFile - The path to the enclave.config.yaml file
|
|
107
|
+
* @param contractMapping - A mapping of contract names to config keys
|
|
108
|
+
*/
|
|
109
|
+
export const updateE3Config = (chainToConfig, pathToConfigFile, contractMapping, rpcUrl) => {
|
|
110
|
+
const fileContent = fs.readFileSync(pathToConfigFile, "utf8");
|
|
111
|
+
const config = yaml.load(fileContent);
|
|
112
|
+
// Find the hardhat chain config
|
|
113
|
+
// Find the chain config or create it
|
|
114
|
+
let configChain = config.chains.find((chain) => chain.name === chainToConfig);
|
|
115
|
+
if (!configChain) {
|
|
116
|
+
console.log(`Chain "${chainToConfig}" not found in config. Creating new entry...`);
|
|
117
|
+
if (!rpcUrl) {
|
|
118
|
+
console.warn("Warning: No RPC URL provided. You'll need to update it manually in the config.");
|
|
119
|
+
}
|
|
120
|
+
configChain = {
|
|
121
|
+
name: chainToConfig,
|
|
122
|
+
rpc_url: rpcUrl || `ws://localhost:8545`,
|
|
123
|
+
contracts: {},
|
|
124
|
+
};
|
|
125
|
+
config.chains.push(configChain);
|
|
126
|
+
console.log(`✓ Created new chain entry for "${chainToConfig}"`);
|
|
127
|
+
}
|
|
128
|
+
console.log(`\nUpdating contracts for chain: ${chainToConfig}`);
|
|
129
|
+
// Update contract addresses and deploy blocks
|
|
130
|
+
for (const [contractName, configKey] of Object.entries(contractMapping)) {
|
|
131
|
+
const deployment = readDeploymentArgs(contractName, chainToConfig);
|
|
132
|
+
if (deployment) {
|
|
133
|
+
configChain.contracts[configKey] = {
|
|
134
|
+
address: deployment.address,
|
|
135
|
+
deploy_block: deployment.blockNumber ?? 1,
|
|
136
|
+
};
|
|
137
|
+
console.log(`✓ Updated ${configKey}: ${deployment.address} (block ${deployment.blockNumber ?? 1})`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Write updated config back to file
|
|
141
|
+
const yamlStr = yaml.dump(config, {
|
|
142
|
+
indent: 2,
|
|
143
|
+
lineWidth: -1, // Don't wrap lines
|
|
144
|
+
});
|
|
145
|
+
fs.writeFileSync(pathToConfigFile, yamlStr + "\n", "utf8");
|
|
146
|
+
console.log("\n✓ enclave.config.yaml updated successfully!");
|
|
147
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../scripts/verify.ts"],"names":[],"mappings":"AAsHA;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,IA6E/C,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
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 { execSync } from "child_process";
|
|
7
|
+
import fs from "fs";
|
|
8
|
+
import path from "path";
|
|
9
|
+
import { readAllDeployments } from "./utils";
|
|
10
|
+
/**
|
|
11
|
+
* Find the fully qualified contract name by searching the contracts directory
|
|
12
|
+
* @param contractName - Simple contract name (e.g., "Enclave")
|
|
13
|
+
* @param contractsDir - Directory to search (default: "contracts")
|
|
14
|
+
* @returns Fully qualified name or undefined if not found
|
|
15
|
+
*/
|
|
16
|
+
const findContractPath = (contractName, artifactsDir = "artifacts") => {
|
|
17
|
+
const searchDir = (dir) => {
|
|
18
|
+
const files = fs.readdirSync(dir);
|
|
19
|
+
for (const file of files) {
|
|
20
|
+
const fullPath = path.join(dir, file);
|
|
21
|
+
const stat = fs.statSync(fullPath);
|
|
22
|
+
if (stat.isDirectory()) {
|
|
23
|
+
const result = searchDir(fullPath);
|
|
24
|
+
if (result)
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
else if (file === `${contractName}.json`) {
|
|
28
|
+
try {
|
|
29
|
+
const artifact = JSON.parse(fs.readFileSync(fullPath, "utf-8"));
|
|
30
|
+
if (artifact.sourceName && artifact.contractName === contractName) {
|
|
31
|
+
const sourceName = artifact.sourceName;
|
|
32
|
+
// Skip external packages - return undefined so they won't be verified
|
|
33
|
+
if (sourceName.startsWith("./@") ||
|
|
34
|
+
sourceName.startsWith("@") ||
|
|
35
|
+
sourceName.includes("node_modules")) {
|
|
36
|
+
console.log(`⏭️ Skipping external contract: ${contractName} (from ${sourceName})`);
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
// For local contracts, remove leading './' and return the path
|
|
40
|
+
let localPath = sourceName;
|
|
41
|
+
if (localPath.startsWith("./")) {
|
|
42
|
+
localPath = localPath.slice(2);
|
|
43
|
+
}
|
|
44
|
+
return `${localPath}:${contractName}`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.warn(`Failed to parse artifact at ${fullPath}:`, error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
};
|
|
54
|
+
return searchDir(artifactsDir);
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Verify a single contract using Hardhat CLI
|
|
58
|
+
* @param address - Contract address
|
|
59
|
+
* @param constructorArgs - Constructor arguments as a record
|
|
60
|
+
* @param network - Network name
|
|
61
|
+
*/
|
|
62
|
+
const verifyContract = (contractName, address, constructorArgs, network) => {
|
|
63
|
+
// Create a temporary args file
|
|
64
|
+
const argsFile = path.join(process.cwd(), `verify-args-${address}.cjs`);
|
|
65
|
+
try {
|
|
66
|
+
if (constructorArgs) {
|
|
67
|
+
const argsArray = Object.values(constructorArgs);
|
|
68
|
+
const fileContent = `module.exports = ${JSON.stringify(argsArray, null, 2)};`;
|
|
69
|
+
fs.writeFileSync(argsFile, fileContent);
|
|
70
|
+
const command = `pnpm hardhat verify --build-profile default --network ${network} --contract ${contractName} ${address} --constructor-args-path ${argsFile}`;
|
|
71
|
+
console.log(`Executing: ${command}`);
|
|
72
|
+
execSync(command, { stdio: "inherit" });
|
|
73
|
+
console.log(`✅ Contract verified successfully at ${address}\n`);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const command = `pnpm hardhat verify --build-profile default --network ${network} --contract ${contractName} ${address}`;
|
|
77
|
+
execSync(command, { stdio: "inherit" });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
if (error.message?.includes("Already Verified")) {
|
|
82
|
+
console.log(`ℹ️ Contract at ${address} is already verified\n`);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
console.error(`❌ Failed to verify contract at ${address}:`, error.message, "\n");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
// ensure that we always clean up even if there was some early failure
|
|
90
|
+
if (fs.existsSync(argsFile)) {
|
|
91
|
+
fs.unlinkSync(argsFile);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Deploy and verify all contracts on a given chain
|
|
97
|
+
* @param chain - The chain to verify the contracts on
|
|
98
|
+
*/
|
|
99
|
+
export const verifyContracts = (chain) => {
|
|
100
|
+
const deployments = readAllDeployments();
|
|
101
|
+
const chainDeployments = deployments[chain];
|
|
102
|
+
if (!chainDeployments) {
|
|
103
|
+
console.log(`❌ No deployments found for chain: ${chain}`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const contractNames = Object.keys(chainDeployments);
|
|
107
|
+
console.log(`\n🔍 Verifying ${contractNames.length} contracts on ${chain}...\n`);
|
|
108
|
+
contractNames.forEach((contractName, _) => {
|
|
109
|
+
// we skip PoseidonT3 as it's a library
|
|
110
|
+
if (contractName === "PoseidonT3") {
|
|
111
|
+
console.log(`ℹ️ Skipping verification for library contract: ${contractName}`);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const deployment = chainDeployments[contractName];
|
|
115
|
+
const isProxy = Boolean(deployment.proxyRecords?.implementationAddress);
|
|
116
|
+
if (isProxy && deployment.proxyRecords) {
|
|
117
|
+
console.log(` 📦 Proxy deployment detected`);
|
|
118
|
+
console.log(` ├─ Verifying TransparentUpgradeableProxy...`);
|
|
119
|
+
verifyContract("@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol:TransparentUpgradeableProxy", deployment.address, {
|
|
120
|
+
_logic: deployment.proxyRecords.implementationAddress,
|
|
121
|
+
_owner: deployment.proxyRecords.initialOwner,
|
|
122
|
+
_data: deployment.proxyRecords.initData,
|
|
123
|
+
}, chain);
|
|
124
|
+
console.log(` ├─ Verifying ProxyAdmin...`);
|
|
125
|
+
verifyContract("@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol:ProxyAdmin", deployment.proxyRecords.proxyAdminAddress, { owner: deployment.proxyRecords.initialOwner }, chain);
|
|
126
|
+
}
|
|
127
|
+
// Verify the main contract (or implementation if proxy)
|
|
128
|
+
const fullyQualifiedName = findContractPath(contractName);
|
|
129
|
+
if (!fullyQualifiedName) {
|
|
130
|
+
console.log(` ❌ Could not find contract source for ${contractName}. Skipping.\n`);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const targetAddress = isProxy
|
|
134
|
+
? deployment.proxyRecords?.implementationAddress
|
|
135
|
+
: deployment.address;
|
|
136
|
+
const constructorArgs = isProxy ? undefined : deployment.constructorArgs;
|
|
137
|
+
console.log(` ${isProxy ? "└─" : " "} Verifying ${isProxy ? "implementation" : "contract"} at ${targetAddress.slice(0, 10)}...`);
|
|
138
|
+
verifyContract(fullyQualifiedName, targetAddress, constructorArgs, chain);
|
|
139
|
+
console.log(` ✅ ${contractName} verification complete\n`);
|
|
140
|
+
});
|
|
141
|
+
console.log(`\n🎉 Verification process completed for ${chain}!\n`);
|
|
142
|
+
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare const ciphernodeAdd: import("hardhat/types/tasks").NewTaskDefinition;
|
|
2
2
|
export declare const ciphernodeRemove: import("hardhat/types/tasks").NewTaskDefinition;
|
|
3
|
+
export declare const ciphernodeMintTokens: import("hardhat/types/tasks").NewTaskDefinition;
|
|
4
|
+
export declare const ciphernodeAdminAdd: import("hardhat/types/tasks").NewTaskDefinition;
|
|
3
5
|
export declare const ciphernodeSiblings: import("hardhat/types/tasks").NewTaskDefinition;
|
|
4
6
|
//# sourceMappingURL=ciphernode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciphernode.d.ts","sourceRoot":"","sources":["../../tasks/ciphernode.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"ciphernode.d.ts","sourceRoot":"","sources":["../../tasks/ciphernode.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,aAAa,iDA0IhB,CAAC;AAEX,eAAO,MAAM,gBAAgB,iDA4CnB,CAAC;AAEX,eAAO,MAAM,oBAAoB,iDA2FvB,CAAC;AAEX,eAAO,MAAM,kBAAkB,iDAkNrB,CAAC;AAEX,eAAO,MAAM,kBAAkB,iDAgCrB,CAAC"}
|