@etherisc/gif-next 0.0.2-de7c770-422 → 0.0.2-de9ede4-391
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 +28 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -63
- 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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -209
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -125
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +180 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +139 -64
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +87 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -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 +1441 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +187 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +131 -157
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -194
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +564 -249
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +149 -60
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +196 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +687 -84
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -148
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -44
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +475 -116
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -169
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +82 -103
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +95 -121
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -79
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -40
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +115 -141
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +148 -150
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +102 -134
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +272 -185
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +115 -152
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +413 -263
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +144 -45
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -45
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +158 -138
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +200 -86
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +144 -61
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +64 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +178 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +141 -116
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +328 -119
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -55
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +170 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +119 -48
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +154 -134
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +81 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -34
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +91 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +135 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +220 -182
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -172
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -32
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +123 -225
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +72 -80
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -477
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -76
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +61 -64
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +425 -261
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +82 -103
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +94 -120
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +79 -100
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +158 -170
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -54
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -36
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +263 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +82 -56
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -40
- package/contracts/distribution/DistributionService.sol +86 -65
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +436 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +24 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +11 -3
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +36 -26
- package/contracts/instance/InstanceAdmin.sol +57 -54
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -32
- package/contracts/instance/InstanceReader.sol +187 -21
- package/contracts/instance/InstanceService.sol +54 -129
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +12 -2
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +20 -7
- package/contracts/instance/module/IPolicy.sol +4 -3
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +110 -80
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +74 -87
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +2 -15
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +30 -37
- package/contracts/pool/Pool.sol +141 -122
- package/contracts/pool/PoolService.sol +263 -157
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +31 -20
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +233 -106
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +25 -8
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +361 -198
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +10 -11
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +76 -74
- package/contracts/product/RiskService.sol +16 -6
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +8 -3
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +29 -36
- package/contracts/registry/RegistryService.sol +33 -44
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +205 -210
- package/contracts/registry/ServiceAuthorizationV3.sol +58 -50
- package/contracts/shared/Component.sol +56 -105
- package/contracts/shared/ComponentService.sol +384 -329
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +6 -14
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -13
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +68 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/PolicyHolder.sol +11 -5
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/Service.sol +16 -14
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +42 -25
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +56 -23
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +14 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,45 +1,34 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
5
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
6
|
-
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
7
|
-
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
8
5
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
9
|
-
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
10
6
|
|
7
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
11
8
|
import {NftId} from "../type/NftId.sol";
|
12
|
-
import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
9
|
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
10
|
+
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
11
|
+
import {Seconds} from "../type/Seconds.sol";
|
12
|
+
import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
|
13
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
19
14
|
|
20
15
|
import {IService} from "../shared/IService.sol";
|
21
|
-
import {ILifecycle} from "../shared/ILifecycle.sol";
|
22
|
-
import {INftOwnable} from "../shared/INftOwnable.sol";
|
23
16
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
24
17
|
|
25
18
|
import {IRegistry} from "./IRegistry.sol";
|
26
19
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
27
|
-
import {IRegistryService} from "./IRegistryService.sol";
|
28
20
|
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
29
|
-
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
30
21
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
31
22
|
import {Registry} from "./Registry.sol";
|
32
|
-
import {TokenRegistry} from "./TokenRegistry.sol";
|
33
23
|
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
34
24
|
|
25
|
+
|
35
26
|
contract ReleaseRegistry is
|
36
27
|
AccessManaged,
|
37
28
|
ReleaseLifecycle,
|
38
29
|
IRegistryLinked
|
39
30
|
{
|
40
|
-
|
41
|
-
|
42
|
-
uint256 public constant INITIAL_GIF_VERSION = 3;
|
31
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;// first active version
|
43
32
|
|
44
33
|
event LogReleaseCreation(VersionPart version, bytes32 salt);
|
45
34
|
event LogReleaseActivation(VersionPart version);
|
@@ -49,35 +38,22 @@ contract ReleaseRegistry is
|
|
49
38
|
// constructor
|
50
39
|
error ErrorReleaseRegistryNotRegistry(Registry registry);
|
51
40
|
|
52
|
-
//
|
53
|
-
error
|
54
|
-
|
55
|
-
|
56
|
-
error ErrorReleaseRegistryReleasePreparationDisallowed(VersionPart version, StateId currentStateId);
|
57
|
-
error ErrorReleaseRegistryReleaseAlreadyPrepared(VersionPart version, StateId currentStateId);
|
58
|
-
error ErrorReleaseRegistryVersionMismatch(VersionPart expected, VersionPart actual);
|
59
|
-
error ErrorReleaseRegistryNoDomains(VersionPart version);
|
41
|
+
// _verifyServiceAuthorization
|
42
|
+
error ErrorReleaseRegistryNotServiceAuth(address notAuth);
|
43
|
+
error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
|
44
|
+
error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart version);
|
60
45
|
|
61
46
|
// registerService
|
62
|
-
error ErrorReleaseRegistryNoServiceRegistrationExpected();
|
63
|
-
error ErrorReleaseRegistryServiceRegistrationDisallowed(StateId currentStateId);
|
64
|
-
error ErrorReleaseRegistryServiceDomainMismatch(ObjectType expectedDomain, ObjectType actualDomain);
|
65
|
-
error ErrorReleaseRegistryNotService(address notService);
|
66
47
|
error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
|
67
48
|
|
68
49
|
// activateNextRelease
|
69
|
-
error
|
70
|
-
error ErrorReleaseRegistryReleaseNotCreated(VersionPart releaseVersion);
|
71
|
-
error ErrorReleaseRegistryReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
|
72
|
-
error ErrorReleaseRegistryReleaseAlreadyActivated(VersionPart releaseVersion);
|
73
|
-
|
74
|
-
// disableRelease
|
75
|
-
error ErrorReleaseRegistryReleaseNotActivated(VersionPart releaseVersion);
|
76
|
-
error ErrorReleaseRegistryReleaseAlreadyDisabled(VersionPart releaseVersion);
|
50
|
+
error ErrorReleaseRegistryRegistryServiceMissing(VersionPart releaseVersion);
|
77
51
|
|
78
52
|
// _verifyService
|
79
|
-
error
|
80
|
-
error
|
53
|
+
error ErrorReleaseRegistryNotService(address notService);
|
54
|
+
error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
55
|
+
error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
56
|
+
error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
|
81
57
|
|
82
58
|
// _verifyServiceInfo
|
83
59
|
error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
|
@@ -87,32 +63,22 @@ contract ReleaseRegistry is
|
|
87
63
|
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
88
64
|
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
89
65
|
|
90
|
-
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
91
|
-
|
92
66
|
RegistryAdmin public immutable _admin;
|
93
67
|
Registry public immutable _registry;
|
94
|
-
IRegisterable private _staking;
|
95
|
-
address private _stakingOwner;
|
96
68
|
|
97
69
|
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
98
|
-
|
99
|
-
|
100
|
-
// TODO check where/why this is used
|
101
|
-
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
102
|
-
|
103
|
-
VersionPart private _initial;// first active version
|
70
|
+
VersionPart [] internal _release; // array of all created releases
|
104
71
|
VersionPart internal _latest; // latest active version
|
105
72
|
VersionPart internal _next; // version to create and activate
|
106
|
-
mapping(VersionPart verson => StateId releaseState) private _state;
|
107
73
|
|
108
|
-
|
109
|
-
uint256 internal
|
74
|
+
// counters per release
|
75
|
+
uint256 internal _registeredServices = 0;
|
76
|
+
uint256 internal _servicesToRegister = 0;
|
110
77
|
|
111
78
|
constructor(Registry registry)
|
112
79
|
AccessManaged(msg.sender)
|
113
80
|
{
|
114
|
-
|
115
|
-
if(!_isRegistry(address(registry))) {
|
81
|
+
if (!ContractLib.isRegistry(address(registry))) {
|
116
82
|
revert ErrorReleaseRegistryNotRegistry(registry);
|
117
83
|
}
|
118
84
|
|
@@ -121,21 +87,30 @@ contract ReleaseRegistry is
|
|
121
87
|
_registry = registry;
|
122
88
|
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
123
89
|
|
124
|
-
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
125
90
|
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
126
91
|
}
|
127
92
|
|
128
|
-
/// @dev
|
93
|
+
/// @dev sets previous release into SKIPPED state if it was created but not activated
|
129
94
|
/// sets next release into state SCHEDULED
|
130
95
|
function createNextRelease()
|
131
96
|
external
|
132
97
|
restricted() // GIF_ADMIN_ROLE
|
133
98
|
returns(VersionPart)
|
134
99
|
{
|
135
|
-
|
100
|
+
VersionPart version = _next;
|
101
|
+
|
102
|
+
if(isValidTransition(RELEASE(), _releaseInfo[version].state, SKIPPED())) {
|
103
|
+
_releaseInfo[version].state = SKIPPED();
|
104
|
+
}
|
105
|
+
|
106
|
+
version = VersionPartLib.toVersionPart(version.toInt() + 1);
|
107
|
+
_release.push(version);
|
108
|
+
|
109
|
+
_next = version;
|
110
|
+
_releaseInfo[version].version = version;
|
111
|
+
_releaseInfo[version].state = getInitialState(RELEASE());
|
136
112
|
_servicesToRegister = 0;
|
137
113
|
_registeredServices = 0;
|
138
|
-
_state[_next] = getInitialState(RELEASE());
|
139
114
|
|
140
115
|
return _next;
|
141
116
|
}
|
@@ -147,51 +122,36 @@ contract ReleaseRegistry is
|
|
147
122
|
external
|
148
123
|
restricted() // GIF_MANAGER_ROLE
|
149
124
|
returns(
|
150
|
-
address
|
151
|
-
VersionPart
|
125
|
+
address releaseAuthority,
|
126
|
+
VersionPart releaseVersion,
|
152
127
|
bytes32 releaseSalt
|
153
128
|
)
|
154
129
|
{
|
155
|
-
|
156
|
-
version = _next;
|
130
|
+
releaseVersion = _next;
|
157
131
|
|
132
|
+
// release can transition into DEPLOYING state
|
133
|
+
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), SCHEDULED(), DEPLOYING());
|
134
|
+
|
135
|
+
uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
|
136
|
+
|
137
|
+
releaseAuthority = _admin.authority();
|
138
|
+
releaseSalt = salt;
|
158
139
|
// ensures unique salt
|
159
140
|
// TODO CreateX have clones capability also
|
160
141
|
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
161
|
-
releaseSalt = keccak256(
|
142
|
+
/*releaseSalt = keccak256(
|
162
143
|
bytes.concat(
|
163
|
-
bytes32(
|
164
|
-
salt))
|
165
|
-
|
166
|
-
// verify release in state SCHEDULED
|
167
|
-
if (!isValidTransition(RELEASE(), _state[version], DEPLOYING())) {
|
168
|
-
revert ErrorReleaseRegistryReleasePreparationDisallowed(version, _state[version]);
|
169
|
-
}
|
170
|
-
|
171
|
-
_state[version] = DEPLOYING();
|
172
|
-
|
173
|
-
// verify authorizaion contract release matches with expected version
|
174
|
-
VersionPart releaseVersion = serviceAuthorization.getRelease();
|
175
|
-
if (releaseVersion != version) {
|
176
|
-
revert ErrorReleaseRegistryVersionMismatch(version, releaseVersion);
|
177
|
-
}
|
178
|
-
|
179
|
-
|
180
|
-
// sanity check to ensure service domain list is not empty
|
181
|
-
uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
182
|
-
if (serviceDomainsCount == 0) {
|
183
|
-
revert ErrorReleaseRegistryNoDomains(version);
|
184
|
-
}
|
185
|
-
|
186
|
-
// verify prepareNextRelease is only called once per release
|
187
|
-
if(_servicesToRegister > 0) {
|
188
|
-
revert ErrorReleaseRegistryReleaseAlreadyPrepared(version, _state[version]);
|
189
|
-
}
|
144
|
+
bytes32(releaseVersion.toInt()),
|
145
|
+
salt));*/
|
190
146
|
|
191
147
|
_servicesToRegister = serviceDomainsCount;
|
192
|
-
|
148
|
+
_releaseInfo[releaseVersion].state = DEPLOYING();
|
149
|
+
_releaseInfo[releaseVersion].salt = releaseSalt;
|
150
|
+
// TODO allow for the same serviceAuthorization address to be used for multiple releases?
|
151
|
+
_releaseInfo[releaseVersion].auth = serviceAuthorization;
|
152
|
+
//_releaseInfo[releaseVersion].authority = releaseAuthority;
|
193
153
|
|
194
|
-
emit LogReleaseCreation(
|
154
|
+
emit LogReleaseCreation(releaseVersion, releaseSalt);
|
195
155
|
}
|
196
156
|
|
197
157
|
function registerService(IService service)
|
@@ -200,135 +160,124 @@ contract ReleaseRegistry is
|
|
200
160
|
returns(NftId nftId)
|
201
161
|
{
|
202
162
|
VersionPart releaseVersion = _next;
|
203
|
-
StateId state = _state[releaseVersion];
|
204
|
-
|
205
|
-
// verify release in state DEPLOYING
|
206
|
-
if (!isValidTransition(RELEASE(), state, DEPLOYING())) {
|
207
|
-
// TOOD name must represent failed state transition
|
208
|
-
revert ErrorReleaseRegistryServiceRegistrationDisallowed(state);
|
209
|
-
}
|
210
163
|
|
211
|
-
|
164
|
+
// release can transition to DEPLOYED state
|
165
|
+
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
|
212
166
|
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
}
|
167
|
+
address releaseAuthority = _admin.authority();
|
168
|
+
IServiceAuthorization serviceAuth = _releaseInfo[releaseVersion].auth;
|
169
|
+
ObjectType expectedDomain = serviceAuth.getServiceDomain(_registeredServices);
|
217
170
|
|
218
|
-
// service can work with release
|
171
|
+
// service can work with release registry and release version
|
219
172
|
(
|
220
173
|
IRegistry.ObjectInfo memory info,
|
221
174
|
ObjectType serviceDomain,
|
222
175
|
VersionPart serviceVersion
|
223
|
-
|
176
|
+
//,string memory serviceName
|
177
|
+
) = _verifyService(
|
178
|
+
service,
|
179
|
+
releaseAuthority,
|
180
|
+
releaseVersion,
|
181
|
+
expectedDomain
|
182
|
+
);
|
224
183
|
|
225
|
-
//
|
226
|
-
|
227
|
-
if
|
228
|
-
|
184
|
+
//_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
|
185
|
+
//_releaseInfo[releaseVersion].domains.push(serviceDomain);
|
186
|
+
//_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
|
187
|
+
|
188
|
+
_registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
|
189
|
+
|
190
|
+
// release fully deployed
|
191
|
+
if(_servicesToRegister == _registeredServices) {
|
192
|
+
_releaseInfo[releaseVersion].state = DEPLOYED();
|
229
193
|
}
|
230
194
|
|
231
|
-
//
|
232
|
-
//
|
233
|
-
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
234
|
-
service.linkToRegisteredNftId();
|
235
|
-
_registeredServices++;
|
195
|
+
// TODO: service address matches defined in release auth (precalculated one)
|
196
|
+
// revert ErrorReleaseRegistryServiceAddressMismatch()
|
236
197
|
|
237
198
|
// setup service authorization
|
238
|
-
// !!! TODO service A can call service B while release is not active
|
239
199
|
_admin.authorizeService(
|
240
|
-
|
200
|
+
serviceAuth,
|
241
201
|
service,
|
242
202
|
serviceDomain,
|
243
|
-
|
244
|
-
|
245
|
-
// special roles for registry/staking/pool service
|
246
|
-
// !!! TODO registry service allowed to call registry while release is not activated (same for staking/pool service and staking)
|
247
|
-
if (
|
248
|
-
serviceDomain == REGISTRY() ||
|
249
|
-
serviceDomain == STAKING() ||
|
250
|
-
serviceDomain == POOL())
|
251
|
-
{
|
252
|
-
_admin.grantServiceRoleForAllVersions(service, serviceDomain);
|
253
|
-
}
|
254
|
-
}
|
255
|
-
|
203
|
+
releaseVersion);
|
256
204
|
|
205
|
+
// register service with registry
|
206
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
207
|
+
service.linkToRegisteredNftId();
|
208
|
+
}
|
209
|
+
// TODO return activated version
|
257
210
|
function activateNextRelease()
|
258
211
|
external
|
259
212
|
restricted // GIF_ADMIN_ROLE
|
260
213
|
{
|
261
214
|
VersionPart version = _next;
|
262
|
-
StateId state = _state[version];
|
263
|
-
StateId newState = ACTIVE();
|
264
215
|
|
265
|
-
//
|
266
|
-
|
267
|
-
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
268
|
-
}
|
216
|
+
// release can transition to ACTIVE state
|
217
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), DEPLOYED(), ACTIVE());
|
269
218
|
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
219
|
+
_latest = version;
|
220
|
+
_releaseInfo[version].state = ACTIVE();
|
221
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
222
|
+
|
223
|
+
// grant special roles for registry/staking/pool services
|
224
|
+
// this will enable access to core contracts functions
|
274
225
|
|
275
|
-
//
|
226
|
+
// registry service MUST be registered for each release
|
276
227
|
address service = _registry.getServiceAddress(REGISTRY(), version);
|
277
228
|
if(service == address(0)) {
|
278
|
-
revert
|
229
|
+
revert ErrorReleaseRegistryRegistryServiceMissing(version);
|
279
230
|
}
|
280
231
|
|
281
|
-
|
282
|
-
_state[version] = newState;
|
232
|
+
_admin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
|
283
233
|
|
284
|
-
|
285
|
-
|
234
|
+
service = _registry.getServiceAddress(STAKING(), version);
|
235
|
+
if(service != address(0)) {
|
236
|
+
_admin.grantServiceRoleForAllVersions(IService(service), STAKING());
|
237
|
+
}
|
238
|
+
|
239
|
+
service = _registry.getServiceAddress(POOL(), version);
|
240
|
+
if(service != address(0)) {
|
241
|
+
_admin.grantServiceRoleForAllVersions(IService(service), POOL());
|
242
|
+
}
|
243
|
+
|
244
|
+
// TODO may run out of gas
|
245
|
+
// TODO test how many service can be locked in one transaction
|
246
|
+
// -> add to docs + each release must test for this -> add to release version tests (in test call with some gas limit?)
|
247
|
+
_setReleaseLocked(version, false);
|
286
248
|
|
287
249
|
emit LogReleaseActivation(version);
|
288
250
|
}
|
289
251
|
|
290
252
|
/// @dev stop all operations with release services
|
291
253
|
function pauseRelease(VersionPart version)
|
292
|
-
external
|
254
|
+
external
|
293
255
|
restricted // GIF_ADMIN_ROLE
|
294
256
|
{
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
// verify release in state ACTIVE
|
299
|
-
if (!isValidTransition(RELEASE(), state, newState)) {
|
300
|
-
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
301
|
-
}
|
257
|
+
// release can transition to PAUSED state
|
258
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), ACTIVE(), PAUSED());
|
302
259
|
|
303
|
-
|
304
|
-
//_releaseAccessManager[version].disable();
|
305
|
-
|
306
|
-
_state[version] = newState;
|
260
|
+
_releaseInfo[version].state = PAUSED();
|
307
261
|
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp();
|
308
262
|
|
263
|
+
_setReleaseLocked(version, true);
|
264
|
+
|
309
265
|
emit LogReleaseDisabled(version);
|
310
266
|
}
|
311
267
|
|
312
|
-
// TODO consider revert if some delay is expired -> becomes disabled automatically
|
313
268
|
/// @dev resume operations with release services
|
314
269
|
function unpauseRelease(VersionPart version)
|
315
270
|
external
|
316
271
|
restricted // GIF_ADMIN_ROLE
|
317
272
|
{
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
// verify release in state PAUSED
|
322
|
-
if (!isValidTransition(RELEASE(), state, newState)) {
|
323
|
-
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
324
|
-
}
|
325
|
-
|
326
|
-
// TODO come up with a substitute
|
327
|
-
// _releaseAccessManager[version].enable();
|
273
|
+
// release can transition to ACTIVE state
|
274
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), PAUSED(), ACTIVE());
|
328
275
|
|
329
|
-
|
276
|
+
_releaseInfo[version].state = ACTIVE();
|
330
277
|
_releaseInfo[version].disabledAt = zeroTimestamp();
|
331
278
|
|
279
|
+
_setReleaseLocked(version, false);
|
280
|
+
|
332
281
|
emit LogReleaseEnabled(version);
|
333
282
|
}
|
334
283
|
|
@@ -342,33 +291,39 @@ contract ReleaseRegistry is
|
|
342
291
|
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
343
292
|
}
|
344
293
|
|
345
|
-
function isActiveRegistryService(address service) external view returns(bool) {
|
346
|
-
VersionPart version = _releaseVersionByAddress[service];
|
347
|
-
return isActiveRelease(version);
|
348
|
-
}
|
349
|
-
|
350
294
|
function isActiveRelease(VersionPart version) public view returns(bool) {
|
351
|
-
return
|
295
|
+
return _releaseInfo[version].state == ACTIVE();
|
352
296
|
}
|
353
297
|
|
354
298
|
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
355
299
|
return _releaseInfo[version];
|
356
300
|
}
|
357
301
|
|
302
|
+
/// @dev Returns the number of created releases.
|
303
|
+
/// Releases might be in another state than ACTIVE.
|
304
|
+
function releases() external view returns (uint) {
|
305
|
+
return _release.length;
|
306
|
+
}
|
307
|
+
|
308
|
+
/// @dev Returns the n-th release version.
|
309
|
+
/// Valid values for idx [0 .. releases() - 1]
|
310
|
+
function getVersion(uint256 idx) external view returns (VersionPart version) {
|
311
|
+
// return _releases;
|
312
|
+
return _release[idx];
|
313
|
+
}
|
314
|
+
|
358
315
|
function getNextVersion() public view returns(VersionPart) {
|
359
316
|
return _next;
|
360
317
|
}
|
361
318
|
|
319
|
+
/// @dev Returns the latest activated relase version.
|
320
|
+
/// There is no guarantee that the release is not currently paused.
|
362
321
|
function getLatestVersion() external view returns(VersionPart) {
|
363
322
|
return _latest;
|
364
323
|
}
|
365
324
|
|
366
|
-
function getInitialVersion() external view returns(VersionPart) {
|
367
|
-
return _initial;
|
368
|
-
}
|
369
|
-
|
370
325
|
function getState(VersionPart version) external view returns (StateId stateId) {
|
371
|
-
return
|
326
|
+
return _releaseInfo[version].state;
|
372
327
|
}
|
373
328
|
|
374
329
|
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
@@ -380,7 +335,7 @@ contract ReleaseRegistry is
|
|
380
335
|
view
|
381
336
|
returns (IServiceAuthorization serviceAuthorization)
|
382
337
|
{
|
383
|
-
return
|
338
|
+
return _releaseInfo[version].auth;
|
384
339
|
}
|
385
340
|
|
386
341
|
function getRegistryAdmin() external view returns (address) {
|
@@ -395,7 +350,61 @@ contract ReleaseRegistry is
|
|
395
350
|
|
396
351
|
//--- private functions ----------------------------------------------------//
|
397
352
|
|
398
|
-
|
353
|
+
// close / open service targets instead of revoking / granting roles
|
354
|
+
function _setReleaseLocked(VersionPart version, bool locked)
|
355
|
+
private
|
356
|
+
{
|
357
|
+
address service;
|
358
|
+
ObjectType domain;
|
359
|
+
IServiceAuthorization auth = _releaseInfo[version].auth;
|
360
|
+
|
361
|
+
ObjectType[] memory domains = auth.getServiceDomains();
|
362
|
+
for(uint idx = 0; idx < domains.length; idx++)
|
363
|
+
{
|
364
|
+
domain = domains[idx];
|
365
|
+
service = _registry.getServiceAddress(domain, version);
|
366
|
+
assert(service != address(0));
|
367
|
+
|
368
|
+
_admin.setServiceLocked(IService(service), locked);
|
369
|
+
}
|
370
|
+
|
371
|
+
// TODO add check for active/disabled release to core contracts functions interacting with releases
|
372
|
+
}
|
373
|
+
|
374
|
+
function _verifyServiceAuthorization(
|
375
|
+
IServiceAuthorization serviceAuthorization,
|
376
|
+
VersionPart releaseVersion,
|
377
|
+
bytes32 salt
|
378
|
+
)
|
379
|
+
private
|
380
|
+
view
|
381
|
+
returns (uint256 serviceDomainsCount)
|
382
|
+
{
|
383
|
+
// authorization contract supports IServiceAuthorization interface
|
384
|
+
if(!serviceAuthorization.supportsInterface(type(IServiceAuthorization).interfaceId)) {
|
385
|
+
revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
|
386
|
+
}
|
387
|
+
|
388
|
+
// authorizaions contract version matches with release version
|
389
|
+
VersionPart authVersion = serviceAuthorization.getRelease();
|
390
|
+
if (releaseVersion != authVersion) {
|
391
|
+
revert ErrorReleaseRegistryServiceAuthVersionMismatch(serviceAuthorization, releaseVersion, authVersion);
|
392
|
+
}
|
393
|
+
|
394
|
+
// sanity check to ensure service domain list is not empty
|
395
|
+
serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
396
|
+
if (serviceDomainsCount == 0) {
|
397
|
+
revert ErrorReleaseRegistryServiceAuthDomainsZero(serviceAuthorization, releaseVersion);
|
398
|
+
}
|
399
|
+
}
|
400
|
+
|
401
|
+
// TODO get service names
|
402
|
+
function _verifyService(
|
403
|
+
IService service,
|
404
|
+
address expectedAuthority,
|
405
|
+
VersionPart expectedVersion,
|
406
|
+
ObjectType expectedDomain
|
407
|
+
)
|
399
408
|
internal
|
400
409
|
view
|
401
410
|
returns(
|
@@ -416,22 +425,25 @@ contract ReleaseRegistry is
|
|
416
425
|
|
417
426
|
_verifyServiceInfo(service, serviceInfo, owner);
|
418
427
|
|
419
|
-
VersionPart releaseVersion = _next; // never 0
|
420
|
-
address expectedAuthority = _admin.authority(); // can be zero if registering service when release is not created
|
421
|
-
|
422
|
-
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
423
428
|
if(serviceAuthority != expectedAuthority) {
|
424
|
-
revert
|
429
|
+
revert ErrorReleaseRegistryServiceAuthorityMismatch(
|
425
430
|
service,
|
426
431
|
serviceAuthority,
|
427
432
|
expectedAuthority);
|
428
433
|
}
|
429
434
|
|
430
|
-
if(serviceVersion !=
|
431
|
-
revert
|
435
|
+
if(serviceVersion != expectedVersion) {
|
436
|
+
revert ErrorReleaseRegistryServiceVersionMismatch(
|
432
437
|
service,
|
433
438
|
serviceVersion,
|
434
|
-
|
439
|
+
expectedVersion);
|
440
|
+
}
|
441
|
+
|
442
|
+
if(serviceDomain != expectedDomain) {
|
443
|
+
revert ErrorReleaseRegistryServiceDomainMismatch(
|
444
|
+
service,
|
445
|
+
expectedDomain,
|
446
|
+
serviceDomain);
|
435
447
|
}
|
436
448
|
}
|
437
449
|
|
@@ -445,7 +457,7 @@ contract ReleaseRegistry is
|
|
445
457
|
view
|
446
458
|
{
|
447
459
|
if(info.objectAddress != address(service)) {
|
448
|
-
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service,
|
460
|
+
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
|
449
461
|
}
|
450
462
|
|
451
463
|
if(info.isInterceptor != false) { // service is never interceptor
|
@@ -470,22 +482,5 @@ contract ReleaseRegistry is
|
|
470
482
|
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
471
483
|
}
|
472
484
|
}
|
473
|
-
|
474
|
-
/// @dev returns true iff a the address passes some simple proxy tests.
|
475
|
-
function _isRegistry(address registryAddress) internal view returns (bool) {
|
476
|
-
|
477
|
-
// zero address is certainly not registry
|
478
|
-
if (registryAddress == address(0)) {
|
479
|
-
return false;
|
480
|
-
}
|
481
|
-
// TODO try catch and return false in case of revert
|
482
|
-
// or just panic
|
483
|
-
// check if contract returns a zero nft id for its own address
|
484
|
-
if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
|
485
|
-
return false;
|
486
|
-
}
|
487
|
-
|
488
|
-
return true;
|
489
|
-
}
|
490
485
|
}
|
491
486
|
|