@etherisc/gif-next 0.0.2-f1fe735-758 → 0.0.2-f2a5ca7-763
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 +13 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
- 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 +6 -6
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +55 -55
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- 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 +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +6 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +6 -6
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +134 -134
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +12 -21
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +8 -9
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +74 -70
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +5 -1
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +14 -26
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +11 -27
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +12 -36
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +5 -31
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +118 -88
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +97 -113
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/ComponentService.sol +19 -58
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +3 -4
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +11 -14
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +3 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1177
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
| @@ -1,32 +1,18 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
         | 
| 5 | 
            -
            // import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            import {IRegistry} from "./IRegistry.sol";
         | 
| 8 | 
            -
            import {IInstance} from "../instance/IInstance.sol";
         | 
| 9 | 
            -
             | 
| 10 4 | 
             
            import {IComponent} from "../../contracts/shared/IComponent.sol";
         | 
| 5 | 
            +
            import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
         | 
| 6 | 
            +
            import {IInstance} from "../instance/IInstance.sol";
         | 
| 11 7 | 
             
            import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
         | 
| 12 8 | 
             
            import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
         | 
| 13 | 
            -
            import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            import {IVersionable} from "../../contracts/shared/IVersionable.sol";
         | 
| 16 | 
            -
            import {Versionable} from "../../contracts/shared/Versionable.sol";
         | 
| 17 9 | 
             
            import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
         | 
| 10 | 
            +
            import {IRegistry} from "./IRegistry.sol";
         | 
| 11 | 
            +
            import {IRegistryService} from "./IRegistryService.sol";
         | 
| 18 12 |  | 
| 19 | 
            -
            import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
         | 
| 20 13 | 
             
            import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
         | 
| 21 | 
            -
            import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
         | 
| 22 14 | 
             
            import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
         | 
| 23 | 
            -
            import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
         | 
| 24 | 
            -
            import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
         | 
| 25 | 
            -
             | 
| 26 15 | 
             
            import {Service} from "../shared/Service.sol";
         | 
| 27 | 
            -
            import {IService} from "../shared/IService.sol";
         | 
| 28 | 
            -
            import {IRegistryService} from "./IRegistryService.sol";
         | 
| 29 | 
            -
            import {Registry} from "./Registry.sol";
         | 
| 30 16 |  | 
| 31 17 | 
             
            contract RegistryService is
         | 
| 32 18 | 
             
                Service,
         | 
| @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {IVersionable} from "../ | 
| 5 | 
            -
            import {ProxyManager} from "../ | 
| 4 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 5 | 
            +
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 6 6 | 
             
            import {RegistryService} from "./RegistryService.sol";
         | 
| 7 7 |  | 
| 8 8 | 
             
            contract RegistryServiceManager is
         | 
| @@ -18,7 +18,6 @@ import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED} from ".. | |
| 18 18 | 
             
            import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
         | 
| 19 19 |  | 
| 20 20 | 
             
            import {IService} from "../shared/IService.sol";
         | 
| 21 | 
            -
            import {AccessManagerExtendedWithDisableInitializeable} from "../shared/AccessManagerExtendedWithDisableInitializeable.sol";
         | 
| 22 21 | 
             
            import {ILifecycle} from "../shared/ILifecycle.sol";
         | 
| 23 22 | 
             
            import {INftOwnable} from "../shared/INftOwnable.sol";
         | 
| 24 23 | 
             
            import {IRegisterable} from "../shared/IRegisterable.sol";
         | 
| @@ -26,15 +25,16 @@ import {IRegisterable} from "../shared/IRegisterable.sol"; | |
| 26 25 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 27 26 | 
             
            import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
         | 
| 28 27 | 
             
            import {IRegistryService} from "./IRegistryService.sol";
         | 
| 29 | 
            -
            import {IServiceAuthorization} from " | 
| 30 | 
            -
            import {IAccessAdmin} from "../ | 
| 28 | 
            +
            import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
         | 
| 29 | 
            +
            import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
         | 
| 31 30 | 
             
            import {RegistryAdmin} from "./RegistryAdmin.sol";
         | 
| 32 31 | 
             
            import {Registry} from "./Registry.sol";
         | 
| 33 32 | 
             
            import {TokenRegistry} from "./TokenRegistry.sol";
         | 
| 34 33 | 
             
            import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
         | 
| 35 34 |  | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 35 | 
            +
            // TODO rename to something that does not end with 'Manager' 
         | 
| 36 | 
            +
            // everywhere else *Manager points to an upgradeable contract
         | 
