@etherisc/gif-next 0.0.2-c37bcc5-708 → 0.0.2-c38863c-705
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 +75 -9
- 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/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +533 -596
- 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 +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +419 -259
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -108
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +256 -62
- 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 +1479 -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 +188 -107
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +226 -117
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +208 -236
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1462 -241
- 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 +1044 -316
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -275
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +105 -95
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +614 -538
- 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 +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +177 -177
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
- 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 +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +350 -194
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +148 -94
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -28
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +476 -311
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
- 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 +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +660 -518
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -93
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +151 -172
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -90
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
- 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 +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +438 -220
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +148 -110
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +148 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +79 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +480 -293
- 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 +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +148 -94
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +239 -292
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +258 -536
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -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 +359 -55
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
- 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 +589 -116
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1677 -156
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +132 -278
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +101 -75
- 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 +5 -5
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +583 -502
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +138 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
- 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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +554 -218
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +67 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- 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 +63 -104
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +125 -22
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +202 -398
- 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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -109
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +161 -184
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -90
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
- 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/distribution/Distribution.sol +153 -125
- package/contracts/distribution/DistributionService.sol +175 -115
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +42 -22
- 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 +57 -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 +34 -46
- package/contracts/instance/IInstanceService.sol +31 -40
- package/contracts/instance/Instance.sol +143 -132
- package/contracts/instance/InstanceAdmin.sol +346 -240
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceReader.sol +295 -48
- package/contracts/instance/InstanceService.sol +210 -168
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -18
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- 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 +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +2 -2
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +64 -53
- package/contracts/oracle/OracleService.sol +114 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +207 -108
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +209 -163
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +553 -249
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +88 -83
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +370 -180
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +6 -9
- package/contracts/product/PolicyService.sol +481 -274
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +69 -66
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +231 -139
- package/contracts/product/RiskService.sol +144 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +74 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -214
- package/contracts/registry/RegistryAdmin.sol +292 -175
- package/contracts/registry/RegistryService.sol +46 -71
- package/contracts/registry/RegistryServiceManager.sol +5 -10
- 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 +8 -10
- package/contracts/shared/Component.sol +74 -128
- package/contracts/shared/ComponentService.sol +458 -384
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +49 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +10 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +96 -43
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +28 -40
- package/contracts/shared/TokenHandler.sol +309 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +8 -11
- package/contracts/staking/IStakingService.sol +30 -14
- package/contracts/staking/StakeManagerLib.sol +70 -25
- package/contracts/staking/Staking.sol +122 -147
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +24 -21
- package/contracts/staking/StakingService.sol +105 -81
- package/contracts/staking/StakingServiceManager.sol +8 -8
- package/contracts/staking/StakingStore.sol +93 -60
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +196 -61
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +117 -81
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +40 -121
- package/contracts/type/Version.sol +18 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +9 -6
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -600
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -4,16 +4,13 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {Key32
|
7
|
+
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE,
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
|
11
11
|
import {RequestId} from "../type/RequestId.sol";
|
12
|
-
import {RiskId
|
13
|
-
import {
|
14
|
-
import {StateId, ACTIVE} from "../type/StateId.sol";
|
15
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
16
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {StateId, KEEP_STATE} from "../type/StateId.sol";
|
17
14
|
import {ReferralId} from "../type/Referral.sol";
|
18
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
19
16
|
import {PayoutId} from "../type/PayoutId.sol";
|
@@ -21,7 +18,6 @@ import {PayoutId} from "../type/PayoutId.sol";
|
|
21
18
|
import {BalanceStore} from "./base/BalanceStore.sol";
|
22
19
|
import {IInstance} from "./IInstance.sol";
|
23
20
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
24
|
-
import {IKeyValueStore} from "../shared/KeyValueStore.sol";
|
25
21
|
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
26
22
|
|
27
23
|
import {IBundle} from "./module/IBundle.sol";
|
@@ -31,21 +27,28 @@ import {IPolicy} from "./module/IPolicy.sol";
|
|
31
27
|
import {IOracle} from "../oracle/IOracle.sol";
|
32
28
|
import {IRisk} from "./module/IRisk.sol";
|
33
29
|
|
30
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
31
|
+
|
34
32
|
|
35
33
|
contract InstanceStore is
|
36
34
|
AccessManagedUpgradeable,
|
37
35
|
BalanceStore,
|
38
36
|
KeyValueStore,
|
39
|
-
ObjectCounter
|
37
|
+
ObjectCounter,
|
38
|
+
ObjectLifecycle
|
40
39
|
{
|
41
|
-
|
40
|
+
|
41
|
+
/// @dev This initializer needs to be called from the instance itself.
|
42
|
+
function initialize()
|
42
43
|
public
|
43
44
|
initializer()
|
44
45
|
{
|
46
|
+
address instance = msg.sender;
|
45
47
|
address authority = IInstance(instance).authority();
|
46
|
-
__AccessManaged_init(authority);
|
47
48
|
|
48
|
-
|
49
|
+
__AccessManaged_init(authority);
|
50
|
+
// double initialization, safe
|
51
|
+
_initializeLifecycle();
|
49
52
|
}
|
50
53
|
|
51
54
|
//--- Component ---------------------------------------------------------//
|
@@ -82,8 +85,15 @@ contract InstanceStore is
|
|
82
85
|
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
83
86
|
}
|
84
87
|
|
85
|
-
|
86
|
-
|
88
|
+
|
89
|
+
//--- Fee -----------------------------------------------------------//
|
90
|
+
function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
91
|
+
_create(_toNftKey32(productNftId, FEE()), abi.encode(info));
|
92
|
+
}
|
93
|
+
|
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());
|
87
97
|
}
|
88
98
|
|
89
99
|
//--- Pool --------------------------------------------------------------//
|
@@ -102,10 +112,6 @@ contract InstanceStore is
|
|
102
112
|
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
103
113
|
}
|
104
114
|
|
105
|
-
function updatePoolState(NftId poolNftId, StateId newState) external restricted() {
|
106
|
-
_updateState(_toNftKey32(poolNftId, POOL()), newState);
|
107
|
-
}
|
108
|
-
|
109
115
|
//--- DistributorType ---------------------------------------------------//
|
110
116
|
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
111
117
|
_create(distributorType.toKey32(), abi.encode(info));
|
@@ -121,6 +127,7 @@ contract InstanceStore is
|
|
121
127
|
|
122
128
|
//--- Distributor -------------------------------------------------------//
|
123
129
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
130
|
+
_registerBalanceTarget(distributorNftId);
|
124
131
|
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
125
132
|
}
|
126
133
|
|
@@ -199,6 +206,16 @@ contract InstanceStore is
|
|
199
206
|
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
200
207
|
}
|
201
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);
|
217
|
+
}
|
218
|
+
|
202
219
|
//--- Claim -------------------------------------------------------------//
|
203
220
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
204
221
|
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
@@ -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
|
+
}
|
@@ -60,7 +60,7 @@ contract BalanceStore {
|
|
60
60
|
}
|
61
61
|
|
62
62
|
_isRegistered[targetNftId] = true;
|
63
|
-
|
63
|
+
_setLastUpdatedIn(targetNftId);
|
64
64
|
|
65
65
|
emit LogBalanceStoreTargetRegistered(targetNftId);
|
66
66
|
}
|
@@ -71,7 +71,7 @@ contract BalanceStore {
|
|
71
71
|
_feeAmount[targetNftId] = newBalance;
|
72
72
|
|
73
73
|
emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
74
|
-
|
74
|
+
_setLastUpdatedIn(targetNftId);
|
75
75
|
}
|
76
76
|
|
77
77
|
function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -79,7 +79,7 @@ contract BalanceStore {
|
|
79
79
|
_feeAmount[targetNftId] = newBalance;
|
80
80
|
|
81
81
|
emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
82
|
-
|
82
|
+
_setLastUpdatedIn(targetNftId);
|
83
83
|
}
|
84
84
|
|
85
85
|
//--- locked management -------------------------------------------------//
|
@@ -88,7 +88,7 @@ contract BalanceStore {
|
|
88
88
|
_lockedAmount[targetNftId] = newBalance;
|
89
89
|
|
90
90
|
emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
91
|
-
|
91
|
+
_setLastUpdatedIn(targetNftId);
|
92
92
|
}
|
93
93
|
|
94
94
|
function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -96,7 +96,7 @@ contract BalanceStore {
|
|
96
96
|
_lockedAmount[targetNftId] = newBalance;
|
97
97
|
|
98
98
|
emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
99
|
-
|
99
|
+
_setLastUpdatedIn(targetNftId);
|
100
100
|
}
|
101
101
|
|
102
102
|
//--- balance management ------------------------------------------------//
|
@@ -105,7 +105,7 @@ contract BalanceStore {
|
|
105
105
|
_balanceAmount[targetNftId] = newBalance;
|
106
106
|
|
107
107
|
emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
108
|
-
|
108
|
+
_setLastUpdatedIn(targetNftId);
|
109
109
|
}
|
110
110
|
|
111
111
|
function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -113,6 +113,11 @@ contract BalanceStore {
|
|
113
113
|
_balanceAmount[targetNftId] = newBalance;
|
114
114
|
|
115
115
|
emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
116
|
+
_setLastUpdatedIn(targetNftId);
|
117
|
+
}
|
118
|
+
|
119
|
+
//--- internal/private functions ----------------------------------------//
|
120
|
+
function _setLastUpdatedIn(NftId targetNftId) internal {
|
116
121
|
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
117
122
|
}
|
118
123
|
}
|
@@ -2,47 +2,24 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
6
5
|
|
7
6
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
7
|
|
9
8
|
abstract contract Cloneable is
|
10
9
|
AccessManagedUpgradeable
|
11
10
|
{
|
12
|
-
event CloneableInitialized(address authority, address registry);
|
13
|
-
|
14
|
-
error CloneableAuthorityZero();
|
15
|
-
error CloneableRegistryInvalid(address registry);
|
16
|
-
|
17
11
|
IRegistry internal _registry;
|
18
12
|
|
19
|
-
constructor() {
|
20
|
-
_registry = IRegistry(address(0));
|
21
|
-
}
|
22
|
-
|
23
13
|
/// @dev call to initialize MUST be made in the same transaction as cloning of the contract
|
24
|
-
function
|
14
|
+
function __Cloneable_init(
|
25
15
|
address authority,
|
26
16
|
address registry
|
27
17
|
)
|
28
|
-
|
18
|
+
internal
|
29
19
|
onlyInitializing
|
30
20
|
{
|
31
|
-
// check/handle access managed
|
32
|
-
if(authority == address(0)) {
|
33
|
-
revert CloneableAuthorityZero();
|
34
|
-
}
|
35
|
-
|
36
21
|
__AccessManaged_init(authority);
|
37
|
-
|
38
|
-
// check/handle registry
|
39
|
-
if (registry.code.length == 0) {
|
40
|
-
revert CloneableRegistryInvalid(registry);
|
41
|
-
}
|
42
|
-
|
43
22
|
_registry = IRegistry(registry);
|
44
|
-
|
45
|
-
emit CloneableInitialized(authority, registry);
|
46
23
|
}
|
47
24
|
|
48
25
|
function getRegistry() external view returns (IRegistry) {
|
@@ -11,9 +11,8 @@ contract ObjectCounter {
|
|
11
11
|
// TODO refactor risk id
|
12
12
|
// mapping(NftId productNftId => uint64 risks) private _riskCounter;
|
13
13
|
|
14
|
-
uint256 private _requestCounter;
|
14
|
+
uint256 private _requestCounter = 0;
|
15
15
|
|
16
|
-
// TODO introduce RequestId (uint64)
|
17
16
|
function _createNextRequestId() internal returns (RequestId requestId) {
|
18
17
|
_requestCounter++;
|
19
18
|
requestId = RequestIdLib.toRequestId(_requestCounter);
|
@@ -0,0 +1,113 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL, FEE} from "../../type/ObjectType.sol";
|
7
|
+
import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
|
8
|
+
import {Lifecycle} from "../../shared/Lifecycle.sol";
|
9
|
+
|
10
|
+
contract ObjectLifecycle is
|
11
|
+
Lifecycle,
|
12
|
+
Initializable
|
13
|
+
{
|
14
|
+
function _initializeLifecycle() internal onlyInitializing
|
15
|
+
{
|
16
|
+
_setupLifecycle();
|
17
|
+
}
|
18
|
+
|
19
|
+
function _setupLifecycle()
|
20
|
+
internal
|
21
|
+
override
|
22
|
+
{
|
23
|
+
_setupBundleLifecycle();
|
24
|
+
_setupComponentLifecycle();
|
25
|
+
_setupPolicyLifecycle();
|
26
|
+
_setupPremiumLifecycle();
|
27
|
+
_setupClaimLifecycle();
|
28
|
+
_setupPayoutLifecycle();
|
29
|
+
_setupRiskLifecycle();
|
30
|
+
_setupRequestLifecycle();
|
31
|
+
|
32
|
+
// setup dummy lifecycles to manage with key value store
|
33
|
+
_setUpPoolLifecycle();
|
34
|
+
_setUpProductLifecycle();
|
35
|
+
_setUpDistributionLifecycle();
|
36
|
+
}
|
37
|
+
|
38
|
+
function _setupComponentLifecycle() private {
|
39
|
+
setInitialState(COMPONENT(), ACTIVE());
|
40
|
+
setStateTransition(COMPONENT(), ACTIVE(), PAUSED());
|
41
|
+
setStateTransition(COMPONENT(), PAUSED(), ACTIVE());
|
42
|
+
setStateTransition(COMPONENT(), PAUSED(), ARCHIVED());
|
43
|
+
}
|
44
|
+
|
45
|
+
function _setupBundleLifecycle() private {
|
46
|
+
setInitialState(BUNDLE(), ACTIVE());
|
47
|
+
setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
|
48
|
+
setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
|
49
|
+
setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
|
50
|
+
setStateTransition(BUNDLE(), PAUSED(), CLOSED());
|
51
|
+
}
|
52
|
+
|
53
|
+
function _setupPolicyLifecycle() private {
|
54
|
+
setInitialState(POLICY(), APPLIED());
|
55
|
+
setStateTransition(POLICY(), APPLIED(), REVOKED());
|
56
|
+
setStateTransition(POLICY(), APPLIED(), DECLINED());
|
57
|
+
setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
|
58
|
+
setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
|
59
|
+
}
|
60
|
+
|
61
|
+
function _setupPremiumLifecycle() private {
|
62
|
+
setInitialState(PREMIUM(), EXPECTED());
|
63
|
+
setStateTransition(PREMIUM(), EXPECTED(), PAID());
|
64
|
+
}
|
65
|
+
|
66
|
+
function _setupClaimLifecycle() private {
|
67
|
+
setInitialState(CLAIM(), SUBMITTED());
|
68
|
+
setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
|
69
|
+
setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
|
70
|
+
setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
|
71
|
+
setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
|
72
|
+
}
|
73
|
+
|
74
|
+
function _setupPayoutLifecycle() private {
|
75
|
+
setInitialState(PAYOUT(), EXPECTED());
|
76
|
+
setStateTransition(PAYOUT(), EXPECTED(), PAID());
|
77
|
+
setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
|
78
|
+
}
|
79
|
+
|
80
|
+
function _setupRiskLifecycle() private {
|
81
|
+
setInitialState(RISK(), ACTIVE());
|
82
|
+
setStateTransition(RISK(), ACTIVE(), PAUSED());
|
83
|
+
setStateTransition(RISK(), PAUSED(), ACTIVE());
|
84
|
+
setStateTransition(RISK(), PAUSED(), ARCHIVED());
|
85
|
+
}
|
86
|
+
|
87
|
+
function _setupRequestLifecycle() private {
|
88
|
+
setInitialState(REQUEST(), ACTIVE());
|
89
|
+
setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
|
90
|
+
setStateTransition(REQUEST(), ACTIVE(), FAILED());
|
91
|
+
setStateTransition(REQUEST(), FAILED(), FULFILLED());
|
92
|
+
setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
|
93
|
+
}
|
94
|
+
|
95
|
+
// dummy lifecycle only
|
96
|
+
function _setUpPoolLifecycle() private {
|
97
|
+
setInitialState(POOL(), ACTIVE());
|
98
|
+
}
|
99
|
+
|
100
|
+
// dummy lifecycle only
|
101
|
+
function _setUpProductLifecycle() private {
|
102
|
+
setInitialState(PRODUCT(), ACTIVE());
|
103
|
+
setInitialState(FEE(), ACTIVE());
|
104
|
+
}
|
105
|
+
|
106
|
+
// dummy lifecycles only
|
107
|
+
function _setUpDistributionLifecycle() private {
|
108
|
+
setInitialState(DISTRIBUTION(), ACTIVE());
|
109
|
+
setInitialState(DISTRIBUTOR(), ACTIVE());
|
110
|
+
setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
|
111
|
+
setInitialState(REFERRAL(), ACTIVE());
|
112
|
+
}
|
113
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Cloneable} from "./Cloneable.sol";
|
5
|
+
|
6
|
+
import {LibKey32Set} from "../../type/Key32Set.sol";
|
7
|
+
import {NftId} from "../../type/NftId.sol";
|
8
|
+
import {Key32} from "../../type/Key32.sol";
|
9
|
+
|
10
|
+
contract ObjectSet is
|
11
|
+
Cloneable
|
12
|
+
{
|
13
|
+
using LibKey32Set for LibKey32Set.Set;
|
14
|
+
|
15
|
+
event LogObjectSetInitialized(address instance);
|
16
|
+
|
17
|
+
error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
|
18
|
+
|
19
|
+
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
|
20
|
+
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
|
21
|
+
address internal _instanceAddress;
|
22
|
+
|
23
|
+
/// @dev This initializer needs to be called from the instance itself.
|
24
|
+
function initialize(address authority, address registry)
|
25
|
+
external
|
26
|
+
initializer()
|
27
|
+
{
|
28
|
+
_instanceAddress = msg.sender;
|
29
|
+
__Cloneable_init(authority, registry);
|
30
|
+
|
31
|
+
emit LogObjectSetInitialized(address(_instanceAddress));
|
32
|
+
}
|
33
|
+
|
34
|
+
function getInstanceAddress() external view returns (address) {
|
35
|
+
return _instanceAddress;
|
36
|
+
}
|
37
|
+
|
38
|
+
function _add(NftId componentNftId, Key32 key) internal {
|
39
|
+
LibKey32Set.Set storage allSet = _allObjects[componentNftId];
|
40
|
+
LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
|
41
|
+
|
42
|
+
allSet.add(key);
|
43
|
+
activeSet.add(key);
|
44
|
+
}
|
45
|
+
|
46
|
+
function _activate(NftId componentNftId, Key32 key) internal {
|
47
|
+
_activeObjects[componentNftId].add(key);
|
48
|
+
}
|
49
|
+
|
50
|
+
function _deactivate(NftId componentNftId, Key32 key) internal {
|
51
|
+
_activeObjects[componentNftId].remove(key);
|
52
|
+
}
|
53
|
+
|
54
|
+
function _objects(NftId componentNftId) internal view returns (uint256) {
|
55
|
+
return _allObjects[componentNftId].size();
|
56
|
+
}
|
57
|
+
|
58
|
+
function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
|
59
|
+
return _allObjects[componentNftId].contains(key);
|
60
|
+
}
|
61
|
+
|
62
|
+
function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
|
63
|
+
return _allObjects[componentNftId].getElementAt(idx);
|
64
|
+
}
|
65
|
+
|
66
|
+
function _activeObjs(NftId componentNftId) internal view returns (uint256) {
|
67
|
+
return _activeObjects[componentNftId].size();
|
68
|
+
}
|
69
|
+
|
70
|
+
function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
|
71
|
+
return _activeObjects[componentNftId].contains(key);
|
72
|
+
}
|
73
|
+
|
74
|
+
function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
|
75
|
+
return _activeObjects[componentNftId].getElementAt(idx);
|
76
|
+
}
|
77
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IBundle} from "../module/IBundle.sol";
|
5
|
+
import {IInstance} from "../IInstance.sol";
|
6
|
+
import {IRisk} from "../module/IRisk.sol";
|
7
|
+
import {NftId} from "../../type/NftId.sol";
|
8
|
+
import {RiskId} from "../../type/RiskId.sol";
|
9
|
+
|
10
|
+
|
11
|
+
library ObjectSetHelperLib {
|
12
|
+
|
13
|
+
function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
|
14
|
+
|
15
|
+
return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
|
16
|
+
}
|
17
|
+
|
18
|
+
function getProductNftId(address instanceAddress, RiskId riskId) public view returns (NftId) {
|
19
|
+
return getRiskInfo(instanceAddress, riskId).productNftId;
|
20
|
+
}
|
21
|
+
|
22
|
+
function getBundleInfo(address instanceAddress, NftId bundleNftId) public view returns (IBundle.BundleInfo memory) {
|
23
|
+
return IInstance(instanceAddress).getInstanceReader().getBundleInfo(bundleNftId);
|
24
|
+
}
|
25
|
+
|
26
|
+
function getPoolNftId(address instanceAddress, NftId bundleNftId) public view returns (NftId) {
|
27
|
+
return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
|
28
|
+
}
|
29
|
+
|
30
|
+
}
|
@@ -13,7 +13,7 @@ interface IBundle {
|
|
13
13
|
NftId poolNftId;
|
14
14
|
Fee fee; // bundle fee on net premium amounts
|
15
15
|
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
16
|
-
|
16
|
+
Timestamp activatedAt;
|
17
17
|
Timestamp expiredAt; // no new policies starting with this timestamp
|
18
18
|
Timestamp closedAt; // no open policies, locked amount = 0
|
19
19
|
}
|
@@ -6,7 +6,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
6
6
|
import {Amount} from "../../type/Amount.sol";
|
7
7
|
import {Fee} from "../../type/Fee.sol";
|
8
8
|
import {NftId} from "../../type/NftId.sol";
|
9
|
-
import {RoleId} from "../../type/RoleId.sol";
|
10
9
|
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
11
10
|
import {UFixed} from "../../type/UFixed.sol";
|
12
11
|
|
@@ -14,17 +13,23 @@ interface IComponents {
|
|
14
13
|
|
15
14
|
struct ComponentInfo {
|
16
15
|
string name; // component name (needs to be unique per instance)
|
17
|
-
NftId productNftId;
|
18
16
|
IERC20Metadata token;
|
19
17
|
TokenHandler tokenHandler;
|
20
|
-
address wallet;
|
21
18
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
22
19
|
}
|
23
20
|
|
24
|
-
|
25
21
|
struct ProductInfo {
|
26
|
-
|
27
|
-
|
22
|
+
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
23
|
+
bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
|
24
|
+
bool hasDistribution; // flag to indicate if distribution is enabled
|
25
|
+
uint8 expectedNumberOfOracles; // expected number of oracles
|
26
|
+
uint8 numberOfOracles; // actual number of oracles
|
27
|
+
NftId poolNftId; // mandatory
|
28
|
+
NftId distributionNftId; // 0..1 (optional)
|
29
|
+
NftId [] oracleNftId; // 0..n (optional)
|
30
|
+
}
|
31
|
+
|
32
|
+
struct FeeInfo {
|
28
33
|
Fee productFee; // product fee on net premium
|
29
34
|
Fee processingFee; // product fee on payout amounts
|
30
35
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
@@ -34,19 +39,13 @@ interface IComponents {
|
|
34
39
|
Fee performanceFee; // pool fee on profits from capital investors
|
35
40
|
}
|
36
41
|
|
37
|
-
|
38
42
|
struct PoolInfo {
|
39
|
-
|
40
|
-
|
41
|
-
//
|
42
|
-
Amount maxCapitalAmount; // max capital amount allowed for pool
|
43
|
-
bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
|
43
|
+
Amount maxBalanceAmount; // max balance amount allowed for pool
|
44
|
+
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
45
|
+
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
44
46
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
45
47
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
46
48
|
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
47
49
|
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
48
|
-
Fee poolFee; // pool fee on net premium
|
49
|
-
Fee stakingFee; // pool fee on staked capital from investor
|
50
|
-
Fee performanceFee; // pool fee on profits from capital investors
|
51
50
|
}
|
52
51
|
}
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Amount} from "../../type/Amount.sol";
|
5
5
|
import {DistributorType} from "../../type/DistributorType.sol";
|
6
6
|
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {Seconds} from "../../type/Seconds.sol";
|
7
8
|
import {Timestamp} from "../../type/Timestamp.sol";
|
8
9
|
import {UFixed} from "../../type/UFixed.sol";
|
9
10
|
|
@@ -15,7 +16,7 @@ interface IDistribution {
|
|
15
16
|
UFixed maxDiscountPercentage;
|
16
17
|
UFixed commissionPercentage;
|
17
18
|
uint32 maxReferralCount;
|
18
|
-
|
19
|
+
Seconds maxReferralLifetime;
|
19
20
|
bool allowSelfReferrals;
|
20
21
|
bool allowRenewals;
|
21
22
|
bytes data;
|
@@ -25,7 +26,6 @@ interface IDistribution {
|
|
25
26
|
DistributorType distributorType;
|
26
27
|
bool active;
|
27
28
|
bytes data;
|
28
|
-
Amount commissionAmount;
|
29
29
|
uint32 numPoliciesSold;
|
30
30
|
}
|
31
31
|
|