@etherisc/gif-next 0.0.2-e5a2253-213 → 0.0.2-e5a6af8-639
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 +59 -18
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -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 +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1439 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +830 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2077 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +314 -1441
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +334 -202
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +374 -2546
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1023 -387
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +436 -404
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +356 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -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 -49
- 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 +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +1039 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +291 -353
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → oracle/Oracle.sol/Oracle.json} +421 -367
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +497 -257
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +238 -228
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +290 -211
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +494 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +154 -133
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +538 -20
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +273 -230
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +991 -90
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -279
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +345 -83
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +307 -268
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +153 -172
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +270 -260
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +40 -31
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +106 -152
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +96 -48
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +138 -164
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -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 +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- 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/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- 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/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/type/RiskId.sol/RiskIdLib.json +142 -0
- 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 +246 -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/type/StateId.sol/StateIdLib.json +105 -0
- 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/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/authorization/AccessAdmin.sol +596 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +285 -0
- package/contracts/distribution/DistributionService.sol +355 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +101 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +418 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
- package/contracts/instance/IInstance.sol +56 -50
- package/contracts/instance/IInstanceService.sol +53 -21
- package/contracts/instance/Instance.sol +168 -198
- package/contracts/instance/InstanceAdmin.sol +277 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +264 -84
- package/contracts/instance/InstanceService.sol +309 -243
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +287 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
- package/contracts/instance/module/IAccess.sol +19 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +51 -0
- package/contracts/instance/module/IDistribution.sol +6 -4
- package/contracts/instance/module/IPolicy.sol +58 -19
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +291 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +480 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +143 -0
- package/contracts/pool/IPoolComponent.sol +68 -0
- package/contracts/pool/IPoolService.sol +167 -0
- package/contracts/pool/Pool.sol +335 -0
- package/contracts/pool/PoolService.sol +534 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +257 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +604 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +63 -0
- package/contracts/product/IClaimService.sol +123 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +59 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +683 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +297 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +455 -0
- package/contracts/product/RiskService.sol +96 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -34
- package/contracts/registry/IRegistry.sol +106 -26
- package/contracts/registry/IRegistryService.sol +38 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +530 -209
- package/contracts/registry/RegistryAdmin.sol +448 -0
- package/contracts/registry/RegistryService.sol +119 -198
- package/contracts/registry/RegistryServiceManager.sol +24 -33
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
- package/contracts/registry/TokenRegistry.sol +263 -58
- package/contracts/shared/Component.sol +265 -0
- package/contracts/shared/ComponentService.sol +735 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +126 -0
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +120 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +15 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +15 -6
- package/contracts/shared/InitializableERC165.sol +27 -0
- package/contracts/shared/InstanceLinkedComponent.sol +213 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +71 -82
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +34 -39
- package/contracts/shared/RegistryLinked.sol +44 -0
- package/contracts/shared/Service.sol +60 -34
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +157 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +393 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +22 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +276 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +162 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +39 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +232 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +11 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- 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/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- 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/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
- 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 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- 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/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1121
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -791
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- 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 -1246
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -825
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -875
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
- 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 -305
- 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 -600
- 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 -286
- 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/AddressSet.sol/LibAddressSet.json +0 -10
- 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/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- 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/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- 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/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- 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/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- 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/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/BaseComponent.sol +0 -168
- package/contracts/components/Distribution.sol +0 -154
- package/contracts/components/IBaseComponent.sol +0 -35
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -258
- package/contracts/components/Product.sol +0 -295
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -25
- package/contracts/instance/InstanceAccessManager.sol +0 -303
- package/contracts/instance/InstanceBase.sol +0 -39
- package/contracts/instance/base/ComponentServiceBase.sol +0 -138
- package/contracts/instance/base/IInstanceBase.sol +0 -21
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -294
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -115
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -539
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -142
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -209
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -210
- package/contracts/registry/ReleaseManager.sol +0 -342
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- 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/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,501 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
|
+
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
9
|
+
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
10
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
|
+
import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
|
12
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
|
+
|
14
|
+
import {IService} from "../shared/IService.sol";
|
15
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
|
17
|
+
import {IRegistry} from "./IRegistry.sol";
|
18
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
19
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
20
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
21
|
+
import {Registry} from "./Registry.sol";
|
22
|
+
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
23
|
+
|
24
|
+
|
25
|
+
contract ReleaseRegistry is
|
26
|
+
AccessManaged,
|
27
|
+
ReleaseLifecycle,
|
28
|
+
IRegistryLinked
|
29
|
+
{
|
30
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;// first active version
|
31
|
+
|
32
|
+
event LogReleaseCreation(VersionPart version, bytes32 salt);
|
33
|
+
event LogReleaseActivation(VersionPart version);
|
34
|
+
event LogReleaseDisabled(VersionPart version);
|
35
|
+
event LogReleaseEnabled(VersionPart version);
|
36
|
+
|
37
|
+
// constructor
|
38
|
+
error ErrorReleaseRegistryNotRegistry(Registry registry);
|
39
|
+
|
40
|
+
// _verifyServiceAuthorization
|
41
|
+
error ErrorReleaseRegistryNotServiceAuth(address notAuth);
|
42
|
+
error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
|
43
|
+
error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart version);
|
44
|
+
|
45
|
+
// registerService
|
46
|
+
error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
|
47
|
+
|
48
|
+
// activateNextRelease
|
49
|
+
error ErrorReleaseRegistryRegistryServiceMissing(VersionPart releaseVersion);
|
50
|
+
|
51
|
+
// _verifyService
|
52
|
+
error ErrorReleaseRegistryNotService(address notService);
|
53
|
+
error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
54
|
+
error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
55
|
+
error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
|
56
|
+
|
57
|
+
// _verifyServiceInfo
|
58
|
+
error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
|
59
|
+
error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
60
|
+
error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
61
|
+
error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
|
62
|
+
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
63
|
+
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
64
|
+
|
65
|
+
RegistryAdmin public immutable _admin;
|
66
|
+
Registry public immutable _registry;
|
67
|
+
|
68
|
+
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
69
|
+
VersionPart [] internal _release; // array of all created releases
|
70
|
+
VersionPart internal _latest; // latest active version
|
71
|
+
VersionPart internal _next; // version to create and activate
|
72
|
+
|
73
|
+
uint256 internal _registeredServices;
|
74
|
+
uint256 internal _servicesToRegister;
|
75
|
+
|
76
|
+
constructor(Registry registry)
|
77
|
+
AccessManaged(msg.sender)
|
78
|
+
{
|
79
|
+
// TODO move this part to RegistryLinked constructor
|
80
|
+
if(!_isRegistry(address(registry))) {
|
81
|
+
revert ErrorReleaseRegistryNotRegistry(registry);
|
82
|
+
}
|
83
|
+
|
84
|
+
setAuthority(registry.getAuthority());
|
85
|
+
|
86
|
+
_registry = registry;
|
87
|
+
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
88
|
+
|
89
|
+
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
90
|
+
}
|
91
|
+
|
92
|
+
/// @dev sets previous release into SKIPPED state if it was created but not activated
|
93
|
+
/// sets next release into state SCHEDULED
|
94
|
+
function createNextRelease()
|
95
|
+
external
|
96
|
+
restricted() // GIF_ADMIN_ROLE
|
97
|
+
returns(VersionPart)
|
98
|
+
{
|
99
|
+
VersionPart version = _next;
|
100
|
+
|
101
|
+
if(isValidTransition(RELEASE(), _releaseInfo[version].state, SKIPPED())) {
|
102
|
+
_releaseInfo[version].state = SKIPPED();
|
103
|
+
}
|
104
|
+
|
105
|
+
version = VersionPartLib.toVersionPart(version.toInt() + 1);
|
106
|
+
_release.push(version);
|
107
|
+
|
108
|
+
_next = version;
|
109
|
+
_releaseInfo[version].version = version;
|
110
|
+
_releaseInfo[version].state = getInitialState(RELEASE());
|
111
|
+
_servicesToRegister = 0;
|
112
|
+
_registeredServices = 0;
|
113
|
+
|
114
|
+
return _next;
|
115
|
+
}
|
116
|
+
|
117
|
+
function prepareNextRelease(
|
118
|
+
IServiceAuthorization serviceAuthorization,
|
119
|
+
bytes32 salt
|
120
|
+
)
|
121
|
+
external
|
122
|
+
restricted() // GIF_MANAGER_ROLE
|
123
|
+
returns(
|
124
|
+
address releaseAuthority,
|
125
|
+
VersionPart releaseVersion,
|
126
|
+
bytes32 releaseSalt
|
127
|
+
)
|
128
|
+
{
|
129
|
+
releaseVersion = _next;
|
130
|
+
|
131
|
+
// release can transition into DEPLOYING state
|
132
|
+
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), SCHEDULED(), DEPLOYING());
|
133
|
+
|
134
|
+
uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
|
135
|
+
|
136
|
+
releaseAuthority = _admin.authority();
|
137
|
+
releaseSalt = salt;
|
138
|
+
// ensures unique salt
|
139
|
+
// TODO CreateX have clones capability also
|
140
|
+
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
141
|
+
/*releaseSalt = keccak256(
|
142
|
+
bytes.concat(
|
143
|
+
bytes32(releaseVersion.toInt()),
|
144
|
+
salt));*/
|
145
|
+
|
146
|
+
_servicesToRegister = serviceDomainsCount;
|
147
|
+
_releaseInfo[releaseVersion].state = DEPLOYING();
|
148
|
+
_releaseInfo[releaseVersion].salt = releaseSalt;
|
149
|
+
// TODO allow for the same serviceAuthorization address to be used for multiple releases?
|
150
|
+
_releaseInfo[releaseVersion].auth = serviceAuthorization;
|
151
|
+
//_releaseInfo[releaseVersion].authority = releaseAuthority;
|
152
|
+
|
153
|
+
emit LogReleaseCreation(releaseVersion, releaseSalt);
|
154
|
+
}
|
155
|
+
|
156
|
+
function registerService(IService service)
|
157
|
+
external
|
158
|
+
restricted // GIF_MANAGER_ROLE
|
159
|
+
returns(NftId nftId)
|
160
|
+
{
|
161
|
+
VersionPart releaseVersion = _next;
|
162
|
+
|
163
|
+
// release can transition to DEPLOYED state
|
164
|
+
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
|
165
|
+
|
166
|
+
address releaseAuthority = _admin.authority();
|
167
|
+
IServiceAuthorization serviceAuth = _releaseInfo[releaseVersion].auth;
|
168
|
+
ObjectType expectedDomain = serviceAuth.getServiceDomain(_registeredServices);
|
169
|
+
|
170
|
+
// service can work with release registry and release version
|
171
|
+
(
|
172
|
+
IRegistry.ObjectInfo memory info,
|
173
|
+
ObjectType serviceDomain,
|
174
|
+
VersionPart serviceVersion
|
175
|
+
//,string memory serviceName
|
176
|
+
) = _verifyService(
|
177
|
+
service,
|
178
|
+
releaseAuthority,
|
179
|
+
releaseVersion,
|
180
|
+
expectedDomain
|
181
|
+
);
|
182
|
+
|
183
|
+
//_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
|
184
|
+
//_releaseInfo[releaseVersion].domains.push(serviceDomain);
|
185
|
+
//_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
|
186
|
+
|
187
|
+
_registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
|
188
|
+
|
189
|
+
// release fully deployed
|
190
|
+
if(_servicesToRegister == _registeredServices) {
|
191
|
+
_releaseInfo[releaseVersion].state = DEPLOYED();
|
192
|
+
}
|
193
|
+
|
194
|
+
// TODO: service address matches defined in release auth (precalculated one)
|
195
|
+
// revert ErrorReleaseRegistryServiceAddressMismatch()
|
196
|
+
|
197
|
+
// setup service authorization
|
198
|
+
_admin.authorizeService(
|
199
|
+
serviceAuth,
|
200
|
+
service,
|
201
|
+
serviceDomain,
|
202
|
+
releaseVersion);
|
203
|
+
|
204
|
+
// register service with registry
|
205
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
206
|
+
service.linkToRegisteredNftId();
|
207
|
+
}
|
208
|
+
// TODO return activated version
|
209
|
+
function activateNextRelease()
|
210
|
+
external
|
211
|
+
restricted // GIF_ADMIN_ROLE
|
212
|
+
{
|
213
|
+
VersionPart version = _next;
|
214
|
+
|
215
|
+
// release can transition to ACTIVE state
|
216
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), DEPLOYED(), ACTIVE());
|
217
|
+
|
218
|
+
_latest = version;
|
219
|
+
_releaseInfo[version].state = ACTIVE();
|
220
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
221
|
+
|
222
|
+
// grant special roles for registry/staking/pool services
|
223
|
+
// this will enable access to core contracts functions
|
224
|
+
|
225
|
+
// registry service MUST be registered for each release
|
226
|
+
address service = _registry.getServiceAddress(REGISTRY(), version);
|
227
|
+
if(service == address(0)) {
|
228
|
+
revert ErrorReleaseRegistryRegistryServiceMissing(version);
|
229
|
+
}
|
230
|
+
|
231
|
+
_admin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
|
232
|
+
|
233
|
+
service = _registry.getServiceAddress(STAKING(), version);
|
234
|
+
if(service != address(0)) {
|
235
|
+
_admin.grantServiceRoleForAllVersions(IService(service), STAKING());
|
236
|
+
}
|
237
|
+
|
238
|
+
service = _registry.getServiceAddress(POOL(), version);
|
239
|
+
if(service != address(0)) {
|
240
|
+
_admin.grantServiceRoleForAllVersions(IService(service), POOL());
|
241
|
+
}
|
242
|
+
|
243
|
+
// TODO may run out of gas
|
244
|
+
// TODO test how many service can be locked in one transaction
|
245
|
+
// -> add to docs + each release must test for this -> add to release version tests (in test call with some gas limit?)
|
246
|
+
_setReleaseLocked(version, false);
|
247
|
+
|
248
|
+
emit LogReleaseActivation(version);
|
249
|
+
}
|
250
|
+
|
251
|
+
/// @dev stop all operations with release services
|
252
|
+
function pauseRelease(VersionPart version)
|
253
|
+
external
|
254
|
+
restricted // GIF_ADMIN_ROLE
|
255
|
+
{
|
256
|
+
// release can transition to PAUSED state
|
257
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), ACTIVE(), PAUSED());
|
258
|
+
|
259
|
+
_releaseInfo[version].state = PAUSED();
|
260
|
+
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp();
|
261
|
+
|
262
|
+
_setReleaseLocked(version, true);
|
263
|
+
|
264
|
+
emit LogReleaseDisabled(version);
|
265
|
+
}
|
266
|
+
|
267
|
+
/// @dev resume operations with release services
|
268
|
+
function unpauseRelease(VersionPart version)
|
269
|
+
external
|
270
|
+
restricted // GIF_ADMIN_ROLE
|
271
|
+
{
|
272
|
+
// release can transition to ACTIVE state
|
273
|
+
checkTransition(_releaseInfo[version].state, RELEASE(), PAUSED(), ACTIVE());
|
274
|
+
|
275
|
+
_releaseInfo[version].state = ACTIVE();
|
276
|
+
_releaseInfo[version].disabledAt = zeroTimestamp();
|
277
|
+
|
278
|
+
_setReleaseLocked(version, false);
|
279
|
+
|
280
|
+
emit LogReleaseEnabled(version);
|
281
|
+
}
|
282
|
+
|
283
|
+
//--- view functions ----------------------------------------------------//
|
284
|
+
|
285
|
+
function predictDeterministicAddress(
|
286
|
+
address implementation,
|
287
|
+
bytes32 salt,
|
288
|
+
address deployer
|
289
|
+
) external pure returns (address predicted) {
|
290
|
+
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
291
|
+
}
|
292
|
+
|
293
|
+
function isActiveRelease(VersionPart version) public view returns(bool) {
|
294
|
+
return _releaseInfo[version].state == ACTIVE();
|
295
|
+
}
|
296
|
+
|
297
|
+
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
298
|
+
return _releaseInfo[version];
|
299
|
+
}
|
300
|
+
|
301
|
+
/// @dev Returns the number of created releases.
|
302
|
+
/// Releases might be in another state than ACTIVE.
|
303
|
+
function releases() external view returns (uint) {
|
304
|
+
return _release.length;
|
305
|
+
}
|
306
|
+
|
307
|
+
/// @dev Returns the n-th release version.
|
308
|
+
/// Valid values for idx [0 .. releases() - 1]
|
309
|
+
function getVersion(uint256 idx) external view returns (VersionPart version) {
|
310
|
+
// return _releases;
|
311
|
+
return _release[idx];
|
312
|
+
}
|
313
|
+
|
314
|
+
function getNextVersion() public view returns(VersionPart) {
|
315
|
+
return _next;
|
316
|
+
}
|
317
|
+
|
318
|
+
/// @dev Returns the latest activated relase version.
|
319
|
+
/// There is no guarantee that the release is not currently paused.
|
320
|
+
function getLatestVersion() external view returns(VersionPart) {
|
321
|
+
return _latest;
|
322
|
+
}
|
323
|
+
|
324
|
+
function getState(VersionPart version) external view returns (StateId stateId) {
|
325
|
+
return _releaseInfo[version].state;
|
326
|
+
}
|
327
|
+
|
328
|
+
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
329
|
+
return _servicesToRegister - _registeredServices;
|
330
|
+
}
|
331
|
+
|
332
|
+
function getServiceAuthorization(VersionPart version)
|
333
|
+
external
|
334
|
+
view
|
335
|
+
returns (IServiceAuthorization serviceAuthorization)
|
336
|
+
{
|
337
|
+
return _releaseInfo[version].auth;
|
338
|
+
}
|
339
|
+
|
340
|
+
function getRegistryAdmin() external view returns (address) {
|
341
|
+
return address(_admin);
|
342
|
+
}
|
343
|
+
|
344
|
+
//--- IRegistryLinked ------------------------------------------------------//
|
345
|
+
|
346
|
+
function getRegistry() external view returns (IRegistry) {
|
347
|
+
return _registry;
|
348
|
+
}
|
349
|
+
|
350
|
+
//--- private functions ----------------------------------------------------//
|
351
|
+
|
352
|
+
// close / open service targets instead of revoking / granting roles
|
353
|
+
function _setReleaseLocked(VersionPart version, bool locked)
|
354
|
+
private
|
355
|
+
{
|
356
|
+
address service;
|
357
|
+
ObjectType domain;
|
358
|
+
IServiceAuthorization auth = _releaseInfo[version].auth;
|
359
|
+
|
360
|
+
ObjectType[] memory domains = auth.getServiceDomains();
|
361
|
+
for(uint idx = 0; idx < domains.length; idx++)
|
362
|
+
{
|
363
|
+
domain = domains[idx];
|
364
|
+
service = _registry.getServiceAddress(domain, version);
|
365
|
+
assert(service != address(0));
|
366
|
+
|
367
|
+
_admin.setServiceLocked(IService(service), locked);
|
368
|
+
}
|
369
|
+
|
370
|
+
// TODO add check for active/disabled release to core contracts functions interacting with releases
|
371
|
+
}
|
372
|
+
|
373
|
+
function _verifyServiceAuthorization(
|
374
|
+
IServiceAuthorization serviceAuthorization,
|
375
|
+
VersionPart releaseVersion,
|
376
|
+
bytes32 salt
|
377
|
+
)
|
378
|
+
private
|
379
|
+
view
|
380
|
+
returns (uint256 serviceDomainsCount)
|
381
|
+
{
|
382
|
+
// authorization contract supports IServiceAuthorization interface
|
383
|
+
if(!serviceAuthorization.supportsInterface(type(IServiceAuthorization).interfaceId)) {
|
384
|
+
revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
|
385
|
+
}
|
386
|
+
|
387
|
+
// authorizaions contract version matches with release version
|
388
|
+
VersionPart authVersion = serviceAuthorization.getRelease();
|
389
|
+
if (releaseVersion != authVersion) {
|
390
|
+
revert ErrorReleaseRegistryServiceAuthVersionMismatch(serviceAuthorization, releaseVersion, authVersion);
|
391
|
+
}
|
392
|
+
|
393
|
+
// sanity check to ensure service domain list is not empty
|
394
|
+
serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
395
|
+
if (serviceDomainsCount == 0) {
|
396
|
+
revert ErrorReleaseRegistryServiceAuthDomainsZero(serviceAuthorization, releaseVersion);
|
397
|
+
}
|
398
|
+
}
|
399
|
+
|
400
|
+
// TODO get service names
|
401
|
+
function _verifyService(
|
402
|
+
IService service,
|
403
|
+
address expectedAuthority,
|
404
|
+
VersionPart expectedVersion,
|
405
|
+
ObjectType expectedDomain
|
406
|
+
)
|
407
|
+
internal
|
408
|
+
view
|
409
|
+
returns(
|
410
|
+
IRegistry.ObjectInfo memory serviceInfo,
|
411
|
+
ObjectType serviceDomain,
|
412
|
+
VersionPart serviceVersion
|
413
|
+
)
|
414
|
+
{
|
415
|
+
if(!service.supportsInterface(type(IService).interfaceId)) {
|
416
|
+
revert ErrorReleaseRegistryNotService(address(service));
|
417
|
+
}
|
418
|
+
|
419
|
+
address owner = msg.sender;
|
420
|
+
address serviceAuthority = service.authority();
|
421
|
+
serviceVersion = service.getVersion().toMajorPart();
|
422
|
+
serviceDomain = service.getDomain();// checked in registry
|
423
|
+
serviceInfo = service.getInitialInfo();
|
424
|
+
|
425
|
+
_verifyServiceInfo(service, serviceInfo, owner);
|
426
|
+
|
427
|
+
if(serviceAuthority != expectedAuthority) {
|
428
|
+
revert ErrorReleaseRegistryServiceAuthorityMismatch(
|
429
|
+
service,
|
430
|
+
serviceAuthority,
|
431
|
+
expectedAuthority);
|
432
|
+
}
|
433
|
+
|
434
|
+
if(serviceVersion != expectedVersion) {
|
435
|
+
revert ErrorReleaseRegistryServiceVersionMismatch(
|
436
|
+
service,
|
437
|
+
serviceVersion,
|
438
|
+
expectedVersion);
|
439
|
+
}
|
440
|
+
|
441
|
+
if(serviceDomain != expectedDomain) {
|
442
|
+
revert ErrorReleaseRegistryServiceDomainMismatch(
|
443
|
+
service,
|
444
|
+
expectedDomain,
|
445
|
+
serviceDomain);
|
446
|
+
}
|
447
|
+
}
|
448
|
+
|
449
|
+
|
450
|
+
function _verifyServiceInfo(
|
451
|
+
IService service,
|
452
|
+
IRegistry.ObjectInfo memory info,
|
453
|
+
address expectedOwner // assume always valid, can not be 0
|
454
|
+
)
|
455
|
+
internal
|
456
|
+
view
|
457
|
+
{
|
458
|
+
if(info.objectAddress != address(service)) {
|
459
|
+
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
|
460
|
+
}
|
461
|
+
|
462
|
+
if(info.isInterceptor != false) { // service is never interceptor
|
463
|
+
revert ErrorReleaseRegistryServiceInfoInterceptorInvalid(service, info.isInterceptor);
|
464
|
+
}
|
465
|
+
|
466
|
+
if(info.objectType != SERVICE()) {
|
467
|
+
revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
468
|
+
}
|
469
|
+
|
470
|
+
address owner = info.initialOwner;
|
471
|
+
|
472
|
+
if(owner != expectedOwner) { // registerable owner protection
|
473
|
+
revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
474
|
+
}
|
475
|
+
|
476
|
+
if(owner == address(service)) {
|
477
|
+
revert ErrorReleaseRegistryServiceSelfRegistration(service);
|
478
|
+
}
|
479
|
+
|
480
|
+
if(_registry.isRegistered(owner)) {
|
481
|
+
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
482
|
+
}
|
483
|
+
}
|
484
|
+
|
485
|
+
/// @dev returns true iff a the address passes some simple proxy tests.
|
486
|
+
function _isRegistry(address registryAddress) internal view returns (bool) {
|
487
|
+
|
488
|
+
// zero address is certainly not registry
|
489
|
+
if (registryAddress == address(0)) {
|
490
|
+
return false;
|
491
|
+
}
|
492
|
+
// TODO try catch and return false in case of revert or just panic
|
493
|
+
// check if contract returns a zero nft id for its own address
|
494
|
+
if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
|
495
|
+
return false;
|
496
|
+
}
|
497
|
+
|
498
|
+
return true;
|
499
|
+
}
|
500
|
+
}
|
501
|
+
|
@@ -0,0 +1,194 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {
|
5
|
+
ALL, REGISTRY, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
|
+
} from "../../contracts/type/ObjectType.sol";
|
7
|
+
|
8
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
9
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
10
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
11
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
12
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
13
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
14
|
+
import {IRegistryService} from "./IRegistryService.sol";
|
15
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
16
|
+
|
17
|
+
|
18
|
+
contract ServiceAuthorizationV3
|
19
|
+
is ServiceAuthorization
|
20
|
+
{
|
21
|
+
|
22
|
+
constructor(string memory commitHash)
|
23
|
+
ServiceAuthorization(commitHash, 3)
|
24
|
+
{}
|
25
|
+
|
26
|
+
function _setupDomains()
|
27
|
+
internal
|
28
|
+
override
|
29
|
+
{
|
30
|
+
_authorizeDomain(REGISTRY(), address(1));
|
31
|
+
_authorizeDomain(STAKING(), address(2));
|
32
|
+
_authorizeDomain(INSTANCE(), address(3));
|
33
|
+
_authorizeDomain(COMPONENT(), address(4));
|
34
|
+
_authorizeDomain(DISTRIBUTION(), address(5));
|
35
|
+
_authorizeDomain(PRICE(), address(6));
|
36
|
+
_authorizeDomain(BUNDLE(), address(7));
|
37
|
+
_authorizeDomain(POOL(), address(8));
|
38
|
+
_authorizeDomain(ORACLE(), address(9));
|
39
|
+
_authorizeDomain(PRODUCT(), address(10));
|
40
|
+
_authorizeDomain(POLICY(), address(11));
|
41
|
+
_authorizeDomain(CLAIM(), address(12));
|
42
|
+
_authorizeDomain(APPLICATION(), address(13));
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
function _setupDomainAuthorizations()
|
47
|
+
internal
|
48
|
+
override
|
49
|
+
{
|
50
|
+
_setupIRegistryServiceAuthorization();
|
51
|
+
_setupStakingServiceAuthorization();
|
52
|
+
_setupInstanceServiceAuthorization();
|
53
|
+
_setupComponentServiceAuthorization();
|
54
|
+
_setupDistributionServiceAuthorization();
|
55
|
+
_setupPoolServiceAuthorization();
|
56
|
+
_setupBundleServiceAuthorization();
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
/// @dev registry service authorization.
|
61
|
+
/// authorized functions MUST be implemented with a restricted modifier
|
62
|
+
function _setupIRegistryServiceAuthorization()
|
63
|
+
internal
|
64
|
+
{
|
65
|
+
IAccess.FunctionInfo[] storage functions;
|
66
|
+
|
67
|
+
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
68
|
+
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
69
|
+
|
70
|
+
functions = _authorizeForService(REGISTRY(), BUNDLE());
|
71
|
+
_authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
|
72
|
+
|
73
|
+
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
74
|
+
_authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
75
|
+
_authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
|
76
|
+
|
77
|
+
functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
|
78
|
+
_authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
|
79
|
+
|
80
|
+
functions = _authorizeForService(REGISTRY(), INSTANCE());
|
81
|
+
_authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
|
82
|
+
|
83
|
+
functions = _authorizeForService(REGISTRY(), STAKING());
|
84
|
+
_authorize(functions, IRegistryService.registerStake.selector, "registerStake");
|
85
|
+
}
|
86
|
+
|
87
|
+
|
88
|
+
/// @dev staking service authorization.
|
89
|
+
/// authorized functions MUST be implemented with a restricted modifier
|
90
|
+
function _setupStakingServiceAuthorization()
|
91
|
+
internal
|
92
|
+
{
|
93
|
+
IAccess.FunctionInfo[] storage functions;
|
94
|
+
|
95
|
+
functions = _authorizeForService(STAKING(), INSTANCE());
|
96
|
+
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
97
|
+
_authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
|
98
|
+
_authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
|
99
|
+
_authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
|
100
|
+
_authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
|
101
|
+
|
102
|
+
functions = _authorizeForService(STAKING(), ALL());
|
103
|
+
_authorize(functions, IStakingService.create.selector, "create");
|
104
|
+
_authorize(functions, IStakingService.stake.selector, "stake");
|
105
|
+
_authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
|
106
|
+
_authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
|
107
|
+
_authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
|
108
|
+
_authorize(functions, IStakingService.unstake.selector, "unstake");
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
/// @dev Instance service function authorization.
|
113
|
+
function _setupInstanceServiceAuthorization()
|
114
|
+
internal
|
115
|
+
{
|
116
|
+
// TODO cleanup
|
117
|
+
// IAccess.FunctionInfo[] storage functions;
|
118
|
+
|
119
|
+
// functions = _authorizeForService(INSTANCE(), COMPONENT());
|
120
|
+
// _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
121
|
+
}
|
122
|
+
|
123
|
+
|
124
|
+
/// @dev Component service function authorization.
|
125
|
+
function _setupComponentServiceAuthorization()
|
126
|
+
internal
|
127
|
+
{
|
128
|
+
// TODO cleanup
|
129
|
+
// authz.authorizations = new DomainAuthorization[](4);
|
130
|
+
|
131
|
+
// authz.authorizations[0].domain = POLICY();
|
132
|
+
// _functions = new IAccessAdmin.Function[](1);
|
133
|
+
// __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
|
134
|
+
// authz.authorizations[0].functions = _functions;
|
135
|
+
|
136
|
+
// authz.authorizations[1].domain = DISTRIBUTION();
|
137
|
+
// _functions = new IAccessAdmin.Function[](1);
|
138
|
+
// __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
|
139
|
+
// authz.authorizations[1].functions = _functions;
|
140
|
+
|
141
|
+
// authz.authorizations[2].domain = POOL();
|
142
|
+
// _functions = new IAccessAdmin.Function[](1);
|
143
|
+
// __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
|
144
|
+
// authz.authorizations[2].functions = _functions;
|
145
|
+
|
146
|
+
// authz.authorizations[3].domain = BUNDLE();
|
147
|
+
// _functions = new IAccessAdmin.Function[](1);
|
148
|
+
// __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
|
149
|
+
// authz.authorizations[3].functions = _functions;
|
150
|
+
}
|
151
|
+
|
152
|
+
/// @dev Distribution service function authorization.
|
153
|
+
function _setupDistributionServiceAuthorization()
|
154
|
+
internal
|
155
|
+
{
|
156
|
+
IAccess.FunctionInfo[] storage functions;
|
157
|
+
|
158
|
+
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
159
|
+
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
160
|
+
_authorize(functions, IDistributionService.processReferral.selector, "processReferral");
|
161
|
+
}
|
162
|
+
|
163
|
+
|
164
|
+
/// @dev Pool service function authorization.
|
165
|
+
function _setupPoolServiceAuthorization()
|
166
|
+
internal
|
167
|
+
{
|
168
|
+
IAccess.FunctionInfo[] storage functions;
|
169
|
+
|
170
|
+
functions = _authorizeForService(POOL(), POLICY());
|
171
|
+
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
172
|
+
_authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
|
173
|
+
_authorize(functions, IPoolService.processSale.selector, "processSale");
|
174
|
+
|
175
|
+
functions = _authorizeForService(POOL(), CLAIM());
|
176
|
+
_authorize(functions, IPoolService.processPayout.selector, "processPayout");
|
177
|
+
}
|
178
|
+
|
179
|
+
|
180
|
+
/// @dev Instance service function authorization.
|
181
|
+
function _setupBundleServiceAuthorization()
|
182
|
+
internal
|
183
|
+
{
|
184
|
+
IAccess.FunctionInfo[] storage functions;
|
185
|
+
|
186
|
+
functions = _authorizeForService(BUNDLE(), POOL());
|
187
|
+
_authorize(functions, IBundleService.create.selector, "create");
|
188
|
+
_authorize(functions, IBundleService.close.selector, "close");
|
189
|
+
_authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
|
190
|
+
_authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
|
191
|
+
_authorize(functions, IBundleService.unlinkPolicy.selector, "unlinkPolicy");
|
192
|
+
}
|
193
|
+
}
|
194
|
+
|