| 37 | 
            +
            contract ReleaseRegistry is 
         | 
| 38 38 | 
             
                AccessManaged,
         | 
| 39 39 | 
             
                ReleaseLifecycle, 
         | 
| 40 40 | 
             
                IRegistryLinked
         | 
| @@ -43,65 +43,65 @@ contract ReleaseManager is | |
| 43 43 |  | 
| 44 44 | 
             
                uint256 public constant INITIAL_GIF_VERSION = 3;
         | 
| 45 45 |  | 
| 46 | 
            -
                event LogReleaseCreation(VersionPart version, bytes32 salt | 
| 46 | 
            +
                event LogReleaseCreation(VersionPart version, bytes32 salt); 
         | 
| 47 47 | 
             
                event LogReleaseActivation(VersionPart version);
         | 
| 48 48 | 
             
                event LogReleaseDisabled(VersionPart version);
         | 
| 49 49 | 
             
                event LogReleaseEnabled(VersionPart version);
         | 
| 50 50 |  | 
| 51 51 | 
             
                // constructor
         | 
| 52 | 
            -
                error  | 
| 52 | 
            +
                error ErrorReleaseRegistryNotRegistry(Registry registry);
         | 
| 53 53 |  | 
| 54 54 | 
             
                // createNextRelease
         | 
| 55 | 
            -
                error  | 
| 55 | 
            +
                error ErrorReleaseRegistryReleaseCreationDisallowed(VersionPart version, StateId currentStateId);
         | 
| 56 56 |  | 
| 57 57 | 
             
                // prepareRelease
         | 
| 58 | 
            -
                error  | 
| 59 | 
            -
                error  | 
| 60 | 
            -
                error  | 
| 61 | 
            -
                error  | 
| 58 | 
            +
                error ErrorReleaseRegistryReleasePreparationDisallowed(VersionPart version, StateId currentStateId);
         | 
| 59 | 
            +
                error ErrorReleaseRegistryReleaseAlreadyPrepared(VersionPart version, StateId currentStateId);
         | 
| 60 | 
            +
                error ErrorReleaseRegistryVersionMismatch(VersionPart expected, VersionPart actual);
         | 
| 61 | 
            +
                error ErrorReleaseRegistryNoDomains(VersionPart version);
         | 
| 62 62 |  | 
| 63 63 | 
             
                // registerService
         | 
| 64 | 
            -
                error  | 
| 65 | 
            -
                error  | 
| 66 | 
            -
                error  | 
| 67 | 
            -
                error  | 
| 68 | 
            -
                error  | 
| 64 | 
            +
                error ErrorReleaseRegistryNoServiceRegistrationExpected();
         | 
| 65 | 
            +
                error ErrorReleaseRegistryServiceRegistrationDisallowed(StateId currentStateId);
         | 
| 66 | 
            +
                error ErrorReleaseRegistryServiceDomainMismatch(ObjectType expectedDomain, ObjectType actualDomain);
         | 
| 67 | 
            +
                error ErrorReleaseRegistryNotService(address notService);
         | 
| 68 | 
            +
                error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
         | 
| 69 69 |  | 
| 70 70 | 
             
                // activateNextRelease
         | 
| 71 | 
            -
                error  | 
| 72 | 
            -
                error  | 
| 73 | 
            -
                error  | 
| 74 | 
            -
                error  | 
| 71 | 
            +
                error ErrorReleaseRegistryReleaseActivationDisallowed(VersionPart releaseVersion, StateId currentStateId);
         | 
| 72 | 
            +
                error ErrorReleaseRegistryReleaseNotCreated(VersionPart releaseVersion);
         | 
| 73 | 
            +
                error ErrorReleaseRegistryReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
         | 
| 74 | 
            +
                error ErrorReleaseRegistryReleaseAlreadyActivated(VersionPart releaseVersion);
         | 
| 75 75 |  | 
| 76 76 | 
             
                // disableRelease
         | 
| 77 | 
            -
                error  | 
| 78 | 
            -
                error  | 
| 77 | 
            +
                error ErrorReleaseRegistryReleaseNotActivated(VersionPart releaseVersion);
         | 
| 78 | 
            +
                error ErrorReleaseRegistryReleaseAlreadyDisabled(VersionPart releaseVersion);
         | 
| 79 79 |  | 
| 80 80 | 
             
                // _verifyService
         | 
| 81 | 
            -
                error  | 
| 82 | 
            -
                error  | 
| 81 | 
            +
                error ErrorReleaseRegistryServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
         | 
| 82 | 
            +
                error ErrorReleaseRegistryServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
         | 
| 83 83 |  | 
| 84 84 | 
             
                // _verifyServiceInfo
         | 
| 85 | 
            -
                error  | 
| 86 | 
            -
                error  | 
| 87 | 
            -
                error  | 
| 88 | 
            -
                error  | 
| 89 | 
            -
                error  | 
| 90 | 
            -
                error  | 
| 85 | 
            +
                error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
         | 
| 86 | 
            +
                error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
         | 
| 87 | 
            +
                error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
         | 
| 88 | 
            +
                error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
         | 
| 89 | 
            +
                error ErrorReleaseRegistryServiceSelfRegistration(IService service);
         | 
| 90 | 
            +
                error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
         | 
| 91 91 |  | 
| 92 92 | 
             
                Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
         | 
| 93 93 |  | 
| 94 | 
            -
                RegistryAdmin  | 
| 95 | 
            -
                 | 
| 96 | 
            -
                 | 
| 94 | 
            +
                RegistryAdmin public immutable _admin;
         | 
| 95 | 
            +
                Registry public immutable _registry;
         | 
| 96 | 
            +
                IRegisterable private _staking;
         | 
| 97 | 
            +
                address private _stakingOwner;
         | 
| 97 98 |  | 
| 98 | 
            -
                // TODO remove once it's clear that release authority will always be registry authority
         | 
| 99 | 
            -
                mapping(VersionPart version => address authority) internal _releaseAccessManager;
         | 
| 100 99 | 
             
                mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
         | 
| 101 | 
            -
                mapping(address registryService => VersionPart version) _releaseVersionByAddress;
         | 
| 102 | 
            -
             | 
| 103 100 | 
             
                mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
         | 
| 104 101 |  | 
| 102 | 
            +
                // TODO check where/why this is used
         | 
| 103 | 
            +
                mapping(address registryService => VersionPart version) _releaseVersionByAddress;
         | 
| 104 | 
            +
             | 
| 105 105 | 
             
                VersionPart private _initial;// first active version    
         | 
| 106 106 | 
             
                VersionPart internal _latest; // latest active version
         | 
| 107 107 | 
             
                VersionPart internal _next; // version to create and activate 
         | 
| @@ -115,7 +115,7 @@ contract ReleaseManager is | |
| 115 115 | 
             
                {
         | 
| 116 116 | 
             
                    // TODO move this part to RegistryLinked constructor
         | 
| 117 117 | 
             
                    if(!_isRegistry(address(registry))) {
         | 
| 118 | 
            -
                        revert  | 
| 118 | 
            +
                        revert ErrorReleaseRegistryNotRegistry(registry);
         | 
| 119 119 | 
             
                    }
         | 
| 120 120 |  | 
| 121 121 | 
             
                    setAuthority(registry.getAuthority());
         | 
| @@ -125,11 +125,6 @@ contract ReleaseManager is | |
| 125 125 |  | 
| 126 126 | 
             
                    _initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
         | 
| 127 127 | 
             
                    _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
         | 
| 128 | 
            -
             | 
| 129 | 
            -
                    //AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
         | 
| 130 | 
            -
                    //masterReleaseAccessManager.initialize(address(this));
         | 
| 131 | 
            -
                      //masterReleaseAccessManager.disable();
         | 
| 132 | 
            -
                    //_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
         | 
| 133 128 | 
             
                }
         | 
| 134 129 |  | 
| 135 130 | 
             
                /// @dev skips previous release if was not activated
         | 
| @@ -159,50 +154,46 @@ contract ReleaseManager is | |
| 159 154 | 
             
                        bytes32 releaseSalt
         | 
| 160 155 | 
             
                    )
         | 
