@etherisc/gif-next 0.0.2-f398177-971 → 0.0.2-f3b4c66-505
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 +77 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -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 +1130 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -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/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 +1322 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +334 -318
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +341 -110
- 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 +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1523 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +201 -101
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +234 -91
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +227 -220
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1411 -517
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +288 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +178 -90
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1509 -559
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +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 +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -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 +774 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +243 -241
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +295 -450
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +216 -71
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +336 -290
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +511 -358
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +350 -418
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +422 -459
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +203 -215
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +338 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +196 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +951 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -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 +483 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +291 -106
- 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 +982 -137
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +362 -243
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -86
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -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 +1333 -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 +317 -141
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +277 -201
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +123 -131
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -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 +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +130 -134
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
- 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 +23 -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 +154 -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 +74 -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 +797 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -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 +28 -57
- 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 +129 -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 +67 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +617 -8
- 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/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +682 -611
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -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 +1849 -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 +788 -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 +1301 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -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/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 +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -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 +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -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 +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 +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/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
- 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 +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -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/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +689 -0
- package/contracts/authorization/AccessManagerCloneable.sol +149 -0
- package/contracts/authorization/Authorization.sol +337 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +143 -0
- package/contracts/authorization/IAuthorization.sol +74 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/{components → distribution}/Distribution.sol +171 -167
- package/contracts/distribution/DistributionService.sol +385 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +103 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +437 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +43 -50
- package/contracts/instance/IInstanceService.sol +37 -38
- package/contracts/instance/Instance.sol +147 -129
- package/contracts/instance/InstanceAdmin.sol +437 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceReader.sol +359 -77
- package/contracts/instance/InstanceService.sol +263 -167
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +157 -71
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +28 -18
- package/contracts/instance/module/IDistribution.sol +10 -8
- package/contracts/instance/module/IPolicy.sol +41 -33
- package/contracts/instance/module/IRisk.sol +4 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -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 +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +42 -45
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +345 -0
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +757 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +274 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +632 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +18 -11
- package/contracts/{instance/service → product}/IClaimService.sol +64 -19
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +682 -0
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +309 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +469 -0
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -40
- package/contracts/registry/IRegistry.sol +95 -30
- package/contracts/registry/IRegistryService.sol +34 -38
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +460 -197
- package/contracts/registry/RegistryAdmin.sol +354 -0
- package/contracts/registry/RegistryService.sol +89 -134
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +227 -0
- package/contracts/shared/ComponentService.sol +692 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +61 -0
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +4 -2
- package/contracts/shared/IPolicyHolder.sol +16 -21
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +12 -7
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +197 -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 +34 -25
- package/contracts/shared/PolicyHolder.sol +20 -52
- package/contracts/shared/Registerable.sol +58 -24
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +33 -40
- package/contracts/shared/TokenHandler.sol +319 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +165 -0
- package/contracts/staking/IStakingService.sol +165 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +526 -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 +430 -0
- package/contracts/staking/StakingServiceManager.sol +45 -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/{types → type}/Amount.sol +44 -3
- package/contracts/{types → type}/Blocknumber.sol +26 -3
- package/contracts/{types → type}/ClaimId.sol +6 -1
- package/contracts/{types → type}/Fee.sol +17 -16
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +21 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +303 -0
- package/contracts/{types → type}/PayoutId.sol +10 -10
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +16 -7
- package/contracts/{types → type}/UFixed.sol +40 -121
- package/contracts/{types → type}/Version.sol +19 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
- package/package.json +12 -8
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -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/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/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/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -918
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -648
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1288
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1556
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.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 -1281
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -1004
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -688
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- 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 -559
- 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/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 -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 -569
- 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/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 -370
- 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 -588
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
- 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 -312
- 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 -166
- 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/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/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/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/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/Component.sol +0 -272
- package/contracts/components/IComponent.sol +0 -90
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -114
- package/contracts/components/IProductComponent.sol +0 -41
- package/contracts/components/Pool.sol +0 -302
- package/contracts/components/Product.sol +0 -375
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/ObjectManager.sol +0 -82
- package/contracts/instance/base/ComponentService.sol +0 -148
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/base/Lifecycle.sol +0 -120
- 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/instance/service/ApplicationService.sol +0 -186
- package/contracts/instance/service/BundleService.sol +0 -382
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -437
- package/contracts/instance/service/DistributionService.sol +0 -348
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IDistributionService.sol +0 -87
- package/contracts/instance/service/IPolicyService.sol +0 -80
- package/contracts/instance/service/IPoolService.sol +0 -114
- package/contracts/instance/service/IPricingService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -376
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -403
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/PricingService.sol +0 -275
- package/contracts/instance/service/PricingServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/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 -161
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -97
- package/contracts/types/Seconds.sol +0 -54
- /package/contracts/{types → type}/DistributorType.sol +0 -0
| @@ -3,198 +3,284 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
         | 
