@etherisc/gif-next 0.0.2-a714036-117 → 0.0.2-a755cba-731
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 +32 -8
- 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 +105 -65
- 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 +156 -412
- 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 +96 -344
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +229 -292
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -142
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -62
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2329 -0
- 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 +141 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -139
- 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 +746 -134
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -260
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +339 -140
- 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 +109 -365
- 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 +72 -130
- 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 +85 -333
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +108 -356
- 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 +160 -334
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -131
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +60 -65
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -163
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +277 -205
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +105 -364
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +385 -418
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +120 -100
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +124 -181
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +89 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +147 -349
- 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 +433 -193
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +141 -105
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +68 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +292 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +281 -142
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +131 -143
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +351 -338
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +126 -98
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +145 -347
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +310 -34
- 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 +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
- 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 +131 -223
- 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 +69 -288
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +471 -593
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -127
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- 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 -90
- 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 +72 -130
- 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 +15 -47
- 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/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -332
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- 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 +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +106 -127
- 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 +64 -94
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +190 -379
- 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 +118 -99
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +170 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- 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/Seconds.sol/SecondsLib.json +26 -2
- 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/Timestamp.sol/TimestampLib.json +2 -2
- 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 +71 -70
- 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 +83 -59
- package/contracts/authorization/Authorization.sol +111 -40
- 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 +33 -41
- package/contracts/distribution/DistributionService.sol +109 -89
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -11
- 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 +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +366 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +16 -31
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +44 -59
- package/contracts/instance/InstanceAdmin.sol +76 -54
- package/contracts/instance/InstanceAuthorizationV3.sol +53 -34
- package/contracts/instance/InstanceReader.sol +203 -27
- package/contracts/instance/InstanceService.sol +97 -148
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +11 -8
- package/contracts/instance/module/IPolicy.sol +26 -25
- 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 +6 -16
- package/contracts/oracle/OracleService.sol +112 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +14 -4
- package/contracts/pool/BundleService.sol +105 -118
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +8 -20
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +52 -48
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolService.sol +295 -208
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +71 -42
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +393 -127
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -7
- package/contracts/product/IPolicyService.sol +44 -38
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +501 -294
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +133 -93
- package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +147 -55
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +207 -206
- package/contracts/registry/ServiceAuthorizationV3.sol +59 -52
- package/contracts/shared/Component.sol +60 -121
- package/contracts/shared/ComponentService.sol +390 -345
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- 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 +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -47
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +358 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +49 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +65 -36
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- 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 +26 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- 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/product/ProductServiceManager.sol +0 -39
- 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,182 +122,162 @@ 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
|
-
|
130
|
+
releaseVersion = _next;
|
131
|
+
|
132
|
+
// release can transition into DEPLOYING state
|
133
|
+
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), SCHEDULED(), DEPLOYING());
|
157
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
|
-
// TODO this function can have 0 args -> use stored addresses from prepareNextRelease()
|
198
157
|
function registerService(IService service)
|
199
158
|
external
|
200
159
|
restricted // GIF_MANAGER_ROLE
|
201
160
|
returns(NftId nftId)
|
202
161
|
{
|
203
162
|
VersionPart releaseVersion = _next;
|
204
|
-
StateId state = _state[releaseVersion];
|
205
163
|
|
206
|
-
//
|
207
|
-
|
208
|
-
// TOOD name must represent failed state transition
|
209
|
-
revert ErrorReleaseRegistryServiceRegistrationDisallowed(state);
|
210
|
-
}
|
164
|
+
// release can transition to DEPLOYED state
|
165
|
+
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
|
211
166
|
|
212
|
-
|
167
|
+
address releaseAuthority = _admin.authority();
|
168
|
+
IServiceAuthorization serviceAuth = _releaseInfo[releaseVersion].auth;
|
169
|
+
ObjectType expectedDomain = serviceAuth.getServiceDomain(_registeredServices);
|
213
170
|
|
214
|
-
//
|
215
|
-
if (_servicesToRegister == _registeredServices) {
|
216
|
-
revert ErrorReleaseRegistryNoServiceRegistrationExpected();
|
217
|
-
}
|
218
|
-
|
219
|
-
// service can work with release manager
|
171
|
+
// service can work with release registry and release version
|
220
172
|
(
|
221
173
|
IRegistry.ObjectInfo memory info,
|
222
174
|
ObjectType serviceDomain,
|
223
175
|
VersionPart serviceVersion
|
224
|
-
|
176
|
+
//,string memory serviceName
|
177
|
+
) = _verifyService(
|
178
|
+
service,
|
179
|
+
releaseAuthority,
|
180
|
+
releaseVersion,
|
181
|
+
expectedDomain
|
182
|
+
);
|
183
|
+
|
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
|
225
189
|
|
226
|
-
//
|
227
|
-
|
228
|
-
|
229
|
-
revert ErrorReleaseRegistryServiceDomainMismatch(expectedDomain, serviceDomain);
|
190
|
+
// release fully deployed
|
191
|
+
if(_servicesToRegister == _registeredServices) {
|
192
|
+
_releaseInfo[releaseVersion].state = DEPLOYED();
|
230
193
|
}
|
231
194
|
|
232
|
-
//
|
233
|
-
|
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
199
|
_admin.authorizeService(
|
239
|
-
|
240
|
-
service
|
241
|
-
|
242
|
-
|
243
|
-
// special roles for registry/staking/pool service
|
244
|
-
if (serviceDomain == STAKING() || serviceDomain == POOL()) {
|
245
|
-
// TODO rename to grantServiceDomainRole()
|
246
|
-
_admin.grantServiceRoleForAllVersions(service, serviceDomain);
|
247
|
-
}
|
248
|
-
}
|
249
|
-
|
200
|
+
serviceAuth,
|
201
|
+
service,
|
202
|
+
serviceDomain,
|
203
|
+
releaseVersion);
|
250
204
|
|
205
|
+
// register service with registry
|
206
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
207
|
+
service.linkToRegisteredNftId();
|
208
|
+
}
|
209
|
+
// TODO return activated version
|
251
210
|
function activateNextRelease()
|
252
211
|
external
|
253
212
|
restricted // GIF_ADMIN_ROLE
|
254
213
|
{
|
255
214
|
VersionPart version = _next;
|
256
|
-
StateId state = _state[version];
|
257
|
-
StateId newState = ACTIVE();
|
258
215
|
|
259
|
-
//
|
260
|
-
|
261
|
-
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
262
|
-
}
|
216
|
+
// release can transition to ACTIVE state
|
217
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), DEPLOYED(), ACTIVE());
|
263
218
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
}
|
219
|
+
_latest = version;
|
220
|
+
_releaseInfo[version].state = ACTIVE();
|
221
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
268
222
|
|
269
|
-
//
|
223
|
+
// grant special roles for registry/staking/pool services
|
224
|
+
// this will enable access to core contracts functions
|
225
|
+
|
226
|
+
// registry service MUST be registered for each release
|
270
227
|
address service = _registry.getServiceAddress(REGISTRY(), version);
|
271
228
|
if(service == address(0)) {
|
272
|
-
revert
|
229
|
+
revert ErrorReleaseRegistryRegistryServiceMissing(version);
|
273
230
|
}
|
274
231
|
|
275
|
-
|
276
|
-
_state[version] = newState;
|
232
|
+
_admin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
|
277
233
|
|
278
|
-
|
279
|
-
|
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);
|
280
248
|
|
281
249
|
emit LogReleaseActivation(version);
|
282
250
|
}
|
283
251
|
|
284
252
|
/// @dev stop all operations with release services
|
285
253
|
function pauseRelease(VersionPart version)
|
286
|
-
external
|
254
|
+
external
|
287
255
|
restricted // GIF_ADMIN_ROLE
|
288
256
|
{
|
289
|
-
|
290
|
-
|
257
|
+
// release can transition to PAUSED state
|
258
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), ACTIVE(), PAUSED());
|
291
259
|
|
292
|
-
|
293
|
-
if (!isValidTransition(RELEASE(), state, newState)) {
|
294
|
-
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
295
|
-
}
|
296
|
-
|
297
|
-
// TODO come up with a substitute
|
298
|
-
//_releaseAccessManager[version].disable();
|
299
|
-
|
300
|
-
_state[version] = newState;
|
260
|
+
_releaseInfo[version].state = PAUSED();
|
301
261
|
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp();
|
302
262
|
|
263
|
+
_setReleaseLocked(version, true);
|
264
|
+
|
303
265
|
emit LogReleaseDisabled(version);
|
304
266
|
}
|
305
267
|
|
306
|
-
// TODO consider revert if some delay is expired -> becomes disabled automatically
|
307
268
|
/// @dev resume operations with release services
|
308
269
|
function unpauseRelease(VersionPart version)
|
309
270
|
external
|
310
271
|
restricted // GIF_ADMIN_ROLE
|
311
272
|
{
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
// verify release in state PAUSED
|
316
|
-
if (!isValidTransition(RELEASE(), state, newState)) {
|
317
|
-
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
318
|
-
}
|
319
|
-
|
320
|
-
// TODO come up with a substitute
|
321
|
-
// _releaseAccessManager[version].enable();
|
273
|
+
// release can transition to ACTIVE state
|
274
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), PAUSED(), ACTIVE());
|
322
275
|
|
323
|
-
|
276
|
+
_releaseInfo[version].state = ACTIVE();
|
324
277
|
_releaseInfo[version].disabledAt = zeroTimestamp();
|
325
278
|
|
279
|
+
_setReleaseLocked(version, false);
|
280
|
+
|
326
281
|
emit LogReleaseEnabled(version);
|
327
282
|
}
|
328
283
|
|
@@ -336,33 +291,39 @@ contract ReleaseRegistry is
|
|
336
291
|
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
337
292
|
}
|
338
293
|
|
339
|
-
function isActiveRegistryService(address service) external view returns(bool) {
|
340
|
-
VersionPart version = _releaseVersionByAddress[service];
|
341
|
-
return isActiveRelease(version);
|
342
|
-
}
|
343
|
-
|
344
294
|
function isActiveRelease(VersionPart version) public view returns(bool) {
|
345
|
-
return
|
295
|
+
return _releaseInfo[version].state == ACTIVE();
|
346
296
|
}
|
347
297
|
|
348
298
|
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
349
299
|
return _releaseInfo[version];
|
350
300
|
}
|
351
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
|
+
|
352
315
|
function getNextVersion() public view returns(VersionPart) {
|
353
316
|
return _next;
|
354
317
|
}
|
355
318
|
|
319
|
+
/// @dev Returns the latest activated relase version.
|
320
|
+
/// There is no guarantee that the release is not currently paused.
|
356
321
|
function getLatestVersion() external view returns(VersionPart) {
|
357
322
|
return _latest;
|
358
323
|
}
|
359
324
|
|
360
|
-
function getInitialVersion() external view returns(VersionPart) {
|
361
|
-
return _initial;
|
362
|
-
}
|
363
|
-
|
364
325
|
function getState(VersionPart version) external view returns (StateId stateId) {
|
365
|
-
return
|
326
|
+
return _releaseInfo[version].state;
|
366
327
|
}
|
367
328
|
|
368
329
|
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
@@ -374,7 +335,7 @@ contract ReleaseRegistry is
|
|
374
335
|
view
|
375
336
|
returns (IServiceAuthorization serviceAuthorization)
|
376
337
|
{
|
377
|
-
return
|
338
|
+
return _releaseInfo[version].auth;
|
378
339
|
}
|
379
340
|
|
380
341
|
function getRegistryAdmin() external view returns (address) {
|
@@ -389,7 +350,61 @@ contract ReleaseRegistry is
|
|
389
350
|
|
390
351
|
//--- private functions ----------------------------------------------------//
|
391
352
|
|
392
|
-
|
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
|
+
)
|
393
408
|
internal
|
394
409
|
view
|
395
410
|
returns(
|
@@ -410,22 +425,25 @@ contract ReleaseRegistry is
|
|
410
425
|
|
411
426
|
_verifyServiceInfo(service, serviceInfo, owner);
|
412
427
|
|
413
|
-
VersionPart releaseVersion = _next; // never 0
|
414
|
-
address expectedAuthority = _admin.authority(); // can be zero if registering service when release is not created
|
415
|
-
|
416
|
-
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
417
428
|
if(serviceAuthority != expectedAuthority) {
|
418
|
-
revert
|
429
|
+
revert ErrorReleaseRegistryServiceAuthorityMismatch(
|
419
430
|
service,
|
420
431
|
serviceAuthority,
|
421
432
|
expectedAuthority);
|
422
433
|
}
|
423
434
|
|
424
|
-
if(serviceVersion !=
|
425
|
-
revert
|
435
|
+
if(serviceVersion != expectedVersion) {
|
436
|
+
revert ErrorReleaseRegistryServiceVersionMismatch(
|
426
437
|
service,
|
427
438
|
serviceVersion,
|
428
|
-
|
439
|
+
expectedVersion);
|
440
|
+
}
|
441
|
+
|
442
|
+
if(serviceDomain != expectedDomain) {
|
443
|
+
revert ErrorReleaseRegistryServiceDomainMismatch(
|
444
|
+
service,
|
445
|
+
expectedDomain,
|
446
|
+
serviceDomain);
|
429
447
|
}
|
430
448
|
}
|
431
449
|
|
@@ -439,7 +457,7 @@ contract ReleaseRegistry is
|
|
439
457
|
view
|
440
458
|
{
|
441
459
|
if(info.objectAddress != address(service)) {
|
442
|
-
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service,
|
460
|
+
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
|
443
461
|
}
|
444
462
|
|
445
463
|
if(info.isInterceptor != false) { // service is never interceptor
|
@@ -464,22 +482,5 @@ contract ReleaseRegistry is
|
|
464
482
|
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
465
483
|
}
|
466
484
|
}
|
467
|
-
|
468
|
-
/// @dev returns true iff a the address passes some simple proxy tests.
|
469
|
-
function _isRegistry(address registryAddress) internal view returns (bool) {
|
470
|
-
|
471
|
-
// zero address is certainly not registry
|
472
|
-
if (registryAddress == address(0)) {
|
473
|
-
return false;
|
474
|
-
}
|
475
|
-
// TODO try catch and return false in case of revert
|
476
|
-
// or just panic
|
477
|
-
// check if contract returns a zero nft id for its own address
|
478
|
-
if (IRegistry(registryAddress).getNftId(registryAddress).eqz()) {
|
479
|
-
return false;
|
480
|
-
}
|
481
|
-
|
482
|
-
return true;
|
483
|
-
}
|
484
485
|
}
|
485
486
|
|