@etherisc/gif-next 0.0.2-c6d46bb-892 → 0.0.2-c7609c4-545
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 +51 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +236 -564
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +331 -432
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +167 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +220 -291
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -97
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +173 -87
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +122 -222
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +850 -366
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -231
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +145 -79
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1212 -381
- 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 +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +1039 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +494 -317
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +225 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +256 -31
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +238 -373
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -254
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +268 -577
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -569
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +151 -93
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +117 -264
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +138 -76
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +329 -284
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +180 -90
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +354 -80
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +360 -209
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +418 -397
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +163 -121
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +233 -330
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +167 -93
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +381 -448
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +435 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +270 -109
- 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 +861 -64
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -234
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +132 -76
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +138 -286
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1335 -198
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +110 -114
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/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 +36 -1
- 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 +49 -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 +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/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 +68 -85
- 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 +55 -101
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +658 -176
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +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 +121 -4
- 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 +39 -34
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -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 +149 -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 +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 +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- 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 +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +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/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- 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 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -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 +602 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +596 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +156 -156
- package/contracts/distribution/DistributionService.sol +179 -173
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +33 -44
- package/contracts/instance/IInstanceService.sol +32 -34
- package/contracts/instance/Instance.sol +129 -126
- package/contracts/instance/InstanceAdmin.sol +277 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +194 -67
- package/contracts/instance/InstanceService.sol +250 -144
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +142 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +21 -11
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +31 -25
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +291 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +322 -211
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +44 -19
- package/contracts/pool/IPoolComponent.sol +27 -73
- package/contracts/pool/IPoolService.sol +93 -40
- package/contracts/pool/Pool.sol +186 -153
- package/contracts/pool/PoolService.sol +375 -234
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +158 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +333 -163
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +35 -5
- package/contracts/product/IPolicyService.sol +38 -38
- package/contracts/product/IPricingService.sol +13 -11
- package/contracts/product/IProductComponent.sol +28 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
- package/contracts/product/PolicyService.sol +519 -204
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +109 -84
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +222 -146
- package/contracts/product/RiskService.sol +96 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +75 -38
- package/contracts/registry/IRegistry.sol +91 -21
- package/contracts/registry/IRegistryService.sol +30 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +445 -195
- package/contracts/registry/RegistryAdmin.sol +448 -0
- package/contracts/registry/RegistryService.sol +85 -129
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +150 -156
- package/contracts/shared/ComponentService.sol +694 -99
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +126 -0
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +25 -41
- package/contracts/shared/IComponentService.sol +120 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +41 -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 +11 -0
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +213 -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 +31 -22
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +21 -11
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +48 -36
- package/contracts/shared/TokenHandler.sol +112 -8
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +103 -48
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +290 -49
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +14 -7
- package/contracts/staking/StakingStore.sol +605 -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 +17 -16
- package/contracts/type/NftId.sol +15 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -62
- 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 +16 -2
- package/contracts/type/RoleId.sol +98 -68
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +10 -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/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/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 -559
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/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/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- 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/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -328
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,57 +1,35 @@
|
|
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";
|
6
|
-
|
7
|
-
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
|
-
import {IInstance} from "../instance/IInstance.sol";
|
14
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
15
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
16
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
17
|
-
import {IProductService} from "./IProductService.sol";
|
18
|
-
import {ITreasury} from "../instance/module/ITreasury.sol";
|
19
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
20
|
-
|
21
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
-
|
23
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
24
|
-
import {Versionable} from "../shared/Versionable.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
25
3
|
|
26
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
27
|
-
import {
|
28
|
-
import {
|
29
|
-
import {
|
30
|
-
import {
|
31
|
-
import {
|
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";
|
5
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
6
|
+
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
7
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {FeeLib} from "../type/Fee.sol";
|
36
10
|
import {StateId} from "../type/StateId.sol";
|
37
11
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
38
12
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
39
|
-
import {
|
40
|
-
|
41
|
-
import {ComponentService} from "../shared/ComponentService.sol";
|
13
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
14
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
42
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
43
|
-
import {
|
16
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
44
17
|
import {IClaimService} from "./IClaimService.sol";
|
18
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
19
|
+
import {IInstance} from "../instance/IInstance.sol";
|
20
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
22
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
45
24
|
import {IPoolService} from "../pool/IPoolService.sol";
|
46
|
-
import {IService} from "../shared/IService.sol";
|
47
|
-
import {Service} from "../shared/Service.sol";
|
48
25
|
|
49
26
|
|
50
27
|
contract ClaimService is
|
51
|
-
|
28
|
+
ComponentVerifyingService,
|
52
29
|
IClaimService
|
53
30
|
{
|
54
31
|
|
32
|
+
IPolicyService internal _policyService;
|
55
33
|
IPoolService internal _poolService;
|
56
34
|
|
57
35
|
function _initialize(
|
@@ -62,21 +40,17 @@ contract ClaimService is
|
|
62
40
|
virtual override
|
63
41
|
initializer()
|
64
42
|
{
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
43
|
+
(
|
44
|
+
address registryAddress,
|
45
|
+
address authority
|
46
|
+
) = abi.decode(data, (address, address));
|
69
47
|
|
70
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
71
49
|
|
50
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
72
51
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
73
52
|
|
74
|
-
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function getDomain() public pure override returns(ObjectType) {
|
79
|
-
return CLAIM();
|
53
|
+
_registerInterface(type(IClaimService).interfaceId);
|
80
54
|
}
|
81
55
|
|
82
56
|
function submit(
|
@@ -86,11 +60,15 @@ contract ClaimService is
|
|
86
60
|
)
|
87
61
|
external
|
88
62
|
virtual
|
63
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
89
64
|
returns (ClaimId claimId)
|
90
65
|
{
|
66
|
+
_checkNftType(policyNftId, POLICY());
|
67
|
+
|
91
68
|
(
|
92
|
-
|
93
|
-
|
69
|
+
,
|
70
|
+
IInstance instance,,
|
71
|
+
InstanceStore instanceStore,
|
94
72
|
IPolicy.PolicyInfo memory policyInfo
|
95
73
|
) = _verifyCallerWithPolicy(policyNftId);
|
96
74
|
|
@@ -99,6 +77,7 @@ contract ClaimService is
|
|
99
77
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
100
78
|
}
|
101
79
|
|
80
|
+
// TODO check claim amount > 0
|
102
81
|
// check policy including this claim is still within sum insured
|
103
82
|
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
104
83
|
revert ErrorClaimServiceClaimExceedsSumInsured(
|
@@ -109,23 +88,23 @@ contract ClaimService is
|
|
109
88
|
|
110
89
|
// create new claim
|
111
90
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
112
|
-
|
91
|
+
instanceStore.createClaim(
|
113
92
|
policyNftId,
|
114
93
|
claimId,
|
115
|
-
IPolicy.ClaimInfo(
|
116
|
-
claimAmount,
|
117
|
-
AmountLib.zero(),
|
118
|
-
0,
|
119
|
-
0,
|
120
|
-
claimData,
|
121
|
-
"",
|
122
|
-
TimestampLib.zero()));
|
94
|
+
IPolicy.ClaimInfo({
|
95
|
+
claimAmount: claimAmount,
|
96
|
+
paidAmount: AmountLib.zero(),
|
97
|
+
payoutsCount: 0,
|
98
|
+
openPayoutsCount: 0,
|
99
|
+
submissionData: claimData,
|
100
|
+
processData: "",
|
101
|
+
closedAt: TimestampLib.zero()}));
|
123
102
|
|
124
103
|
// update and save policy info with instance
|
104
|
+
// policy claim amount is only updated when claim is confirmed
|
125
105
|
policyInfo.claimsCount += 1;
|
126
106
|
policyInfo.openClaimsCount += 1;
|
127
|
-
|
128
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
107
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
129
108
|
|
130
109
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
131
110
|
}
|
@@ -139,26 +118,45 @@ contract ClaimService is
|
|
139
118
|
)
|
140
119
|
external
|
141
120
|
virtual
|
121
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
142
122
|
{
|
123
|
+
_checkNftType(policyNftId, POLICY());
|
124
|
+
|
143
125
|
(
|
126
|
+
NftId productNftId,
|
144
127
|
IInstance instance,
|
145
128
|
InstanceReader instanceReader,
|
129
|
+
InstanceStore instanceStore,
|
146
130
|
IPolicy.PolicyInfo memory policyInfo
|
147
131
|
) = _verifyCallerWithPolicy(policyNftId);
|
148
132
|
|
133
|
+
// TODO add check for confirmedAmount > 0 and does not lead to exceeding sum insured
|
134
|
+
|
149
135
|
// check/update claim info
|
150
136
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
151
137
|
claimInfo.claimAmount = confirmedAmount;
|
152
138
|
claimInfo.processData = data;
|
153
|
-
|
139
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
154
140
|
|
155
141
|
// update and save policy info with instance
|
156
142
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
157
|
-
|
143
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
144
|
+
|
145
|
+
// should policy still be active it needs to become expired
|
146
|
+
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
147
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
|
148
|
+
}
|
158
149
|
|
159
150
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
151
|
+
|
152
|
+
// callback to pool if applicable
|
153
|
+
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
154
|
+
|
155
|
+
// callback to policy holder if applicable
|
156
|
+
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
160
157
|
}
|
161
158
|
|
159
|
+
|
162
160
|
function decline(
|
163
161
|
NftId policyNftId,
|
164
162
|
ClaimId claimId,
|
@@ -166,10 +164,15 @@ contract ClaimService is
|
|
166
164
|
)
|
167
165
|
external
|
168
166
|
virtual
|
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,63 @@ 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
|
+
// TODO add test case
|
194
|
+
function revoke(
|
195
|
+
NftId policyNftId,
|
196
|
+
ClaimId claimId
|
197
|
+
)
|
198
|
+
external
|
199
|
+
virtual
|
200
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
201
|
+
{
|
202
|
+
_checkNftType(policyNftId, POLICY());
|
203
|
+
|
204
|
+
(
|
205
|
+
,
|
206
|
+
IInstance instance,
|
207
|
+
InstanceReader instanceReader,
|
208
|
+
InstanceStore instanceStore,
|
209
|
+
IPolicy.PolicyInfo memory policyInfo
|
210
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
211
|
+
|
212
|
+
// check/update claim info
|
213
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
214
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
215
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
216
|
+
|
217
|
+
// update and save policy info with instance
|
218
|
+
policyInfo.openClaimsCount -= 1;
|
219
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
220
|
+
|
221
|
+
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
222
|
+
}
|
223
|
+
|
224
|
+
|
189
225
|
function close(
|
190
226
|
NftId policyNftId,
|
191
227
|
ClaimId claimId
|
192
228
|
)
|
193
229
|
external
|
194
230
|
virtual
|
231
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
195
232
|
{
|
233
|
+
_checkNftType(policyNftId, POLICY());
|
234
|
+
|
196
235
|
(
|
236
|
+
,
|
197
237
|
IInstance instance,
|
198
238
|
InstanceReader instanceReader,
|
239
|
+
InstanceStore instanceStore,
|
199
240
|
IPolicy.PolicyInfo memory policyInfo
|
200
241
|
) = _verifyCallerWithPolicy(policyNftId);
|
201
242
|
|
@@ -220,55 +261,56 @@ contract ClaimService is
|
|
220
261
|
}
|
221
262
|
|
222
263
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
223
|
-
|
264
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
224
265
|
}
|
225
266
|
|
226
267
|
|
227
|
-
function
|
268
|
+
function createPayoutForBeneficiary(
|
228
269
|
NftId policyNftId,
|
229
270
|
ClaimId claimId,
|
230
271
|
Amount amount,
|
272
|
+
address beneficiary,
|
231
273
|
bytes memory data
|
232
274
|
)
|
233
275
|
external
|
276
|
+
virtual
|
277
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
234
278
|
returns (PayoutId payoutId)
|
235
279
|
{
|
236
|
-
(
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
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
|
280
|
+
_checkNftType(policyNftId, POLICY());
|
281
|
+
|
282
|
+
if (beneficiary == address(0)) {
|
283
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
284
|
+
}
|
248
285
|
|
249
|
-
|
250
|
-
// create payout info with instance
|
251
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
252
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
253
|
-
instance.getInstanceStore().createPayout(
|
286
|
+
return _createPayout(
|
254
287
|
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());
|
288
|
+
claimId,
|
289
|
+
amount,
|
290
|
+
beneficiary,
|
291
|
+
data);
|
292
|
+
}
|
266
293
|
|
267
|
-
// update and save policy info with instance
|
268
|
-
policyInfo.payoutAmount.add(amount);
|
269
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
270
294
|
|
271
|
-
|
295
|
+
function createPayout(
|
296
|
+
NftId policyNftId,
|
297
|
+
ClaimId claimId,
|
298
|
+
Amount amount,
|
299
|
+
bytes memory data
|
300
|
+
)
|
301
|
+
external
|
302
|
+
virtual
|
303
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
304
|
+
returns (PayoutId payoutId)
|
305
|
+
{
|
306
|
+
_checkNftType(policyNftId, POLICY());
|
307
|
+
|
308
|
+
return _createPayout(
|
309
|
+
policyNftId,
|
310
|
+
claimId,
|
311
|
+
amount,
|
312
|
+
address(0), // defaults to owner of policy nft
|
313
|
+
data);
|
272
314
|
}
|
273
315
|
|
274
316
|
|
@@ -278,10 +320,15 @@ contract ClaimService is
|
|
278
320
|
)
|
279
321
|
external
|
280
322
|
virtual
|
323
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
281
324
|
{
|
325
|
+
_checkNftType(policyNftId, POLICY());
|
326
|
+
|
282
327
|
(
|
328
|
+
,
|
283
329
|
IInstance instance,
|
284
330
|
InstanceReader instanceReader,
|
331
|
+
InstanceStore instanceStore,
|
285
332
|
IPolicy.PolicyInfo memory policyInfo
|
286
333
|
) = _verifyCallerWithPolicy(policyNftId);
|
287
334
|
|
@@ -290,50 +337,128 @@ contract ClaimService is
|
|
290
337
|
|
291
338
|
// update and save payout info with instance
|
292
339
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
293
|
-
|
340
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
294
341
|
|
295
|
-
// TODO update and save claim info with instance
|
296
|
-
ClaimId claimId = payoutId.toClaimId();
|
297
342
|
Amount payoutAmount = payoutInfo.amount;
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
343
|
+
|
344
|
+
{
|
345
|
+
ClaimId claimId = payoutId.toClaimId();
|
346
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
347
|
+
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
348
|
+
claimInfo.openPayoutsCount -= 1;
|
349
|
+
|
350
|
+
// check if this payout is closing the linked claim
|
351
|
+
// update claim and policy info accordingly
|
352
|
+
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
353
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
354
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
355
|
+
|
356
|
+
policyInfo.openClaimsCount -= 1;
|
357
|
+
} else {
|
358
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
359
|
+
}
|
311
360
|
}
|
312
361
|
|
313
362
|
// update and save policy info with instance
|
314
363
|
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
315
|
-
|
364
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
316
365
|
|
317
366
|
// inform pool about payout
|
318
|
-
_poolService.
|
319
|
-
|
367
|
+
_poolService.processPayout(
|
368
|
+
instance,
|
369
|
+
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
370
|
+
policyNftId,
|
371
|
+
policyInfo,
|
372
|
+
payoutAmount);
|
373
|
+
|
320
374
|
// transfer payout token and fee
|
375
|
+
{
|
376
|
+
(
|
377
|
+
Amount netPayoutAmount,
|
378
|
+
Amount processingFeeAmount,
|
379
|
+
address beneficiary
|
380
|
+
) = _calculatePayoutAmount(
|
381
|
+
instanceReader,
|
382
|
+
policyNftId,
|
383
|
+
policyInfo,
|
384
|
+
payoutInfo);
|
385
|
+
|
386
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
|
387
|
+
|
388
|
+
{
|
389
|
+
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
390
|
+
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
391
|
+
poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
|
392
|
+
|
393
|
+
// TODO add 2nd token tx if processingFeeAmount > 0
|
394
|
+
}
|
395
|
+
|
396
|
+
// callback to policy holder if applicable
|
397
|
+
_policyHolderPayoutExecuted(policyNftId, payoutId, beneficiary, payoutAmount);
|
398
|
+
}
|
399
|
+
}
|
400
|
+
|
401
|
+
// internal functions
|
402
|
+
|
403
|
+
|
404
|
+
function _createPayout(
|
405
|
+
NftId policyNftId,
|
406
|
+
ClaimId claimId,
|
407
|
+
Amount amount,
|
408
|
+
address beneficiary,
|
409
|
+
bytes memory data
|
410
|
+
)
|
411
|
+
internal
|
412
|
+
virtual
|
413
|
+
returns (PayoutId payoutId)
|
414
|
+
{
|
321
415
|
(
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
416
|
+
,
|
417
|
+
,
|
418
|
+
InstanceReader instanceReader,
|
419
|
+
InstanceStore instanceStore,
|
420
|
+
IPolicy.PolicyInfo memory policyInfo
|
421
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
422
|
+
|
423
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
424
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
425
|
+
|
426
|
+
// TODO add checks
|
427
|
+
// claim needs to be open
|
428
|
+
// claim.paidAmount + amount <= claim.claimAmount
|
329
429
|
|
330
|
-
//
|
430
|
+
// check/update claim info
|
431
|
+
// create payout info with instance
|
432
|
+
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
433
|
+
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
434
|
+
if (beneficiary == address(0)) {
|
435
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
436
|
+
}
|
331
437
|
|
332
|
-
|
438
|
+
instanceStore.createPayout(
|
439
|
+
policyNftId,
|
440
|
+
payoutId,
|
441
|
+
IPolicy.PayoutInfo({
|
442
|
+
claimId: payoutId.toClaimId(),
|
443
|
+
amount: amount,
|
444
|
+
beneficiary: beneficiary,
|
445
|
+
data: data,
|
446
|
+
paidAt: TimestampLib.zero()}));
|
447
|
+
|
448
|
+
// update and save claim info with instance
|
449
|
+
claimInfo.payoutsCount += 1;
|
450
|
+
claimInfo.openPayoutsCount += 1;
|
451
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
452
|
+
|
453
|
+
// update and save policy info with instance
|
454
|
+
policyInfo.payoutAmount.add(amount);
|
455
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
456
|
+
|
457
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
333
458
|
}
|
334
459
|
|
335
|
-
|
336
|
-
function
|
460
|
+
|
461
|
+
function _calculatePayoutAmount(
|
337
462
|
InstanceReader instanceReader,
|
338
463
|
NftId policyNftId,
|
339
464
|
IPolicy.PolicyInfo memory policyInfo,
|
@@ -342,6 +467,7 @@ contract ClaimService is
|
|
342
467
|
internal
|
343
468
|
returns (
|
344
469
|
Amount netPayoutAmount,
|
470
|
+
Amount processingFeeAmount,
|
345
471
|
address beneficiary
|
346
472
|
)
|
347
473
|
{
|
@@ -349,58 +475,44 @@ contract ClaimService is
|
|
349
475
|
|
350
476
|
if(payoutAmount.gtz()) {
|
351
477
|
NftId productNftId = policyInfo.productNftId;
|
352
|
-
ISetup.ProductSetupInfo memory setupInfo = instanceReader.getProductSetupInfo(productNftId);
|
353
478
|
|
354
479
|
// get pool component info from policy or product
|
355
480
|
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
356
481
|
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
357
482
|
|
358
483
|
netPayoutAmount = payoutAmount;
|
359
|
-
beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
|
360
484
|
|
361
|
-
if(
|
362
|
-
|
363
|
-
|
364
|
-
|
485
|
+
if (payoutInfo.beneficiary == address(0)) {
|
486
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
487
|
+
} else {
|
488
|
+
beneficiary = payoutInfo.beneficiary;
|
365
489
|
}
|
366
490
|
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
491
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
492
|
+
if(FeeLib.gtz(productInfo.processingFee)) {
|
493
|
+
// TODO calculate and set net payout and processing fees
|
494
|
+
}
|
371
495
|
}
|
372
496
|
}
|
373
497
|
|
374
|
-
// internal functions
|
375
|
-
|
376
|
-
function _getBeneficiary(
|
377
|
-
NftId policyNftId,
|
378
|
-
ClaimId claimId
|
379
|
-
)
|
380
|
-
internal
|
381
|
-
returns (address beneficiary)
|
382
|
-
{
|
383
|
-
// TODO check if owner is IPolicyHolder
|
384
|
-
// if so, obtain beneficiary from this contract
|
385
|
-
|
386
|
-
// default beneficiary is policy nft owner
|
387
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
388
|
-
}
|
389
|
-
|
390
498
|
|
391
499
|
function _verifyCallerWithPolicy(
|
392
500
|
NftId policyNftId
|
393
501
|
)
|
394
502
|
internal
|
503
|
+
view
|
504
|
+
virtual
|
395
505
|
returns (
|
506
|
+
NftId productNftId,
|
396
507
|
IInstance instance,
|
397
508
|
InstanceReader instanceReader,
|
509
|
+
InstanceStore instanceStore,
|
398
510
|
IPolicy.PolicyInfo memory policyInfo
|
399
511
|
)
|
400
512
|
{
|
401
|
-
|
402
|
-
(productNftId,, instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
513
|
+
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
403
514
|
instanceReader = instance.getInstanceReader();
|
515
|
+
instanceStore = instance.getInstanceStore();
|
404
516
|
|
405
517
|
// check caller(product) policy match
|
406
518
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -434,9 +546,67 @@ contract ClaimService is
|
|
434
546
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
435
547
|
}
|
436
548
|
|
437
|
-
function
|
438
|
-
|
439
|
-
|
440
|
-
|
549
|
+
function _processConfirmedClaimByPool(
|
550
|
+
InstanceReader instanceReader,
|
551
|
+
NftId productNftId,
|
552
|
+
NftId policyNftId,
|
553
|
+
ClaimId claimId,
|
554
|
+
Amount amount
|
555
|
+
)
|
556
|
+
internal
|
557
|
+
{
|
558
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
559
|
+
if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
|
560
|
+
address poolAddress = getRegistry().getObjectAddress(poolNftId);
|
561
|
+
IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
|
562
|
+
}
|
563
|
+
}
|
564
|
+
|
565
|
+
|
566
|
+
function _policyHolderClaimConfirmed(
|
567
|
+
NftId policyNftId,
|
568
|
+
ClaimId claimId,
|
569
|
+
Amount confirmedAmount
|
570
|
+
)
|
571
|
+
internal
|
572
|
+
{
|
573
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
574
|
+
if(address(policyHolder) != address(0)) {
|
575
|
+
policyHolder.claimConfirmed(policyNftId, claimId, confirmedAmount);
|
576
|
+
}
|
577
|
+
}
|
578
|
+
|
579
|
+
|
580
|
+
function _policyHolderPayoutExecuted(
|
581
|
+
NftId policyNftId,
|
582
|
+
PayoutId payoutId,
|
583
|
+
address beneficiary,
|
584
|
+
Amount payoutAmount
|
585
|
+
)
|
586
|
+
internal
|
587
|
+
{
|
588
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
589
|
+
if(address(policyHolder) != address(0)) {
|
590
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
591
|
+
}
|
592
|
+
}
|
593
|
+
|
594
|
+
|
595
|
+
function _getPolicyHolder(NftId policyNftId)
|
596
|
+
internal
|
597
|
+
view
|
598
|
+
returns (IPolicyHolder policyHolder)
|
599
|
+
{
|
600
|
+
address policyHolderAddress = getRegistry().ownerOf(policyNftId);
|
601
|
+
policyHolder = IPolicyHolder(policyHolderAddress);
|
602
|
+
|
603
|
+
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
604
|
+
policyHolder = IPolicyHolder(address(0));
|
605
|
+
}
|
606
|
+
}
|
607
|
+
|
608
|
+
|
609
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
610
|
+
return CLAIM();
|
441
611
|
}
|
442
612
|
}
|