| 5 5 |  | 
| 6 | 
            -
            import { | 
| 7 | 
            -
            import { | 
| 8 | 
            -
            import { | 
| 9 | 
            -
            import { | 
| 10 | 
            -
            import {ObjectType, BUNDLE,  | 
| 11 | 
            -
            import { | 
| 12 | 
            -
            import { | 
| 13 | 
            -
            import {StateId,  | 
| 14 | 
            -
            import { | 
| 15 | 
            -
            import { | 
| 16 | 
            -
            import { | 
| 17 | 
            -
             | 
| 18 | 
            -
            import { | 
| 19 | 
            -
             | 
| 6 | 
            +
            import {Amount} from "../type/Amount.sol";
         | 
| 7 | 
            +
            import {Key32} from "../type/Key32.sol";
         | 
| 8 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 9 | 
            +
            import {ClaimId} from "../type/ClaimId.sol";
         | 
| 10 | 
            +
            import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
         | 
| 11 | 
            +
            import {RequestId} from "../type/RequestId.sol";
         | 
| 12 | 
            +
            import {RiskId} from "../type/RiskId.sol";
         | 
| 13 | 
            +
            import {StateId, KEEP_STATE} from "../type/StateId.sol";
         | 
| 14 | 
            +
            import {ReferralId} from "../type/Referral.sol";
         | 
| 15 | 
            +
            import {DistributorType} from "../type/DistributorType.sol";
         | 
| 16 | 
            +
            import {PayoutId} from "../type/PayoutId.sol";
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            import {BalanceStore} from "./base/BalanceStore.sol";
         | 
| 20 19 | 
             
            import {IInstance} from "./IInstance.sol";
         | 
| 21 | 
            -
            import {KeyValueStore} from " | 
| 22 | 
            -
            import { | 
| 20 | 
            +
            import {KeyValueStore} from "../shared/KeyValueStore.sol";
         | 
| 21 | 
            +
            import {ObjectCounter} from "./base/ObjectCounter.sol";
         | 
| 23 22 |  | 
| 24 23 | 
             
            import {IBundle} from "./module/IBundle.sol";
         | 
| 25 24 | 
             
            import {IComponents} from "./module/IComponents.sol";
         | 
| 26 25 | 
             
            import {IDistribution} from "./module/IDistribution.sol";
         | 
| 27 26 | 
             
            import {IPolicy} from "./module/IPolicy.sol";
         | 
| 27 | 
            +
            import {IOracle} from "../oracle/IOracle.sol";
         | 
| 28 28 | 
             
            import {IRisk} from "./module/IRisk.sol";
         | 
| 29 | 
            -
             | 
| 29 | 
            +
             | 
| 30 | 
            +
            import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
         | 
| 30 31 |  | 
| 31 32 |  | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 33 | 
            +
            contract InstanceStore is
         | 
| 34 | 
            +
                AccessManagedUpgradeable, 
         | 
| 35 | 
            +
                BalanceStore,
         | 
| 36 | 
            +
                KeyValueStore,
         | 
| 37 | 
            +
                ObjectCounter,
         | 
| 38 | 
            +
                ObjectLifecycle
         | 
| 34 39 | 
             
            {
         | 
| 35 | 
            -
             | 
| 40 | 
            +
             | 
| 41 | 
            +
                /// @dev This initializer needs to be called from the instance itself.
         | 
| 42 | 
            +
                function initialize()
         | 
| 36 43 | 
             
                    public 
         | 
| 37 44 | 
             
                    initializer()
         | 
| 38 45 | 
             
                {
         | 
| 46 | 
            +
                    address instance = msg.sender;
         | 
| 39 47 | 
             
                    address authority = IInstance(instance).authority();
         | 
| 48 | 
            +
             | 
| 40 49 | 
             
                    __AccessManaged_init(authority);
         | 
| 41 | 
            -
                     | 
| 50 | 
            +
                    // double initialization, safe
         | 
| 51 | 
            +
                    _initializeLifecycle();
         | 
| 42 52 | 
             
                }
         | 
| 43 53 |  | 
| 44 | 
            -
                //---  | 
| 45 | 
            -
                function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
         | 
| 46 | 
            -
                    create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
         | 
| 47 | 
            -
                }
         | 
| 54 | 
            +
                //--- Component ---------------------------------------------------------//
         | 
| 48 55 |  | 
| 49 | 
            -
                function  | 
| 50 | 
            -
                     | 
| 56 | 
            +
                function createComponent(
         | 
| 57 | 
            +
                    NftId componentNftId, 
         | 
| 58 | 
            +
                    IComponents.ComponentInfo memory componentInfo
         | 
| 59 | 
            +
                )
         | 
| 60 | 
            +
                    external 
         | 
| 61 | 
            +
                    restricted()
         | 
| 62 | 
            +
                {
         | 
| 63 | 
            +
                    _registerBalanceTarget(componentNftId);
         | 
| 64 | 
            +
                    _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
         | 
| 51 65 | 
             
                }
         | 
| 52 66 |  | 
| 53 | 
            -
                function  | 
| 54 | 
            -
                     | 
| 67 | 
            +
                function updateComponent(
         | 
| 68 | 
            +
                    NftId componentNftId, 
         | 
| 69 | 
            +
                    IComponents.ComponentInfo memory componentInfo,
         | 
| 70 | 
            +
                    StateId newState
         | 
| 71 | 
            +
                )
         | 
| 72 | 
            +
                    external 
         | 
| 73 | 
            +
                    restricted()
         | 
| 74 | 
            +
                {
         | 
| 75 | 
            +
                    _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
         | 
| 55 76 | 
             
                }
         | 
| 56 77 |  | 
| 57 | 
            -
                //---  | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 78 | 
            +
                //--- Product -----------------------------------------------------------//
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
         | 
| 81 | 
            +
                    _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
         | 
| 60 82 | 
             
                }
         | 
| 61 83 |  | 
| 62 | 
            -
                function  | 
| 63 | 
            -
                     | 
| 84 | 
            +
                function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
         | 
| 85 | 
            +
                    _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
         | 
| 64 86 | 
             
                }
         | 
| 65 87 |  | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 88 | 
            +
             | 
| 89 | 
            +
                //--- Fee -----------------------------------------------------------//
         | 
| 90 | 
            +
                function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
         | 
| 91 | 
            +
                    _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
         | 
| 68 92 | 
             
                }
         | 
| 69 93 |  | 
| 70 | 
            -
                 | 
| 71 | 
            -
                function  | 
| 72 | 
            -
                     | 
| 94 | 
            +
                // Fee only has one state, so no change change possible
         | 
| 95 | 
            +
                function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
         | 
| 96 | 
            +
                    _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
         | 
| 73 97 | 
             
                }
         | 
| 74 98 |  | 
| 75 | 
            -
                 | 
| 76 | 
            -
             | 
| 99 | 
            +
                //--- Pool --------------------------------------------------------------//
         | 
| 100 | 
            +
             | 
| 101 | 
            +
                function createPool(
         | 
| 102 | 
            +
                    NftId poolNftId, 
         | 
| 103 | 
            +
                    IComponents.PoolInfo memory info
         | 
| 104 | 
            +
                )
         | 
| 105 | 
            +
                    external 
         | 
| 106 | 
            +
                    restricted()
         | 
| 107 | 
            +
                {
         | 
| 108 | 
            +
                    _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
         | 
| 77 109 | 
             
                }
         | 
| 78 110 |  | 
| 79 | 
            -
                function  | 
| 80 | 
            -
                     | 
| 111 | 
            +
                function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
         | 
| 112 | 
            +
                    _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
         | 
| 81 113 | 
             
                }
         | 
| 82 114 |  | 
| 83 | 
            -
                //--- DistributorType  | 
| 115 | 
            +
                //--- DistributorType ---------------------------------------------------//
         | 
| 84 116 | 
             
                function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
         | 
| 85 | 
            -
                     | 
| 117 | 
            +
                    _create(distributorType.toKey32(), abi.encode(info));
         | 
| 86 118 | 
             
                }
         | 
| 87 119 |  | 
| 88 120 | 
             
                function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
         | 
| 89 | 
            -
                     | 
| 121 | 
            +
                    _update(distributorType.toKey32(), abi.encode(info), newState);
         | 
| 90 122 | 
             
                }
         | 
| 91 123 |  | 
| 92 124 | 
             
                function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
         | 
| 93 | 
            -
                     | 
| 125 | 
            +
                    _updateState(distributorType.toKey32(), newState);
         | 
| 94 126 | 
             
                }
         | 
| 95 127 |  | 
| 96 128 | 
             
                //--- Distributor -------------------------------------------------------//
         | 
| 97 129 | 
             
                function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
         | 
| 98 | 
            -
                     | 
| 130 | 
            +
                    _registerBalanceTarget(distributorNftId);
         | 
| 131 | 
            +
                    _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
         | 
| 99 132 | 
             
                }
         | 
| 100 133 |  | 
| 101 134 | 
             
                function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
         | 
| 102 | 
            -
                     | 
| 135 | 
            +
                    _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
         | 
| 103 136 | 
             
                }
         | 
| 104 137 |  | 
| 105 138 | 
             
                function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
         | 
| 106 | 
            -
                     | 
| 139 | 
            +
                    _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
         | 
| 107 140 | 
             
                }
         | 
| 108 141 |  | 
| 109 142 | 
             
                //--- Referral ----------------------------------------------------------//
         | 
| 110 143 | 
             
                function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
         | 
| 111 | 
            -
                     | 
| 144 | 
            +
                    _create(referralId.toKey32(), abi.encode(referralInfo));
         | 
| 112 145 | 
             
                }
         | 
| 113 146 |  | 
| 114 147 | 
             
                function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
         | 
| 115 | 
            -
                     | 
| 148 | 
            +
                    _update(referralId.toKey32(), abi.encode(referralInfo), newState);
         | 
| 116 149 | 
             
                }
         | 
