@etherisc/gif-next 0.0.2-8bdd2eb-413 → 0.0.2-8c1d8cd-727
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 +49 -4
- 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/authorization/IAccess.sol/IAccess.json +10 -0
- 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/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json} +28 -25
- 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 +133 -501
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +319 -229
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +115 -103
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +164 -210
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +194 -47
- 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 +2077 -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 +105 -103
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -111
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +108 -243
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1210 -265
- 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 +682 -189
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +210 -268
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -95
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +502 -282
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +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/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +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 +517 -157
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +176 -88
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +271 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +125 -319
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +410 -192
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +165 -632
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +524 -331
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -83
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +95 -158
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +79 -91
- 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 +322 -169
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +126 -98
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +47 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +189 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +336 -118
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +127 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +154 -137
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +451 -295
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -95
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +207 -283
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -112
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +168 -434
- 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 +311 -55
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +55 -146
- 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 +537 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1640 -161
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +96 -265
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +74 -70
- 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 +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +65 -236
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +532 -239
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +51 -103
- 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 +55 -54
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +487 -12
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +98 -80
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +42 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +111 -318
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- 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 +51 -103
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +78 -28
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +168 -325
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +103 -104
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +123 -198
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +76 -92
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -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 +50 -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 +140 -116
- package/contracts/distribution/DistributionService.sol +140 -83
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +23 -3
- 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 +418 -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 +28 -41
- package/contracts/instance/IInstanceService.sol +27 -36
- package/contracts/instance/Instance.sol +124 -127
- package/contracts/instance/InstanceAdmin.sol +216 -270
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +162 -32
- package/contracts/instance/InstanceService.sol +177 -128
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +49 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- 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/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +10 -11
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- 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 +284 -87
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +42 -5
- package/contracts/pool/IPoolComponent.sol +24 -68
- package/contracts/pool/IPoolService.sol +56 -39
- package/contracts/pool/Pool.sol +184 -148
- package/contracts/pool/PoolService.sol +262 -171
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +75 -70
- 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 +321 -151
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +34 -4
- package/contracts/product/IPolicyService.sol +34 -32
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +26 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +424 -202
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +59 -60
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +211 -133
- package/contracts/product/{ProductService.sol → RiskService.sol} +18 -46
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +69 -22
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +354 -213
- package/contracts/registry/RegistryAdmin.sol +360 -149
- package/contracts/registry/RegistryService.sol +44 -69
- package/contracts/registry/RegistryServiceManager.sol +4 -9
- 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 +2 -2
- package/contracts/shared/Component.sol +48 -61
- package/contracts/shared/ComponentService.sol +322 -173
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +36 -21
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +10 -6
- package/contracts/shared/IComponentService.sol +40 -11
- package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +106 -37
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -63
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +43 -36
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +22 -14
- package/contracts/staking/StakeManagerLib.sol +70 -25
- package/contracts/staking/Staking.sol +86 -140
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +69 -82
- package/contracts/staking/StakingServiceManager.sol +4 -5
- package/contracts/staking/StakingStore.sol +93 -60
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +175 -68
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +97 -78
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -1
- 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 +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +9 -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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- 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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -599
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,48 +1,27 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
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
|
-
|
19
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
20
|
-
|
21
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
22
|
-
import {Versionable} from "../shared/Versionable.sol";
|
23
|
-
|
24
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
25
|
-
import {
|
26
|
-
import {
|
27
|
-
import {
|
28
|
-
import {
|
29
|
-
import {
|
30
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
31
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
32
|
-
import {ReferralId} from "../type/Referral.sol";
|
33
|
-
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";
|
34
10
|
import {StateId} from "../type/StateId.sol";
|
35
11
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
36
12
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
37
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
38
|
-
|
39
13
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
14
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
40
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
|
-
import {
|
16
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
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";
|
43
24
|
import {IPoolService} from "../pool/IPoolService.sol";
|
44
|
-
import {IService} from "../shared/IService.sol";
|
45
|
-
import {Service} from "../shared/Service.sol";
|
46
25
|
|
47
26
|
|
48
27
|
contract ClaimService is
|
@@ -50,6 +29,7 @@ contract ClaimService is
|
|
50
29
|
IClaimService
|
51
30
|
{
|
52
31
|
|
32
|
+
IPolicyService internal _policyService;
|
53
33
|
IPoolService internal _poolService;
|
54
34
|
|
55
35
|
function _initialize(
|
@@ -61,21 +41,16 @@ contract ClaimService is
|
|
61
41
|
initializer()
|
62
42
|
{
|
63
43
|
(
|
64
|
-
address registryAddress
|
65
|
-
//address managerAddress
|
44
|
+
address registryAddress,
|
66
45
|
address authority
|
67
|
-
) = abi.decode(data, (address, address
|
46
|
+
) = abi.decode(data, (address, address));
|
68
47
|
|
69
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
70
49
|
|
50
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
71
51
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
72
52
|
|
73
|
-
|
74
|
-
}
|
75
|
-
|
76
|
-
|
77
|
-
function getDomain() public pure override returns(ObjectType) {
|
78
|
-
return CLAIM();
|
53
|
+
_registerInterface(type(IClaimService).interfaceId);
|
79
54
|
}
|
80
55
|
|
81
56
|
function submit(
|
@@ -85,11 +60,15 @@ contract ClaimService is
|
|
85
60
|
)
|
86
61
|
external
|
87
62
|
virtual
|
63
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
88
64
|
returns (ClaimId claimId)
|
89
65
|
{
|
66
|
+
_checkNftType(policyNftId, POLICY());
|
67
|
+
|
90
68
|
(
|
91
|
-
|
92
|
-
|
69
|
+
,
|
70
|
+
IInstance instance,,
|
71
|
+
InstanceStore instanceStore,
|
93
72
|
IPolicy.PolicyInfo memory policyInfo
|
94
73
|
) = _verifyCallerWithPolicy(policyNftId);
|
95
74
|
|
@@ -98,6 +77,7 @@ contract ClaimService is
|
|
98
77
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
99
78
|
}
|
100
79
|
|
80
|
+
// TODO check claim amount > 0
|
101
81
|
// check policy including this claim is still within sum insured
|
102
82
|
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
103
83
|
revert ErrorClaimServiceClaimExceedsSumInsured(
|
@@ -108,23 +88,23 @@ contract ClaimService is
|
|
108
88
|
|
109
89
|
// create new claim
|
110
90
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
111
|
-
|
91
|
+
instanceStore.createClaim(
|
112
92
|
policyNftId,
|
113
93
|
claimId,
|
114
|
-
IPolicy.ClaimInfo(
|
115
|
-
claimAmount,
|
116
|
-
AmountLib.zero(),
|
117
|
-
0,
|
118
|
-
0,
|
119
|
-
claimData,
|
120
|
-
"",
|
121
|
-
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()}));
|
122
102
|
|
123
103
|
// update and save policy info with instance
|
104
|
+
// policy claim amount is only updated when claim is confirmed
|
124
105
|
policyInfo.claimsCount += 1;
|
125
106
|
policyInfo.openClaimsCount += 1;
|
126
|
-
|
127
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
107
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
128
108
|
|
129
109
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
130
110
|
}
|
@@ -138,26 +118,45 @@ contract ClaimService is
|
|
138
118
|
)
|
139
119
|
external
|
140
120
|
virtual
|
121
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
141
122
|
{
|
123
|
+
_checkNftType(policyNftId, POLICY());
|
124
|
+
|
142
125
|
(
|
126
|
+
NftId productNftId,
|
143
127
|
IInstance instance,
|
144
128
|
InstanceReader instanceReader,
|
129
|
+
InstanceStore instanceStore,
|
145
130
|
IPolicy.PolicyInfo memory policyInfo
|
146
131
|
) = _verifyCallerWithPolicy(policyNftId);
|
147
132
|
|
133
|
+
// TODO add check for confirmedAmount > 0 and does not lead to exceeding sum insured
|
134
|
+
|
148
135
|
// check/update claim info
|
149
136
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
150
137
|
claimInfo.claimAmount = confirmedAmount;
|
151
138
|
claimInfo.processData = data;
|
152
|
-
|
139
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
153
140
|
|
154
141
|
// update and save policy info with instance
|
155
142
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
156
|
-
|
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
|
+
}
|
157
149
|
|
158
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);
|
159
157
|
}
|
160
158
|
|
159
|
+
|
161
160
|
function decline(
|
162
161
|
NftId policyNftId,
|
163
162
|
ClaimId claimId,
|
@@ -165,10 +164,15 @@ contract ClaimService is
|
|
165
164
|
)
|
166
165
|
external
|
167
166
|
virtual
|
167
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
168
168
|
{
|
169
|
+
_checkNftType(policyNftId, POLICY());
|
170
|
+
|
169
171
|
(
|
172
|
+
,
|
170
173
|
IInstance instance,
|
171
174
|
InstanceReader instanceReader,
|
175
|
+
InstanceStore instanceStore,
|
172
176
|
IPolicy.PolicyInfo memory policyInfo
|
173
177
|
) = _verifyCallerWithPolicy(policyNftId);
|
174
178
|
|
@@ -176,25 +180,63 @@ contract ClaimService is
|
|
176
180
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
177
181
|
claimInfo.processData = data;
|
178
182
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
179
|
-
|
183
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
180
184
|
|
181
185
|
// update and save policy info with instance
|
182
186
|
policyInfo.openClaimsCount -= 1;
|
183
|
-
|
187
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
184
188
|
|
185
189
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
186
190
|
}
|
187
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
|
+
|
188
225
|
function close(
|
189
226
|
NftId policyNftId,
|
190
227
|
ClaimId claimId
|
191
228
|
)
|
192
229
|
external
|
193
230
|
virtual
|
231
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
194
232
|
{
|
233
|
+
_checkNftType(policyNftId, POLICY());
|
234
|
+
|
195
235
|
(
|
236
|
+
,
|
196
237
|
IInstance instance,
|
197
238
|
InstanceReader instanceReader,
|
239
|
+
InstanceStore instanceStore,
|
198
240
|
IPolicy.PolicyInfo memory policyInfo
|
199
241
|
) = _verifyCallerWithPolicy(policyNftId);
|
200
242
|
|
@@ -219,55 +261,56 @@ contract ClaimService is
|
|
219
261
|
}
|
220
262
|
|
221
263
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
222
|
-
|
264
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
223
265
|
}
|
224
266
|
|
225
267
|
|
226
|
-
function
|
268
|
+
function createPayoutForBeneficiary(
|
227
269
|
NftId policyNftId,
|
228
270
|
ClaimId claimId,
|
229
271
|
Amount amount,
|
272
|
+
address beneficiary,
|
230
273
|
bytes memory data
|
231
274
|
)
|
232
275
|
external
|
276
|
+
virtual
|
277
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
233
278
|
returns (PayoutId payoutId)
|
234
279
|
{
|
235
|
-
(
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
242
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
243
|
-
|
244
|
-
// TODO add checks
|
245
|
-
// claim needs to be open
|
246
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
280
|
+
_checkNftType(policyNftId, POLICY());
|
281
|
+
|
282
|
+
if (beneficiary == address(0)) {
|
283
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
284
|
+
}
|
247
285
|
|
248
|
-
|
249
|
-
// create payout info with instance
|
250
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
251
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
252
|
-
instance.getInstanceStore().createPayout(
|
286
|
+
return _createPayout(
|
253
287
|
policyNftId,
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
TimestampLib.zero()));
|
260
|
-
|
261
|
-
// update and save claim info with instance
|
262
|
-
claimInfo.payoutsCount += 1;
|
263
|
-
claimInfo.openPayoutsCount += 1;
|
264
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
288
|
+
claimId,
|
289
|
+
amount,
|
290
|
+
beneficiary,
|
291
|
+
data);
|
292
|
+
}
|
265
293
|
|
266
|
-
// update and save policy info with instance
|
267
|
-
policyInfo.payoutAmount.add(amount);
|
268
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
269
294
|
|
270
|
-
|
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);
|
271
314
|
}
|
272
315
|
|
273
316
|
|
@@ -277,10 +320,15 @@ contract ClaimService is
|
|
277
320
|
)
|
278
321
|
external
|
279
322
|
virtual
|
323
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
280
324
|
{
|
325
|
+
_checkNftType(policyNftId, POLICY());
|
326
|
+
|
281
327
|
(
|
328
|
+
,
|
282
329
|
IInstance instance,
|
283
330
|
InstanceReader instanceReader,
|
331
|
+
InstanceStore instanceStore,
|
284
332
|
IPolicy.PolicyInfo memory policyInfo
|
285
333
|
) = _verifyCallerWithPolicy(policyNftId);
|
286
334
|
|
@@ -289,55 +337,128 @@ contract ClaimService is
|
|
289
337
|
|
290
338
|
// update and save payout info with instance
|
291
339
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
292
|
-
|
340
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
293
341
|
|
294
|
-
// TODO update and save claim info with instance
|
295
|
-
ClaimId claimId = payoutId.toClaimId();
|
296
342
|
Amount payoutAmount = payoutInfo.amount;
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
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
|
+
}
|
310
360
|
}
|
311
361
|
|
312
362
|
// update and save policy info with instance
|
313
363
|
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
314
|
-
|
364
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
315
365
|
|
316
366
|
// inform pool about payout
|
317
|
-
_poolService.
|
367
|
+
_poolService.processPayout(
|
318
368
|
instance,
|
319
369
|
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
320
370
|
policyNftId,
|
321
371
|
policyInfo,
|
322
372
|
payoutAmount);
|
323
|
-
|
373
|
+
|
324
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
|
+
{
|
325
415
|
(
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
payoutInfo);
|
416
|
+
,
|
417
|
+
,
|
418
|
+
InstanceReader instanceReader,
|
419
|
+
InstanceStore instanceStore,
|
420
|
+
IPolicy.PolicyInfo memory policyInfo
|
421
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
333
422
|
|
334
|
-
|
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
|
335
429
|
|
336
|
-
|
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
|
+
}
|
437
|
+
|
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);
|
337
458
|
}
|
338
459
|
|
339
|
-
|
340
|
-
function
|
460
|
+
|
461
|
+
function _calculatePayoutAmount(
|
341
462
|
InstanceReader instanceReader,
|
342
463
|
NftId policyNftId,
|
343
464
|
IPolicy.PolicyInfo memory policyInfo,
|
@@ -346,6 +467,7 @@ contract ClaimService is
|
|
346
467
|
internal
|
347
468
|
returns (
|
348
469
|
Amount netPayoutAmount,
|
470
|
+
Amount processingFeeAmount,
|
349
471
|
address beneficiary
|
350
472
|
)
|
351
473
|
{
|
@@ -359,38 +481,20 @@ contract ClaimService is
|
|
359
481
|
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
360
482
|
|
361
483
|
netPayoutAmount = payoutAmount;
|
362
|
-
|
484
|
+
|
485
|
+
if (payoutInfo.beneficiary == address(0)) {
|
486
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
487
|
+
} else {
|
488
|
+
beneficiary = payoutInfo.beneficiary;
|
489
|
+
}
|
363
490
|
|
364
491
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
365
492
|
if(FeeLib.gtz(productInfo.processingFee)) {
|
366
|
-
// TODO calculate net payout and processing fees
|
367
|
-
// TODO transfer processing fees to product wallet
|
368
|
-
// TODO inform product to update fee book keeping
|
493
|
+
// TODO calculate and set net payout and processing fees
|
369
494
|
}
|
370
|
-
|
371
|
-
poolInfo.tokenHandler.transfer(
|
372
|
-
poolInfo.wallet,
|
373
|
-
beneficiary,
|
374
|
-
netPayoutAmount);
|
375
495
|
}
|
376
496
|
}
|
377
497
|
|
378
|
-
// internal functions
|
379
|
-
|
380
|
-
function _getBeneficiary(
|
381
|
-
NftId policyNftId,
|
382
|
-
ClaimId claimId
|
383
|
-
)
|
384
|
-
internal
|
385
|
-
returns (address beneficiary)
|
386
|
-
{
|
387
|
-
// TODO check if owner is IPolicyHolder
|
388
|
-
// if so, obtain beneficiary from this contract
|
389
|
-
|
390
|
-
// default beneficiary is policy nft owner
|
391
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
392
|
-
}
|
393
|
-
|
394
498
|
|
395
499
|
function _verifyCallerWithPolicy(
|
396
500
|
NftId policyNftId
|
@@ -399,14 +503,16 @@ contract ClaimService is
|
|
399
503
|
view
|
400
504
|
virtual
|
401
505
|
returns (
|
506
|
+
NftId productNftId,
|
402
507
|
IInstance instance,
|
403
508
|
InstanceReader instanceReader,
|
509
|
+
InstanceStore instanceStore,
|
404
510
|
IPolicy.PolicyInfo memory policyInfo
|
405
511
|
)
|
406
512
|
{
|
407
|
-
NftId productNftId;
|
408
513
|
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
409
514
|
instanceReader = instance.getInstanceReader();
|
515
|
+
instanceStore = instance.getInstanceStore();
|
410
516
|
|
411
517
|
// check caller(product) policy match
|
412
518
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -439,4 +545,68 @@ contract ClaimService is
|
|
439
545
|
// get claim info
|
440
546
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
441
547
|
}
|
548
|
+
|
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();
|
611
|
+
}
|
442
612
|
}
|