@etherisc/gif-next 0.0.2-edc084c-558 → 0.0.2-edd8f00-238
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 +11 -3
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +254 -167
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +117 -111
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +49 -312
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +303 -2005
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +177 -41
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +429 -2753
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +801 -389
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -221
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +90 -46
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +86 -159
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- 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 +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- 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 +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +187 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +783 -108
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +570 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +156 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- 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 +17 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +187 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2260 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/{components → distribution}/Distribution.sol +47 -66
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +8 -9
- package/contracts/instance/IInstance.sol +55 -66
- package/contracts/instance/IInstanceService.sol +50 -25
- package/contracts/instance/Instance.sol +160 -224
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +157 -56
- package/contracts/instance/InstanceService.sol +258 -314
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +272 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +96 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +28 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +35 -22
- package/contracts/{components → pool}/IPoolComponent.sol +17 -18
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- package/contracts/{components → pool}/Pool.sol +54 -58
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +191 -107
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -36
- package/contracts/registry/IServiceAuthorization.sol +38 -0
- package/contracts/registry/Registry.sol +198 -83
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +71 -87
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseLifecycle.sol +28 -0
- package/contracts/registry/ReleaseManager.sol +389 -190
- package/contracts/registry/ServiceAuthorization.sol +90 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +620 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +11 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +71 -0
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingLifecycle.sol +24 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +615 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +33 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +10 -1
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +4 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/base/Lifecycle.sol +0 -109
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -350
- package/contracts/instance/service/BundleService.sol +0 -431
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -435
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -362
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/Amount.sol +0 -60
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -1,220 +1,395 @@
|
|
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
|
+
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";
|
4
8
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
9
|
+
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
5
10
|
|
6
|
-
import {NftId} from "../
|
7
|
-
import {RoleId} from "../
|
8
|
-
import {ObjectType, ObjectTypeLib,
|
9
|
-
import {Version, VersionLib, VersionPart, VersionPartLib} from "../
|
10
|
-
import {Timestamp, TimestampLib} from "../
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
|
+
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
15
|
+
import {Timestamp, TimestampLib, zeroTimestamp, ltTimestamp} from "../type/Timestamp.sol";
|
16
|
+
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
17
|
+
import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
|
18
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
11
19
|
|
12
20
|
import {IService} from "../shared/IService.sol";
|
21
|
+
import {AccessManagerExtendedWithDisableInitializeable} from "../shared/AccessManagerExtendedWithDisableInitializeable.sol";
|
22
|
+
import {ILifecycle} from "../shared/ILifecycle.sol";
|
23
|
+
import {INftOwnable} from "../shared/INftOwnable.sol";
|
24
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
25
|
|
14
26
|
import {IRegistry} from "./IRegistry.sol";
|
15
|
-
import {
|
27
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
16
28
|
import {IRegistryService} from "./IRegistryService.sol";
|
17
|
-
import {
|
29
|
+
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
30
|
+
import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
|
31
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
32
|
+
import {Registry} from "./Registry.sol";
|
33
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
34
|
+
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
18
35
|
|
19
36
|
|
20
|
-
contract ReleaseManager is
|
37
|
+
contract ReleaseManager is
|
38
|
+
AccessManaged,
|
39
|
+
ReleaseLifecycle,
|
40
|
+
IRegistryLinked
|
21
41
|
{
|
22
42
|
using ObjectTypeLib for ObjectType;
|
23
43
|
|
24
|
-
|
44
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;
|
45
|
+
|
46
|
+
event LogReleaseCreation(VersionPart version, bytes32 salt, address authority);
|
25
47
|
event LogReleaseActivation(VersionPart version);
|
48
|
+
event LogReleaseDisabled(VersionPart version);
|
49
|
+
event LogReleaseEnabled(VersionPart version);
|
50
|
+
event LogReleaseClosed(VersionPart version);
|
51
|
+
|
52
|
+
// constructor
|
53
|
+
error ErrorReleaseManagerNotRegistry(Registry registry);
|
26
54
|
|
27
55
|
// createNextRelease
|
28
|
-
error
|
29
|
-
|
56
|
+
error ErrorReleaseManagerReleaseCreationDisallowed(VersionPart version, StateId currentStateId);
|
57
|
+
|
58
|
+
// prepareRelease
|
59
|
+
error ErrorReleaseManagerReleasePreparationDisallowed(VersionPart version, StateId currentStateId);
|
60
|
+
error ErrorReleaseManagerReleaseAlreadyPrepared(VersionPart version, StateId currentStateId);
|
61
|
+
error ErrorReleaseManagerVersionMismatch(VersionPart expected, VersionPart actual);
|
62
|
+
error ErrorReleaseManagerNoDomains(VersionPart version);
|
30
63
|
|
31
64
|
// registerService
|
32
|
-
error
|
65
|
+
error ErrorReleaseManagerNoServiceRegistrationExpected();
|
66
|
+
error ErrorReleaseManagerServiceRegistrationDisallowed(StateId currentStateId);
|
67
|
+
error ErrorReleaseManagerServiceDomainMismatch(ObjectType expectedDomain, ObjectType actualDomain);
|
68
|
+
error ErrorReleaseManagerNotService(address notService);
|
69
|
+
error ErrorReleaseManagerServiceAddressMismatch(address expected, address actual);
|
33
70
|
|
34
71
|
// activateNextRelease
|
35
|
-
error
|
36
|
-
error
|
72
|
+
error ErrorReleaseManagerReleaseActivationDisallowed(VersionPart releaseVersion, StateId currentStateId);
|
73
|
+
error ErrorReleaseManagerReleaseNotCreated(VersionPart releaseVersion);
|
74
|
+
error ErrorReleaseManagerReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
|
75
|
+
error ErrorReleaseManagerReleaseAlreadyActivated(VersionPart releaseVersion);
|
37
76
|
|
38
|
-
//
|
39
|
-
error
|
40
|
-
error
|
41
|
-
error SelfRegistration();
|
42
|
-
error RegisterableOwnerIsRegistered();
|
77
|
+
// disableRelease
|
78
|
+
error ErrorReleaseManagerReleaseNotActivated(VersionPart releaseVersion);
|
79
|
+
error ErrorReleaseManagerReleaseAlreadyDisabled(VersionPart releaseVersion);
|
43
80
|
|
44
81
|
// _verifyService
|
45
|
-
error
|
46
|
-
error
|
47
|
-
|
48
|
-
// _verifyAndStoreConfig
|
49
|
-
error ConfigMissing();
|
50
|
-
error ConfigServiceDomainInvalid(uint configArrayIndex, ObjectType domain);
|
51
|
-
error ConfigSelectorZero(uint configArrayIndex);
|
52
|
-
error SelectorAlreadyExists(VersionPart releaseVersion, ObjectType serviceDomain);
|
53
|
-
|
82
|
+
error ErrorReleaseManagerServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
83
|
+
error ErrorReleaseManagerServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
54
84
|
|
55
|
-
|
56
|
-
|
85
|
+
// _verifyServiceInfo
|
86
|
+
error ErrorReleaseManagerServiceInfoAddressInvalid(IService service, address expected);
|
87
|
+
error ErrorReleaseManagerServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
88
|
+
error ErrorReleaseManagerServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
89
|
+
error ErrorReleaseManagerServiceInfoOwnerInvalid(IService service, address expected, address found);
|
90
|
+
error ErrorReleaseManagerServiceSelfRegistration(IService service);
|
91
|
+
error ErrorReleaseManagerServiceOwnerRegistered(IService service, address owner);
|
57
92
|
|
58
|
-
|
59
|
-
VersionPart _latest;// latest active major version
|
60
|
-
VersionPart _next;// major version to create and activate
|
93
|
+
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
61
94
|
|
62
|
-
|
95
|
+
RegistryAdmin private _admin;
|
96
|
+
address public _releaseAccessManagerCodeAddress;
|
97
|
+
Registry private _registry;
|
63
98
|
|
64
|
-
|
99
|
+
// TODO remove once it's clear that release authority will always be registry authority
|
100
|
+
mapping(VersionPart version => address authority) internal _releaseAccessManager;
|
101
|
+
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
102
|
+
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
65
103
|
|
66
|
-
|
104
|
+
mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
|
67
105
|
|
68
|
-
|
106
|
+
VersionPart private _initial;// first active version
|
107
|
+
VersionPart internal _latest; // latest active version
|
108
|
+
VersionPart internal _next; // version to create and activate
|
109
|
+
mapping(VersionPart verson => StateId releaseState) private _state;
|
69
110
|
|
70
|
-
|
111
|
+
uint256 internal _registeredServices;
|
112
|
+
uint256 internal _servicesToRegister;
|
71
113
|
|
72
|
-
constructor(
|
73
|
-
|
74
|
-
VersionPart initialVersion)
|
75
|
-
AccessManaged(accessManager.authority())
|
114
|
+
constructor(Registry registry)
|
115
|
+
AccessManaged(msg.sender)
|
76
116
|
{
|
77
|
-
|
117
|
+
// TODO move this part to RegistryLinked constructor
|
118
|
+
if(!_isRegistry(address(registry))) {
|
119
|
+
revert ErrorReleaseManagerNotRegistry(registry);
|
120
|
+
}
|
121
|
+
|
122
|
+
setAuthority(registry.getAuthority());
|
78
123
|
|
79
|
-
|
124
|
+
_registry = registry;
|
125
|
+
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
80
126
|
|
81
|
-
_initial =
|
82
|
-
_next =
|
127
|
+
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
128
|
+
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
83
129
|
|
84
|
-
|
130
|
+
//AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
|
131
|
+
//masterReleaseAccessManager.initialize(address(this));
|
132
|
+
//masterReleaseAccessManager.disable();
|
133
|
+
//_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
|
85
134
|
}
|
86
135
|
|
87
136
|
/// @dev skips previous release if was not activated
|
137
|
+
/// sets next release into state SCHEDULED
|
88
138
|
function createNextRelease()
|
89
139
|
external
|
90
|
-
restricted // GIF_ADMIN_ROLE
|
140
|
+
restricted() // GIF_ADMIN_ROLE
|
141
|
+
returns(VersionPart)
|
142
|
+
{
|
143
|
+
_next = VersionPartLib.toVersionPart(_next.toInt() + 1);
|
144
|
+
_servicesToRegister = 0;
|
145
|
+
_registeredServices = 0;
|
146
|
+
_state[_next] = getInitialState(RELEASE());
|
147
|
+
|
148
|
+
return _next;
|
149
|
+
}
|
150
|
+
|
151
|
+
function prepareNextRelease(
|
152
|
+
IServiceAuthorization serviceAuthorization,
|
153
|
+
bytes32 salt
|
154
|
+
)
|
155
|
+
external
|
156
|
+
restricted() // GIF_MANAGER_ROLE
|
157
|
+
returns(
|
158
|
+
address authority,
|
159
|
+
VersionPart version,
|
160
|
+
bytes32 releaseSalt
|
161
|
+
)
|
91
162
|
{
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
163
|
+
(
|
164
|
+
VersionPart releaseVersion,
|
165
|
+
uint serviceDomainsCount
|
166
|
+
) = serviceAuthorization.getRelease();
|
167
|
+
|
168
|
+
// verify authorizaion contract release matches with expected version
|
169
|
+
if (releaseVersion != _next) {
|
170
|
+
revert ErrorReleaseManagerVersionMismatch(_next, releaseVersion);
|
171
|
+
}
|
96
172
|
|
97
|
-
|
173
|
+
// sanity check to ensure service domain list is not empty
|
174
|
+
if (serviceDomainsCount == 0) {
|
175
|
+
revert ErrorReleaseManagerNoDomains(_next);
|
176
|
+
}
|
177
|
+
|
178
|
+
version = _next;
|
179
|
+
StateId state = _state[version];
|
180
|
+
StateId newState = DEPLOYING();
|
181
|
+
|
182
|
+
// verify release in state SCHEDULED
|
183
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
184
|
+
revert ErrorReleaseManagerReleasePreparationDisallowed(version, state);
|
185
|
+
}
|
186
|
+
|
187
|
+
// verify prepareNextRelease is only called once per release
|
188
|
+
if(_servicesToRegister > 0) {
|
189
|
+
revert ErrorReleaseManagerReleaseAlreadyPrepared(version, state);
|
190
|
+
}
|
191
|
+
|
192
|
+
// ensures unique salt
|
193
|
+
// TODO CreateX have clones capability also
|
194
|
+
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
195
|
+
releaseSalt = keccak256(
|
196
|
+
bytes.concat(
|
197
|
+
bytes32(version.toInt()),
|
198
|
+
salt));
|
199
|
+
|
200
|
+
authority = _admin.authority();
|
201
|
+
_serviceAuthorization[_next] = serviceAuthorization;
|
202
|
+
_releaseAccessManager[_next] = authority;
|
203
|
+
_servicesToRegister = serviceDomainsCount;
|
204
|
+
_state[version] = newState;
|
205
|
+
|
206
|
+
emit LogReleaseCreation(version, releaseSalt, authority);
|
98
207
|
}
|
99
208
|
|
209
|
+
// TODO this function can have 0 args -> use stored addresses from prepareNextRelease()
|
210
|
+
function registerService(IService service)
|
211
|
+
external
|
212
|
+
restricted // GIF_MANAGER_ROLE
|
213
|
+
returns(NftId nftId)
|
214
|
+
{
|
215
|
+
VersionPart releaseVersion = _next;
|
216
|
+
StateId state = _state[releaseVersion];
|
217
|
+
StateId newState = DEPLOYING();
|
218
|
+
|
219
|
+
// verify release in state DEPLOYING
|
220
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
221
|
+
// TOOD name must represent failed state transition
|
222
|
+
revert ErrorReleaseManagerServiceRegistrationDisallowed(state);
|
223
|
+
}
|
224
|
+
|
225
|
+
// not all services are registered
|
226
|
+
if (_servicesToRegister == _registeredServices) {
|
227
|
+
revert ErrorReleaseManagerNoServiceRegistrationExpected();
|
228
|
+
}
|
229
|
+
|
230
|
+
// service can work with release manager
|
231
|
+
(
|
232
|
+
IRegistry.ObjectInfo memory info,
|
233
|
+
ObjectType serviceDomain,
|
234
|
+
VersionPart serviceVersion
|
235
|
+
) = _verifyService(service);
|
236
|
+
|
237
|
+
// service domain matches defined in release config
|
238
|
+
ObjectType expectedDomain = _serviceAuthorization[releaseVersion].getServiceDomain(_registeredServices);
|
239
|
+
if (serviceDomain != expectedDomain) {
|
240
|
+
revert ErrorReleaseManagerServiceDomainMismatch(expectedDomain, serviceDomain);
|
241
|
+
}
|
242
|
+
|
243
|
+
// TODO uncomment when release addresses calculations are ready
|
244
|
+
// service address matches defined in release config
|
245
|
+
/*address expectedAddress = _serviceAuthorization[releaseVersion].getServiceAddress(expectedDomain);
|
246
|
+
if(address(service) != expectedAddress) {
|
247
|
+
//revert ErrorReleaseManagerServiceAddressMismatch(expectedAddress, address(service));
|
248
|
+
}*/
|
249
|
+
|
250
|
+
// checked in registry
|
251
|
+
_releaseInfo[releaseVersion].domains.push(serviceDomain);
|
252
|
+
|
253
|
+
_state[releaseVersion] = newState;
|
254
|
+
_registeredServices++;
|
255
|
+
|
256
|
+
// setup service authorization
|
257
|
+
_admin.authorizeService(
|
258
|
+
_serviceAuthorization[releaseVersion],
|
259
|
+
service);
|
260
|
+
|
261
|
+
// TODO consider to extend this to REGISTRY
|
262
|
+
// special roles for registry/staking/pool service
|
263
|
+
if (serviceDomain == STAKING() || serviceDomain == POOL()) {
|
264
|
+
// TODO rename to grantServiceDomainRole()
|
265
|
+
_admin.grantServiceRoleForAllVersions(service, serviceDomain);
|
266
|
+
}
|
267
|
+
|
268
|
+
// register service with registry
|
269
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
270
|
+
service.linkToRegisteredNftId();
|
271
|
+
}
|
272
|
+
|
273
|
+
|
100
274
|
function activateNextRelease()
|
101
275
|
external
|
102
276
|
restricted // GIF_ADMIN_ROLE
|
103
277
|
{
|
104
278
|
VersionPart version = _next;
|
105
|
-
|
279
|
+
StateId state = _state[version];
|
280
|
+
StateId newState = ACTIVE();
|
106
281
|
|
107
|
-
// release
|
108
|
-
if(
|
109
|
-
revert
|
282
|
+
// verify release in state DEPLOYING
|
283
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
284
|
+
revert ErrorReleaseManagerReleaseActivationDisallowed(version, state);
|
110
285
|
}
|
111
286
|
|
112
287
|
// release fully deployed
|
113
|
-
if(
|
114
|
-
revert
|
288
|
+
if(_registeredServices < _servicesToRegister) {
|
289
|
+
revert ErrorReleaseManagerReleaseRegistrationNotFinished(version, _servicesToRegister - _registeredServices);
|
115
290
|
}
|
116
291
|
|
117
|
-
//
|
292
|
+
// release exists, registry service MUST exist
|
293
|
+
address service = _registry.getServiceAddress(REGISTRY(), version);
|
294
|
+
if(service == address(0)) {
|
295
|
+
revert ErrorReleaseManagerReleaseNotCreated(version);
|
296
|
+
}
|
118
297
|
|
119
298
|
_latest = version;
|
299
|
+
_state[version] = newState;
|
120
300
|
|
121
|
-
|
122
|
-
|
301
|
+
_releaseVersionByAddress[service] = version;
|
302
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
123
303
|
|
124
304
|
emit LogReleaseActivation(version);
|
125
305
|
}
|
126
306
|
|
127
|
-
|
128
|
-
|
129
|
-
// callable once per release after release creation, can not register regular services while registry service is not registered
|
130
|
-
function registerRegistryService(IRegistryService service)
|
307
|
+
/// @dev stop all operations with release services
|
308
|
+
function pauseRelease(VersionPart version)
|
131
309
|
external
|
132
|
-
restricted //
|
133
|
-
returns(NftId nftId)
|
310
|
+
restricted // GIF_ADMIN_ROLE
|
134
311
|
{
|
135
|
-
|
136
|
-
|
137
|
-
}
|
312
|
+
StateId state = _state[version];
|
313
|
+
StateId newState = PAUSED();
|
138
314
|
|
139
|
-
//
|
140
|
-
|
141
|
-
|
142
|
-
revert UnexpectedServiceAuthority(
|
143
|
-
authority(),
|
144
|
-
serviceAuthority);
|
315
|
+
// verify release in state ACTIVE
|
316
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
317
|
+
revert ErrorReleaseManagerReleaseActivationDisallowed(version, state);
|
145
318
|
}
|
146
319
|
|
147
|
-
|
320
|
+
// TODO come up with a substitute
|
321
|
+
//_releaseAccessManager[version].disable();
|
148
322
|
|
149
|
-
|
150
|
-
|
151
|
-
_verifyService(service, majorVersion, domain);
|
152
|
-
_createRelease(service.getFunctionConfigs());
|
153
|
-
|
154
|
-
nftId = _registry.registerService(info, majorVersion, domain);
|
323
|
+
_state[version] = newState;
|
324
|
+
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp();
|
155
325
|
|
156
|
-
|
157
|
-
service.linkToRegisteredNftId();
|
326
|
+
emit LogReleaseDisabled(version);
|
158
327
|
}
|
159
328
|
|
160
|
-
// TODO
|
161
|
-
|
162
|
-
function
|
329
|
+
// TODO consider revert if some delay is expired -> becomes disabled automatically
|
330
|
+
/// @dev resume operations with release services
|
331
|
+
function unpauseRelease(VersionPart version)
|
163
332
|
external
|
164
|
-
restricted //
|
165
|
-
returns(NftId nftId)
|
333
|
+
restricted // GIF_ADMIN_ROLE
|
166
334
|
{
|
167
|
-
|
168
|
-
|
169
|
-
}
|
335
|
+
StateId state = _state[version];
|
336
|
+
StateId newState = ACTIVE();
|
170
337
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
_verifyService(service, majorVersion, domain);
|
175
|
-
|
176
|
-
// setup and grant unique role if service does registrations
|
177
|
-
bytes4[] memory selectors = _selectors[majorVersion][domain];
|
178
|
-
address registryService = _registry.getServiceAddress(REGISTRY(), majorVersion);
|
179
|
-
if(selectors.length > 0) {
|
180
|
-
_accessManager.setAndGrantUniqueRole(
|
181
|
-
address(service),
|
182
|
-
registryService,
|
183
|
-
selectors);
|
338
|
+
// verify release in state PAUSED
|
339
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
340
|
+
revert ErrorReleaseManagerReleaseActivationDisallowed(version, state);
|
184
341
|
}
|
342
|
+
|
343
|
+
// TODO come up with a substitute
|
344
|
+
// _releaseAccessManager[version].enable();
|
185
345
|
|
186
|
-
|
346
|
+
_state[version] = newState;
|
347
|
+
_releaseInfo[version].disabledAt = zeroTimestamp();
|
187
348
|
|
188
|
-
|
349
|
+
emit LogReleaseEnabled(version);
|
350
|
+
}
|
351
|
+
/// @dev permanently disable release
|
352
|
+
function closeRelease(VersionPart version)
|
353
|
+
external
|
354
|
+
restricted // GIF_ADMIN_ROLE
|
355
|
+
{
|
356
|
+
StateId state = _state[version];
|
357
|
+
StateId newState = CLOSED();
|
189
358
|
|
190
|
-
//
|
191
|
-
|
359
|
+
// verify release in state PAUSED
|
360
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
361
|
+
revert ErrorReleaseManagerReleaseActivationDisallowed(version, state);
|
362
|
+
}
|
363
|
+
|
364
|
+
_state[version] = newState;
|
365
|
+
|
366
|
+
emit LogReleaseClosed(version);
|
192
367
|
}
|
193
368
|
|
194
369
|
//--- view functions ----------------------------------------------------//
|
195
370
|
|
196
|
-
function
|
197
|
-
|
198
|
-
|
371
|
+
function predictDeterministicAddress(
|
372
|
+
address implementation,
|
373
|
+
bytes32 salt,
|
374
|
+
address deployer
|
375
|
+
) external pure returns (address predicted) {
|
376
|
+
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
199
377
|
}
|
200
378
|
|
201
|
-
function
|
202
|
-
|
203
|
-
return
|
379
|
+
function isActiveRegistryService(address service) external view returns(bool) {
|
380
|
+
VersionPart version = _releaseVersionByAddress[service];
|
381
|
+
return isActiveRelease(version);
|
204
382
|
}
|
205
383
|
|
206
|
-
function
|
207
|
-
|
208
|
-
return (address(_registry));
|
384
|
+
function isActiveRelease(VersionPart version) public view returns(bool) {
|
385
|
+
return _releaseInfo[version].activatedAt.gtz();
|
209
386
|
}
|
210
387
|
|
211
|
-
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory)
|
212
|
-
|
213
|
-
return _release[version];
|
388
|
+
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
389
|
+
return _releaseInfo[version];
|
214
390
|
}
|
215
391
|
|
216
|
-
function getNextVersion() public view returns(VersionPart)
|
217
|
-
{
|
392
|
+
function getNextVersion() public view returns(VersionPart) {
|
218
393
|
return _next;
|
219
394
|
}
|
220
395
|
|
@@ -226,99 +401,123 @@ contract ReleaseManager is AccessManaged
|
|
226
401
|
return _initial;
|
227
402
|
}
|
228
403
|
|
404
|
+
function getState(VersionPart version) external view returns (StateId stateId) {
|
405
|
+
return _state[version];
|
406
|
+
}
|
407
|
+
|
408
|
+
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
409
|
+
return _servicesToRegister - _registeredServices;
|
410
|
+
}
|
411
|
+
|
412
|
+
// TODO cleanup
|
413
|
+
function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerExtendedWithDisableInitializeable) {
|
414
|
+
// return _releaseAccessManager[version];
|
415
|
+
}
|
416
|
+
|
417
|
+
// TODO token registry knows nothing about adfmin, only registry
|
418
|
+
function getRegistryAdmin() external view returns (address) {
|
419
|
+
return address(_admin);
|
420
|
+
}
|
421
|
+
|
422
|
+
//--- IRegistryLinked ------------------------------------------------------//
|
423
|
+
|
424
|
+
function getRegistry() external view returns (IRegistry) {
|
425
|
+
return _registry;
|
426
|
+
}
|
427
|
+
|
229
428
|
//--- private functions ----------------------------------------------------//
|
230
429
|
|
231
|
-
function
|
232
|
-
IService service,
|
233
|
-
ObjectType expectedType,
|
234
|
-
address expectedOwner // assume always valid, can not be 0
|
235
|
-
)
|
430
|
+
function _verifyService(IService service)
|
236
431
|
internal
|
237
|
-
|
432
|
+
view
|
238
433
|
returns(
|
239
|
-
IRegistry.ObjectInfo memory
|
434
|
+
IRegistry.ObjectInfo memory serviceInfo,
|
435
|
+
ObjectType serviceDomain,
|
436
|
+
VersionPart serviceVersion
|
240
437
|
)
|
241
438
|
{
|
242
|
-
|
243
|
-
|
244
|
-
info.isInterceptor = false; // service is never interceptor, at least now
|
245
|
-
|
246
|
-
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
247
|
-
revert UnexpectedRegisterableType(expectedType, info.objectType);
|
439
|
+
if(!service.supportsInterface(type(IService).interfaceId)) {
|
440
|
+
revert ErrorReleaseManagerNotService(address(service));
|
248
441
|
}
|
249
442
|
|
250
|
-
address owner =
|
443
|
+
address owner = msg.sender;
|
444
|
+
address serviceAuthority = service.authority();
|
445
|
+
serviceVersion = service.getVersion().toMajorPart();
|
446
|
+
serviceDomain = service.getDomain();// checked in registry
|
447
|
+
serviceInfo = service.getInitialInfo();
|
251
448
|
|
252
|
-
|
253
|
-
revert NotRegisterableOwner(expectedOwner);
|
254
|
-
}
|
449
|
+
_verifyServiceInfo(service, serviceInfo, owner);
|
255
450
|
|
256
|
-
|
257
|
-
|
451
|
+
VersionPart releaseVersion = _next; // never 0
|
452
|
+
address releaseAuthority = address(_releaseAccessManager[releaseVersion]); // can be zero if registering service when release is not created
|
453
|
+
|
454
|
+
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
455
|
+
if(serviceAuthority != releaseAuthority) {
|
456
|
+
revert ErrorReleaseManagerServiceReleaseAuthorityMismatch(
|
457
|
+
service,
|
458
|
+
serviceAuthority,
|
459
|
+
releaseAuthority);
|
258
460
|
}
|
259
|
-
|
260
|
-
if(
|
261
|
-
revert
|
461
|
+
|
462
|
+
if(serviceVersion != releaseVersion) {
|
463
|
+
revert ErrorReleaseManagerServiceReleaseVersionMismatch(
|
464
|
+
service,
|
465
|
+
serviceVersion,
|
466
|
+
releaseVersion);
|
262
467
|
}
|
263
468
|
}
|
264
469
|
|
265
|
-
|
470
|
+
|
471
|
+
function _verifyServiceInfo(
|
266
472
|
IService service,
|
267
|
-
|
268
|
-
|
473
|
+
IRegistry.ObjectInfo memory info,
|
474
|
+
address expectedOwner // assume always valid, can not be 0
|
269
475
|
)
|
270
476
|
internal
|
271
477
|
view
|
272
|
-
returns(ObjectType)
|
273
478
|
{
|
274
|
-
|
275
|
-
|
276
|
-
if(majorVersion != expectedVersion) {
|
277
|
-
revert UnexpectedServiceVersion(expectedVersion, majorVersion);
|
479
|
+
if(info.objectAddress != address(service)) {
|
480
|
+
revert ErrorReleaseManagerServiceInfoAddressInvalid(service, address(service));
|
278
481
|
}
|
279
482
|
|
280
|
-
if(
|
281
|
-
revert
|
483
|
+
if(info.isInterceptor != false) { // service is never interceptor
|
484
|
+
revert ErrorReleaseManagerServiceInfoInterceptorInvalid(service, info.isInterceptor);
|
282
485
|
}
|
283
486
|
|
284
|
-
|
487
|
+
if(info.objectType != SERVICE()) {
|
488
|
+
revert ErrorReleaseManagerServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
489
|
+
}
|
490
|
+
|
491
|
+
address owner = info.initialOwner;
|
492
|
+
|
493
|
+
if(owner != expectedOwner) { // registerable owner protection
|
494
|
+
revert ErrorReleaseManagerServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
495
|
+
}
|
496
|
+
|
497
|
+
if(owner == address(service)) {
|
498
|
+
revert ErrorReleaseManagerServiceSelfRegistration(service);
|
499
|
+
}
|
500
|
+
|
501
|
+
if(_registry.isRegistered(owner)) {
|
502
|
+
revert ErrorReleaseManagerServiceOwnerRegistered(service, owner);
|
503
|
+
}
|
285
504
|
}
|
286
505
|
|
287
|
-
|
288
|
-
function
|
289
|
-
internal
|
290
|
-
{
|
291
|
-
VersionPart version = getNextVersion();
|
506
|
+
/// @dev returns true iff a the address passes some simple proxy tests.
|
507
|
+
function _isRegistry(address registryAddress) internal view returns (bool) {
|
292
508
|
|
293
|
-
|
294
|
-
|
509
|
+
// zero address is certainly not registry
|
510
|
+
if (registryAddress == address(0)) {
|
511
|
+
return false;
|
295
512
|
}
|
296
|
-
//
|
297
|
-
|
298
|
-
|
299
|
-
{
|
300
|
-
|
301
|
-
// not "registry service" / zero domain
|
302
|
-
if(
|
303
|
-
domain == REGISTRY() ||
|
304
|
-
domain.eqz()
|
305
|
-
) { revert ConfigServiceDomainInvalid(idx, domain); }
|
306
|
-
|
307
|
-
bytes4[] memory selectors = config[idx].selectors;
|
308
|
-
|
309
|
-
// TODO can be zero -> e.g. duplicate domain, first with zero selector, second with non zero selector -> need to check _release[version].domains.contains(domain) instead
|
310
|
-
// no overwrite
|
311
|
-
if(_selectors[version][domain].length > 0) {
|
312
|
-
revert SelectorAlreadyExists(version, domain);
|
313
|
-
}
|
314
|
-
|
315
|
-
_selectors[version][domain] = selectors;
|
316
|
-
_release[version].domains.push(domain);
|
513
|
+
// TODO try catch and return false in case of revert
|
514
|
+
// a just panic
|
515
|
+
// check if contract returns a zero nft id for its own address
|
516
|
+
if (IRegistry(registryAddress).getNftId(registryAddress).eqz()) {
|
517
|
+
return false;
|
317
518
|
}
|
318
|
-
// TODO set when activated?
|
319
|
-
_release[version].createdAt = TimestampLib.blockTimestamp();
|
320
|
-
//_release[version].updatedAt = TimestampLib.blockTimestamp();
|
321
519
|
|
322
|
-
|
520
|
+
return true;
|
323
521
|
}
|
324
522
|
}
|
523
|
+
|