| 117 150 |  | 
| 118 151 | 
             
                function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
         | 
| 119 | 
            -
                     | 
| 152 | 
            +
                    _updateState(referralId.toKey32(), newState);
         | 
| 120 153 | 
             
                }
         | 
| 121 154 |  | 
| 122 155 | 
             
                //--- Bundle ------------------------------------------------------------//
         | 
| 123 156 | 
             
                function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
         | 
| 124 | 
            -
                     | 
| 157 | 
            +
                    _registerBalanceTarget(bundleNftId);
         | 
| 158 | 
            +
                    _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
         | 
| 125 159 | 
             
                }
         | 
| 126 160 |  | 
| 127 161 | 
             
                function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
         | 
| 128 | 
            -
                     | 
| 162 | 
            +
                    _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
         | 
| 129 163 | 
             
                }
         | 
| 130 164 |  | 
| 131 165 | 
             
                function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
         | 
| 132 | 
            -
                     | 
| 166 | 
            +
                    _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
         | 
| 133 167 | 
             
                }
         | 
| 134 168 |  | 
| 135 169 | 
             
                //--- Risk --------------------------------------------------------------//
         | 
| 136 170 | 
             
                function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
         | 
| 137 | 
            -
                     | 
| 171 | 
            +
                    _create(riskId.toKey32(), abi.encode(risk));
         | 