| 161 156 | 
             
                {
         | 
| 162 | 
            -
                    (
         | 
| 163 | 
            -
             | 
| 164 | 
            -
                        uint serviceDomainsCount
         | 
| 165 | 
            -
                    ) = serviceAuthorization.getRelease();
         | 
| 157 | 
            +
                    authority = _admin.authority();
         | 
| 158 | 
            +
                    version = _next;
         | 
| 166 159 |  | 
| 167 | 
            -
                    //  | 
| 168 | 
            -
                     | 
| 169 | 
            -
             | 
| 160 | 
            +
                    // ensures unique salt
         | 
| 161 | 
            +
                    // TODO CreateX have clones capability also
         | 
| 162 | 
            +
                    // what would releaseSalt look like if used with CreateX in pemissioned mode?
         | 
| 163 | 
            +
                    releaseSalt = keccak256(
         | 
| 164 | 
            +
                        bytes.concat(
         | 
| 165 | 
            +
                            bytes32(version.toInt()),
         | 
| 166 | 
            +
                            salt));
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                    // verify release in state SCHEDULED
         | 
| 169 | 
            +
                    if (!isValidTransition(RELEASE(), _state[version], DEPLOYING())) {
         | 
| 170 | 
            +
                        revert ErrorReleaseRegistryReleasePreparationDisallowed(version, _state[version]);
         | 
| 170 171 | 
             
                    }
         | 
| 171 172 |  | 
| 172 | 
            -
                     | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 173 | 
            +
                    _state[version] = DEPLOYING();
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                    // verify authorizaion contract release matches with expected version
         | 
| 176 | 
            +
                    VersionPart releaseVersion = serviceAuthorization.getRelease();
         | 
| 177 | 
            +
                    if (releaseVersion != version) {
         | 
| 178 | 
            +
                        revert ErrorReleaseRegistryVersionMismatch(version, releaseVersion);
         | 
| 175 179 | 
             
                    }
         | 
| 176 180 |  | 
| 177 | 
            -
                    version = _next;
         | 
| 178 | 
            -
                    StateId state = _state[version];
         | 
| 179 | 
            -
                    StateId newState = DEPLOYING();
         | 
| 180 181 |  | 
| 181 | 
            -
                    //  | 
| 182 | 
            -
                     | 
| 183 | 
            -
             | 
| 182 | 
            +
                    // sanity check to ensure service domain list is not empty
         | 
| 183 | 
            +
                    uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
         | 
| 184 | 
            +
                    if (serviceDomainsCount == 0) {
         | 
| 185 | 
            +
                        revert ErrorReleaseRegistryNoDomains(version);
         | 
| 184 186 | 
             
                    }
         | 
| 185 187 |  | 
| 186 188 | 
             
                    // verify prepareNextRelease is only called once per release
         | 
| 187 189 | 
             
                    if(_servicesToRegister > 0) {
         | 
| 188 | 
            -
                        revert  | 
| 190 | 
            +
                        revert ErrorReleaseRegistryReleaseAlreadyPrepared(version, _state[version]);
         | 
| 189 191 | 
             
                    }
         | 
| 190 192 |  | 
| 191 | 
            -
                    // ensures unique salt
         | 
| 192 | 
            -
                    // TODO CreateX have clones capability also
         | 
| 193 | 
            -
                    // what would releaseSalt look like if used with CreateX in pemissioned mode?
         | 
| 194 | 
            -
                    releaseSalt = keccak256(
         | 
| 195 | 
            -
                        bytes.concat(
         | 
| 196 | 
            -
                            bytes32(version.toInt()),
         | 
| 197 | 
            -
                            salt));
         | 
| 198 | 
            -
             | 
| 199 | 
            -
                    authority = _admin.authority();
         | 
| 200 | 
            -
                    _serviceAuthorization[_next] = serviceAuthorization;
         | 
| 201 | 
            -
                    _releaseAccessManager[_next] = authority;
         | 
| 202 193 | 
             
                    _servicesToRegister = serviceDomainsCount;
         | 
| 203 | 
            -
                     | 
| 194 | 
            +
                    _serviceAuthorization[version] = serviceAuthorization;
         | 
| 204 195 |  | 
| 205 | 
            -
                    emit LogReleaseCreation(version, releaseSalt | 
| 196 | 
            +
                    emit LogReleaseCreation(version, releaseSalt);
         | 
| 206 197 | 
             
                }
         | 
| 207 198 |  | 
| 208 199 | 
             
                // TODO this function can have 0 args -> use stored addresses from prepareNextRelease()
         | 
| @@ -213,17 +204,18 @@ contract ReleaseManager is | |
| 213 204 | 
             
                {
         | 
| 214 205 | 
             
                    VersionPart releaseVersion = _next;
         | 
| 215 206 | 
             
                    StateId state = _state[releaseVersion];
         | 
| 216 | 
            -
                    StateId newState = DEPLOYING();
         | 
| 217 207 |  | 
| 218 208 | 
             
                    // verify release in state DEPLOYING
         | 
| 219 | 
            -
                    if (!isValidTransition(RELEASE(), state,  | 
| 209 | 
            +
                    if (!isValidTransition(RELEASE(), state, DEPLOYING())) {
         | 
| 220 210 | 
             
                        // TOOD name must represent failed state transition
         | 
| 221 | 
            -
                        revert  | 
| 211 | 
            +
                        revert ErrorReleaseRegistryServiceRegistrationDisallowed(state);
         | 
| 222 212 | 
             
                    }
         | 
| 223 213 |  | 
| 214 | 
            +
                    _state[releaseVersion] = DEPLOYING();
         | 
| 215 | 
            +
             | 
| 224 216 | 
             
                    // not all services are registered
         | 
| 225 217 | 
             
                    if (_servicesToRegister == _registeredServices) {
         | 
| 226 | 
            -
                        revert  | 
| 218 | 
            +
                        revert ErrorReleaseRegistryNoServiceRegistrationExpected();
         | 
| 227 219 | 
             
                    }
         | 
| 228 220 |  | 
| 229 221 | 
             
                    // service can work with release manager
         | 
| @@ -236,20 +228,12 @@ contract ReleaseManager is | |
| 236 228 | 
             
                    // service domain matches defined in release config
         | 
| 237 229 | 
             
                    ObjectType expectedDomain = _serviceAuthorization[releaseVersion].getServiceDomain(_registeredServices);
         | 
| 238 230 | 
             
                    if (serviceDomain != expectedDomain) {
         | 
| 239 | 
            -
                        revert  | 
| 231 | 
            +
                        revert ErrorReleaseRegistryServiceDomainMismatch(expectedDomain, serviceDomain);
         | 
| 240 232 | 
             
                    }
         | 
| 241 233 |  | 
| 242 | 
            -
                    //  | 
| 243 | 
            -
                     | 
| 244 | 
            -
                     | 
| 245 | 
            -
                    if(address(service) != expectedAddress) {
         | 
| 246 | 
            -
                        //revert ErrorReleaseManagerServiceAddressMismatch(expectedAddress, address(service));
         | 
| 247 | 
            -
                    }*/
         | 
| 248 | 
            -
             | 
| 249 | 
            -
                    // checked in registry
         | 
| 250 | 
            -
                    _releaseInfo[releaseVersion].domains.push(serviceDomain);
         | 
| 251 | 
            -
             | 
| 252 | 
            -
                    _state[releaseVersion] = newState;
         | 
| 234 | 
            +
                    // register service with registry
         | 
| 235 | 
            +
                    nftId = _registry.registerService(info, serviceVersion, serviceDomain);
         | 
| 236 | 
            +
                    service.linkToRegisteredNftId();
         | 
| 253 237 | 
             
                    _registeredServices++;
         | 
| 254 238 |  | 
| 255 239 | 
             
                    // setup service authorization
         | 
| @@ -263,10 +247,6 @@ contract ReleaseManager is | |
| 263 247 | 
             
                        // TODO rename to grantServiceDomainRole()
         | 
| 264 248 | 
             
                        _admin.grantServiceRoleForAllVersions(service, serviceDomain);
         | 
| 265 249 | 
             
                    }
         | 
| 266 | 
            -
             | 
| 267 | 
            -
                    // register service with registry
         | 
| 268 | 
            -
                    nftId = _registry.registerService(info, serviceVersion, serviceDomain);
         | 
| 269 | 
            -
                    service.linkToRegisteredNftId();
         | 
| 270 250 | 
             
                }
         | 
| 271 251 |  | 
| 272 252 |  | 
| @@ -280,18 +260,18 @@ contract ReleaseManager is | |
| 280 260 |  | 
| 281 261 | 
             
                    // verify release in state DEPLOYING
         | 
| 282 262 | 
             
                    if (!isValidTransition(RELEASE(), state, newState)) {
         | 
| 283 | 
            -
                        revert  | 
| 263 | 
            +
                        revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
         | 
| 284 264 | 
             
                    }
         | 
| 285 265 |  | 
| 286 266 | 
             
                    // release fully deployed
         | 
| 287 267 | 
             
                    if(_registeredServices < _servicesToRegister) {
         | 
| 288 | 
            -
                        revert  | 
| 268 | 
            +
                        revert ErrorReleaseRegistryReleaseRegistrationNotFinished(version, _servicesToRegister - _registeredServices);
         | 
| 289 269 | 
             
                    }
         | 
| 290 270 |  | 
| 291 271 | 
             
                    // release exists, registry service MUST exist
         | 
| 292 272 | 
             
                    address service = _registry.getServiceAddress(REGISTRY(), version);
         | 
| 293 273 | 
             
                    if(service == address(0)) {
         | 
| 294 | 
            -
                        revert  | 
| 274 | 
            +
                        revert ErrorReleaseRegistryReleaseNotCreated(version);
         | 
| 295 275 | 
             
                    }
         | 
| 296 276 |  | 
| 297 277 | 
             
                    _latest = version;
         | 
| @@ -313,7 +293,7 @@ contract ReleaseManager is | |
| 313 293 |  | 
| 314 294 | 
             
                    // verify release in state ACTIVE
         | 
| 315 295 | 
             
                    if (!isValidTransition(RELEASE(), state, newState)) {
         | 
| 316 | 
            -
                        revert  | 
| 296 | 
            +
                        revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
         | 
| 317 297 | 
             
                    }
         | 
| 318 298 |  | 
| 319 299 | 
             
                    // TODO come up with a substitute
         | 
| @@ -336,7 +316,7 @@ contract ReleaseManager is | |
| 336 316 |  | 
| 337 317 | 
             
                    // verify release in state PAUSED
         | 
| 338 318 | 
             
                    if (!isValidTransition(RELEASE(), state, newState)) {
         | 
| 339 | 
            -
                        revert  | 
| 319 | 
            +
                        revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
         | 
| 340 320 | 
             
                    }
         | 
| 341 321 |  | 
| 342 322 | 
             
                    // TODO come up with a substitute
         | 
| @@ -391,8 +371,12 @@ contract ReleaseManager is | |
| 391 371 | 
             
                    return _servicesToRegister - _registeredServices;
         | 
| 392 372 | 
             
                }
         | 
| 393 373 |  | 
| 394 | 
            -
                function  | 
| 395 | 
            -
                     | 
| 374 | 
            +
                function getServiceAuthorization(VersionPart version)
         | 
| 375 | 
            +
                    external
         | 
| 376 | 
            +
                    view
         | 
| 377 | 
            +
                    returns (IServiceAuthorization serviceAuthorization)
         | 
| 378 | 
            +
                {
         | 
| 379 | 
            +
                    return _serviceAuthorization[version];
         | 
| 396 380 | 
             
                }
         | 
| 397 381 |  | 
| 398 382 | 
             
                function getRegistryAdmin() external view returns (address) {
         | 
| @@ -417,7 +401,7 @@ contract ReleaseManager is | |
| 417 401 | 
             
                    )
         | 
| 418 402 | 
             
                {
         | 
| 419 403 | 
             
                    if(!service.supportsInterface(type(IService).interfaceId)) {
         | 
| 420 | 
            -
                        revert  | 
| 404 | 
            +
                        revert ErrorReleaseRegistryNotService(address(service));
         | 
| 421 405 | 
             
                    }
         | 
| 422 406 |  | 
| 423 407 | 
             
                    address owner = msg.sender;
         | 
| @@ -429,18 +413,18 @@ contract ReleaseManager is | |
| 429 413 | 
             
                    _verifyServiceInfo(service, serviceInfo, owner);
         | 
| 430 414 |  | 
| 431 415 | 
             
                    VersionPart releaseVersion = _next; // never 0
         | 
| 432 | 
            -
                    address  | 
| 416 | 
            +
                    address expectedAuthority = _admin.authority(); // can be zero if registering service when release is not created
         | 
| 433 417 |  | 
| 434 418 | 
             
                    // IMPORTANT: can not guarantee service access is actually controlled by authority
         | 
| 435 | 
            -
                    if(serviceAuthority !=  | 
| 436 | 
            -
                        revert  | 
| 419 | 
            +
                    if(serviceAuthority != expectedAuthority) {
         | 
| 420 | 
            +
                        revert ErrorReleaseRegistryServiceReleaseAuthorityMismatch(
         | 
| 437 421 | 
             
                            service,
         | 
| 438 422 | 
             
                            serviceAuthority,
         | 
| 439 | 
            -
                             | 
| 423 | 
            +
                            expectedAuthority);
         | 
| 440 424 | 
             
                    }
         | 
| 441 425 |  | 
| 442 426 | 
             
                    if(serviceVersion != releaseVersion) {
         | 
| 443 | 
            -
                        revert  | 
| 427 | 
            +
                        revert ErrorReleaseRegistryServiceReleaseVersionMismatch(
         | 
| 444 428 | 
             
                            service,
         | 
| 445 429 | 
             
                            serviceVersion,
         | 
| 446 430 | 
             
                            releaseVersion);            
         | 
| @@ -457,29 +441,29 @@ contract ReleaseManager is | |
| 457 441 | 
             
                    view
         | 
| 458 442 | 
             
                {
         | 
| 459 443 | 
             
                    if(info.objectAddress != address(service)) {
         | 
| 460 | 
            -
                        revert  | 
| 444 | 
            +
                        revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, address(service));
         | 
| 461 445 | 
             
                    }
         | 
| 462 446 |  | 
| 463 447 | 
             
                    if(info.isInterceptor != false) { // service is never interceptor
         | 
| 464 | 
            -
                        revert  | 
| 448 | 
            +
                        revert ErrorReleaseRegistryServiceInfoInterceptorInvalid(service, info.isInterceptor);
         | 
| 465 449 | 
             
                    }
         | 
| 466 450 |  | 
| 467 451 | 
             
                    if(info.objectType != SERVICE()) {
         | 
| 468 | 
            -
                        revert  | 
| 452 | 
            +
                        revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
         | 
| 469 453 | 
             
                    }
         | 
| 470 454 |  | 
| 471 455 | 
             
                    address owner = info.initialOwner;
         | 
| 472 456 |  | 
| 473 457 | 
             
                    if(owner != expectedOwner) { // registerable owner protection
         | 
| 474 | 
            -
                        revert  | 
| 458 | 
            +
                        revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner); 
         | 
| 475 459 | 
             
                    }
         | 
| 476 460 |  | 
| 477 461 | 
             
                    if(owner == address(service)) {
         | 
| 478 | 
            -
                        revert  | 
| 462 | 
            +
                        revert ErrorReleaseRegistryServiceSelfRegistration(service);
         | 
| 479 463 | 
             
                    }
         | 
| 480 464 |  | 
| 481 465 | 
             
                    if(_registry.isRegistered(owner)) { 
         | 
| 482 | 
            -
                        revert  | 
| 466 | 
            +
                        revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
         | 
| 483 467 | 
             
                    }
         | 
| 484 468 | 
             
                }
         | 
| 485 469 |  | 
| @@ -6,7 +6,7 @@ import { | |
| 6 6 | 
             
            } from "../../contracts/type/ObjectType.sol";
         | 
| 7 7 |  | 
| 8 8 | 
             
            import {ComponentService} from "../shared/ComponentService.sol";
         | 
| 9 | 
            -
            import { | 
| 9 | 
            +
            import {IAccess} from "../authorization/IAccess.sol";
         | 
| 10 10 | 
             
            import {IBundleService} from "../pool/IBundleService.sol";
         | 
| 11 11 | 
             
            import {IDistributionService} from "../distribution/IDistributionService.sol";
         | 
| 12 12 | 
             
            import {InstanceService} from "../instance/InstanceService.sol";
         | 
| @@ -14,7 +14,7 @@ import {IInstanceService} from "../instance/IInstanceService.sol"; | |
| 14 14 | 
             
            import {IPoolService} from "../pool/IPoolService.sol";
         | 
| 15 15 | 
             
            import {IStakingService} from "../staking/IStakingService.sol";
         | 
| 16 16 | 
             
            import {IRegistryService} from "./IRegistryService.sol";
         | 
| 17 | 
            -
            import {ServiceAuthorization} from " | 
| 17 | 
            +
            import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
         | 
| 18 18 |  | 
| 19 19 |  | 
| 20 20 | 
             
            contract ServiceAuthorizationV3
         | 
| @@ -64,19 +64,19 @@ contract ServiceAuthorizationV3 | |
| 64 64 | 
             
                 function _setupIRegistryServiceAuthorization()
         | 
| 65 65 | 
             
                      internal
         | 
| 66 66 | 
             
                 {
         | 
| 67 | 
            -
                       | 
| 67 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 68 68 |  | 
| 69 69 | 
             
                      functions = _authorizeForService(REGISTRY(), APPLICATION());
         | 
| 70 70 | 
             
                      _authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
         | 
| 71 71 |  | 
| 72 | 
            -
                      functions = _authorizeForService(REGISTRY(), POOL());
         | 
| 73 | 
            -
                      _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
         | 
| 72 | 
            +
                      // functions = _authorizeForService(REGISTRY(), POOL());
         | 
| 73 | 
            +
                      // _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
         | 
| 74 74 |  | 
| 75 75 | 
             
                      functions = _authorizeForService(REGISTRY(), BUNDLE());
         | 
| 76 76 | 
             
                      _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
         | 
| 77 77 |  | 
| 78 78 | 
             
                      functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
         | 
| 79 | 
            -
                      _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
         | 
| 79 | 
            +
                      // _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
         | 
| 80 80 | 
             
                      _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
         | 
| 81 81 |  | 
| 82 82 | 
             
                      functions = _authorizeForService(REGISTRY(), COMPONENT());
         | 
| @@ -88,8 +88,8 @@ contract ServiceAuthorizationV3 | |
| 88 88 | 
             
                      functions = _authorizeForService(REGISTRY(), STAKING());
         | 
| 89 89 | 
             
                      _authorize(functions, IRegistryService.registerStake.selector, "registerStake");
         | 
| 90 90 |  | 
| 91 | 
            -
                      functions = _authorizeForService(REGISTRY(), PRODUCT());
         | 
| 92 | 
            -
                      _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
         | 
| 91 | 
            +
                      // functions = _authorizeForService(REGISTRY(), PRODUCT());
         | 
| 92 | 
            +
                      // _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
         | 
| 93 93 | 
             
                 }
         | 
| 94 94 |  | 
| 95 95 |  | 
| @@ -98,7 +98,7 @@ contract ServiceAuthorizationV3 | |
| 98 98 | 
             
                 function _setupStakingServiceAuthorization()
         | 
| 99 99 | 
             
                      internal
         | 
| 100 100 | 
             
                 {
         | 
| 101 | 
            -
                       | 
| 101 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 102 102 |  | 
| 103 103 | 
             
                      functions = _authorizeForService(STAKING(), INSTANCE());
         | 
| 104 104 | 
             
                      _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
         | 
| @@ -121,10 +121,10 @@ contract ServiceAuthorizationV3 | |
| 121 121 | 
             
                 function _setupInstanceServiceAuthorization()
         | 
| 122 122 | 
             
                      internal
         | 
| 123 123 | 
             
                 {
         | 
| 124 | 
            -
                       | 
| 124 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 125 125 |  | 
| 126 126 | 
             
                      functions = _authorizeForService(INSTANCE(), COMPONENT());
         | 
| 127 | 
            -
                      _authorize(functions, IInstanceService. | 
| 127 | 
            +
                      _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
         | 
| 128 128 | 
             
                 }
         | 
| 129 129 |  | 
| 130 130 |  | 
| @@ -159,7 +159,7 @@ contract ServiceAuthorizationV3 | |
| 159 159 | 
             
                 function _setupDistributionServiceAuthorization()
         | 
| 160 160 | 
             
                      internal
         | 
| 161 161 | 
             
                 {
         | 
| 162 | 
            -
                       | 
| 162 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 163 163 |  | 
| 164 164 | 
             
                      functions = _authorizeForService(DISTRIBUTION(), POLICY());
         | 
| 165 165 | 
             
                      _authorize(functions, IDistributionService.processSale.selector, "processSale");
         | 
| @@ -170,7 +170,7 @@ contract ServiceAuthorizationV3 | |
| 170 170 | 
             
                 function _setupPoolServiceAuthorization()
         | 
| 171 171 | 
             
                      internal
         | 
| 172 172 | 
             
                 {
         | 
| 173 | 
            -
                       | 
| 173 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 174 174 |  | 
| 175 175 | 
             
                      functions = _authorizeForService(POOL(), POLICY());
         | 
| 176 176 | 
             
                      _authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
         | 
| @@ -187,7 +187,7 @@ contract ServiceAuthorizationV3 | |
| 187 187 | 
             
                 function _setupBundleServiceAuthorization()
         | 
| 188 188 | 
             
                      internal
         | 
| 189 189 | 
             
                 {
         | 
| 190 | 
            -
                       | 
| 190 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 191 191 |  | 
| 192 192 | 
             
                      functions = _authorizeForService(BUNDLE(), POOL());
         | 
| 193 193 | 
             
                      _authorize(functions, IBundleService.create.selector, "create");
         | 
| @@ -12,7 +12,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol"; | |
| 12 12 |  | 
| 13 13 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 14 14 | 
             
            import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
         | 
| 15 | 
            -
            import { | 
| 15 | 
            +
            import {ReleaseRegistry} from "./ReleaseRegistry.sol";
         | 
| 16 16 | 
             
            import {RegistryAdmin} from "./RegistryAdmin.sol";
         | 
| 17 17 |  | 
| 18 18 |  | 
| @@ -49,7 +49,7 @@ contract TokenRegistry is | |
| 49 49 | 
             
                TokenInfo [] internal _token;
         | 
| 50 50 |  | 
| 51 51 | 
             
                IRegistry internal _registry;
         | 
| 52 | 
            -
                 | 
| 52 | 
            +
                ReleaseRegistry internal _releaseRegistry;
         | 
| 53 53 | 
             
                IERC20Metadata internal _dipToken;
         | 
| 54 54 |  | 
| 55 55 | 
             
                /// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
         |