@etherisc/gif-next 0.0.2-9141c0d → 0.0.2-91b514c-961
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 +567 -2
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +849 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +808 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +4 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1037 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2458 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1054 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.json +10 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.json +10 -0
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +639 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +480 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +827 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1210 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +4 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1703 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +611 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +147 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +329 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +399 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +378 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +453 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1491 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +57 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +244 -0
- package/contracts/distribution/DistributionService.sol +385 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +43 -0
- package/contracts/distribution/IDistributionService.sol +103 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +106 -0
- package/contracts/instance/IInstanceService.sol +88 -0
- package/contracts/instance/Instance.sol +304 -0
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +650 -0
- package/contracts/instance/InstanceService.sol +459 -0
- package/contracts/instance/InstanceServiceManager.sol +39 -0
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +21 -0
- package/contracts/instance/module/IComponents.sol +62 -0
- package/contracts/instance/module/IDistribution.sol +54 -0
- package/contracts/instance/module/IPolicy.sol +105 -0
- package/contracts/instance/module/IRisk.sol +16 -0
- package/contracts/{Dip.sol → mock/Dip.sol} +2 -2
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +115 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +343 -0
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +755 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +274 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +632 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +69 -0
- package/contracts/product/IClaimService.sol +135 -0
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +664 -0
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +309 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +467 -0
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +249 -0
- package/contracts/registry/IRegistry.sol +170 -0
- package/contracts/registry/IRegistryService.sol +62 -0
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +730 -0
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +241 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +316 -0
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +654 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +110 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/shared/IKeyValueStore.sol +54 -0
- package/contracts/shared/ILifecycle.sol +31 -0
- package/contracts/shared/INftOwnable.sol +25 -0
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +37 -0
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +23 -0
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +127 -0
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +106 -0
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +65 -0
- package/contracts/shared/TokenHandler.sol +342 -0
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +179 -0
- package/contracts/staking/IStakingService.sol +172 -0
- package/contracts/staking/Staking.sol +546 -0
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +464 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +58 -0
- package/contracts/type/Amount.sol +150 -0
- package/contracts/type/Blocknumber.sol +142 -0
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/type/Key32.sol +50 -0
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +85 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +294 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +90 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +149 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +141 -0
- package/contracts/type/UFixed.sol +262 -0
- package/contracts/type/Version.sol +159 -0
- package/contracts/upgradeability/IVersionable.sol +53 -0
- package/contracts/upgradeability/ProxyManager.sol +234 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +20 -0
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +31 -11
- package/artifacts/contracts/Dip.sol/DIP.dbg.json +0 -4
- package/artifacts/contracts/Dip.sol/DIP.json +0 -338
- package/artifacts/contracts/Lock.sol/Lock.dbg.json +0 -4
- package/artifacts/contracts/Lock.sol/Lock.json +0 -74
- package/contracts/Lock.sol +0 -34
@@ -0,0 +1,241 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IComponent} from "../../contracts/shared/IComponent.sol";
|
5
|
+
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
6
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
|
+
import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
|
8
|
+
import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
|
9
|
+
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
10
|
+
import {IRegistry} from "./IRegistry.sol";
|
11
|
+
import {IRegistryService} from "./IRegistryService.sol";
|
12
|
+
|
13
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
14
|
+
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
15
|
+
import {Service} from "../shared/Service.sol";
|
16
|
+
|
17
|
+
contract RegistryService is
|
18
|
+
Service,
|
19
|
+
IRegistryService
|
20
|
+
{
|
21
|
+
// TODO update to real hash when registry is stable
|
22
|
+
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
23
|
+
|
24
|
+
// from Versionable
|
25
|
+
|
26
|
+
/// @dev top level initializer
|
27
|
+
function _initialize(
|
28
|
+
address owner,
|
29
|
+
bytes memory data
|
30
|
+
)
|
31
|
+
internal
|
32
|
+
virtual override
|
33
|
+
initializer()
|
34
|
+
{
|
35
|
+
(
|
36
|
+
address authority,
|
37
|
+
address registry
|
38
|
+
) = abi.decode(data, (address, address));
|
39
|
+
|
40
|
+
__Service_init(authority, registry, owner);
|
41
|
+
_registerInterface(type(IRegistryService).interfaceId);
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
function registerStaking(IRegisterable staking, address owner)
|
46
|
+
external
|
47
|
+
virtual
|
48
|
+
restricted()
|
49
|
+
returns(
|
50
|
+
IRegistry.ObjectInfo memory info
|
51
|
+
)
|
52
|
+
{
|
53
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
54
|
+
info.nftId = getRegistry().register(info);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
function registerInstance(IRegisterable instance, address owner)
|
59
|
+
external
|
60
|
+
virtual
|
61
|
+
restricted()
|
62
|
+
returns(
|
63
|
+
IRegistry.ObjectInfo memory info
|
64
|
+
)
|
65
|
+
{
|
66
|
+
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
67
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
68
|
+
}
|
69
|
+
|
70
|
+
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
71
|
+
info.nftId = getRegistry().register(info);
|
72
|
+
|
73
|
+
instance.linkToRegisteredNftId(); // asume safe
|
74
|
+
}
|
75
|
+
|
76
|
+
function registerProduct(
|
77
|
+
IComponent product,
|
78
|
+
address initialOwner
|
79
|
+
)
|
80
|
+
external
|
81
|
+
virtual
|
82
|
+
restricted()
|
83
|
+
returns(
|
84
|
+
IRegistry.ObjectInfo memory info
|
85
|
+
)
|
86
|
+
{
|
87
|
+
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
88
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
89
|
+
}
|
90
|
+
|
91
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
|
92
|
+
info.nftId = getRegistry().register(info);
|
93
|
+
}
|
94
|
+
|
95
|
+
function registerProductLinkedComponent(
|
96
|
+
IComponent component,
|
97
|
+
ObjectType objectType,
|
98
|
+
address initialOwner
|
99
|
+
)
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
restricted()
|
103
|
+
returns(
|
104
|
+
IRegistry.ObjectInfo memory info
|
105
|
+
)
|
106
|
+
{
|
107
|
+
// CAN revert if no ERC165 support -> will revert with empty message
|
108
|
+
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
109
|
+
revert ErrorRegistryServiceNotComponent(address(component));
|
110
|
+
}
|
111
|
+
|
112
|
+
if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
|
113
|
+
revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
|
114
|
+
}
|
115
|
+
|
116
|
+
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
117
|
+
info.nftId = getRegistry().register(info);
|
118
|
+
}
|
119
|
+
|
120
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
121
|
+
external
|
122
|
+
virtual
|
123
|
+
restricted()
|
124
|
+
returns(NftId nftId)
|
125
|
+
{
|
126
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
127
|
+
nftId = getRegistry().register(info);
|
128
|
+
}
|
129
|
+
|
130
|
+
function registerPolicy(IRegistry.ObjectInfo memory info)
|
131
|
+
external
|
132
|
+
virtual
|
133
|
+
restricted()
|
134
|
+
returns(NftId nftId)
|
135
|
+
{
|
136
|
+
_verifyObjectInfo(info, POLICY());
|
137
|
+
nftId = getRegistry().register(info);
|
138
|
+
}
|
139
|
+
|
140
|
+
function registerBundle(IRegistry.ObjectInfo memory info)
|
141
|
+
external
|
142
|
+
virtual
|
143
|
+
restricted()
|
144
|
+
returns(NftId nftId)
|
145
|
+
{
|
146
|
+
_verifyObjectInfo(info, BUNDLE());
|
147
|
+
nftId = getRegistry().register(info);
|
148
|
+
}
|
149
|
+
|
150
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
151
|
+
external
|
152
|
+
virtual
|
153
|
+
restricted()
|
154
|
+
returns(NftId nftId)
|
155
|
+
{
|
156
|
+
_verifyObjectInfo(info, STAKE());
|
157
|
+
nftId = getRegistry().register(info);
|
158
|
+
}
|
159
|
+
|
160
|
+
// Internal
|
161
|
+
|
162
|
+
function _getAndVerifyContractInfo(
|
163
|
+
IRegisterable registerable,
|
164
|
+
ObjectType expectedType, // assume can be valid only
|
165
|
+
address expectedOwner // assume can be 0 when given by other service
|
166
|
+
)
|
167
|
+
internal
|
168
|
+
virtual
|
169
|
+
view
|
170
|
+
returns(
|
171
|
+
IRegistry.ObjectInfo memory info
|
172
|
+
)
|
173
|
+
{
|
174
|
+
info = registerable.getInitialInfo();
|
175
|
+
|
176
|
+
if(info.objectAddress != address(registerable)) {
|
177
|
+
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
178
|
+
}
|
179
|
+
|
180
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
181
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
182
|
+
}
|
183
|
+
|
184
|
+
address owner = info.initialOwner;
|
185
|
+
|
186
|
+
if(owner != expectedOwner) { // registerable owner protection
|
187
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
188
|
+
}
|
189
|
+
|
190
|
+
if(owner == address(registerable)) {
|
191
|
+
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
192
|
+
}
|
193
|
+
|
194
|
+
if(owner == address(0)) {
|
195
|
+
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
196
|
+
}
|
197
|
+
|
198
|
+
if(getRegistry().isRegistered(owner)) {
|
199
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
function _verifyObjectInfo(
|
204
|
+
IRegistry.ObjectInfo memory info,
|
205
|
+
ObjectType expectedType
|
206
|
+
)
|
207
|
+
internal
|
208
|
+
virtual
|
209
|
+
view
|
210
|
+
{
|
211
|
+
if(info.objectAddress > address(0)) {
|
212
|
+
revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
|
213
|
+
}
|
214
|
+
|
215
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
216
|
+
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
217
|
+
}
|
218
|
+
|
219
|
+
address owner = info.initialOwner;
|
220
|
+
|
221
|
+
if(owner == address(0)) {
|
222
|
+
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
223
|
+
}
|
224
|
+
|
225
|
+
if(owner == msg.sender) {
|
226
|
+
revert ErrorRegistryServiceInvalidInitialOwner(owner);
|
227
|
+
}
|
228
|
+
|
229
|
+
if(getRegistry().isRegistered(owner)) {
|
230
|
+
ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
|
231
|
+
if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
|
232
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
233
|
+
}
|
234
|
+
}
|
235
|
+
}
|
236
|
+
|
237
|
+
// From IService
|
238
|
+
function _getDomain() internal override pure returns(ObjectType serviceDomain) {
|
239
|
+
return REGISTRY();
|
240
|
+
}
|
241
|
+
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
|
+
import {RegistryService} from "./RegistryService.sol";
|
7
|
+
|
8
|
+
contract RegistryServiceManager is
|
9
|
+
ProxyManager
|
10
|
+
{
|
11
|
+
error ErrorRegistryAccessManagerAuthorityZero();
|
12
|
+
error ErrorRegistryAccessManagerRegistryZero();
|
13
|
+
|
14
|
+
bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
|
15
|
+
|
16
|
+
RegistryService private immutable _registryService;
|
17
|
+
|
18
|
+
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
19
|
+
constructor(
|
20
|
+
address authority, // used by implementation
|
21
|
+
address registry, // used by implementation
|
22
|
+
bytes32 salt
|
23
|
+
)
|
24
|
+
{
|
25
|
+
if(authority == address(0)) {
|
26
|
+
revert ErrorRegistryAccessManagerAuthorityZero();
|
27
|
+
}
|
28
|
+
|
29
|
+
if(registry == address(0)) {
|
30
|
+
revert ErrorRegistryAccessManagerRegistryZero();
|
31
|
+
}
|
32
|
+
|
33
|
+
RegistryService srv = new RegistryService{ salt: salt }();
|
34
|
+
bytes memory data = abi.encode(authority, registry);
|
35
|
+
IVersionable versionable = initialize(
|
36
|
+
registry,
|
37
|
+
address(srv),
|
38
|
+
data,
|
39
|
+
salt);
|
40
|
+
|
41
|
+
_registryService = RegistryService(address(versionable));
|
42
|
+
}
|
43
|
+
|
44
|
+
//--- view functions ----------------------------------------------------//
|
45
|
+
|
46
|
+
function getRegistryService()
|
47
|
+
external
|
48
|
+
view
|
49
|
+
returns (RegistryService registryService)
|
50
|
+
{
|
51
|
+
return _registryService;
|
52
|
+
}
|
53
|
+
}
|
@@ -0,0 +1,253 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
5
|
+
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
6
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
7
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
8
|
+
import {IService} from "../shared/IService.sol";
|
9
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
10
|
+
import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
|
11
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, RELEASE_REGISTRY_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
|
+
import {VersionPart} from "../type/Version.sol";
|
13
|
+
|
14
|
+
/// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
|
15
|
+
/// There is one ReleaseAdmin contract per major GIF release.
|
16
|
+
/// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
|
17
|
+
contract ReleaseAdmin is
|
18
|
+
AccessAdmin
|
19
|
+
{
|
20
|
+
event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
|
21
|
+
event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
|
22
|
+
|
23
|
+
error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
|
24
|
+
error ErrorReleaseAdminNotService(address notService);
|
25
|
+
error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
|
26
|
+
|
27
|
+
/// @dev release core roles
|
28
|
+
string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
|
29
|
+
|
30
|
+
/// @dev release core targets
|
31
|
+
string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
|
32
|
+
|
33
|
+
|
34
|
+
modifier onlyReleaseRegistry() {
|
35
|
+
(bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
|
36
|
+
if(!isMember) {
|
37
|
+
revert ErrorReleaseAdminCallerNotReleaseRegistry(msg.sender);
|
38
|
+
}
|
39
|
+
_;
|
40
|
+
}
|
41
|
+
|
42
|
+
// @dev Only used for master release admin
|
43
|
+
constructor(address accessManager) {
|
44
|
+
initialize(
|
45
|
+
accessManager,
|
46
|
+
"MasterReleaseAdmin");
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
function completeSetup(
|
51
|
+
address registry,
|
52
|
+
address releaseRegistry,
|
53
|
+
VersionPart release
|
54
|
+
)
|
55
|
+
external
|
56
|
+
reinitializer(uint64(release.toInt()))
|
57
|
+
{
|
58
|
+
|
59
|
+
// checks
|
60
|
+
_checkRegistry(registry);
|
61
|
+
|
62
|
+
AccessManagerCloneable(
|
63
|
+
authority()).completeSetup(
|
64
|
+
registry,
|
65
|
+
release);
|
66
|
+
|
67
|
+
// link nft ownability to registry
|
68
|
+
_linkToNftOwnable(registry);
|
69
|
+
|
70
|
+
_setupReleaseRegistry(releaseRegistry);
|
71
|
+
}
|
72
|
+
|
73
|
+
/// @dev Sets up authorizaion for specified service.
|
74
|
+
/// For all authorized services its authorized functions are enabled.
|
75
|
+
/// Permissioned function: Access is restricted to release registry.
|
76
|
+
function authorizeService(
|
77
|
+
IServiceAuthorization serviceAuthorization,
|
78
|
+
IService service,
|
79
|
+
ObjectType serviceDomain,
|
80
|
+
VersionPart release
|
81
|
+
)
|
82
|
+
external
|
83
|
+
restricted()
|
84
|
+
{
|
85
|
+
_createServiceTargetAndRole(service, serviceDomain, release);
|
86
|
+
_authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, release);
|
87
|
+
}
|
88
|
+
|
89
|
+
/// @dev Locks/unlocks all release targets.
|
90
|
+
/// For all authorized services of release its authorized functions are disabled/enabled.
|
91
|
+
/// Permissioned function: Access is restricted to release registry.
|
92
|
+
/// Note: onlyReleaseRegistry() modifier is used to prevent dead lock.
|
93
|
+
function setReleaseLocked(bool locked)
|
94
|
+
external
|
95
|
+
onlyReleaseRegistry()
|
96
|
+
{
|
97
|
+
// checks
|
98
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
99
|
+
if(accessManager.isLocked() == locked) {
|
100
|
+
revert ErrorReleaseAdminReleaseLockAlreadySetTo(locked);
|
101
|
+
}
|
102
|
+
|
103
|
+
// effects
|
104
|
+
accessManager.setLocked(locked);
|
105
|
+
|
106
|
+
emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
|
107
|
+
}
|
108
|
+
|
109
|
+
/// @dev Lock/unlock specific service of release.
|
110
|
+
/// Permissioned function: Access is restricted to release registry.
|
111
|
+
function setServiceLocked(IService service, bool locked)
|
112
|
+
external
|
113
|
+
restricted()
|
114
|
+
{
|
115
|
+
// assume all targets except release admin are services
|
116
|
+
// ensure release admin can not be locked
|
117
|
+
if(address(service) == address(this)) {
|
118
|
+
revert ErrorReleaseAdminNotService(address(service));
|
119
|
+
}
|
120
|
+
|
121
|
+
_setTargetLocked(address(service), locked);
|
122
|
+
|
123
|
+
emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
|
124
|
+
}
|
125
|
+
|
126
|
+
//--- view functions ----------------------------------------------------//
|
127
|
+
|
128
|
+
/*
|
129
|
+
function getReleaseAdminRole() external view returns (RoleId) {
|
130
|
+
return GIF_ADMIN_ROLE();
|
131
|
+
}
|
132
|
+
*/
|
133
|
+
//--- private functions -------------------------------------------------//
|
134
|
+
|
135
|
+
function _createServiceTargetAndRole(
|
136
|
+
IService service,
|
137
|
+
ObjectType serviceDomain,
|
138
|
+
VersionPart release
|
139
|
+
)
|
140
|
+
private
|
141
|
+
{
|
142
|
+
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
143
|
+
|
144
|
+
// create service target
|
145
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
146
|
+
baseName, "Service", release);
|
147
|
+
|
148
|
+
_createTarget(
|
149
|
+
address(service),
|
150
|
+
serviceTargetName,
|
151
|
+
true,
|
152
|
+
false);
|
153
|
+
|
154
|
+
// create service role
|
155
|
+
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
156
|
+
serviceDomain,
|
157
|
+
release);
|
158
|
+
|
159
|
+
if(!roleExists(serviceRoleId)) {
|
160
|
+
_createRole(
|
161
|
+
serviceRoleId,
|
162
|
+
AccessAdminLib.toRole({
|
163
|
+
adminRoleId: ADMIN_ROLE(),
|
164
|
+
roleType: RoleType.Contract,
|
165
|
+
maxMemberCount: 1,
|
166
|
+
name: ObjectTypeLib.toVersionedName(
|
167
|
+
baseName,
|
168
|
+
"ServiceRole",
|
169
|
+
release)}));
|
170
|
+
}
|
171
|
+
|
172
|
+
_grantRoleToAccount(
|
173
|
+
serviceRoleId,
|
174
|
+
address(service));
|
175
|
+
}
|
176
|
+
|
177
|
+
|
178
|
+
function _authorizeServiceFunctions(
|
179
|
+
IServiceAuthorization serviceAuthorization,
|
180
|
+
IService service,
|
181
|
+
ObjectType serviceDomain,
|
182
|
+
VersionPart release
|
183
|
+
)
|
184
|
+
private
|
185
|
+
{
|
186
|
+
ObjectType authorizedDomain;
|
187
|
+
RoleId authorizedRoleId;
|
188
|
+
|
189
|
+
ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
|
190
|
+
|
191
|
+
for (uint256 i = 0; i < authorizedDomains.length; i++) {
|
192
|
+
authorizedDomain = authorizedDomains[i];
|
193
|
+
|
194
|
+
// derive authorized role from authorized domain
|
195
|
+
if (authorizedDomain == ALL()) {
|
196
|
+
authorizedRoleId = PUBLIC_ROLE();
|
197
|
+
} else {
|
198
|
+
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
199
|
+
authorizedDomain,
|
200
|
+
release);
|
201
|
+
}
|
202
|
+
|
203
|
+
if(!roleExists(authorizedRoleId)) {
|
204
|
+
// create role for authorized domain
|
205
|
+
_createRole(
|
206
|
+
authorizedRoleId,
|
207
|
+
AccessAdminLib.toRole({
|
208
|
+
adminRoleId: ADMIN_ROLE(),
|
209
|
+
roleType: RoleType.Contract,
|
210
|
+
maxMemberCount: 1,
|
211
|
+
name: ObjectTypeLib.toVersionedName(
|
212
|
+
ObjectTypeLib.toName(authorizedDomain),
|
213
|
+
"Role",
|
214
|
+
release)}));
|
215
|
+
}
|
216
|
+
|
217
|
+
// get authorized functions for authorized domain
|
218
|
+
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
219
|
+
serviceDomain,
|
220
|
+
authorizedDomain);
|
221
|
+
|
222
|
+
_authorizeTargetFunctions(
|
223
|
+
address(service),
|
224
|
+
authorizedRoleId,
|
225
|
+
authorizatedFunctions);
|
226
|
+
}
|
227
|
+
}
|
228
|
+
|
229
|
+
//--- private initialization functions -------------------------------------------//
|
230
|
+
|
231
|
+
function _setupReleaseRegistry(address releaseRegistry)
|
232
|
+
private
|
233
|
+
onlyInitializing()
|
234
|
+
{
|
235
|
+
_createTarget(address(this), RELEASE_ADMIN_TARGET_NAME, false, false);
|
236
|
+
|
237
|
+
_createRole(
|
238
|
+
RELEASE_REGISTRY_ROLE(),
|
239
|
+
AccessAdminLib.toRole({
|
240
|
+
adminRoleId: ADMIN_ROLE(),
|
241
|
+
roleType: RoleType.Contract,
|
242
|
+
maxMemberCount: 1,
|
243
|
+
name: RELEASE_REGISTRY_ROLE_NAME}));
|
244
|
+
|
245
|
+
FunctionInfo[] memory functions;
|
246
|
+
functions = new FunctionInfo[](2);
|
247
|
+
functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
|
248
|
+
functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
|
249
|
+
_authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions);
|
250
|
+
|
251
|
+
_grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
|
252
|
+
}
|
253
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {RELEASE} from "../type/ObjectType.sol";
|
5
|
+
import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
|
6
|
+
import {Lifecycle} from "../shared/Lifecycle.sol";
|
7
|
+
|
8
|
+
/// @dev Release lifeycle state machine.
|
9
|
+
/// Helper contract for ReleaseRegistry.
|
10
|
+
contract ReleaseLifecycle is
|
11
|
+
Lifecycle
|
12
|
+
{
|
13
|
+
constructor() {
|
14
|
+
_setupLifecycle();
|
15
|
+
}
|
16
|
+
|
17
|
+
function _setupLifecycle()
|
18
|
+
internal
|
19
|
+
override
|
20
|
+
{
|
21
|
+
setInitialState(RELEASE(), SCHEDULED());
|
22
|
+
|
23
|
+
setStateTransition(RELEASE(), SCHEDULED(), SKIPPED());
|
24
|
+
setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
|
25
|
+
setStateTransition(RELEASE(), DEPLOYING(), SKIPPED());
|
26
|
+
setStateTransition(RELEASE(), DEPLOYING(), DEPLOYED());
|
27
|
+
setStateTransition(RELEASE(), DEPLOYED(), SKIPPED());
|
28
|
+
setStateTransition(RELEASE(), DEPLOYED(), ACTIVE());
|
29
|
+
setStateTransition(RELEASE(), ACTIVE(), PAUSED());
|
30
|
+
setStateTransition(RELEASE(), PAUSED(), ACTIVE());
|
31
|
+
}
|
32
|
+
}
|