| 138 172 | 
             
                }
         | 
| 139 173 |  | 
| 140 174 | 
             
                function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
         | 
| 141 | 
            -
                     | 
| 175 | 
            +
                    _update(riskId.toKey32(), abi.encode(risk), newState);
         | 
| 142 176 | 
             
                }
         | 
| 143 177 |  | 
| 144 178 | 
             
                function updateRiskState(RiskId riskId, StateId newState) external restricted() {
         | 
| 145 | 
            -
                     | 
| 179 | 
            +
                    _updateState(riskId.toKey32(), newState);
         | 
| 146 180 | 
             
                }
         | 
| 147 181 |  | 
| 148 182 | 
             
                //--- Application (Policy) ----------------------------------------------//
         | 
| 149 183 | 
             
                function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
         | 
| 150 | 
            -
                     | 
| 184 | 
            +
                    _registerBalanceTarget(applicationNftId);
         | 
| 185 | 
            +
                    _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
         | 
| 151 186 | 
             
                }
         | 
| 152 187 |  | 
| 153 188 | 
             
                function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 154 | 
            -
                     | 
| 189 | 
            +
                    _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
         | 
| 155 190 | 
             
                }
         | 
| 156 191 |  | 
| 157 192 | 
             
                function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
         | 
| 158 | 
            -
                     | 
