@etherisc/gif-next 0.0.2-eadf4ad-932 → 0.0.2-eae5e95-691
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 +1415 -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 +230 -545
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +315 -432
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +214 -290
- 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 +1551 -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 +2090 -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 +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -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 +113 -97
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +171 -85
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +120 -207
- 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 +245 -229
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -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 +1052 -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 +783 -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 +920 -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 +1312 -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 +186 -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 +235 -375
- 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 +269 -565
- 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 +112 -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 +99 -76
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1186 -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 +141 -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 +355 -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 +124 -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 +128 -93
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +377 -431
- 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 +391 -45
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +123 -64
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +0 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +789 -60
- 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 +179 -185
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +86 -74
- 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 +136 -271
- 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 +105 -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 +718 -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 +842 -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 +1460 -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 +1901 -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 +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +109 -66
- 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 +154 -154
- package/contracts/distribution/DistributionService.sol +175 -172
- package/contracts/distribution/DistributionServiceManager.sol +8 -23
- 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 +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -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 -33
- package/contracts/instance/Instance.sol +131 -122
- 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 +243 -134
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- 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 +278 -201
- package/contracts/pool/BundleServiceManager.sol +8 -11
- 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 +357 -236
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +148 -84
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +293 -145
- package/contracts/product/ClaimServiceManager.sol +6 -6
- 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 +504 -199
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +103 -82
- package/contracts/product/PricingServiceManager.sol +5 -8
- 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 +72 -36
- package/contracts/registry/IRegistry.sol +85 -22
- package/contracts/registry/IRegistryService.sol +10 -6
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +433 -187
- package/contracts/registry/RegistryAdmin.sol +448 -0
- package/contracts/registry/RegistryService.sol +76 -66
- package/contracts/registry/RegistryServiceManager.sol +6 -25
- 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 +153 -148
- package/contracts/shared/ComponentService.sol +688 -94
- 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 +27 -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 +273 -49
- package/contracts/staking/StakingServiceManager.sol +11 -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 -75
- 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 +76 -39
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +9 -5
- 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 -679
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -238
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -846
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/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 -212
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/RegistryAccessManager.sol +0 -132
- package/contracts/registry/ReleaseManager.sol +0 -382
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → 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(
|
@@ -63,21 +41,16 @@ contract ClaimService is
|
|
63
41
|
initializer()
|
64
42
|
{
|
65
43
|
(
|
66
|
-
address registryAddress
|
67
|
-
//address managerAddress
|
44
|
+
address registryAddress,
|
68
45
|
address authority
|
69
|
-
) = abi.decode(data, (address, address
|
46
|
+
) = abi.decode(data, (address, address));
|
70
47
|
|
71
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
72
49
|
|
50
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
73
51
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
74
52
|
|
75
|
-
|
76
|
-
}
|
77
|
-
|
78
|
-
|
79
|
-
function getDomain() public pure override returns(ObjectType) {
|
80
|
-
return CLAIM();
|
53
|
+
_registerInterface(type(IClaimService).interfaceId);
|
81
54
|
}
|
82
55
|
|
83
56
|
function submit(
|
@@ -87,11 +60,13 @@ contract ClaimService is
|
|
87
60
|
)
|
88
61
|
external
|
89
62
|
virtual
|
63
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
90
64
|
returns (ClaimId claimId)
|
91
65
|
{
|
92
66
|
(
|
93
|
-
|
94
|
-
|
67
|
+
,
|
68
|
+
IInstance instance,,
|
69
|
+
InstanceStore instanceStore,
|
95
70
|
IPolicy.PolicyInfo memory policyInfo
|
96
71
|
) = _verifyCallerWithPolicy(policyNftId);
|
97
72
|
|
@@ -100,6 +75,7 @@ contract ClaimService is
|
|
100
75
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
101
76
|
}
|
102
77
|
|
78
|
+
// TODO check claim amount > 0
|
103
79
|
// check policy including this claim is still within sum insured
|
104
80
|
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
105
81
|
revert ErrorClaimServiceClaimExceedsSumInsured(
|
@@ -110,23 +86,23 @@ contract ClaimService is
|
|
110
86
|
|
111
87
|
// create new claim
|
112
88
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
113
|
-
|
89
|
+
instanceStore.createClaim(
|
114
90
|
policyNftId,
|
115
91
|
claimId,
|
116
|
-
IPolicy.ClaimInfo(
|
117
|
-
claimAmount,
|
118
|
-
AmountLib.zero(),
|
119
|
-
0,
|
120
|
-
0,
|
121
|
-
claimData,
|
122
|
-
"",
|
123
|
-
TimestampLib.zero()));
|
92
|
+
IPolicy.ClaimInfo({
|
93
|
+
claimAmount: claimAmount,
|
94
|
+
paidAmount: AmountLib.zero(),
|
95
|
+
payoutsCount: 0,
|
96
|
+
openPayoutsCount: 0,
|
97
|
+
submissionData: claimData,
|
98
|
+
processData: "",
|
99
|
+
closedAt: TimestampLib.zero()}));
|
124
100
|
|
125
101
|
// update and save policy info with instance
|
102
|
+
// policy claim amount is only updated when claim is confirmed
|
126
103
|
policyInfo.claimsCount += 1;
|
127
104
|
policyInfo.openClaimsCount += 1;
|
128
|
-
|
129
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
105
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
130
106
|
|
131
107
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
132
108
|
}
|
@@ -140,26 +116,43 @@ contract ClaimService is
|
|
140
116
|
)
|
141
117
|
external
|
142
118
|
virtual
|
119
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
143
120
|
{
|
144
121
|
(
|
122
|
+
NftId productNftId,
|
145
123
|
IInstance instance,
|
146
124
|
InstanceReader instanceReader,
|
125
|
+
InstanceStore instanceStore,
|
147
126
|
IPolicy.PolicyInfo memory policyInfo
|
148
127
|
) = _verifyCallerWithPolicy(policyNftId);
|
149
128
|
|
129
|
+
// TODO add check for confirmedAmount > 0 and does not lead to exceeding sum insured
|
130
|
+
|
150
131
|
// check/update claim info
|
151
132
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
152
133
|
claimInfo.claimAmount = confirmedAmount;
|
153
134
|
claimInfo.processData = data;
|
154
|
-
|
135
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
155
136
|
|
156
137
|
// update and save policy info with instance
|
157
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
158
|
-
|
139
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
140
|
+
|
141
|
+
// should policy still be active it needs to become expired
|
142
|
+
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
143
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
|
144
|
+
}
|
159
145
|
|
160
146
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
147
|
+
|
148
|
+
// callback to pool if applicable
|
149
|
+
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
150
|
+
|
151
|
+
// callback to policy holder if applicable
|
152
|
+
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
161
153
|
}
|
162
154
|
|
155
|
+
|
163
156
|
function decline(
|
164
157
|
NftId policyNftId,
|
165
158
|
ClaimId claimId,
|
@@ -167,10 +160,13 @@ contract ClaimService is
|
|
167
160
|
)
|
168
161
|
external
|
169
162
|
virtual
|
163
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
170
164
|
{
|
171
165
|
(
|
166
|
+
,
|
172
167
|
IInstance instance,
|
173
168
|
InstanceReader instanceReader,
|
169
|
+
InstanceStore instanceStore,
|
174
170
|
IPolicy.PolicyInfo memory policyInfo
|
175
171
|
) = _verifyCallerWithPolicy(policyNftId);
|
176
172
|
|
@@ -178,25 +174,59 @@ contract ClaimService is
|
|
178
174
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
179
175
|
claimInfo.processData = data;
|
180
176
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
181
|
-
|
177
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
182
178
|
|
183
179
|
// update and save policy info with instance
|
184
180
|
policyInfo.openClaimsCount -= 1;
|
185
|
-
|
181
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
186
182
|
|
187
183
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
188
184
|
}
|
189
185
|
|
186
|
+
|
187
|
+
// TODO add test case
|
188
|
+
function revoke(
|
189
|
+
NftId policyNftId,
|
190
|
+
ClaimId claimId
|
191
|
+
)
|
192
|
+
external
|
193
|
+
virtual
|
194
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
195
|
+
{
|
196
|
+
(
|
197
|
+
,
|
198
|
+
IInstance instance,
|
199
|
+
InstanceReader instanceReader,
|
200
|
+
InstanceStore instanceStore,
|
201
|
+
IPolicy.PolicyInfo memory policyInfo
|
202
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
203
|
+
|
204
|
+
// check/update claim info
|
205
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
206
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
207
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
208
|
+
|
209
|
+
// update and save policy info with instance
|
210
|
+
policyInfo.openClaimsCount -= 1;
|
211
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
212
|
+
|
213
|
+
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
214
|
+
}
|
215
|
+
|
216
|
+
|
190
217
|
function close(
|
191
218
|
NftId policyNftId,
|
192
219
|
ClaimId claimId
|
193
220
|
)
|
194
221
|
external
|
195
222
|
virtual
|
223
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
196
224
|
{
|
197
225
|
(
|
226
|
+
,
|
198
227
|
IInstance instance,
|
199
228
|
InstanceReader instanceReader,
|
229
|
+
InstanceStore instanceStore,
|
200
230
|
IPolicy.PolicyInfo memory policyInfo
|
201
231
|
) = _verifyCallerWithPolicy(policyNftId);
|
202
232
|
|
@@ -221,55 +251,52 @@ contract ClaimService is
|
|
221
251
|
}
|
222
252
|
|
223
253
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
224
|
-
|
254
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
225
255
|
}
|
226
256
|
|
227
257
|
|
228
|
-
function
|
258
|
+
function createPayoutForBeneficiary(
|
229
259
|
NftId policyNftId,
|
230
260
|
ClaimId claimId,
|
231
261
|
Amount amount,
|
262
|
+
address beneficiary,
|
232
263
|
bytes memory data
|
233
264
|
)
|
234
265
|
external
|
266
|
+
virtual
|
267
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
235
268
|
returns (PayoutId payoutId)
|
236
269
|
{
|
237
|
-
(
|
238
|
-
|
239
|
-
|
240
|
-
IPolicy.PolicyInfo memory policyInfo
|
241
|
-
) = _verifyCallerWithPolicy(policyNftId);
|
242
|
-
|
243
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
244
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
245
|
-
|
246
|
-
// TODO add checks
|
247
|
-
// claim needs to be open
|
248
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
270
|
+
if (beneficiary == address(0)) {
|
271
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
272
|
+
}
|
249
273
|
|
250
|
-
|
251
|
-
// create payout info with instance
|
252
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
253
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
254
|
-
instance.getInstanceStore().createPayout(
|
274
|
+
return _createPayout(
|
255
275
|
policyNftId,
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
TimestampLib.zero()));
|
262
|
-
|
263
|
-
// update and save claim info with instance
|
264
|
-
claimInfo.payoutsCount += 1;
|
265
|
-
claimInfo.openPayoutsCount += 1;
|
266
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
276
|
+
claimId,
|
277
|
+
amount,
|
278
|
+
beneficiary,
|
279
|
+
data);
|
280
|
+
}
|
267
281
|
|
268
|
-
// update and save policy info with instance
|
269
|
-
policyInfo.payoutAmount.add(amount);
|
270
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
271
282
|
|
272
|
-
|
283
|
+
function createPayout(
|
284
|
+
NftId policyNftId,
|
285
|
+
ClaimId claimId,
|
286
|
+
Amount amount,
|
287
|
+
bytes memory data
|
288
|
+
)
|
289
|
+
external
|
290
|
+
virtual
|
291
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
292
|
+
returns (PayoutId payoutId)
|
293
|
+
{
|
294
|
+
return _createPayout(
|
295
|
+
policyNftId,
|
296
|
+
claimId,
|
297
|
+
amount,
|
298
|
+
address(0), // defaults to owner of policy nft
|
299
|
+
data);
|
273
300
|
}
|
274
301
|
|
275
302
|
|
@@ -279,10 +306,13 @@ contract ClaimService is
|
|
279
306
|
)
|
280
307
|
external
|
281
308
|
virtual
|
309
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
282
310
|
{
|
283
311
|
(
|
312
|
+
,
|
284
313
|
IInstance instance,
|
285
314
|
InstanceReader instanceReader,
|
315
|
+
InstanceStore instanceStore,
|
286
316
|
IPolicy.PolicyInfo memory policyInfo
|
287
317
|
) = _verifyCallerWithPolicy(policyNftId);
|
288
318
|
|
@@ -291,9 +321,8 @@ contract ClaimService is
|
|
291
321
|
|
292
322
|
// update and save payout info with instance
|
293
323
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
294
|
-
|
324
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
295
325
|
|
296
|
-
// TODO update and save claim info with instance
|
297
326
|
ClaimId claimId = payoutId.toClaimId();
|
298
327
|
Amount payoutAmount = payoutInfo.amount;
|
299
328
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
@@ -303,38 +332,112 @@ contract ClaimService is
|
|
303
332
|
// check if this payout is closing the linked claim
|
304
333
|
// update claim and policy info accordingly
|
305
334
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
306
|
-
claimInfo.closedAt
|
307
|
-
|
335
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
336
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
308
337
|
|
309
338
|
policyInfo.openClaimsCount -= 1;
|
310
339
|
} else {
|
311
|
-
|
340
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
312
341
|
}
|
313
342
|
|
314
343
|
// update and save policy info with instance
|
315
344
|
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
316
|
-
|
345
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
317
346
|
|
318
347
|
// inform pool about payout
|
319
|
-
_poolService.
|
320
|
-
|
348
|
+
_poolService.processPayout(
|
349
|
+
instance,
|
350
|
+
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
351
|
+
policyNftId,
|
352
|
+
policyInfo,
|
353
|
+
payoutAmount);
|
354
|
+
|
321
355
|
// transfer payout token and fee
|
322
356
|
(
|
323
357
|
Amount netPayoutAmount,
|
358
|
+
Amount processingFeeAmount,
|
324
359
|
address beneficiary
|
325
|
-
) =
|
360
|
+
) = _calculatePayoutAmount(
|
326
361
|
instanceReader,
|
327
362
|
policyNftId,
|
328
363
|
policyInfo,
|
329
364
|
payoutInfo);
|
330
365
|
|
331
|
-
|
366
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
|
367
|
+
|
368
|
+
{
|
369
|
+
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
370
|
+
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
371
|
+
poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
|
372
|
+
|
373
|
+
// TODO add 2nd token tx if processingFeeAmount > 0
|
374
|
+
}
|
375
|
+
|
376
|
+
// callback to policy holder if applicable
|
377
|
+
_policyHolderPayoutExecuted(policyNftId, payoutId, beneficiary, payoutAmount);
|
378
|
+
}
|
379
|
+
|
380
|
+
// internal functions
|
381
|
+
|
382
|
+
|
383
|
+
function _createPayout(
|
384
|
+
NftId policyNftId,
|
385
|
+
ClaimId claimId,
|
386
|
+
Amount amount,
|
387
|
+
address beneficiary,
|
388
|
+
bytes memory data
|
389
|
+
)
|
390
|
+
internal
|
391
|
+
virtual
|
392
|
+
returns (PayoutId payoutId)
|
393
|
+
{
|
394
|
+
(
|
395
|
+
,
|
396
|
+
,
|
397
|
+
InstanceReader instanceReader,
|
398
|
+
InstanceStore instanceStore,
|
399
|
+
IPolicy.PolicyInfo memory policyInfo
|
400
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
332
401
|
|
333
|
-
|
402
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
403
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
404
|
+
|
405
|
+
// TODO add checks
|
406
|
+
// claim needs to be open
|
407
|
+
// claim.paidAmount + amount <= claim.claimAmount
|
408
|
+
|
409
|
+
// check/update claim info
|
410
|
+
// create payout info with instance
|
411
|
+
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
412
|
+
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
413
|
+
if (beneficiary == address(0)) {
|
414
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
415
|
+
}
|
416
|
+
|
417
|
+
instanceStore.createPayout(
|
418
|
+
policyNftId,
|
419
|
+
payoutId,
|
420
|
+
IPolicy.PayoutInfo({
|
421
|
+
claimId: payoutId.toClaimId(),
|
422
|
+
amount: amount,
|
423
|
+
beneficiary: beneficiary,
|
424
|
+
data: data,
|
425
|
+
paidAt: TimestampLib.zero()}));
|
426
|
+
|
427
|
+
// update and save claim info with instance
|
428
|
+
claimInfo.payoutsCount += 1;
|
429
|
+
claimInfo.openPayoutsCount += 1;
|
430
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
431
|
+
|
432
|
+
// update and save policy info with instance
|
433
|
+
policyInfo.payoutAmount.add(amount);
|
434
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
435
|
+
|
436
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
334
437
|
}
|
335
438
|
|
336
|
-
|
337
|
-
function
|
439
|
+
|
440
|
+
function _calculatePayoutAmount(
|
338
441
|
InstanceReader instanceReader,
|
339
442
|
NftId policyNftId,
|
340
443
|
IPolicy.PolicyInfo memory policyInfo,
|
@@ -343,6 +446,7 @@ contract ClaimService is
|
|
343
446
|
internal
|
344
447
|
returns (
|
345
448
|
Amount netPayoutAmount,
|
449
|
+
Amount processingFeeAmount,
|
346
450
|
address beneficiary
|
347
451
|
)
|
348
452
|
{
|
@@ -350,58 +454,44 @@ contract ClaimService is
|
|
350
454
|
|
351
455
|
if(payoutAmount.gtz()) {
|
352
456
|
NftId productNftId = policyInfo.productNftId;
|
353
|
-
ISetup.ProductSetupInfo memory setupInfo = instanceReader.getProductSetupInfo(productNftId);
|
354
457
|
|
355
458
|
// get pool component info from policy or product
|
356
459
|
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
357
460
|
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
358
461
|
|
359
462
|
netPayoutAmount = payoutAmount;
|
360
|
-
beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
|
361
463
|
|
362
|
-
if(
|
363
|
-
|
364
|
-
|
365
|
-
|
464
|
+
if (payoutInfo.beneficiary == address(0)) {
|
465
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
466
|
+
} else {
|
467
|
+
beneficiary = payoutInfo.beneficiary;
|
366
468
|
}
|
367
469
|
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
470
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
471
|
+
if(FeeLib.gtz(productInfo.processingFee)) {
|
472
|
+
// TODO calculate and set net payout and processing fees
|
473
|
+
}
|
372
474
|
}
|
373
475
|
}
|
374
476
|
|
375
|
-
// internal functions
|
376
|
-
|
377
|
-
function _getBeneficiary(
|
378
|
-
NftId policyNftId,
|
379
|
-
ClaimId claimId
|
380
|
-
)
|
381
|
-
internal
|
382
|
-
returns (address beneficiary)
|
383
|
-
{
|
384
|
-
// TODO check if owner is IPolicyHolder
|
385
|
-
// if so, obtain beneficiary from this contract
|
386
|
-
|
387
|
-
// default beneficiary is policy nft owner
|
388
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
389
|
-
}
|
390
|
-
|
391
477
|
|
392
478
|
function _verifyCallerWithPolicy(
|
393
479
|
NftId policyNftId
|
394
480
|
)
|
395
481
|
internal
|
482
|
+
view
|
483
|
+
virtual
|
396
484
|
returns (
|
485
|
+
NftId productNftId,
|
397
486
|
IInstance instance,
|
398
487
|
InstanceReader instanceReader,
|
488
|
+
InstanceStore instanceStore,
|
399
489
|
IPolicy.PolicyInfo memory policyInfo
|
400
490
|
)
|
401
491
|
{
|
402
|
-
|
403
|
-
(productNftId,, instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
492
|
+
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
404
493
|
instanceReader = instance.getInstanceReader();
|
494
|
+
instanceStore = instance.getInstanceStore();
|
405
495
|
|
406
496
|
// check caller(product) policy match
|
407
497
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -435,9 +525,67 @@ contract ClaimService is
|
|
435
525
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
436
526
|
}
|
437
527
|
|
438
|
-
function
|
439
|
-
|
440
|
-
|
441
|
-
|
528
|
+
function _processConfirmedClaimByPool(
|
529
|
+
InstanceReader instanceReader,
|
530
|
+
NftId productNftId,
|
531
|
+
NftId policyNftId,
|
532
|
+
ClaimId claimId,
|
533
|
+
Amount amount
|
534
|
+
)
|
535
|
+
internal
|
536
|
+
{
|
537
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
538
|
+
if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
|
539
|
+
address poolAddress = getRegistry().getObjectAddress(poolNftId);
|
540
|
+
IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
|
541
|
+
}
|
542
|
+
}
|
543
|
+
|
544
|
+
|
545
|
+
function _policyHolderClaimConfirmed(
|
546
|
+
NftId policyNftId,
|
547
|
+
ClaimId claimId,
|
548
|
+
Amount confirmedAmount
|
549
|
+
)
|
550
|
+
internal
|
551
|
+
{
|
552
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
553
|
+
if(address(policyHolder) != address(0)) {
|
554
|
+
policyHolder.claimConfirmed(policyNftId, claimId, confirmedAmount);
|
555
|
+
}
|
556
|
+
}
|
557
|
+
|
558
|
+
|
559
|
+
function _policyHolderPayoutExecuted(
|
560
|
+
NftId policyNftId,
|
561
|
+
PayoutId payoutId,
|
562
|
+
address beneficiary,
|
563
|
+
Amount payoutAmount
|
564
|
+
)
|
565
|
+
internal
|
566
|
+
{
|
567
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
568
|
+
if(address(policyHolder) != address(0)) {
|
569
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
570
|
+
}
|
571
|
+
}
|
572
|
+
|
573
|
+
|
574
|
+
function _getPolicyHolder(NftId policyNftId)
|
575
|
+
internal
|
576
|
+
view
|
577
|
+
returns (IPolicyHolder policyHolder)
|
578
|
+
{
|
579
|
+
address policyHolderAddress = getRegistry().ownerOf(policyNftId);
|
580
|
+
policyHolder = IPolicyHolder(policyHolderAddress);
|
581
|
+
|
582
|
+
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
583
|
+
policyHolder = IPolicyHolder(address(0));
|
584
|
+
}
|
585
|
+
}
|
586
|
+
|
587
|
+
|
588
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
589
|
+
return CLAIM();
|
442
590
|
}
|
443
591
|
}
|