@etherisc/gif-next 0.0.2-b13fcec-949 → 0.0.2-b147315-239
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 +17 -86
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +254 -157
- 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 +202 -96
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +126 -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 +279 -1961
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +257 -55
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2735
- 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 +762 -340
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +358 -171
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +128 -71
- 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 +10 -118
- 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/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +221 -192
- 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 -266
- 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 +218 -145
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +288 -88
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -89
- 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/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +174 -202
- 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/product/IPolicyService.sol/IPolicyService.json +720 -0
- 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} +146 -153
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
- 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 -77
- 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 +372 -97
- 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 +790 -102
- 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 +144 -80
- 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} +100 -113
- 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 +180 -54
- 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 +96 -19
- 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 +103 -21
- 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 +20 -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 -55
- package/contracts/instance/InstanceService.sol +259 -315
- 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 +5 -13
- package/contracts/instance/module/IBundle.sol +8 -9
- package/contracts/instance/module/IComponents.sol +22 -5
- 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/pool/IBundleService.sol +106 -0
- package/contracts/{components → pool}/IPoolComponent.sol +17 -18
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/{components → pool}/Pool.sol +57 -57
- 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 +39 -37
- 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 +73 -90
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseLifecycle.sol +28 -0
- package/contracts/registry/ReleaseManager.sol +371 -192
- 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 -27
- 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 +14 -7
- 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 +47 -22
- 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 +33 -24
- 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 -1311
- 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 -968
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
- 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/IClaimService.sol/IClaimService.json +0 -409
- 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/IPoolService.sol/IPoolService.json +0 -428
- 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 -1021
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
- 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 -521
- 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/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 -257
- 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 -251
- 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 -522
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -175
- 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 -336
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -467
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -62
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPoolService.sol +0 -35
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -403
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -220
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -241
- 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/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,373 @@
|
|
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 {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} 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);
|
26
48
|
|
49
|
+
// constructor
|
50
|
+
error ErrorReleaseManagerNotRegistry(Registry registry);
|
51
|
+
|
27
52
|
// createNextRelease
|
28
|
-
error
|
29
|
-
|
53
|
+
error ErrorReleaseManagerReleaseCreationDisallowed(VersionPart version, StateId currentStateId);
|
54
|
+
|
55
|
+
// prepareRelease
|
56
|
+
error ErrorReleaseManagerReleasePreparationDisallowed(VersionPart version, StateId currentStateId);
|
57
|
+
error ErrorReleaseManagerReleaseAlreadyPrepared(VersionPart version, StateId currentStateId);
|
58
|
+
error ErrorReleaseManagerVersionMismatch(VersionPart expected, VersionPart actual);
|
59
|
+
error ErrorReleaseManagerNoDomains(VersionPart version);
|
30
60
|
|
31
61
|
// registerService
|
32
|
-
error
|
62
|
+
error ErrorReleaseManagerNoServiceRegistrationExpected();
|
63
|
+
error ErrorReleaseManagerServiceRegistrationDisallowed(StateId currentStateId);
|
64
|
+
error ErrorReleaseManagerServiceDomainMismatch(ObjectType expectedDomain, ObjectType actualDomain);
|
65
|
+
error ErrorReleaseManagerNotService(address notService);
|
66
|
+
error ErrorReleaseManagerServiceAddressMismatch(address expected, address actual);
|
33
67
|
|
34
68
|
// activateNextRelease
|
35
|
-
error
|
36
|
-
error
|
69
|
+
error ErrorReleaseManagerReleaseActivationDisallowed(VersionPart releaseVersion, StateId currentStateId);
|
70
|
+
error ErrorReleaseManagerReleaseNotCreated(VersionPart releaseVersion);
|
71
|
+
error ErrorReleaseManagerReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
|
72
|
+
error ErrorReleaseManagerReleaseAlreadyActivated(VersionPart releaseVersion);
|
37
73
|
|
38
|
-
//
|
39
|
-
error
|
40
|
-
error
|
41
|
-
error SelfRegistration();
|
42
|
-
error RegisterableOwnerIsRegistered();
|
74
|
+
// disableRelease
|
75
|
+
error ErrorReleaseManagerReleaseNotActivated(VersionPart releaseVersion);
|
76
|
+
error ErrorReleaseManagerReleaseAlreadyDisabled(VersionPart releaseVersion);
|
43
77
|
|
44
78
|
// _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);
|
79
|
+
error ErrorReleaseManagerServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
80
|
+
error ErrorReleaseManagerServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
53
81
|
|
82
|
+
// _verifyServiceInfo
|
83
|
+
error ErrorReleaseManagerServiceInfoAddressInvalid(IService service, address expected);
|
84
|
+
error ErrorReleaseManagerServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
85
|
+
error ErrorReleaseManagerServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
86
|
+
error ErrorReleaseManagerServiceInfoOwnerInvalid(IService service, address expected, address found);
|
87
|
+
error ErrorReleaseManagerServiceSelfRegistration(IService service);
|
88
|
+
error ErrorReleaseManagerServiceOwnerRegistered(IService service, address owner);
|
54
89
|
|
55
|
-
|
56
|
-
IRegistry private immutable _registry;
|
90
|
+
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
57
91
|
|
58
|
-
|
59
|
-
|
60
|
-
|
92
|
+
RegistryAdmin private _admin;
|
93
|
+
address public _releaseAccessManagerCodeAddress;
|
94
|
+
Registry private _registry;
|
61
95
|
|
62
|
-
|
96
|
+
// TODO remove once it's clear that release authority will always be registry authority
|
97
|
+
mapping(VersionPart version => address authority) internal _releaseAccessManager;
|
98
|
+
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
99
|
+
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
63
100
|
|
64
|
-
mapping(VersionPart version =>
|
101
|
+
mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
|
65
102
|
|
66
|
-
|
103
|
+
VersionPart private _initial;// first active version
|
104
|
+
VersionPart internal _latest; // latest active version
|
105
|
+
VersionPart internal _next; // version to create and activate
|
106
|
+
mapping(VersionPart verson => StateId releaseState) private _state;
|
67
107
|
|
68
|
-
|
108
|
+
uint256 internal _registeredServices;
|
109
|
+
uint256 internal _servicesToRegister;
|
69
110
|
|
70
|
-
|
71
|
-
|
72
|
-
constructor(
|
73
|
-
RegistryAccessManager accessManager,
|
74
|
-
VersionPart initialVersion)
|
75
|
-
AccessManaged(accessManager.authority())
|
111
|
+
constructor(Registry registry)
|
112
|
+
AccessManaged(msg.sender)
|
76
113
|
{
|
77
|
-
|
114
|
+
// TODO move this part to RegistryLinked constructor
|
115
|
+
if(!_isRegistry(address(registry))) {
|
116
|
+
revert ErrorReleaseManagerNotRegistry(registry);
|
117
|
+
}
|
78
118
|
|
79
|
-
|
119
|
+
setAuthority(registry.getAuthority());
|
80
120
|
|
81
|
-
|
82
|
-
|
121
|
+
_registry = registry;
|
122
|
+
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
83
123
|
|
84
|
-
|
124
|
+
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
125
|
+
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
126
|
+
|
127
|
+
//AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
|
128
|
+
//masterReleaseAccessManager.initialize(address(this));
|
129
|
+
//masterReleaseAccessManager.disable();
|
130
|
+
//_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
|
85
131
|
}
|
86
132
|
|
87
133
|
/// @dev skips previous release if was not activated
|
134
|
+
/// sets next release into state SCHEDULED
|
88
135
|
function createNextRelease()
|
89
136
|
external
|
90
|
-
restricted // GIF_ADMIN_ROLE
|
137
|
+
restricted() // GIF_ADMIN_ROLE
|
138
|
+
returns(VersionPart)
|
91
139
|
{
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
140
|
+
_next = VersionPartLib.toVersionPart(_next.toInt() + 1);
|
141
|
+
_servicesToRegister = 0;
|
142
|
+
_registeredServices = 0;
|
143
|
+
_state[_next] = getInitialState(RELEASE());
|
96
144
|
|
97
|
-
|
145
|
+
return _next;
|
98
146
|
}
|
99
147
|
|
100
|
-
function
|
101
|
-
|
102
|
-
|
148
|
+
function prepareNextRelease(
|
149
|
+
IServiceAuthorization serviceAuthorization,
|
150
|
+
bytes32 salt
|
151
|
+
)
|
152
|
+
external
|
153
|
+
restricted() // GIF_MANAGER_ROLE
|
154
|
+
returns(
|
155
|
+
address authority,
|
156
|
+
VersionPart version,
|
157
|
+
bytes32 releaseSalt
|
158
|
+
)
|
103
159
|
{
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
160
|
+
(
|
161
|
+
VersionPart releaseVersion,
|
162
|
+
uint serviceDomainsCount
|
163
|
+
) = serviceAuthorization.getRelease();
|
164
|
+
|
165
|
+
// verify authorizaion contract release matches with expected version
|
166
|
+
if (releaseVersion != _next) {
|
167
|
+
revert ErrorReleaseManagerVersionMismatch(_next, releaseVersion);
|
110
168
|
}
|
111
169
|
|
112
|
-
//
|
113
|
-
if(
|
114
|
-
revert
|
170
|
+
// sanity check to ensure service domain list is not empty
|
171
|
+
if (serviceDomainsCount == 0) {
|
172
|
+
revert ErrorReleaseManagerNoDomains(_next);
|
115
173
|
}
|
116
174
|
|
117
|
-
|
175
|
+
version = _next;
|
176
|
+
StateId state = _state[version];
|
177
|
+
StateId newState = DEPLOYING();
|
118
178
|
|
119
|
-
|
179
|
+
// verify release manager is in proper state to start deploying a next release
|
180
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
181
|
+
revert ErrorReleaseManagerReleasePreparationDisallowed(version, state);
|
182
|
+
}
|
120
183
|
|
121
|
-
|
122
|
-
|
184
|
+
// verify prepareNextRelease is only called once per release
|
185
|
+
if(_servicesToRegister > 0) {
|
186
|
+
revert ErrorReleaseManagerReleaseAlreadyPrepared(version, state);
|
187
|
+
}
|
123
188
|
|
124
|
-
|
189
|
+
// ensures unique salt
|
190
|
+
// TODO CreateX have clones capability also
|
191
|
+
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
192
|
+
releaseSalt = keccak256(
|
193
|
+
bytes.concat(
|
194
|
+
bytes32(version.toInt()),
|
195
|
+
salt));
|
196
|
+
|
197
|
+
authority = _admin.authority();
|
198
|
+
_serviceAuthorization[_next] = serviceAuthorization;
|
199
|
+
_releaseAccessManager[_next] = authority;
|
200
|
+
_servicesToRegister = serviceDomainsCount;
|
201
|
+
_state[version] = newState;
|
202
|
+
|
203
|
+
emit LogReleaseCreation(version, releaseSalt, authority);
|
125
204
|
}
|
126
205
|
|
127
|
-
// TODO
|
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)
|
206
|
+
// TODO this function can have 0 args -> use stored addresses from prepareNextRelease()
|
207
|
+
function registerService(IService service)
|
131
208
|
external
|
132
209
|
restricted // GIF_MANAGER_ROLE
|
133
210
|
returns(NftId nftId)
|
134
211
|
{
|
135
|
-
|
136
|
-
|
212
|
+
VersionPart releaseVersion = _next;
|
213
|
+
StateId state = _state[releaseVersion];
|
214
|
+
|
215
|
+
// release in state DEPLOYING
|
216
|
+
if (!isValidTransition(RELEASE(), state, DEPLOYING())) {
|
217
|
+
// TOOD name must represent failed state transition
|
218
|
+
revert ErrorReleaseManagerServiceRegistrationDisallowed(state);
|
137
219
|
}
|
138
220
|
|
139
|
-
//
|
140
|
-
|
141
|
-
|
142
|
-
revert UnexpectedServiceAuthority(
|
143
|
-
authority(),
|
144
|
-
serviceAuthority);
|
221
|
+
// not all services are registered
|
222
|
+
if (_servicesToRegister == _registeredServices) {
|
223
|
+
revert ErrorReleaseManagerNoServiceRegistrationExpected();
|
145
224
|
}
|
146
225
|
|
147
|
-
|
226
|
+
// service can work with release manager
|
227
|
+
(
|
228
|
+
IRegistry.ObjectInfo memory info,
|
229
|
+
ObjectType serviceDomain,
|
230
|
+
VersionPart serviceVersion
|
231
|
+
) = _verifyService(service);
|
232
|
+
|
233
|
+
// service domain matches defined in release config
|
234
|
+
ObjectType expectedDomain = _serviceAuthorization[releaseVersion].getServiceDomain(_registeredServices);
|
235
|
+
if (serviceDomain != expectedDomain) {
|
236
|
+
revert ErrorReleaseManagerServiceDomainMismatch(expectedDomain, serviceDomain);
|
237
|
+
}
|
148
238
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
239
|
+
// service address matches defined in release config
|
240
|
+
// TODO uncomment when release addresses calculations are ready
|
241
|
+
/*address expectedAddress = _serviceAuthorization[releaseVersion].getServiceAddress(expectedDomain);
|
242
|
+
if(address(service) != expectedAddress) {
|
243
|
+
//revert ErrorReleaseManagerServiceAddressMismatch(expectedAddress, address(service));
|
244
|
+
}*/
|
245
|
+
|
246
|
+
// checked in registry
|
247
|
+
_releaseInfo[releaseVersion].domains.push(serviceDomain);
|
248
|
+
|
249
|
+
_state[releaseVersion] = DEPLOYING();
|
250
|
+
_registeredServices++;
|
251
|
+
|
252
|
+
// setup service authorization
|
253
|
+
_admin.authorizeService(
|
254
|
+
_serviceAuthorization[releaseVersion],
|
255
|
+
service);
|
256
|
+
|
257
|
+
// TODO consider to extend this to REGISTRY
|
258
|
+
// special roles for registry/staking/pool service
|
259
|
+
if (serviceDomain == STAKING() || serviceDomain == POOL()) {
|
260
|
+
// TODO rename to grantServiceDomainRole()
|
261
|
+
_admin.grantServiceRoleForAllVersions(service, serviceDomain);
|
262
|
+
}
|
155
263
|
|
156
|
-
//
|
264
|
+
// register service with registry
|
265
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
157
266
|
service.linkToRegisteredNftId();
|
158
267
|
}
|
159
268
|
|
160
|
-
|
161
|
-
|
162
|
-
|
269
|
+
|
270
|
+
function activateNextRelease()
|
271
|
+
external
|
272
|
+
restricted // GIF_ADMIN_ROLE
|
273
|
+
{
|
274
|
+
VersionPart version = _next;
|
275
|
+
StateId state = _state[version];
|
276
|
+
StateId newState = ACTIVE();
|
277
|
+
|
278
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
279
|
+
revert ErrorReleaseManagerReleaseActivationDisallowed(version, state);
|
280
|
+
}
|
281
|
+
|
282
|
+
// release fully deployed
|
283
|
+
if(_registeredServices < _servicesToRegister) {
|
284
|
+
revert ErrorReleaseManagerReleaseRegistrationNotFinished(version, _servicesToRegister - _registeredServices);
|
285
|
+
}
|
286
|
+
|
287
|
+
// release exists, registry service MUST exist
|
288
|
+
address service = _registry.getServiceAddress(REGISTRY(), version);
|
289
|
+
if(service == address(0)) {
|
290
|
+
revert ErrorReleaseManagerReleaseNotCreated(version);
|
291
|
+
}
|
292
|
+
|
293
|
+
// release is not activated -> redundant with state transition check
|
294
|
+
/*if(_releaseInfo[version].activatedAt.gtz()) {
|
295
|
+
revert ErrorReleaseManagerReleaseAlreadyActivated(version);
|
296
|
+
}*/
|
297
|
+
|
298
|
+
_latest = version;
|
299
|
+
_state[version] = newState;
|
300
|
+
|
301
|
+
_releaseVersionByAddress[service] = version;
|
302
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
303
|
+
|
304
|
+
emit LogReleaseActivation(version);
|
305
|
+
}
|
306
|
+
|
307
|
+
// release becomes disabled after delay expiration (can be reenabled before that)
|
308
|
+
function disableRelease(VersionPart version, Seconds disableDelay)
|
163
309
|
external
|
164
|
-
restricted //
|
165
|
-
returns(NftId nftId)
|
310
|
+
restricted // GIF_ADMIN_ROLE
|
166
311
|
{
|
167
|
-
|
168
|
-
|
312
|
+
// TODO add state check / change -> check with matthias branch?
|
313
|
+
// release was activated
|
314
|
+
if(_releaseInfo[version].activatedAt.eqz()) {
|
315
|
+
revert ErrorReleaseManagerReleaseNotActivated(version);
|
169
316
|
}
|
170
317
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
_verifyService(service, version, domain);
|
175
|
-
|
176
|
-
// setup and grant unique role if service does registrations
|
177
|
-
bytes4[] memory selectors = _selectors[version][domain];
|
178
|
-
address registryService = _registry.getServiceAddress(REGISTRY(), version);
|
179
|
-
if(selectors.length > 0) {
|
180
|
-
_accessManager.setAndGrantUniqueRole(
|
181
|
-
address(service),
|
182
|
-
registryService,
|
183
|
-
selectors);
|
318
|
+
// release not disabled already
|
319
|
+
if(_releaseInfo[version].disabledAt.gtz()) {
|
320
|
+
revert ErrorReleaseManagerReleaseAlreadyDisabled(version);
|
184
321
|
}
|
185
|
-
|
186
|
-
_awaitingRegistration--;
|
187
322
|
|
188
|
-
|
323
|
+
disableDelay = SecondsLib.toSeconds(Math.max(disableDelay.toInt(), MIN_DISABLE_DELAY.toInt()));
|
324
|
+
|
325
|
+
// TODO come up with a substitute
|
326
|
+
//_releaseAccessManager[version].disable();
|
189
327
|
|
190
|
-
|
191
|
-
|
328
|
+
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp().addSeconds(disableDelay);
|
329
|
+
}
|
330
|
+
|
331
|
+
function enableRelease(VersionPart version)
|
332
|
+
external
|
333
|
+
restricted // GIF_ADMIN_ROLE
|
334
|
+
{
|
335
|
+
// release was disabled
|
336
|
+
//if(_releaseInfo[version].disabledAt.eqz()) {
|
337
|
+
// revert ErrorReleaseManagerReleaseAlreadyEnabled(version);
|
338
|
+
//}
|
339
|
+
|
340
|
+
// reverts if disable delay expired
|
341
|
+
// TODO come up with a substitute
|
342
|
+
// _releaseAccessManager[version].enable();
|
343
|
+
|
344
|
+
_releaseInfo[version].disabledAt = zeroTimestamp();
|
192
345
|
}
|
193
346
|
|
194
347
|
//--- view functions ----------------------------------------------------//
|
195
348
|
|
196
|
-
function
|
197
|
-
|
198
|
-
|
349
|
+
function predictDeterministicAddress(
|
350
|
+
address implementation,
|
351
|
+
bytes32 salt,
|
352
|
+
address deployer
|
353
|
+
) external pure returns (address predicted) {
|
354
|
+
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
199
355
|
}
|
200
356
|
|
201
|
-
function
|
202
|
-
|
203
|
-
return
|
357
|
+
function isActiveRegistryService(address service) external view returns(bool) {
|
358
|
+
VersionPart version = _releaseVersionByAddress[service];
|
359
|
+
return isActiveRelease(version);
|
204
360
|
}
|
205
361
|
|
206
|
-
function
|
207
|
-
|
208
|
-
return (address(_registry));
|
362
|
+
function isActiveRelease(VersionPart version) public view returns(bool) {
|
363
|
+
return _releaseInfo[version].activatedAt.gtz();
|
209
364
|
}
|
210
365
|
|
211
|
-
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory)
|
212
|
-
|
213
|
-
return _release[version];
|
366
|
+
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
367
|
+
return _releaseInfo[version];
|
214
368
|
}
|
215
369
|
|
216
|
-
function getNextVersion() public view returns(VersionPart)
|
217
|
-
{
|
370
|
+
function getNextVersion() public view returns(VersionPart) {
|
218
371
|
return _next;
|
219
372
|
}
|
220
373
|
|
@@ -226,97 +379,123 @@ contract ReleaseManager is AccessManaged
|
|
226
379
|
return _initial;
|
227
380
|
}
|
228
381
|
|
382
|
+
function getState(VersionPart version) external view returns (StateId stateId) {
|
383
|
+
return _state[version];
|
384
|
+
}
|
385
|
+
|
386
|
+
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
387
|
+
return _servicesToRegister - _registeredServices;
|
388
|
+
}
|
389
|
+
|
390
|
+
// TODO cleanup
|
391
|
+
function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerExtendedWithDisableInitializeable) {
|
392
|
+
// return _releaseAccessManager[version];
|
393
|
+
}
|
394
|
+
|
395
|
+
// TODO token registry knows nothing about adfmin, only registry
|
396
|
+
function getRegistryAdmin() external view returns (address) {
|
397
|
+
return address(_admin);
|
398
|
+
}
|
399
|
+
|
400
|
+
//--- IRegistryLinked ------------------------------------------------------//
|
401
|
+
|
402
|
+
function getRegistry() external view returns (IRegistry) {
|
403
|
+
return _registry;
|
404
|
+
}
|
405
|
+
|
229
406
|
//--- private functions ----------------------------------------------------//
|
230
407
|
|
231
|
-
function
|
232
|
-
IService service,
|
233
|
-
ObjectType expectedType,
|
234
|
-
address expectedOwner // assume always valid, can not be 0
|
235
|
-
)
|
408
|
+
function _verifyService(IService service)
|
236
409
|
internal
|
237
|
-
|
410
|
+
view
|
238
411
|
returns(
|
239
|
-
IRegistry.ObjectInfo memory
|
412
|
+
IRegistry.ObjectInfo memory serviceInfo,
|
413
|
+
ObjectType serviceDomain,
|
414
|
+
VersionPart serviceVersion
|
240
415
|
)
|
241
416
|
{
|
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);
|
417
|
+
if(!service.supportsInterface(type(IService).interfaceId)) {
|
418
|
+
revert ErrorReleaseManagerNotService(address(service));
|
248
419
|
}
|
249
420
|
|
250
|
-
address owner =
|
421
|
+
address owner = msg.sender;
|
422
|
+
address serviceAuthority = service.authority();
|
423
|
+
serviceVersion = service.getVersion().toMajorPart();
|
424
|
+
serviceDomain = service.getDomain();// checked in registry
|
425
|
+
serviceInfo = service.getInitialInfo();
|
251
426
|
|
252
|
-
|
253
|
-
revert NotRegisterableOwner(expectedOwner);
|
254
|
-
}
|
427
|
+
_verifyServiceInfo(service, serviceInfo, owner);
|
255
428
|
|
256
|
-
|
257
|
-
|
429
|
+
VersionPart releaseVersion = _next; // never 0
|
430
|
+
address releaseAuthority = address(_releaseAccessManager[releaseVersion]); // can be zero if registering service when release is not created
|
431
|
+
|
432
|
+
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
433
|
+
if(serviceAuthority != releaseAuthority) {
|
434
|
+
revert ErrorReleaseManagerServiceReleaseAuthorityMismatch(
|
435
|
+
service,
|
436
|
+
serviceAuthority,
|
437
|
+
releaseAuthority);
|
258
438
|
}
|
259
|
-
|
260
|
-
if(
|
261
|
-
revert
|
439
|
+
|
440
|
+
if(serviceVersion != releaseVersion) {
|
441
|
+
revert ErrorReleaseManagerServiceReleaseVersionMismatch(
|
442
|
+
service,
|
443
|
+
serviceVersion,
|
444
|
+
releaseVersion);
|
262
445
|
}
|
263
446
|
}
|
264
447
|
|
265
|
-
|
448
|
+
|
449
|
+
function _verifyServiceInfo(
|
266
450
|
IService service,
|
267
|
-
|
268
|
-
|
451
|
+
IRegistry.ObjectInfo memory info,
|
452
|
+
address expectedOwner // assume always valid, can not be 0
|
269
453
|
)
|
270
454
|
internal
|
271
455
|
view
|
272
|
-
returns(ObjectType)
|
273
456
|
{
|
274
|
-
if(
|
275
|
-
revert
|
457
|
+
if(info.objectAddress != address(service)) {
|
458
|
+
revert ErrorReleaseManagerServiceInfoAddressInvalid(service, address(service));
|
276
459
|
}
|
277
460
|
|
278
|
-
if(
|
279
|
-
revert
|
461
|
+
if(info.isInterceptor != false) { // service is never interceptor
|
462
|
+
revert ErrorReleaseManagerServiceInfoInterceptorInvalid(service, info.isInterceptor);
|
280
463
|
}
|
281
464
|
|
282
|
-
|
465
|
+
if(info.objectType != SERVICE()) {
|
466
|
+
revert ErrorReleaseManagerServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
467
|
+
}
|
468
|
+
|
469
|
+
address owner = info.initialOwner;
|
470
|
+
|
471
|
+
if(owner != expectedOwner) { // registerable owner protection
|
472
|
+
revert ErrorReleaseManagerServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
473
|
+
}
|
474
|
+
|
475
|
+
if(owner == address(service)) {
|
476
|
+
revert ErrorReleaseManagerServiceSelfRegistration(service);
|
477
|
+
}
|
478
|
+
|
479
|
+
if(_registry.isRegistered(owner)) {
|
480
|
+
revert ErrorReleaseManagerServiceOwnerRegistered(service, owner);
|
481
|
+
}
|
283
482
|
}
|
284
483
|
|
285
|
-
|
286
|
-
function
|
287
|
-
internal
|
288
|
-
{
|
289
|
-
VersionPart version = getNextVersion();
|
484
|
+
/// @dev returns true iff a the address passes some simple proxy tests.
|
485
|
+
function _isRegistry(address registryAddress) internal view returns (bool) {
|
290
486
|
|
291
|
-
|
292
|
-
|
487
|
+
// zero address is certainly not registry
|
488
|
+
if (registryAddress == address(0)) {
|
489
|
+
return false;
|
293
490
|
}
|
294
|
-
//
|
295
|
-
|
296
|
-
|
297
|
-
{
|
298
|
-
|
299
|
-
// not "registry service" / zero domain
|
300
|
-
if(
|
301
|
-
domain == REGISTRY() ||
|
302
|
-
domain.eqz()
|
303
|
-
) { revert ConfigServiceDomainInvalid(idx, domain); }
|
304
|
-
|
305
|
-
bytes4[] memory selectors = config[idx].selectors;
|
306
|
-
|
307
|
-
// 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
|
308
|
-
// no overwrite
|
309
|
-
if(_selectors[version][domain].length > 0) {
|
310
|
-
revert SelectorAlreadyExists(version, domain);
|
311
|
-
}
|
312
|
-
|
313
|
-
_selectors[version][domain] = selectors;
|
314
|
-
_release[version].domains.push(domain);
|
491
|
+
// TODO try catch and return false in case of revert
|
492
|
+
// a just panic
|
493
|
+
// check if contract returns a zero nft id for its own address
|
494
|
+
if (IRegistry(registryAddress).getNftId(registryAddress).eqz()) {
|
495
|
+
return false;
|
315
496
|
}
|
316
|
-
// TODO set when activated?
|
317
|
-
_release[version].createdAt = TimestampLib.blockTimestamp();
|
318
|
-
//_release[version].updatedAt = TimestampLib.blockTimestamp();
|
319
497
|
|
320
|
-
|
498
|
+
return true;
|
321
499
|
}
|
322
500
|
}
|
501
|
+
|