| 193 | 
            +
                    _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
         | 
| 159 194 | 
             
                }
         | 
| 160 195 |  | 
| 161 196 | 
             
                //--- Policy ------------------------------------------------------------//
         | 
| 162 197 | 
             
                function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 163 | 
            -
                     | 
| 198 | 
            +
                    _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
         | 
| 164 199 | 
             
                }
         | 
| 165 200 |  | 
| 166 201 | 
             
                function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
         | 
| 167 | 
            -
                     | 
| 202 | 
            +
                    _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
         | 
| 168 203 | 
             
                }
         | 
| 169 204 |  | 
| 170 205 | 
             
                function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
         | 
| 171 | 
            -
                     | 
| 206 | 
            +
                    _updateState(_toNftKey32(policyNftId, POLICY()), newState);
         | 
| 207 | 
            +
                }
         | 
| 208 | 
            +
             | 
| 209 | 
            +
                
         | 
| 210 | 
            +
                //--- Premium (Policy) ----------------------------------------------//
         | 
| 211 | 
            +
                function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
         | 
| 212 | 
            +
                    _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
         | 
| 213 | 
            +
                }
         | 
| 214 | 
            +
             | 
| 215 | 
            +
                function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
         | 
| 216 | 
            +
                    _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
         | 
| 172 217 | 
             
                }
         | 
| 173 218 |  | 
| 174 219 | 
             
                //--- Claim -------------------------------------------------------------//
         | 
| 175 220 | 
             
                function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
         | 
| 176 | 
            -
                     | 
| 221 | 
            +
                    _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
         | 
| 177 222 | 
             
                }
         | 
| 178 223 |  | 
| 179 224 | 
             
                function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
         | 
| 180 | 
            -
                     | 
| 225 | 
            +
                    _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
         | 
| 181 226 | 
             
                }
         | 
| 182 227 |  | 
| 183 228 | 
             
                function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
         | 
| 184 | 
            -
                     | 
| 229 | 
            +
                    _updateState(_toClaimKey32(policyNftId, claimId), newState);
         | 
| 185 230 | 
             
                }
         | 
| 186 231 |  | 
| 187 232 | 
             
                //--- Payout ------------------------------------------------------------//
         | 
| 188 233 | 
             
                function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
         | 
| 189 | 
            -
                     | 
| 234 | 
            +
                    _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
         | 
| 190 235 | 
             
                }
         | 
| 191 236 |  | 
| 192 237 | 
             
                function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
         | 
| 193 | 
            -
                     | 
| 238 | 
            +
                    _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
         | 
| 194 239 | 
             
                }
         | 
| 195 240 |  | 
| 196 241 | 
             
                function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
         | 
| 197 | 
            -
                     | 
| 242 | 
            +
                    _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
         | 
| 243 | 
            +
                }
         | 
| 244 | 
            +
             | 
| 245 | 
            +
                //--- Request -----------------------------------------------------------//
         | 
| 246 | 
            +
             | 
| 247 | 
            +
                function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
         | 
| 248 | 
            +
                    requestId = _createNextRequestId();
         | 
| 249 | 
            +
                    _create(requestId.toKey32(), abi.encode(request));
         | 
| 250 | 
            +
                }
         | 
| 251 | 
            +
             | 
| 252 | 
            +
                function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
         | 
| 253 | 
            +
                    _update(requestId.toKey32(), abi.encode(request), newState);
         | 
| 254 | 
            +
                }
         | 
| 255 | 
            +
             | 
| 256 | 
            +
                function updateRequestState(RequestId requestId, StateId newState) external restricted() {
         | 
| 257 | 
            +
                    _updateState(requestId.toKey32(), newState);
         | 
| 258 | 
            +
                }
         | 
| 259 | 
            +
             | 
| 260 | 
            +
                //--- balance and fee management functions ------------------------------//
         | 
| 261 | 
            +
             | 
| 262 | 
            +
                function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
         | 
| 263 | 
            +
                    return _increaseBalance(targetNftId, amount);
         | 
| 264 | 
            +
                }
         | 
| 265 | 
            +
             | 
