@etherisc/gif-next 0.0.2-e818783-565 → 0.0.2-e8b06c8-540
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 +20 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +188 -342
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -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 +184 -253
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +77 -324
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +218 -2177
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -70
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +429 -2801
- 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/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/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 +721 -389
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +254 -239
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3592 -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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -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/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
- 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/oracle/Oracle.sol/Oracle.json +1063 -0
- 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/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +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 +65 -48
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +290 -56
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
- 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/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +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} +96 -186
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
- 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} +63 -141
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
- 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/{components → product}/Product.sol/Product.json +338 -248
- 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/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 +1741 -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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +768 -90
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -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/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 +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -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/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 +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- 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 +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -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/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 +2261 -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/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- 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 +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- 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 +369 -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 +20 -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/type/UFixed.sol/UFixedLib.json +498 -0
- 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/authorization/AccessAdmin.sol +622 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +35 -0
- package/contracts/authorization/InstanceAdmin.sol +108 -0
- package/contracts/authorization/ModuleAuthorization.sol +203 -0
- package/contracts/authorization/ServiceAuthorization.sol +86 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/{components → distribution}/Distribution.sol +157 -158
- package/contracts/distribution/DistributionService.sol +303 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +78 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -38
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +49 -65
- package/contracts/instance/IInstanceService.sol +46 -23
- package/contracts/instance/Instance.sol +188 -205
- package/contracts/instance/InstanceAdmin.sol +334 -0
- package/contracts/instance/InstanceAdminNew.sol +261 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +422 -0
- package/contracts/instance/InstanceReader.sol +153 -60
- package/contracts/instance/InstanceService.sol +347 -309
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +273 -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/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
- 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 +22 -15
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -23
- package/contracts/pool/IPoolComponent.sol +52 -0
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- package/contracts/pool/Pool.sol +311 -0
- 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/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +39 -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 +152 -131
- 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/Registry.sol +198 -83
- package/contracts/registry/RegistryAdmin.sol +363 -0
- package/contracts/registry/RegistryService.sol +71 -87
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseManager.sol +405 -199
- package/contracts/registry/ServiceAuthorizationV3.sol +202 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- 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 +626 -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/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 +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- 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 +152 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +18 -5
- 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/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 +613 -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}/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 +275 -0
- 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 +202 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +6 -2
- package/contracts/{types → type}/UFixed.sol +6 -0
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +6 -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 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- 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 -1511
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- 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 -185
- 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/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/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/UFixed.sol/UFixedLib.json +0 -479
- 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/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -302
- 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/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -355
- package/contracts/instance/service/BundleService.sol +0 -436
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -137
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -541
- 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 -65
- 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}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -1,220 +1,364 @@
|
|
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} 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 {
|
18
|
-
|
19
|
-
|
20
|
-
|
29
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
30
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
31
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
32
|
+
import {Registry} from "./Registry.sol";
|
33
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
34
|
+
|
35
|
+
// TODO rename to something that does not end with 'Manager'
|
36
|
+
// everywhere else *Manager points to an upgradeable contract
|
37
|
+
contract ReleaseManager is
|
38
|
+
AccessManaged,
|
39
|
+
ILifecycle,
|
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(StateId currentStateId);
|
54
|
+
|
55
|
+
// prepareRelease
|
56
|
+
error ErrorReleaseManagerReleasePreparationDisallowed(StateId currentStateId);
|
57
|
+
error ErrorReleaseManagerReleaseAlreadyPrepared(VersionPart version);
|
58
|
+
error ErrorReleaseManagerVersionMismatch(VersionPart expectedVersion, VersionPart providedVersion);
|
59
|
+
error ErrorReleaseManagerNoDomains(VersionPart version);
|
60
|
+
|
61
|
+
// register staking
|
62
|
+
//error ErrorReleaseManagerStakingAlreadySet(address stakingAddress);
|
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(IService service);
|
69
|
+
error ErrorReleaseManagerServiceAddressInvalid(IService given, address expected);
|
33
70
|
|
34
71
|
// activateNextRelease
|
35
|
-
error
|
36
|
-
error
|
72
|
+
error ErrorReleaseManagerReleaseActivationDisallowed(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
|
-
//
|
49
|
-
error
|
50
|
-
error
|
51
|
-
error
|
52
|
-
error
|
82
|
+
error ErrorReleaseManagerServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
83
|
+
error ErrorReleaseManagerServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
84
|
+
|
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);
|
92
|
+
|
93
|
+
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
94
|
+
|
95
|
+
RegistryAdmin public immutable _admin;
|
96
|
+
address public immutable _releaseAccessManagerCodeAddress;
|
97
|
+
Registry public immutable _registry;
|
98
|
+
IRegisterable private _staking;
|
99
|
+
address private _stakingOwner;
|
100
|
+
|
101
|
+
// TODO remove once it's clear that release authority will always be registry authority
|
102
|
+
mapping(VersionPart version => address authority) internal _releaseAccessManager;
|
103
|
+
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
104
|
+
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
105
|
+
|
106
|
+
mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
|
107
|
+
|
108
|
+
VersionPart immutable internal _initial;// first active version
|
109
|
+
VersionPart internal _latest; // latest active version
|
110
|
+
VersionPart internal _next; // version to create and activate
|
111
|
+
StateId internal _state; // current state of release manager
|
112
|
+
|
113
|
+
uint256 internal _registeredServices;
|
114
|
+
uint256 internal _servicesToRegister;
|
115
|
+
|
116
|
+
// deployer of this contract must be gif admin
|
117
|
+
constructor(Registry registry)
|
118
|
+
AccessManaged(msg.sender)
|
119
|
+
{
|
120
|
+
// TODO move this part to RegistryLinked constructor
|
121
|
+
if(!_isRegistry(address(registry))) {
|
122
|
+
revert ErrorReleaseManagerNotRegistry(registry);
|
123
|
+
}
|
124
|
+
|
125
|
+
_registry = registry;
|
126
|
+
setAuthority(_registry.getAuthority());
|
127
|
+
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
53
128
|
|
129
|
+
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
130
|
+
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
131
|
+
_state = getInitialState(RELEASE());
|
132
|
+
|
133
|
+
AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
|
134
|
+
masterReleaseAccessManager.initialize(_registry.NFT_LOCK_ADDRESS(), VersionLib.toVersionPart(0));
|
135
|
+
//masterReleaseAccessManager.disable();
|
136
|
+
_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
|
137
|
+
}
|
54
138
|
|
55
|
-
|
56
|
-
|
139
|
+
/// @dev skips previous release if was not activated
|
140
|
+
/// sets release manager into state SCHEDULED
|
141
|
+
function createNextRelease()
|
142
|
+
external
|
143
|
+
restricted() // GIF_ADMIN_ROLE
|
144
|
+
returns(VersionPart)
|
145
|
+
{
|
146
|
+
if (!isValidTransition(RELEASE(), _state, SCHEDULED())) {
|
147
|
+
revert ErrorReleaseManagerReleaseCreationDisallowed(_state);
|
148
|
+
}
|
57
149
|
|
58
|
-
|
59
|
-
|
60
|
-
|
150
|
+
_next = VersionPartLib.toVersionPart(_next.toInt() + 1);
|
151
|
+
_servicesToRegister = 0;
|
152
|
+
_registeredServices = 0;
|
153
|
+
_state = SCHEDULED();
|
61
154
|
|
62
|
-
|
155
|
+
return _next;
|
156
|
+
}
|
63
157
|
|
64
|
-
|
158
|
+
function prepareNextRelease(
|
159
|
+
IServiceAuthorization serviceAuthorization,
|
160
|
+
bytes32 salt
|
161
|
+
)
|
162
|
+
external
|
163
|
+
restricted() // GIF_MANAGER_ROLE
|
164
|
+
returns(
|
165
|
+
address authority,
|
166
|
+
VersionPart version,
|
167
|
+
bytes32 releaseSalt
|
168
|
+
)
|
169
|
+
{
|
170
|
+
// verify release manager is in proper state to start deploying a next release
|
171
|
+
if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
|
172
|
+
revert ErrorReleaseManagerReleasePreparationDisallowed(_state);
|
173
|
+
}
|
65
174
|
|
66
|
-
|
175
|
+
// verify prepareNextRelease is only called once per release
|
176
|
+
if(_servicesToRegister > 0) {
|
177
|
+
revert ErrorReleaseManagerReleaseAlreadyPrepared(version);
|
178
|
+
}
|
67
179
|
|
68
|
-
|
180
|
+
// verify authorizaion contract release matches with expected version
|
181
|
+
VersionPart releaseVersion = serviceAuthorization.getRelease();
|
182
|
+
if (releaseVersion != _next) {
|
183
|
+
revert ErrorReleaseManagerVersionMismatch(_next, releaseVersion);
|
184
|
+
}
|
69
185
|
|
70
|
-
|
186
|
+
// sanity check to ensure service domain list is not empty
|
187
|
+
uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
188
|
+
if (serviceDomainsCount == 0) {
|
189
|
+
revert ErrorReleaseManagerNoDomains(_next);
|
190
|
+
}
|
71
191
|
|
72
|
-
|
73
|
-
|
74
|
-
VersionPart initialVersion)
|
75
|
-
AccessManaged(accessManager.authority())
|
76
|
-
{
|
77
|
-
require(initialVersion.toInt() > 0, "ReleaseManager: initial version is 0");
|
192
|
+
_state = DEPLOYING();
|
193
|
+
_servicesToRegister = serviceDomainsCount;
|
78
194
|
|
79
|
-
|
195
|
+
// store release specific service authorization
|
196
|
+
authority = _admin.authority();
|
197
|
+
_serviceAuthorization[_next] = serviceAuthorization;
|
198
|
+
// TODO refactor: authority no longer release specific
|
199
|
+
_releaseAccessManager[_next] = authority;
|
80
200
|
|
81
|
-
|
82
|
-
|
201
|
+
// ensures unique salt
|
202
|
+
releaseSalt = keccak256(
|
203
|
+
bytes.concat(
|
204
|
+
bytes32(version.toInt()),
|
205
|
+
salt));
|
83
206
|
|
84
|
-
|
207
|
+
emit LogReleaseCreation(version, releaseSalt, authority);
|
85
208
|
}
|
86
209
|
|
87
|
-
|
88
|
-
function
|
210
|
+
|
211
|
+
function registerService(IService service)
|
89
212
|
external
|
90
|
-
restricted //
|
213
|
+
restricted // GIF_MANAGER_ROLE
|
214
|
+
returns(NftId nftId)
|
91
215
|
{
|
92
|
-
//
|
93
|
-
|
94
|
-
|
95
|
-
|
216
|
+
// TODO is it usefull to check transition from A to A?
|
217
|
+
if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
|
218
|
+
revert ErrorReleaseManagerServiceRegistrationDisallowed(_state);
|
219
|
+
}
|
220
|
+
|
221
|
+
if (_servicesToRegister == _registeredServices) {
|
222
|
+
revert ErrorReleaseManagerNoServiceRegistrationExpected();
|
223
|
+
}
|
224
|
+
|
225
|
+
(
|
226
|
+
IRegistry.ObjectInfo memory info,
|
227
|
+
ObjectType domain,
|
228
|
+
VersionPart version
|
229
|
+
) = _verifyService(service);
|
230
|
+
|
231
|
+
ObjectType expectedDomain = _serviceAuthorization[version].getServiceDomains()[_registeredServices];
|
232
|
+
if (service.getDomain() != expectedDomain) {
|
233
|
+
revert ErrorReleaseManagerServiceDomainMismatch(expectedDomain, service.getDomain());
|
234
|
+
}
|
235
|
+
|
236
|
+
// checked in registry
|
237
|
+
_releaseInfo[version].domains.push(domain);
|
96
238
|
|
97
|
-
|
239
|
+
// register service with registry
|
240
|
+
nftId = _registry.registerService(info, version, domain);
|
241
|
+
_registeredServices++;
|
242
|
+
|
243
|
+
service.linkToRegisteredNftId();
|
244
|
+
|
245
|
+
// setup service authorization
|
246
|
+
_admin.authorizeService(
|
247
|
+
_serviceAuthorization[version],
|
248
|
+
service);
|
249
|
+
|
250
|
+
// TODO consider to extend this to REGISTRY
|
251
|
+
// special roles for registry/staking/pool service
|
252
|
+
if (domain == STAKING() || domain == POOL()) {
|
253
|
+
// TODO rename to grantServiceDomainRole()
|
254
|
+
_admin.grantServiceRoleForAllVersions(service, domain);
|
255
|
+
}
|
256
|
+
|
257
|
+
if (_registeredServices < _servicesToRegister) {
|
258
|
+
_state = DEPLOYING();
|
259
|
+
} else {
|
260
|
+
// TODO end state depends on (_awaitingRegistration == 0)
|
261
|
+
}
|
98
262
|
}
|
99
263
|
|
264
|
+
|
100
265
|
function activateNextRelease()
|
101
266
|
external
|
102
267
|
restricted // GIF_ADMIN_ROLE
|
103
268
|
{
|
269
|
+
if (!isValidTransition(RELEASE(), _state, ACTIVE())) {
|
270
|
+
revert ErrorReleaseManagerReleaseActivationDisallowed(_state);
|
271
|
+
}
|
272
|
+
|
273
|
+
// release fully deployed
|
104
274
|
VersionPart version = _next;
|
105
|
-
|
275
|
+
if(_registeredServices < _servicesToRegister) {
|
276
|
+
revert ErrorReleaseManagerReleaseRegistrationNotFinished(version, _servicesToRegister - _registeredServices);
|
277
|
+
}
|
106
278
|
|
107
|
-
// release
|
279
|
+
// release exists, registry service MUST exist
|
280
|
+
address service = _registry.getServiceAddress(REGISTRY(), version);
|
108
281
|
if(service == address(0)) {
|
109
|
-
revert
|
282
|
+
revert ErrorReleaseManagerReleaseNotCreated(version);
|
110
283
|
}
|
111
284
|
|
112
|
-
// release
|
113
|
-
if(
|
114
|
-
revert
|
285
|
+
// release is not activated
|
286
|
+
if(_releaseInfo[version].activatedAt.gtz()) {
|
287
|
+
revert ErrorReleaseManagerReleaseAlreadyActivated(version);
|
115
288
|
}
|
116
289
|
|
117
|
-
//setTargetClosed(service, false);
|
118
|
-
|
119
290
|
_latest = version;
|
291
|
+
_state = ACTIVE();
|
120
292
|
|
121
|
-
|
122
|
-
|
293
|
+
_releaseVersionByAddress[service] = version;
|
294
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
123
295
|
|
124
296
|
emit LogReleaseActivation(version);
|
125
297
|
}
|
126
298
|
|
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)
|
299
|
+
// release becomes disabled after delay expiration (can be reenabled before that)
|
300
|
+
function disableRelease(VersionPart version, Seconds disableDelay)
|
131
301
|
external
|
132
|
-
restricted //
|
133
|
-
returns(NftId nftId)
|
302
|
+
restricted // GIF_ADMIN_ROLE
|
134
303
|
{
|
135
|
-
|
136
|
-
|
304
|
+
// release was activated
|
305
|
+
if(_releaseInfo[version].activatedAt.eqz()) {
|
306
|
+
revert ErrorReleaseManagerReleaseNotActivated(version);
|
137
307
|
}
|
138
308
|
|
139
|
-
//
|
140
|
-
|
141
|
-
|
142
|
-
revert UnexpectedServiceAuthority(
|
143
|
-
authority(),
|
144
|
-
serviceAuthority);
|
309
|
+
// release not disabled already
|
310
|
+
if(_releaseInfo[version].disabledAt.gtz()) {
|
311
|
+
revert ErrorReleaseManagerReleaseAlreadyDisabled(version);
|
145
312
|
}
|
146
313
|
|
147
|
-
|
314
|
+
disableDelay = SecondsLib.toSeconds(Math.max(disableDelay.toInt(), MIN_DISABLE_DELAY.toInt()));
|
148
315
|
|
149
|
-
|
150
|
-
|
151
|
-
_verifyService(service, majorVersion, domain);
|
152
|
-
_createRelease(service.getFunctionConfigs());
|
153
|
-
|
154
|
-
nftId = _registry.registerService(info, majorVersion, domain);
|
316
|
+
// TODO come up with a substitute
|
317
|
+
// _releaseAccessManager[version].disable(disableDelay);
|
155
318
|
|
156
|
-
|
157
|
-
service.linkToRegisteredNftId();
|
319
|
+
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp().addSeconds(disableDelay);
|
158
320
|
}
|
159
|
-
|
160
|
-
|
161
|
-
// TODO removing service from release? -> set _active to false forever, but keep all other records?
|
162
|
-
function registerService(IService service)
|
321
|
+
|
322
|
+
function enableRelease(VersionPart version)
|
163
323
|
external
|
164
|
-
restricted //
|
165
|
-
returns(NftId nftId)
|
324
|
+
restricted // GIF_ADMIN_ROLE
|
166
325
|
{
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
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);
|
184
|
-
}
|
326
|
+
// release was disabled
|
327
|
+
//if(_releaseInfo[version].disabledAt.eqz()) {
|
328
|
+
// revert ErrorReleaseManagerReleaseAlreadyEnabled(version);
|
329
|
+
//}
|
330
|
+
|
331
|
+
// reverts if disable delay expired
|
332
|
+
// TODO come up with a substitute
|
333
|
+
// _releaseAccessManager[version].enable();
|
185
334
|
|
186
|
-
|
187
|
-
|
188
|
-
nftId = _registry.registerService(info, majorVersion, domain);
|
189
|
-
|
190
|
-
// external call
|
191
|
-
service.linkToRegisteredNftId();
|
335
|
+
_releaseInfo[version].disabledAt = zeroTimestamp();
|
192
336
|
}
|
193
337
|
|
194
338
|
//--- view functions ----------------------------------------------------//
|
195
339
|
|
196
|
-
function
|
197
|
-
|
198
|
-
|
340
|
+
function predictDeterministicAddress(
|
341
|
+
address implementation,
|
342
|
+
bytes32 salt,
|
343
|
+
address deployer
|
344
|
+
) external pure returns (address predicted) {
|
345
|
+
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
199
346
|
}
|
200
347
|
|
201
|
-
function
|
202
|
-
|
203
|
-
return
|
348
|
+
function isActiveRegistryService(address service) external view returns(bool) {
|
349
|
+
VersionPart version = _releaseVersionByAddress[service];
|
350
|
+
return isActiveRelease(version);
|
204
351
|
}
|
205
352
|
|
206
|
-
function
|
207
|
-
|
208
|
-
return (address(_registry));
|
353
|
+
function isActiveRelease(VersionPart version) public view returns(bool) {
|
354
|
+
return _releaseInfo[version].activatedAt.gtz();
|
209
355
|
}
|
210
356
|
|
211
|
-
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory)
|
212
|
-
|
213
|
-
return _release[version];
|
357
|
+
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
358
|
+
return _releaseInfo[version];
|
214
359
|
}
|
215
360
|
|
216
|
-
function getNextVersion() public view returns(VersionPart)
|
217
|
-
{
|
361
|
+
function getNextVersion() public view returns(VersionPart) {
|
218
362
|
return _next;
|
219
363
|
}
|
220
364
|
|
@@ -226,99 +370,161 @@ contract ReleaseManager is AccessManaged
|
|
226
370
|
return _initial;
|
227
371
|
}
|
228
372
|
|
229
|
-
|
373
|
+
function getState() external view returns (StateId stateId) {
|
374
|
+
return _state;
|
375
|
+
}
|
230
376
|
|
231
|
-
function
|
232
|
-
|
233
|
-
|
234
|
-
|
377
|
+
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
378
|
+
return _servicesToRegister - _registeredServices;
|
379
|
+
}
|
380
|
+
|
381
|
+
// TODO cleanup
|
382
|
+
function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerExtendedWithDisableInitializeable) {
|
383
|
+
// return _releaseAccessManager[version];
|
384
|
+
}
|
385
|
+
|
386
|
+
function getServiceAuthorization(VersionPart version)
|
387
|
+
external
|
388
|
+
view
|
389
|
+
returns (IServiceAuthorization serviceAuthorization)
|
390
|
+
{
|
391
|
+
return _serviceAuthorization[version];
|
392
|
+
}
|
393
|
+
|
394
|
+
// TODO token registry knows nothing about adfmin, only registry
|
395
|
+
function getRegistryAdmin() external view returns (address) {
|
396
|
+
return address(_admin);
|
397
|
+
}
|
398
|
+
|
399
|
+
//--- IRegistryLinked ------------------------------------------------------//
|
400
|
+
|
401
|
+
function getRegistry() external view returns (IRegistry) {
|
402
|
+
return _registry;
|
403
|
+
}
|
404
|
+
|
405
|
+
//--- ILifecycle -----------------------------------------------------------//
|
406
|
+
|
407
|
+
function hasLifecycle(ObjectType objectType) external pure returns (bool) { return objectType == RELEASE(); }
|
408
|
+
|
409
|
+
function getInitialState(ObjectType objectType) public pure returns (StateId stateId) {
|
410
|
+
if (objectType == RELEASE()) {
|
411
|
+
stateId = INITIAL();
|
412
|
+
}
|
413
|
+
}
|
414
|
+
|
415
|
+
function isValidTransition(
|
416
|
+
ObjectType objectType,
|
417
|
+
StateId fromId,
|
418
|
+
StateId toId
|
235
419
|
)
|
420
|
+
public
|
421
|
+
pure
|
422
|
+
returns (bool isValid)
|
423
|
+
{
|
424
|
+
if (objectType != RELEASE()) { return false; }
|
425
|
+
|
426
|
+
if (fromId == INITIAL() && toId == SCHEDULED()) { return true; }
|
427
|
+
if (fromId == SCHEDULED() && toId == DEPLOYING()) { return true; }
|
428
|
+
if (fromId == DEPLOYING() && toId == SCHEDULED()) { return true; }
|
429
|
+
if (fromId == DEPLOYING() && toId == DEPLOYING()) { return true; }
|
430
|
+
if (fromId == DEPLOYING() && toId == ACTIVE()) { return true; }
|
431
|
+
// TODO active -> scheduled missing, add tests to cover this and more scenarios (#358)
|
432
|
+
|
433
|
+
return false;
|
434
|
+
}
|
435
|
+
|
436
|
+
//--- private functions ----------------------------------------------------//
|
437
|
+
|
438
|
+
function _verifyService(IService service)
|
236
439
|
internal
|
237
|
-
|
440
|
+
view
|
238
441
|
returns(
|
239
|
-
IRegistry.ObjectInfo memory
|
442
|
+
IRegistry.ObjectInfo memory serviceInfo,
|
443
|
+
ObjectType serviceDomain,
|
444
|
+
VersionPart serviceVersion
|
240
445
|
)
|
241
446
|
{
|
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);
|
447
|
+
if(!service.supportsInterface(type(IService).interfaceId)) {
|
448
|
+
revert ErrorReleaseManagerNotService(service);
|
248
449
|
}
|
249
450
|
|
250
|
-
address owner =
|
451
|
+
address owner = msg.sender;
|
452
|
+
address serviceAuthority = service.authority();
|
453
|
+
serviceVersion = service.getVersion().toMajorPart();
|
454
|
+
serviceDomain = service.getDomain();// checked in registry
|
455
|
+
serviceInfo = service.getInitialInfo();
|
251
456
|
|
252
|
-
|
253
|
-
revert NotRegisterableOwner(expectedOwner);
|
254
|
-
}
|
457
|
+
_verifyServiceInfo(service, serviceInfo, owner);
|
255
458
|
|
256
|
-
|
257
|
-
|
459
|
+
VersionPart releaseVersion = getNextVersion(); // never 0
|
460
|
+
address releaseAuthority = address(_releaseAccessManager[releaseVersion]); // can be zero if registering service when release is not created
|
461
|
+
|
462
|
+
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
463
|
+
if(serviceAuthority != releaseAuthority) {
|
464
|
+
revert ErrorReleaseManagerServiceReleaseAuthorityMismatch(
|
465
|
+
service,
|
466
|
+
serviceAuthority,
|
467
|
+
releaseAuthority);
|
258
468
|
}
|
259
|
-
|
260
|
-
if(
|
261
|
-
revert
|
469
|
+
|
470
|
+
if(serviceVersion != releaseVersion) {
|
471
|
+
revert ErrorReleaseManagerServiceReleaseVersionMismatch(
|
472
|
+
service,
|
473
|
+
serviceVersion,
|
474
|
+
releaseVersion);
|
262
475
|
}
|
263
476
|
}
|
264
477
|
|
265
|
-
|
478
|
+
|
479
|
+
function _verifyServiceInfo(
|
266
480
|
IService service,
|
267
|
-
|
268
|
-
|
481
|
+
IRegistry.ObjectInfo memory info,
|
482
|
+
address expectedOwner // assume always valid, can not be 0
|
269
483
|
)
|
270
484
|
internal
|
271
485
|
view
|
272
|
-
returns(ObjectType)
|
273
486
|
{
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
487
|
+
if(info.objectAddress != address(service)) {
|
488
|
+
revert ErrorReleaseManagerServiceInfoAddressInvalid(service, address(service));
|
489
|
+
}
|
490
|
+
|
491
|
+
if(info.isInterceptor != false) { // service is never interceptor
|
492
|
+
revert ErrorReleaseManagerServiceInfoInterceptorInvalid(service, info.isInterceptor);
|
278
493
|
}
|
279
494
|
|
280
|
-
if(
|
281
|
-
revert
|
495
|
+
if(info.objectType != SERVICE()) {// type is checked in registry anyway...but service logic may depend on expected value
|
496
|
+
revert ErrorReleaseManagerServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
282
497
|
}
|
283
498
|
|
284
|
-
|
499
|
+
address owner = info.initialOwner;
|
500
|
+
|
501
|
+
if(owner != expectedOwner) { // registerable owner protection
|
502
|
+
revert ErrorReleaseManagerServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
503
|
+
}
|
504
|
+
|
505
|
+
if(owner == address(service)) {
|
506
|
+
revert ErrorReleaseManagerServiceSelfRegistration(service);
|
507
|
+
}
|
508
|
+
|
509
|
+
if(_registry.isRegistered(owner)) {
|
510
|
+
revert ErrorReleaseManagerServiceOwnerRegistered(service, owner);
|
511
|
+
}
|
285
512
|
}
|
286
513
|
|
287
|
-
|
288
|
-
function
|
289
|
-
internal
|
290
|
-
{
|
291
|
-
VersionPart version = getNextVersion();
|
514
|
+
/// @dev returns true iff a the address passes some simple proxy tests.
|
515
|
+
function _isRegistry(address registryAddress) internal view returns (bool) {
|
292
516
|
|
293
|
-
|
294
|
-
|
517
|
+
// zero address is certainly not registry
|
518
|
+
if (registryAddress == address(0)) {
|
519
|
+
return false;
|
295
520
|
}
|
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);
|
521
|
+
// TODO try catch and return false in case of revert
|
522
|
+
// a just panic
|
523
|
+
// check if contract returns a zero nft id for its own address
|
524
|
+
if (IRegistry(registryAddress).getNftId(registryAddress).eqz()) {
|
525
|
+
return false;
|
317
526
|
}
|
318
|
-
// TODO set when activated?
|
319
|
-
_release[version].createdAt = TimestampLib.blockTimestamp();
|
320
|
-
//_release[version].updatedAt = TimestampLib.blockTimestamp();
|
321
527
|
|
322
|
-
|
528
|
+
return true;
|
323
529
|
}
|
324
530
|
}
|