@etherisc/gif-next 0.0.2-eadf4ad-726 → 0.0.2-eae585a-625
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 +139 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -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 +1372 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +174 -601
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +786 -533
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +239 -128
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +178 -330
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +622 -178
- 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 +1484 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1439 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +604 -92
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +532 -56
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +657 -257
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1833 -761
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +552 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +171 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1548 -1017
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -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 +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- 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 +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +957 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -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 +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +550 -400
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +233 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +384 -86
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +233 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +749 -377
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +247 -629
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +954 -743
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +232 -113
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +370 -252
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +192 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +491 -341
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +214 -115
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +454 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +217 -75
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +380 -225
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +289 -66
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +507 -384
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +198 -123
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +261 -333
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +196 -109
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +428 -509
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +456 -51
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +177 -65
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +962 -174
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +242 -196
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -90
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- 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 +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -125
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +128 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1076 -156
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +129 -135
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +89 -20
- 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 +42 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
- 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 +795 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +575 -0
- 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 +45 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
- 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 +96 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +732 -108
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +818 -241
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +182 -83
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +92 -15
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +119 -58
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +66 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +167 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -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 +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +169 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +26 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +137 -175
- package/contracts/distribution/DistributionService.sol +313 -216
- package/contracts/distribution/DistributionServiceManager.sol +8 -23
- package/contracts/distribution/IDistributionComponent.sol +23 -49
- package/contracts/distribution/IDistributionService.sol +61 -33
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +128 -49
- package/contracts/instance/IInstanceService.sol +83 -37
- package/contracts/instance/Instance.sol +254 -132
- package/contracts/instance/InstanceAdmin.sol +379 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
- package/contracts/instance/InstanceReader.sol +507 -241
- package/contracts/instance/InstanceService.sol +418 -205
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +146 -89
- package/contracts/instance/ProductStore.sol +119 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -8
- package/contracts/instance/module/IComponents.sol +40 -19
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +57 -30
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +162 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +248 -246
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +47 -49
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +112 -56
- package/contracts/pool/Pool.sol +200 -169
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +477 -267
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +222 -82
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +397 -214
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +30 -4
- package/contracts/product/IClaimService.sol +52 -9
- package/contracts/product/IPolicyService.sol +62 -40
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +504 -237
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +132 -102
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +267 -153
- package/contracts/product/RiskService.sol +190 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -40
- package/contracts/registry/IRegistry.sol +98 -34
- package/contracts/registry/IRegistryService.sol +10 -6
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +457 -192
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +77 -67
- package/contracts/registry/RegistryServiceManager.sol +6 -25
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +264 -63
- package/contracts/shared/Component.sol +126 -183
- package/contracts/shared/ComponentService.sol +639 -93
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +18 -50
- package/contracts/shared/IComponentService.sol +111 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +5 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +194 -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 +35 -24
- package/contracts/shared/PolicyHolder.sol +19 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +36 -41
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +367 -0
- package/contracts/staking/IStakingService.sol +106 -81
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +798 -0
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +208 -56
- package/contracts/staking/StakingServiceManager.sol +14 -8
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +48 -3
- package/contracts/type/Blocknumber.sol +36 -13
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +22 -21
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +204 -59
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +122 -81
- package/contracts/type/Seconds.sol +67 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +65 -0
- package/contracts/type/Timestamp.sol +20 -9
- package/contracts/type/UFixed.sol +62 -125
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +101 -50
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +12 -8
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- 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 -581
- 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/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- 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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -679
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -238
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -846
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
- 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/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/KeyValueStore.sol +0 -169
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -212
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/RegistryAccessManager.sol +0 -132
- package/contracts/registry/ReleaseManager.sol +0 -382
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -1,13 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {ProxyManager} from "../shared/ProxyManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {InstanceService} from "./InstanceService.sol";
|
8
|
-
import {Registry} from "../registry/Registry.sol";
|
9
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
11
7
|
|
12
8
|
contract InstanceServiceManager is ProxyManager {
|
13
9
|
|
@@ -16,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
|
|
16
12
|
/// @dev initializes proxy manager with instance service implementation
|
17
13
|
constructor(
|
18
14
|
address authority,
|
19
|
-
address
|
15
|
+
address registry,
|
20
16
|
bytes32 salt
|
21
17
|
)
|
22
|
-
ProxyManager(registryAddress)
|
23
18
|
{
|
24
|
-
InstanceService
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
address(
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
29
24
|
data,
|
30
25
|
salt);
|
31
26
|
|
@@ -3,197 +3,254 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
|
-
import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
|
7
|
-
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
9
|
-
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
10
|
-
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
11
|
-
import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
12
|
-
import {StateId, ACTIVE} from "../type/StateId.sol";
|
13
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
14
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
15
|
-
import {ReferralId} from "../type/Referral.sol";
|
16
|
-
import {DistributorType} from "../type/DistributorType.sol";
|
17
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
18
|
-
|
19
|
-
import {IInstance} from "./IInstance.sol";
|
20
|
-
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
21
|
-
import {IKeyValueStore} from "./base/KeyValueStore.sol";
|
22
|
-
|
23
6
|
import {IBundle} from "./module/IBundle.sol";
|
24
7
|
import {IComponents} from "./module/IComponents.sol";
|
25
8
|
import {IDistribution} from "./module/IDistribution.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
26
10
|
import {IPolicy} from "./module/IPolicy.sol";
|
11
|
+
import {IOracle} from "../oracle/IOracle.sol";
|
27
12
|
import {IRisk} from "./module/IRisk.sol";
|
28
|
-
import {ISetup} from "./module/ISetup.sol";
|
29
|
-
|
30
13
|
|
31
|
-
|
32
|
-
|
14
|
+
import {Amount} from "../type/Amount.sol";
|
15
|
+
import {Key32} from "../type/Key32.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
18
|
+
import {ObjectType, BUNDLE, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
|
19
|
+
import {RequestId} from "../type/RequestId.sol";
|
20
|
+
import {RiskId} from "../type/RiskId.sol";
|
21
|
+
import {StateId, KEEP_STATE} from "../type/StateId.sol";
|
22
|
+
import {ReferralId} from "../type/Referral.sol";
|
23
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
24
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
25
|
+
import {BalanceStore} from "./base/BalanceStore.sol";
|
26
|
+
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
27
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
28
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
29
|
+
|
30
|
+
|
31
|
+
contract InstanceStore is
|
32
|
+
AccessManagedUpgradeable,
|
33
|
+
BalanceStore,
|
34
|
+
KeyValueStore,
|
35
|
+
ObjectCounter,
|
36
|
+
ObjectLifecycle
|
33
37
|
{
|
34
|
-
|
38
|
+
|
39
|
+
/// @dev This initializer needs to be called from the instance itself.
|
40
|
+
function initialize()
|
35
41
|
public
|
36
42
|
initializer()
|
37
43
|
{
|
44
|
+
address instance = msg.sender;
|
38
45
|
address authority = IInstance(instance).authority();
|
46
|
+
|
39
47
|
__AccessManaged_init(authority);
|
40
|
-
|
48
|
+
// double initialization, safe
|
49
|
+
_initializeLifecycle();
|
41
50
|
}
|
42
51
|
|
43
|
-
//---
|
44
|
-
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
|
45
|
-
create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
|
46
|
-
}
|
52
|
+
//--- Component ---------------------------------------------------------//
|
47
53
|
|
48
|
-
function
|
49
|
-
|
54
|
+
function createComponent(
|
55
|
+
NftId componentNftId,
|
56
|
+
IComponents.ComponentInfo memory componentInfo
|
57
|
+
)
|
58
|
+
external
|
59
|
+
restricted()
|
60
|
+
{
|
61
|
+
_registerBalanceTarget(componentNftId);
|
62
|
+
_create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
|
50
63
|
}
|
51
64
|
|
52
|
-
function
|
53
|
-
|
65
|
+
function updateComponent(
|
66
|
+
NftId componentNftId,
|
67
|
+
IComponents.ComponentInfo memory componentInfo,
|
68
|
+
StateId newState
|
69
|
+
)
|
70
|
+
external
|
71
|
+
restricted()
|
72
|
+
{
|
73
|
+
_update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
54
74
|
}
|
55
75
|
|
56
|
-
//---
|
57
|
-
|
58
|
-
|
76
|
+
//--- Product -----------------------------------------------------------//
|
77
|
+
|
78
|
+
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
79
|
+
_create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
|
59
80
|
}
|
60
81
|
|
61
|
-
function
|
62
|
-
|
82
|
+
function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
|
83
|
+
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
63
84
|
}
|
64
85
|
|
65
|
-
|
66
|
-
|
86
|
+
|
87
|
+
//--- Fee -----------------------------------------------------------//
|
88
|
+
function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
89
|
+
_create(_toNftKey32(productNftId, FEE()), abi.encode(info));
|
67
90
|
}
|
68
91
|
|
69
|
-
|
70
|
-
function
|
71
|
-
|
92
|
+
// Fee only has one state, so no change change possible
|
93
|
+
function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
94
|
+
_update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
|
72
95
|
}
|
73
96
|
|
74
|
-
|
75
|
-
|
97
|
+
//--- Pool --------------------------------------------------------------//
|
98
|
+
|
99
|
+
function createPool(
|
100
|
+
NftId poolNftId,
|
101
|
+
IComponents.PoolInfo memory info
|
102
|
+
)
|
103
|
+
external
|
104
|
+
restricted()
|
105
|
+
{
|
106
|
+
_create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
76
107
|
}
|
77
108
|
|
78
|
-
function
|
79
|
-
|
109
|
+
function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
|
110
|
+
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
80
111
|
}
|
81
112
|
|
82
|
-
//--- DistributorType
|
113
|
+
//--- DistributorType ---------------------------------------------------//
|
83
114
|
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
84
|
-
|
115
|
+
_create(distributorType.toKey32(), abi.encode(info));
|
85
116
|
}
|
86
117
|
|
87
118
|
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
88
|
-
|
119
|
+
_update(distributorType.toKey32(), abi.encode(info), newState);
|
89
120
|
}
|
90
121
|
|
91
122
|
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
92
|
-
|
123
|
+
_updateState(distributorType.toKey32(), newState);
|
93
124
|
}
|
94
125
|
|
95
126
|
//--- Distributor -------------------------------------------------------//
|
96
127
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
97
|
-
|
128
|
+
_registerBalanceTarget(distributorNftId);
|
129
|
+
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
98
130
|
}
|
99
131
|
|
100
132
|
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
101
|
-
|
133
|
+
_update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
102
134
|
}
|
103
135
|
|
104
136
|
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
105
|
-
|
137
|
+
_updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
106
138
|
}
|
107
139
|
|
108
140
|
//--- Referral ----------------------------------------------------------//
|
109
141
|
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
110
|
-
|
142
|
+
_create(referralId.toKey32(), abi.encode(referralInfo));
|
111
143
|
}
|
112
144
|
|
113
145
|
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
114
|
-
|
146
|
+
_update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
115
147
|
}
|
116
148
|
|
117
149
|
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
118
|
-
|
150
|
+
_updateState(referralId.toKey32(), newState);
|
119
151
|
}
|
120
152
|
|
121
153
|
//--- Bundle ------------------------------------------------------------//
|
122
154
|
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
123
|
-
|
155
|
+
_registerBalanceTarget(bundleNftId);
|
156
|
+
_create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
124
157
|
}
|
125
158
|
|
126
159
|
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
127
|
-
|
160
|
+
_update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
128
161
|
}
|
129
162
|
|
130
163
|
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
131
|
-
|
164
|
+
_updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
132
165
|
}
|
133
166
|
|
134
167
|
//--- Risk --------------------------------------------------------------//
|
135
168
|
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
136
|
-
|
169
|
+
_create(riskId.toKey32(), abi.encode(risk));
|
137
170
|
}
|
138
171
|
|
139
172
|
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
140
|
-
|
173
|
+
_update(riskId.toKey32(), abi.encode(risk), newState);
|
141
174
|
}
|
142
175
|
|
143
176
|
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
144
|
-
|
177
|
+
_updateState(riskId.toKey32(), newState);
|
178
|
+
}
|
179
|
+
|
180
|
+
//--- Premium (Policy) ----------------------------------------------//
|
181
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
182
|
+
_create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
|
145
183
|
}
|
146
184
|
|
147
|
-
|
148
|
-
|
149
|
-
create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
185
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
186
|
+
_updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
|
150
187
|
}
|
151
188
|
|
152
|
-
|
153
|
-
|
189
|
+
//--- Claim -------------------------------------------------------------//
|
190
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
191
|
+
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
154
192
|
}
|
155
193
|
|
156
|
-
function
|
157
|
-
|
194
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
195
|
+
_update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
158
196
|
}
|
159
197
|
|
160
|
-
|
161
|
-
|
162
|
-
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
198
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
199
|
+
_updateState(_toClaimKey32(policyNftId, claimId), newState);
|
163
200
|
}
|
164
201
|
|
165
|
-
|
166
|
-
|
202
|
+
//--- Payout ------------------------------------------------------------//
|
203
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
204
|
+
_create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
167
205
|
}
|
168
206
|
|
169
|
-
function
|
170
|
-
|
207
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
208
|
+
_update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
171
209
|
}
|
172
210
|
|
173
|
-
|
174
|
-
|
175
|
-
create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
211
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
212
|
+
_updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
176
213
|
}
|
177
214
|
|
178
|
-
|
179
|
-
|
215
|
+
//--- Request -----------------------------------------------------------//
|
216
|
+
|
217
|
+
function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
|
218
|
+
requestId = _createNextRequestId();
|
219
|
+
_create(requestId.toKey32(), abi.encode(request));
|
180
220
|
}
|
181
221
|
|
182
|
-
function
|
183
|
-
|
222
|
+
function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
|
223
|
+
_update(requestId.toKey32(), abi.encode(request), newState);
|
184
224
|
}
|
185
225
|
|
186
|
-
|
187
|
-
|
188
|
-
create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
226
|
+
function updateRequestState(RequestId requestId, StateId newState) external restricted() {
|
227
|
+
_updateState(requestId.toKey32(), newState);
|
189
228
|
}
|
190
229
|
|
191
|
-
|
192
|
-
|
230
|
+
//--- balance and fee management functions ------------------------------//
|
231
|
+
|
232
|
+
function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
233
|
+
return _increaseBalance(targetNftId, amount);
|
193
234
|
}
|
194
235
|
|
195
|
-
function
|
196
|
-
|
236
|
+
function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
237
|
+
return _decreaseBalance(targetNftId, amount);
|
238
|
+
}
|
239
|
+
|
240
|
+
function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
|
241
|
+
return _increaseFees(targetNftId, amount);
|
242
|
+
}
|
243
|
+
|
244
|
+
function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
|
245
|
+
return _decreaseFees(targetNftId, amount);
|
246
|
+
}
|
247
|
+
|
248
|
+
function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
249
|
+
return _increaseLocked(targetNftId, amount);
|
250
|
+
}
|
251
|
+
|
252
|
+
function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
253
|
+
return _decreaseLocked(targetNftId, amount);
|
197
254
|
}
|
198
255
|
|
199
256
|
//--- internal view/pure functions --------------------------------------//
|
@@ -0,0 +1,119 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {IInstance} from "./IInstance.sol";
|
7
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
8
|
+
|
9
|
+
import {BalanceStore} from "./base/BalanceStore.sol";
|
10
|
+
import {BaseStore} from "./BaseStore.sol";
|
11
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
12
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
13
|
+
import {Key32} from "../type/Key32.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
15
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
16
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
17
|
+
import {ObjectType, POLICY} from "../type/ObjectType.sol";
|
18
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
+
import {StateId} from "../type/StateId.sol";
|
20
|
+
|
21
|
+
|
22
|
+
contract ProductStore is
|
23
|
+
AccessManagedUpgradeable,
|
24
|
+
BalanceStore,
|
25
|
+
BaseStore,
|
26
|
+
ObjectCounter,
|
27
|
+
ObjectLifecycle
|
28
|
+
{
|
29
|
+
event LogProductStorePolicyInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
|
30
|
+
event LogProductStorePolicyInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
31
|
+
|
32
|
+
mapping(Key32 key32 => IPolicy.PolicyInfo) private _policies;
|
33
|
+
|
34
|
+
|
35
|
+
/// @dev This initializer needs to be called from the instance itself.
|
36
|
+
function initialize()
|
37
|
+
public
|
38
|
+
initializer()
|
39
|
+
{
|
40
|
+
address instance = msg.sender;
|
41
|
+
address authority = IInstance(instance).authority();
|
42
|
+
|
43
|
+
__AccessManaged_init(authority);
|
44
|
+
// double initialization, safe
|
45
|
+
_initializeLifecycle();
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
//--- Application (Policy) ----------------------------------------------//
|
50
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
51
|
+
_registerBalanceTarget(applicationNftId);
|
52
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
53
|
+
_createMetadata(key);
|
54
|
+
_policies[key] = policy;
|
55
|
+
// solhint-disable-next-line avoid-tx-origin
|
56
|
+
emit LogProductStorePolicyInfoCreated(applicationNftId, getState(key), msg.sender, tx.origin);
|
57
|
+
}
|
58
|
+
|
59
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
60
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
61
|
+
Blocknumber lastUpdatedIn = _updateState(key, newState);
|
62
|
+
StateId oldState = getState(key);
|
63
|
+
_policies[key] = policy;
|
64
|
+
// solhint-disable-next-line avoid-tx-origin
|
65
|
+
emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
66
|
+
}
|
67
|
+
|
68
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
69
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
70
|
+
Blocknumber lastUpdatedIn = _updateState(key, newState);
|
71
|
+
StateId oldState = getState(key);
|
72
|
+
// solhint-disable-next-line avoid-tx-origin
|
73
|
+
emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
74
|
+
}
|
75
|
+
|
76
|
+
//--- Policy ------------------------------------------------------------//
|
77
|
+
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
78
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
79
|
+
Blocknumber lastUpdatedIn = _updateState(key, newState);
|
80
|
+
StateId oldState = getState(key);
|
81
|
+
_policies[key] = policy;
|
82
|
+
// solhint-disable-next-line avoid-tx-origin
|
83
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
84
|
+
}
|
85
|
+
|
86
|
+
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
87
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
88
|
+
Blocknumber lastUpdatedIn = _updateState(key, newState);
|
89
|
+
StateId oldState = getState(key);
|
90
|
+
_policies[key] = policy;
|
91
|
+
// solhint-disable-next-line avoid-tx-origin
|
92
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
93
|
+
}
|
94
|
+
|
95
|
+
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
96
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
97
|
+
Blocknumber lastUpdatedIn = _updateState(key, newState);
|
98
|
+
StateId oldState = getState(key);
|
99
|
+
// solhint-disable-next-line avoid-tx-origin
|
100
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
101
|
+
}
|
102
|
+
|
103
|
+
function getPolicy(NftId policyNftId) external view returns (IPolicy.PolicyInfo memory policy) {
|
104
|
+
return _policies[_toNftKey32(policyNftId, POLICY())];
|
105
|
+
}
|
106
|
+
|
107
|
+
//--- internal view/pure functions --------------------------------------//
|
108
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
109
|
+
return nftId.toKey32(objectType);
|
110
|
+
}
|
111
|
+
|
112
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
113
|
+
return claimId.toKey32(policyNftId);
|
114
|
+
}
|
115
|
+
|
116
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
117
|
+
return payoutId.toKey32(policyNftId);
|
118
|
+
}
|
119
|
+
}
|
@@ -0,0 +1,126 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Key32} from "../type/Key32.sol";
|
5
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectSet} from "./base/ObjectSet.sol";
|
8
|
+
import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
|
9
|
+
import {RiskIdLib, RiskId} from "../type/RiskId.sol";
|
10
|
+
|
11
|
+
/// @dev RiskSet manages the risks and its active policies per product.
|
12
|
+
contract RiskSet is
|
13
|
+
ObjectSet
|
14
|
+
{
|
15
|
+
|
16
|
+
event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
|
17
|
+
event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
|
18
|
+
|
19
|
+
event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
|
20
|
+
event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
|
21
|
+
event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
|
22
|
+
|
23
|
+
error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
|
24
|
+
error ErrorRiskSetRiskUnknown(RiskId riskId);
|
25
|
+
error ErrorRiskSetRiskNotRegistered(RiskId riskId);
|
26
|
+
|
27
|
+
mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
|
28
|
+
|
29
|
+
/// @dev links a policy to its bundle
|
30
|
+
function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
|
31
|
+
|
32
|
+
// ensure risk is active (in active set) and registered with this instance
|
33
|
+
if (!_isActive(productNftId, riskId.toKey32())) {
|
34
|
+
revert ErrorRiskSetRiskLocked(riskId, policyNftId);
|
35
|
+
}
|
36
|
+
|
37
|
+
LibNftIdSet.add(_activePolicies[riskId], policyNftId);
|
38
|
+
emit LogRiskSetPolicyLinked(riskId, policyNftId);
|
39
|
+
}
|
40
|
+
|
41
|
+
/// @dev Unlinks a policy from its risk.
|
42
|
+
function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
|
43
|
+
|
44
|
+
// ensure risk is registered with this instance
|
45
|
+
if (!_contains(productNftId, riskId.toKey32())) {
|
46
|
+
revert ErrorRiskSetRiskUnknown(riskId);
|
47
|
+
}
|
48
|
+
|
49
|
+
LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
|
50
|
+
emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
|
51
|
+
}
|
52
|
+
|
53
|
+
/// @dev add a new risk to a product registered with this instance
|
54
|
+
// the corresponding product is fetched via instance reader
|
55
|
+
function add(RiskId riskId) external restricted() {
|
56
|
+
NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
|
57
|
+
|
58
|
+
// ensure product is registered with instance
|
59
|
+
if(productNftId.eqz()) {
|
60
|
+
revert ErrorRiskSetRiskNotRegistered(riskId);
|
61
|
+
}
|
62
|
+
|
63
|
+
_add(productNftId, riskId.toKey32());
|
64
|
+
emit LogRiskSetRiskAdded(productNftId, riskId);
|
65
|
+
}
|
66
|
+
|
67
|
+
/// @dev Applications linked to active risks may be underwritten
|
68
|
+
function activate(RiskId riskId) external restricted() {
|
69
|
+
NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
|
70
|
+
_activate(productNftId, riskId.toKey32());
|
71
|
+
emit LogRiskSetRiskActive(productNftId, riskId);
|
72
|
+
}
|
73
|
+
|
74
|
+
/// @dev Applications linked to paused/archived risks may not be underwritten
|
75
|
+
function deactivate(RiskId riskId) external restricted() {
|
76
|
+
NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
|
77
|
+
_deactivate(productNftId, riskId.toKey32());
|
78
|
+
emit LogRiskSetRiskPaused(productNftId, riskId);
|
79
|
+
}
|
80
|
+
|
81
|
+
function checkRisk(NftId productNftId, RiskId riskId)
|
82
|
+
public
|
83
|
+
view
|
84
|
+
returns (bool exists, bool active)
|
85
|
+
{
|
86
|
+
Key32 riskKey32 = riskId.toKey32();
|
87
|
+
exists = _contains(productNftId, riskKey32);
|
88
|
+
|
89
|
+
if (exists) {
|
90
|
+
active = _isActive(productNftId, riskKey32);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
function hasRisk(NftId productNftId, RiskId riskId)
|
95
|
+
public
|
96
|
+
view
|
97
|
+
returns (bool)
|
98
|
+
{
|
99
|
+
Key32 riskKey32 = riskId.toKey32();
|
100
|
+
return _contains(productNftId, riskKey32);
|
101
|
+
}
|
102
|
+
|
103
|
+
function risks(NftId productNftId) external view returns(uint256) {
|
104
|
+
return _objects(productNftId);
|
105
|
+
}
|
106
|
+
|
107
|
+
function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
|
108
|
+
return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
|
109
|
+
}
|
110
|
+
|
111
|
+
function activeRisks(NftId productNftId) external view returns(uint256) {
|
112
|
+
return _activeObjs(productNftId);
|
113
|
+
}
|
114
|
+
|
115
|
+
function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
|
116
|
+
return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
|
117
|
+
}
|
118
|
+
|
119
|
+
function linkedPolicies(RiskId riskId) external view returns(uint256) {
|
120
|
+
return LibNftIdSet.size(_activePolicies[riskId]);
|
121
|
+
}
|
122
|
+
|
123
|
+
function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
|
124
|
+
return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
|
125
|
+
}
|
126
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
string constant INSTANCE_TARGET_NAME = "Instance";
|
5
|
+
string constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
6
|
+
string constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
7
|
+
string constant PRODUCT_STORE_TARGET_NAME = "ProductStore";
|
8
|
+
string constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
9
|
+
string constant RISK_SET_TARGET_NAME = "RiskSet";
|
10
|
+
|