| 266 | 
            +
                function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
         | 
| 267 | 
            +
                    return _decreaseBalance(targetNftId, amount);
         | 
| 268 | 
            +
                }
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
         | 
| 271 | 
            +
                    return _increaseFees(targetNftId, amount);
         | 
| 272 | 
            +
                }
         | 
| 273 | 
            +
             | 
| 274 | 
            +
                function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
         | 
| 275 | 
            +
                    return _decreaseFees(targetNftId, amount);
         | 
| 276 | 
            +
                }
         | 
| 277 | 
            +
             | 
| 278 | 
            +
                function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
         | 
| 279 | 
            +
                    return _increaseLocked(targetNftId, amount);
         | 
| 280 | 
            +
                }
         | 
| 281 | 
            +
             | 
| 282 | 
            +
                function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
         | 
| 283 | 
            +
                    return _decreaseLocked(targetNftId, amount);
         | 
| 198 284 | 
             
                }
         | 
| 199 285 |  | 
| 200 286 | 
             
                //--- internal view/pure functions --------------------------------------//
         | 
| @@ -0,0 +1,118 @@ | |
| 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 | 
            +
                event LogRiskSetRiskArchived(NftId poolNftId,  RiskId riskId);
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId); 
         | 
| 25 | 
            +
                error ErrorRiskSetRiskUnknown(RiskId riskId);
         | 
| 26 | 
            +
                error ErrorRiskSetRiskNotRegistered(RiskId riskId);
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                /// @dev links a policy to its bundle
         | 
| 31 | 
            +
                function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    // ensure risk is active (in active set) and registered with this instance
         | 
| 34 | 
            +
                    if (!_isActive(productNftId, riskId.toKey32())) {
         | 
| 35 | 
            +
                        revert ErrorRiskSetRiskLocked(riskId, policyNftId);
         | 
| 36 | 
            +
                    }
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    LibNftIdSet.add(_activePolicies[riskId], policyNftId);
         | 
| 39 | 
            +
                    emit LogRiskSetPolicyLinked(riskId, policyNftId);
         | 
| 40 | 
            +
                }
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                /// @dev Unlinks a policy from its risk.
         | 
| 43 | 
            +
                function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    // ensure risk is registered with this instance
         | 
| 46 | 
            +
                    if (!_contains(productNftId, riskId.toKey32())) {
         | 
| 47 | 
            +
                        revert ErrorRiskSetRiskUnknown(riskId);
         | 
| 48 | 
            +
                    }
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                    LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
         | 
| 51 | 
            +
                    emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
         | 
| 52 | 
            +
                }
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                /// @dev add a new risk to a product registered with this instance
         | 
| 55 | 
            +
                // the corresponding product is fetched via instance reader
         | 
| 56 | 
            +
                function add(RiskId riskId) external restricted() {
         | 
| 57 | 
            +
                    NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    // ensure product is registered with instance
         | 
| 60 | 
            +
                    if(productNftId.eqz()) {
         | 
| 61 | 
            +
                        revert ErrorRiskSetRiskNotRegistered(riskId);
         | 
| 62 | 
            +
                    }
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                    _add(productNftId, riskId.toKey32());
         | 
| 65 | 
            +
                    emit LogRiskSetRiskAdded(productNftId, riskId);
         | 
| 66 | 
            +
                }
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                /// @dev Applications linked to active risks may be underwritten
         | 
| 69 | 
            +
                function activate(RiskId riskId) external restricted() {
         | 
| 70 | 
            +
                    NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
         | 
| 71 | 
            +
                    _activate(productNftId, riskId.toKey32());
         | 
| 72 | 
            +
                    emit LogRiskSetRiskActive(productNftId, riskId);
         | 
| 73 | 
            +
                }
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                /// @dev Applications linked to paused/archived risks may not be underwritten
         | 
| 76 | 
            +
                function pause(RiskId riskId) external restricted() {
         | 
| 77 | 
            +
                    NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
         | 
| 78 | 
            +
                    _deactivate(productNftId, riskId.toKey32());
         | 
| 79 | 
            +
                    emit LogRiskSetRiskPaused(productNftId, riskId);
         | 
| 80 | 
            +
                }
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                function checkRisk(NftId productNftId, RiskId riskId)
         | 
| 83 | 
            +
                    public
         | 
| 84 | 
            +
                    view 
         | 
