@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff795d8-141
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 +130 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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 +1652 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1333 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -600
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +564 -471
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +240 -116
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +165 -336
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +373 -113
- 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 +1461 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/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 +526 -87
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +413 -74
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +533 -218
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2302 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1843 -719
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +433 -211
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +171 -93
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1651 -770
- 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 +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -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/oracle/Oracle.sol/Oracle.json +854 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +355 -366
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +214 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +221 -76
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +554 -401
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +223 -624
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +694 -710
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +228 -112
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +219 -242
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +188 -88
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -332
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +222 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +367 -231
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +440 -380
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -124
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -324
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +192 -108
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +409 -509
- 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 +462 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
- 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 +905 -121
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2127 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +169 -91
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -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 +1393 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +109 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1021 -165
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +680 -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 +116 -141
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -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 +776 -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 +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +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 +615 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1301 -119
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +685 -63
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1579 -172
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +250 -73
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +775 -176
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +195 -83
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -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 +119 -58
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +66 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -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 +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +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 +142 -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 +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +789 -0
- package/contracts/authorization/AccessAdminLib.sol +387 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +174 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +27 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +135 -175
- package/contracts/distribution/DistributionService.sol +306 -213
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +23 -49
- package/contracts/distribution/IDistributionService.sol +55 -33
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +114 -49
- package/contracts/instance/IInstanceService.sol +74 -37
- package/contracts/instance/Instance.sol +245 -133
- package/contracts/instance/InstanceAdmin.sol +380 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +263 -0
- package/contracts/instance/InstanceReader.sol +437 -100
- package/contracts/instance/InstanceService.sol +402 -180
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +151 -64
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- 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 -8
- package/contracts/instance/module/IComponents.sol +40 -19
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +57 -30
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +82 -0
- package/contracts/pool/BundleService.sol +237 -224
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +35 -38
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +107 -56
- package/contracts/pool/Pool.sol +209 -168
- package/contracts/pool/PoolLib.sol +353 -0
- package/contracts/pool/PoolService.sol +446 -262
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +177 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +61 -0
- package/contracts/product/ClaimService.sol +380 -184
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +10 -3
- package/contracts/product/IClaimService.sol +48 -6
- package/contracts/product/IPolicyService.sol +54 -39
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +498 -234
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +116 -82
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +236 -148
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +94 -34
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +444 -219
- package/contracts/registry/RegistryAdmin.sol +188 -0
- package/contracts/registry/RegistryAuthorization.sol +277 -0
- package/contracts/registry/RegistryService.sol +74 -137
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +520 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +343 -0
- package/contracts/registry/TokenRegistry.sol +262 -64
- package/contracts/shared/Component.sol +122 -183
- package/contracts/shared/ComponentService.sol +610 -99
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +357 -0
- package/contracts/shared/IComponent.sol +17 -49
- package/contracts/shared/IComponentService.sol +110 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +33 -24
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +36 -41
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +170 -6
- package/contracts/staking/IStakingService.sol +110 -40
- package/contracts/staking/Staking.sol +509 -27
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -16
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +311 -48
- package/contracts/staking/StakingServiceManager.sol +12 -8
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +22 -21
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +204 -63
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +122 -74
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +16 -7
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/ProxyManager.sol +101 -36
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
- package/package.json +12 -8
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -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 -620
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -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/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/registry/ReleaseManager.sol +0 -360
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,57 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
5
|
-
import {IService} from "./IApplicationService.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
6
3
|
|
4
|
+
import {IClaimService} from "./IClaimService.sol";
|
7
5
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
10
|
-
import {Product} from "./Product.sol";
|
11
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
12
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
13
6
|
import {IInstance} from "../instance/IInstance.sol";
|
14
7
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
import {
|
19
|
-
import {
|
20
|
-
|
21
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
-
|
23
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
24
|
-
import {Versionable} from "../shared/Versionable.sol";
|
8
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
10
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
11
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
25
13
|
|
26
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
27
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
28
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
29
|
-
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
30
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../type/ObjectType.sol";
|
31
|
-
import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
32
|
-
import {NftId, NftIdLib, zeroNftId} from "../type/NftId.sol";
|
33
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
34
|
-
import {ReferralId} from "../type/Referral.sol";
|
35
|
-
import {RiskId} from "../type/RiskId.sol";
|
36
|
-
import {StateId} from "../type/StateId.sol";
|
37
15
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
38
|
-
import {
|
39
|
-
import {
|
40
|
-
|
41
|
-
import {ComponentService} from "../shared/ComponentService.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {FeeLib} from "../type/Fee.sol";
|
42
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
43
|
-
import {
|
44
|
-
import {
|
45
|
-
import {
|
46
|
-
import {
|
19
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
20
|
+
import {NftId} from "../type/NftId.sol";
|
21
|
+
import {ObjectType, COMPONENT, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
22
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
47
23
|
import {Service} from "../shared/Service.sol";
|
24
|
+
import {StateId} from "../type/StateId.sol";
|
25
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
26
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
48
27
|
|
49
28
|
|
50
29
|
contract ClaimService is
|
51
|
-
|
30
|
+
Service,
|
52
31
|
IClaimService
|
53
32
|
{
|
54
33
|
|
34
|
+
IPolicyService internal _policyService;
|
55
35
|
IPoolService internal _poolService;
|
56
36
|
|
57
37
|
function _initialize(
|
@@ -62,21 +42,17 @@ contract ClaimService is
|
|
62
42
|
virtual override
|
63
43
|
initializer()
|
64
44
|
{
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
45
|
+
(
|
46
|
+
address authority,
|
47
|
+
address registry
|
48
|
+
) = abi.decode(data, (address, address));
|
69
49
|
|
70
|
-
|
50
|
+
__Service_init(authority, registry, owner);
|
71
51
|
|
52
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
72
53
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
73
54
|
|
74
|
-
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function getDomain() public pure override returns(ObjectType) {
|
79
|
-
return CLAIM();
|
55
|
+
_registerInterface(type(IClaimService).interfaceId);
|
80
56
|
}
|
81
57
|
|
82
58
|
function submit(
|
@@ -86,11 +62,14 @@ contract ClaimService is
|
|
86
62
|
)
|
87
63
|
external
|
88
64
|
virtual
|
65
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
66
|
+
restricted()
|
89
67
|
returns (ClaimId claimId)
|
90
68
|
{
|
69
|
+
// checks
|
91
70
|
(
|
92
|
-
|
93
|
-
|
71
|
+
,,,
|
72
|
+
InstanceStore instanceStore,
|
94
73
|
IPolicy.PolicyInfo memory policyInfo
|
95
74
|
) = _verifyCallerWithPolicy(policyNftId);
|
96
75
|
|
@@ -99,33 +78,28 @@ contract ClaimService is
|
|
99
78
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
100
79
|
}
|
101
80
|
|
102
|
-
|
103
|
-
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
104
|
-
revert ErrorClaimServiceClaimExceedsSumInsured(
|
105
|
-
policyNftId,
|
106
|
-
policyInfo.sumInsuredAmount,
|
107
|
-
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
108
|
-
}
|
81
|
+
_checkClaimAmount(policyNftId, policyInfo, claimAmount);
|
109
82
|
|
83
|
+
// effects
|
110
84
|
// create new claim
|
111
85
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
112
|
-
|
86
|
+
instanceStore.createClaim(
|
113
87
|
policyNftId,
|
114
88
|
claimId,
|
115
|
-
IPolicy.ClaimInfo(
|
116
|
-
claimAmount,
|
117
|
-
AmountLib.zero(),
|
118
|
-
0,
|
119
|
-
0,
|
120
|
-
claimData,
|
121
|
-
"",
|
122
|
-
TimestampLib.zero()));
|
89
|
+
IPolicy.ClaimInfo({
|
90
|
+
claimAmount: claimAmount,
|
91
|
+
paidAmount: AmountLib.zero(),
|
92
|
+
payoutsCount: 0,
|
93
|
+
openPayoutsCount: 0,
|
94
|
+
submissionData: claimData,
|
95
|
+
processData: "",
|
96
|
+
closedAt: TimestampLib.zero()}));
|
123
97
|
|
124
98
|
// update and save policy info with instance
|
99
|
+
// policy claim amount is only updated when claim is confirmed
|
125
100
|
policyInfo.claimsCount += 1;
|
126
101
|
policyInfo.openClaimsCount += 1;
|
127
|
-
|
128
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
102
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
129
103
|
|
130
104
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
131
105
|
}
|
@@ -139,26 +113,49 @@ contract ClaimService is
|
|
139
113
|
)
|
140
114
|
external
|
141
115
|
virtual
|
116
|
+
restricted()
|
117
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
142
118
|
{
|
119
|
+
// checks
|
120
|
+
_checkNftType(policyNftId, POLICY());
|
121
|
+
|
143
122
|
(
|
123
|
+
NftId productNftId,
|
144
124
|
IInstance instance,
|
145
125
|
InstanceReader instanceReader,
|
126
|
+
InstanceStore instanceStore,
|
146
127
|
IPolicy.PolicyInfo memory policyInfo
|
147
128
|
) = _verifyCallerWithPolicy(policyNftId);
|
148
129
|
|
130
|
+
_checkClaimAmount(policyNftId, policyInfo, confirmedAmount);
|
131
|
+
|
132
|
+
// effects
|
149
133
|
// check/update claim info
|
150
134
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
151
135
|
claimInfo.claimAmount = confirmedAmount;
|
152
136
|
claimInfo.processData = data;
|
153
|
-
|
137
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
154
138
|
|
155
139
|
// update and save policy info with instance
|
156
140
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
157
|
-
|
141
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
142
|
+
|
143
|
+
// should policy still be active it needs to become expired
|
144
|
+
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
145
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
|
146
|
+
}
|
158
147
|
|
159
148
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
149
|
+
|
150
|
+
// interactions
|
151
|
+
// callback to pool if applicable
|
152
|
+
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
153
|
+
|
154
|
+
// callback to policy holder if applicable
|
155
|
+
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
160
156
|
}
|
161
157
|
|
158
|
+
|
162
159
|
function decline(
|
163
160
|
NftId policyNftId,
|
164
161
|
ClaimId claimId,
|
@@ -166,10 +163,16 @@ contract ClaimService is
|
|
166
163
|
)
|
167
164
|
external
|
168
165
|
virtual
|
166
|
+
restricted()
|
167
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
169
168
|
{
|
169
|
+
_checkNftType(policyNftId, POLICY());
|
170
|
+
|
170
171
|
(
|
172
|
+
,
|
171
173
|
IInstance instance,
|
172
174
|
InstanceReader instanceReader,
|
175
|
+
InstanceStore instanceStore,
|
173
176
|
IPolicy.PolicyInfo memory policyInfo
|
174
177
|
) = _verifyCallerWithPolicy(policyNftId);
|
175
178
|
|
@@ -177,25 +180,61 @@ contract ClaimService is
|
|
177
180
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
178
181
|
claimInfo.processData = data;
|
179
182
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
180
|
-
|
183
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
181
184
|
|
182
185
|
// update and save policy info with instance
|
183
186
|
policyInfo.openClaimsCount -= 1;
|
184
|
-
|
187
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
185
188
|
|
186
189
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
187
190
|
}
|
188
191
|
|
192
|
+
|
193
|
+
function revoke(
|
194
|
+
NftId policyNftId,
|
195
|
+
ClaimId claimId
|
196
|
+
)
|
197
|
+
external
|
198
|
+
virtual
|
199
|
+
restricted()
|
200
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
201
|
+
{
|
202
|
+
(
|
203
|
+
,
|
204
|
+
IInstance instance,
|
205
|
+
InstanceReader instanceReader,
|
206
|
+
InstanceStore instanceStore,
|
207
|
+
IPolicy.PolicyInfo memory policyInfo
|
208
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
209
|
+
|
210
|
+
// check/update claim info
|
211
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
212
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
213
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
214
|
+
|
215
|
+
// update and save policy info with instance
|
216
|
+
policyInfo.openClaimsCount -= 1;
|
217
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
218
|
+
|
219
|
+
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
220
|
+
}
|
221
|
+
|
222
|
+
|
189
223
|
function close(
|
190
224
|
NftId policyNftId,
|
191
225
|
ClaimId claimId
|
192
226
|
)
|
193
227
|
external
|
194
228
|
virtual
|
229
|
+
restricted()
|
230
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
195
231
|
{
|
232
|
+
_checkNftType(policyNftId, POLICY());
|
233
|
+
|
196
234
|
(
|
197
|
-
|
235
|
+
,,
|
198
236
|
InstanceReader instanceReader,
|
237
|
+
InstanceStore instanceStore,
|
199
238
|
IPolicy.PolicyInfo memory policyInfo
|
200
239
|
) = _verifyCallerWithPolicy(policyNftId);
|
201
240
|
|
@@ -220,55 +259,56 @@ contract ClaimService is
|
|
220
259
|
}
|
221
260
|
|
222
261
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
223
|
-
|
262
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
224
263
|
}
|
225
264
|
|
226
265
|
|
227
|
-
function
|
266
|
+
function createPayoutForBeneficiary(
|
228
267
|
NftId policyNftId,
|
229
268
|
ClaimId claimId,
|
230
269
|
Amount amount,
|
270
|
+
address beneficiary,
|
231
271
|
bytes memory data
|
232
272
|
)
|
233
273
|
external
|
274
|
+
virtual
|
275
|
+
restricted()
|
276
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
234
277
|
returns (PayoutId payoutId)
|
235
278
|
{
|
236
|
-
(
|
237
|
-
|
238
|
-
|
239
|
-
IPolicy.PolicyInfo memory policyInfo
|
240
|
-
) = _verifyCallerWithPolicy(policyNftId);
|
241
|
-
|
242
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
243
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
244
|
-
|
245
|
-
// TODO add checks
|
246
|
-
// claim needs to be open
|
247
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
279
|
+
if (beneficiary == address(0)) {
|
280
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
281
|
+
}
|
248
282
|
|
249
|
-
|
250
|
-
// create payout info with instance
|
251
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
252
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
253
|
-
instance.getInstanceStore().createPayout(
|
283
|
+
return _createPayout(
|
254
284
|
policyNftId,
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
TimestampLib.zero()));
|
261
|
-
|
262
|
-
// update and save claim info with instance
|
263
|
-
claimInfo.payoutsCount += 1;
|
264
|
-
claimInfo.openPayoutsCount += 1;
|
265
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
285
|
+
claimId,
|
286
|
+
amount,
|
287
|
+
beneficiary,
|
288
|
+
data);
|
289
|
+
}
|
266
290
|
|
267
|
-
// update and save policy info with instance
|
268
|
-
policyInfo.payoutAmount.add(amount);
|
269
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
270
291
|
|
271
|
-
|
292
|
+
function createPayout(
|
293
|
+
NftId policyNftId,
|
294
|
+
ClaimId claimId,
|
295
|
+
Amount amount,
|
296
|
+
bytes memory data
|
297
|
+
)
|
298
|
+
external
|
299
|
+
virtual
|
300
|
+
restricted()
|
301
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
302
|
+
returns (PayoutId payoutId)
|
303
|
+
{
|
304
|
+
_checkNftType(policyNftId, POLICY());
|
305
|
+
|
306
|
+
return _createPayout(
|
307
|
+
policyNftId,
|
308
|
+
claimId,
|
309
|
+
amount,
|
310
|
+
address(0), // defaults to owner of policy nft
|
311
|
+
data);
|
272
312
|
}
|
273
313
|
|
274
314
|
|
@@ -278,113 +318,199 @@ contract ClaimService is
|
|
278
318
|
)
|
279
319
|
external
|
280
320
|
virtual
|
321
|
+
restricted()
|
322
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
281
323
|
{
|
324
|
+
// checks
|
282
325
|
(
|
283
|
-
|
326
|
+
NftId productNftId,,
|
327
|
+
// IInstance instance,
|
284
328
|
InstanceReader instanceReader,
|
329
|
+
InstanceStore instanceStore,
|
285
330
|
IPolicy.PolicyInfo memory policyInfo
|
286
331
|
) = _verifyCallerWithPolicy(policyNftId);
|
287
332
|
|
288
|
-
//
|
333
|
+
// check that payout exists and is open
|
289
334
|
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
335
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
336
|
+
if(payoutState != EXPECTED()) {
|
337
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
338
|
+
}
|
339
|
+
|
340
|
+
// check that payout amount does not violate claim amount
|
341
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
342
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
343
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
344
|
+
policyNftId,
|
345
|
+
payoutId.toClaimId(),
|
346
|
+
claimInfo.claimAmount,
|
347
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
348
|
+
}
|
290
349
|
|
350
|
+
// effects
|
291
351
|
// update and save payout info with instance
|
292
352
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
293
|
-
|
353
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
294
354
|
|
295
|
-
//
|
296
|
-
ClaimId claimId = payoutId.toClaimId();
|
355
|
+
// update and save claim info with instance
|
297
356
|
Amount payoutAmount = payoutInfo.amount;
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
357
|
+
{
|
358
|
+
ClaimId claimId = payoutId.toClaimId();
|
359
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
360
|
+
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
361
|
+
claimInfo.openPayoutsCount -= 1;
|
362
|
+
|
363
|
+
// check if this payout is closing the linked claim
|
364
|
+
// update claim and policy info accordingly
|
365
|
+
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
366
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
367
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
368
|
+
|
369
|
+
policyInfo.openClaimsCount -= 1;
|
370
|
+
} else {
|
371
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
372
|
+
}
|
311
373
|
}
|
312
374
|
|
313
375
|
// update and save policy info with instance
|
314
|
-
policyInfo.payoutAmount = policyInfo.payoutAmount
|
315
|
-
|
376
|
+
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
377
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
316
378
|
|
317
|
-
|
318
|
-
_poolService.reduceCollateral(instance, policyNftId, policyInfo, payoutAmount);
|
379
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
319
380
|
|
320
|
-
//
|
321
|
-
|
322
|
-
|
323
|
-
address beneficiary
|
324
|
-
) = _transferPayoutAmount(
|
381
|
+
// effects + interactions (push tokens to beneficiary, product)
|
382
|
+
// delegate to pool to update book keeping and moving tokens payout
|
383
|
+
_poolService.processPayout(
|
325
384
|
instanceReader,
|
326
|
-
|
327
|
-
policyInfo,
|
328
|
-
|
385
|
+
instanceStore,
|
386
|
+
policyInfo.productNftId, // product nft id
|
387
|
+
policyNftId,
|
388
|
+
policyInfo.bundleNftId,
|
389
|
+
payoutId,
|
390
|
+
payoutAmount,
|
391
|
+
payoutInfo.beneficiary);
|
392
|
+
}
|
329
393
|
|
330
|
-
|
394
|
+
function cancelPayout(
|
395
|
+
NftId policyNftId,
|
396
|
+
PayoutId payoutId
|
397
|
+
)
|
398
|
+
external
|
399
|
+
virtual
|
400
|
+
restricted()
|
401
|
+
{
|
402
|
+
// checks
|
403
|
+
(
|
404
|
+
,
|
405
|
+
IInstance instance,
|
406
|
+
InstanceReader instanceReader,
|
407
|
+
InstanceStore instanceStore,
|
408
|
+
IPolicy.PolicyInfo memory policyInfo
|
409
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
410
|
+
|
411
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
412
|
+
if (payoutState != EXPECTED()) {
|
413
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
414
|
+
}
|
415
|
+
|
416
|
+
// effects
|
417
|
+
// update and save payout info with instance
|
418
|
+
instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
331
419
|
|
332
|
-
|
420
|
+
{
|
421
|
+
ClaimId claimId = payoutId.toClaimId();
|
422
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
423
|
+
claimInfo.openPayoutsCount -= 1;
|
424
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
425
|
+
}
|
426
|
+
|
427
|
+
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
333
428
|
}
|
334
429
|
|
335
|
-
//
|
336
|
-
|
337
|
-
|
430
|
+
// internal functions
|
431
|
+
|
432
|
+
function _checkClaimAmount(
|
338
433
|
NftId policyNftId,
|
339
434
|
IPolicy.PolicyInfo memory policyInfo,
|
340
|
-
|
435
|
+
Amount claimAmount
|
341
436
|
)
|
342
437
|
internal
|
343
|
-
|
344
|
-
Amount netPayoutAmount,
|
345
|
-
address beneficiary
|
346
|
-
)
|
438
|
+
pure
|
347
439
|
{
|
348
|
-
|
440
|
+
// check claim amount > 0
|
441
|
+
if (claimAmount.eqz()) {
|
442
|
+
revert ErrorClaimServiceClaimAmountIsZero(policyNftId);
|
443
|
+
}
|
349
444
|
|
350
|
-
|
351
|
-
|
352
|
-
|
445
|
+
// check policy including this claim is still within sum insured
|
446
|
+
if(policyInfo.claimAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
447
|
+
revert ErrorClaimServiceClaimExceedsSumInsured(
|
448
|
+
policyNftId,
|
449
|
+
policyInfo.sumInsuredAmount,
|
450
|
+
policyInfo.payoutAmount + claimAmount);
|
451
|
+
}
|
452
|
+
}
|
353
453
|
|
354
|
-
|
355
|
-
|
356
|
-
|
454
|
+
function _createPayout(
|
455
|
+
NftId policyNftId,
|
456
|
+
ClaimId claimId,
|
457
|
+
Amount amount,
|
458
|
+
address beneficiary,
|
459
|
+
bytes memory data
|
460
|
+
)
|
461
|
+
internal
|
462
|
+
virtual
|
463
|
+
returns (PayoutId payoutId)
|
464
|
+
{
|
465
|
+
// checks
|
466
|
+
(
|
467
|
+
,,
|
468
|
+
InstanceReader instanceReader,
|
469
|
+
InstanceStore instanceStore,
|
470
|
+
// IPolicy.PolicyInfo memory policyInfo
|
471
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
357
472
|
|
358
|
-
|
359
|
-
beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
|
473
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
360
474
|
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
475
|
+
{
|
476
|
+
// check claim state
|
477
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
478
|
+
if (claimState != CONFIRMED()) {
|
479
|
+
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
365
480
|
}
|
366
481
|
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
482
|
+
// check total payout amount remains within claim limit
|
483
|
+
Amount newPaidAmount = claimInfo.paidAmount + amount;
|
484
|
+
if (newPaidAmount > claimInfo.claimAmount) {
|
485
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
486
|
+
policyNftId, claimId, claimInfo.claimAmount, newPaidAmount);
|
487
|
+
}
|
371
488
|
}
|
372
|
-
}
|
373
489
|
|
374
|
-
|
490
|
+
// effects
|
491
|
+
// create payout info with instance
|
492
|
+
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
493
|
+
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
494
|
+
if (beneficiary == address(0)) {
|
495
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
496
|
+
}
|
375
497
|
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
498
|
+
instanceStore.createPayout(
|
499
|
+
policyNftId,
|
500
|
+
payoutId,
|
501
|
+
IPolicy.PayoutInfo({
|
502
|
+
claimId: payoutId.toClaimId(),
|
503
|
+
amount: amount,
|
504
|
+
beneficiary: beneficiary,
|
505
|
+
data: data,
|
506
|
+
paidAt: TimestampLib.zero()}));
|
385
507
|
|
386
|
-
//
|
387
|
-
|
508
|
+
// update and save claim info with instance
|
509
|
+
claimInfo.payoutsCount += 1;
|
510
|
+
claimInfo.openPayoutsCount += 1;
|
511
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
512
|
+
|
513
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
388
514
|
}
|
389
515
|
|
390
516
|
|
@@ -392,15 +518,19 @@ contract ClaimService is
|
|
392
518
|
NftId policyNftId
|
393
519
|
)
|
394
520
|
internal
|
521
|
+
view
|
522
|
+
virtual
|
395
523
|
returns (
|
524
|
+
NftId productNftId,
|
396
525
|
IInstance instance,
|
397
526
|
InstanceReader instanceReader,
|
527
|
+
InstanceStore instanceStore,
|
398
528
|
IPolicy.PolicyInfo memory policyInfo
|
399
529
|
)
|
400
530
|
{
|
401
|
-
|
402
|
-
(productNftId,, instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
531
|
+
(productNftId, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
403
532
|
instanceReader = instance.getInstanceReader();
|
533
|
+
instanceStore = instance.getInstanceStore();
|
404
534
|
|
405
535
|
// check caller(product) policy match
|
406
536
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -411,6 +541,29 @@ contract ClaimService is
|
|
411
541
|
}
|
412
542
|
}
|
413
543
|
|
544
|
+
|
545
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
546
|
+
internal
|
547
|
+
view
|
548
|
+
returns (
|
549
|
+
NftId productNftId,
|
550
|
+
IInstance instance
|
551
|
+
)
|
552
|
+
{
|
553
|
+
(
|
554
|
+
IRegistry.ObjectInfo memory info,
|
555
|
+
address instanceAddress
|
556
|
+
) = ContractLib.getAndVerifyComponent(
|
557
|
+
getRegistry(),
|
558
|
+
msg.sender, // caller
|
559
|
+
PRODUCT(),
|
560
|
+
true); // isActive
|
561
|
+
|
562
|
+
// get component nft id and instance
|
563
|
+
productNftId = info.nftId;
|
564
|
+
instance = IInstance(instanceAddress);
|
565
|
+
}
|
566
|
+
|
414
567
|
function _verifyClaim(
|
415
568
|
InstanceReader instanceReader,
|
416
569
|
NftId policyNftId,
|
@@ -434,9 +587,52 @@ contract ClaimService is
|
|
434
587
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
435
588
|
}
|
436
589
|
|
437
|
-
function
|
438
|
-
|
439
|
-
|
440
|
-
|
590
|
+
function _processConfirmedClaimByPool(
|
591
|
+
InstanceReader instanceReader,
|
592
|
+
NftId productNftId,
|
593
|
+
NftId policyNftId,
|
594
|
+
ClaimId claimId,
|
595
|
+
Amount amount
|
596
|
+
)
|
597
|
+
internal
|
598
|
+
{
|
599
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
600
|
+
if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
|
601
|
+
address poolAddress = getRegistry().getObjectAddress(poolNftId);
|
602
|
+
IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
|
603
|
+
}
|
604
|
+
}
|
605
|
+
|
606
|
+
|
607
|
+
function _policyHolderClaimConfirmed(
|
608
|
+
NftId policyNftId,
|
609
|
+
ClaimId claimId,
|
610
|
+
Amount confirmedAmount
|
611
|
+
)
|
612
|
+
internal
|
613
|
+
{
|
614
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
615
|
+
if(address(policyHolder) != address(0)) {
|
616
|
+
policyHolder.claimConfirmed(policyNftId, claimId, confirmedAmount);
|
617
|
+
}
|
618
|
+
}
|
619
|
+
|
620
|
+
// TODO: move to policy helper lib or something
|
621
|
+
function _getPolicyHolder(NftId policyNftId)
|
622
|
+
internal
|
623
|
+
view
|
624
|
+
returns (IPolicyHolder policyHolder)
|
625
|
+
{
|
626
|
+
address policyHolderAddress = getRegistry().ownerOf(policyNftId);
|
627
|
+
policyHolder = IPolicyHolder(policyHolderAddress);
|
628
|
+
|
629
|
+
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
630
|
+
policyHolder = IPolicyHolder(address(0));
|
631
|
+
}
|
632
|
+
}
|
633
|
+
|
634
|
+
|
635
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
636
|
+
return CLAIM();
|
441
637
|
}
|
442
638
|
}
|