| 85 | 
            +
                    returns (bool exists, bool active)
         | 
| 86 | 
            +
                {
         | 
| 87 | 
            +
                    Key32 riskKey32 = riskId.toKey32();
         | 
| 88 | 
            +
                    exists = _contains(productNftId, riskKey32);
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                    if (exists) {
         | 
| 91 | 
            +
                        active = _isActive(productNftId, riskKey32);
         | 
| 92 | 
            +
                    }
         | 
| 93 | 
            +
                }
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                function risks(NftId productNftId) external view returns(uint256) {
         | 
| 96 | 
            +
                    return _objects(productNftId);
         | 
| 97 | 
            +
                }
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
         | 
| 100 | 
            +
                    return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
         | 
| 101 | 
            +
                }
         | 
| 102 | 
            +
                
         | 
| 103 | 
            +
                function activeRisks(NftId productNftId) external view returns(uint256) {
         | 
| 104 | 
            +
                    return _activeObjs(productNftId);
         | 
| 105 | 
            +
                }
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
         | 
| 108 | 
            +
                    return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
         | 
| 109 | 
            +
                }
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                function linkedPolicies(RiskId riskId) external view returns(uint256) {
         | 
| 112 | 
            +
                    return LibNftIdSet.size(_activePolicies[riskId]);
         | 
| 113 | 
            +
                }
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
         | 
| 116 | 
            +
                    return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
         | 
| 117 | 
            +
                }
         | 
| 118 | 
            +
            }
         | 
| @@ -0,0 +1,123 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
         | 
| 5 | 
            +
            import {NftId} from "../../type/NftId.sol";
         | 
| 6 | 
            +
            import {Amount} from "../../type/Amount.sol";
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            contract BalanceStore {
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
         | 
| 11 | 
            +
                error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                event LogBalanceStoreTargetRegistered(NftId targetNftId);
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
         | 
| 16 | 
            +
                event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
         | 
| 19 | 
            +
                event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
         | 
| 22 | 
            +
                event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                mapping(NftId nftId => Amount balance) private _balanceAmount;
         | 
| 25 | 
            +
                mapping(NftId nftId => Amount locked) private _lockedAmount;
         | 
| 26 | 
            +
                mapping(NftId nftId => Amount fees) private _feeAmount;
         | 
| 27 | 
            +
                mapping(NftId nftId => bool isRegistered) private _isRegistered;
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                // TODO check if this is made redundant by *Info struct updates
         | 
| 30 | 
            +
                mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                modifier onlyRegisteredTarget(NftId targetNftId) {
         | 
| 33 | 
            +
                    if (!_isRegistered[targetNftId]) {
         | 
| 34 | 
            +
                        revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
         | 
| 35 | 
            +
                    }
         | 
| 36 | 
            +
                    _;
         | 
| 37 | 
            +
                }
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                function getBalanceAmount(NftId targetNftId) external view returns (Amount balanceAmount) { return _balanceAmount[targetNftId]; }
         | 
| 40 | 
            +
                function getLockedAmount(NftId targetNftId) external view returns (Amount lockedAmount) { return _lockedAmount[targetNftId]; }
         | 
| 41 | 
            +
                function getFeeAmount(NftId targetNftId) external view returns (Amount feeAmount) { return _feeAmount[targetNftId]; }
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                function getAmounts(NftId targetNftId)
         | 
| 44 | 
            +
                    external
         | 
| 45 | 
            +
                    view
         | 
| 46 | 
            +
                    returns (
         | 
| 47 | 
            +
                        Amount balanceAmount,
         | 
| 48 | 
            +
                        Amount lockedAmount,
         | 
| 49 | 
            +
                        Amount feeAmount
         | 
| 50 | 
            +
                    )
         | 
| 51 | 
            +
                {
         | 
| 52 | 
            +
                    balanceAmount = _balanceAmount[targetNftId];
         | 
| 53 | 
            +
                    lockedAmount = _lockedAmount[targetNftId];
         | 
| 54 | 
            +
                    feeAmount = _feeAmount[targetNftId];
         | 
| 55 | 
            +
                }
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                function _registerBalanceTarget(NftId targetNftId) internal {
         | 
| 58 | 
            +
                    if (_isRegistered[targetNftId]) {
         | 
| 59 | 
            +
                        revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
         | 
| 60 | 
            +
                    }
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                    _isRegistered[targetNftId] = true;
         | 
| 63 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                    emit LogBalanceStoreTargetRegistered(targetNftId);
         | 
| 66 | 
            +
                }
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                //--- fee management ----------------------------------------------------//
         | 
| 69 | 
            +
                function _increaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
         | 
| 70 | 
            +
                    newBalance = _feeAmount[targetNftId] + amount;
         | 
| 71 | 
            +
                    _feeAmount[targetNftId] = newBalance;
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                    emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
         | 
| 74 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 75 | 
            +
                }
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
         | 
| 78 | 
            +
                    newBalance = _feeAmount[targetNftId] - amount;
         | 
| 79 | 
            +
                    _feeAmount[targetNftId] = newBalance;
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                    emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
         | 
| 82 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 83 | 
            +
                }
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                //--- locked management -------------------------------------------------//
         | 
| 86 | 
            +
                function _increaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
         | 
| 87 | 
            +
                    newBalance = _lockedAmount[targetNftId] + amount;
         | 
| 88 | 
            +
                    _lockedAmount[targetNftId] = newBalance;
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                    emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
         | 
| 91 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 92 | 
            +
                }
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
         | 
| 95 | 
            +
                    newBalance = _lockedAmount[targetNftId] - amount;
         | 
| 96 | 
            +
                    _lockedAmount[targetNftId] = newBalance;
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                    emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
         | 
| 99 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 100 | 
            +
                }
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                //--- balance management ------------------------------------------------//
         | 
| 103 | 
            +
                function _increaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
         | 
| 104 | 
            +
                    newBalance = _balanceAmount[targetNftId] + amount;
         | 
| 105 | 
            +
                    _balanceAmount[targetNftId] = newBalance;
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                    emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
         | 
| 108 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 109 | 
            +
                }
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
         | 
| 112 | 
            +
                    newBalance = _balanceAmount[targetNftId] - amount;
         | 
| 113 | 
            +
                    _balanceAmount[targetNftId] = newBalance;
         | 
| 114 | 
            +
             | 
| 115 | 
            +
                    emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
         | 
| 116 | 
            +
                    _setLastUpdatedIn(targetNftId);
         | 
| 117 | 
            +
                }
         | 
| 118 | 
            +
             | 
| 119 | 
            +
                //--- internal/private functions ----------------------------------------//
         | 
| 120 | 
            +
                function _setLastUpdatedIn(NftId targetNftId) internal {
         | 
| 121 | 
            +
                    _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
         | 
| 122 | 
            +
                }
         | 
| 123 | 
            +
            }
         | 
| @@ -0,0 +1,28 @@ | |
| 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 {IRegistry} from "../../registry/IRegistry.sol";
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            abstract contract Cloneable is 
         | 
| 9 | 
            +
                AccessManagedUpgradeable
         | 
| 10 | 
            +
            {
         | 
| 11 | 
            +
                IRegistry internal _registry;
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
         | 
| 14 | 
            +
                function __Cloneable_init(
         | 
| 15 | 
            +
                    address authority,
         | 
| 16 | 
            +
                    address registry
         | 
| 17 | 
            +
                )
         | 
| 18 | 
            +
                    internal 
         | 
| 19 | 
            +
                    onlyInitializing
         | 
| 20 | 
            +
                {
         | 
| 21 | 
            +
                    __AccessManaged_init(authority);
         | 
| 22 | 
            +
                    _registry = IRegistry(registry);
         | 
| 23 | 
            +
                }
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                function getRegistry() external view returns (IRegistry) {
         | 
| 26 | 
            +
                    return _registry;
         | 
| 27 | 
            +
                }
         | 
| 28 | 
            +
            }
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
         | 
| 5 | 
            +
            import {NftId} from "../../type/NftId.sol";
         | 
| 6 | 
            +
            import {Amount} from "../../type/Amount.sol";
         | 
| 7 | 
            +
            import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            contract ObjectCounter {
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                // TODO refactor risk id
         | 
| 12 | 
            +
                // mapping(NftId productNftId => uint64 risks) private _riskCounter;
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                uint256 private _requestCounter = 0;
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                function _createNextRequestId() internal returns (RequestId requestId) {
         | 
| 17 | 
            +
                    _requestCounter++;
         | 
| 18 | 
            +
                    requestId = RequestIdLib.toRequestId(_requestCounter);
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
            }
         |