@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-04e2e0d-531
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 +131 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +111 -57
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +107 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +65 -19
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +463 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +317 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +84 -212
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +61 -245
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +366 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +782 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1374 -2013
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +312 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +198 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +250 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +67 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +169 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +519 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +39 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +77 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +169 -111
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +221 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +136 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1415 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +109 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1504 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +143 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +31 -31
- package/contracts/accounting/IAccountingService.sol +9 -8
- package/contracts/authorization/AccessAdmin.sol +281 -325
- package/contracts/authorization/AccessAdminLib.sol +535 -23
- package/contracts/authorization/AccessManagerCloneable.sol +3 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +127 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/IBaseStore.sol +45 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +44 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +150 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +384 -394
- package/contracts/instance/InstanceService.sol +190 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +6 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +8 -3
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -182
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +41 -60
- package/contracts/product/PolicyServiceLib.sol +83 -7
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +39 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +59 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +250 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -15
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +64 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +263 -70
- package/contracts/staking/IStakingService.sol +40 -85
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +469 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +43 -186
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -36,14 +36,13 @@ abstract contract BasicProduct is
|
|
36
36
|
virtual
|
37
37
|
onlyInitializing()
|
38
38
|
{
|
39
|
-
|
39
|
+
__Product_init(
|
40
40
|
registry,
|
41
41
|
instanceNftId,
|
42
42
|
name,
|
43
43
|
productInfo,
|
44
44
|
feeInfo,
|
45
45
|
authorization,
|
46
|
-
initialOwner
|
47
|
-
""); // component data
|
46
|
+
initialOwner);
|
48
47
|
}
|
49
48
|
}
|
@@ -3,10 +3,11 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
|
+
import {IProductComponent} from "./IProductComponent.sol";
|
6
7
|
|
7
8
|
import {Authorization} from "../authorization/Authorization.sol";
|
8
9
|
import {BasicProduct} from "./BasicProduct.sol";
|
9
|
-
import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
10
|
+
import {COMPONENT, ORACLE, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
10
11
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
12
13
|
|
@@ -14,17 +15,23 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
14
15
|
contract BasicProductAuthorization
|
15
16
|
is Authorization
|
16
17
|
{
|
17
|
-
|
18
18
|
constructor(string memory componentName)
|
19
|
-
Authorization(
|
19
|
+
Authorization(
|
20
|
+
componentName,
|
21
|
+
PRODUCT(),
|
22
|
+
3,
|
23
|
+
COMMIT_HASH,
|
24
|
+
TargetType.Component,
|
25
|
+
true)
|
20
26
|
{}
|
21
27
|
|
22
28
|
function _setupServiceTargets()
|
23
29
|
internal
|
24
30
|
virtual override
|
25
31
|
{
|
26
|
-
|
27
|
-
|
32
|
+
_authorizeServiceDomain(COMPONENT(), address(10));
|
33
|
+
_authorizeServiceDomain(ORACLE(), address(11));
|
34
|
+
_authorizeServiceDomain(POLICY(), address(12));
|
28
35
|
}
|
29
36
|
|
30
37
|
function _setupTokenHandlerAuthorizations() internal virtual override {
|
@@ -50,6 +57,7 @@ contract BasicProductAuthorization
|
|
50
57
|
// authorize public role (open access to any account, only allows to lock target)
|
51
58
|
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
52
59
|
_authorize(functions, BasicProduct.setFees.selector, "setFees");
|
60
|
+
_authorize(functions, IProductComponent.registerComponent.selector, "registerComponent");
|
53
61
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
54
62
|
}
|
55
63
|
}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IClaimService} from "./IClaimService.sol";
|
5
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
6
5
|
import {IInstance} from "../instance/IInstance.sol";
|
7
6
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
7
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
@@ -14,12 +13,12 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
14
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
14
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
16
15
|
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
-
import {FeeLib} from "../type/Fee.sol";
|
18
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
17
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
20
18
|
import {NftId} from "../type/NftId.sol";
|
21
|
-
import {ObjectType,
|
19
|
+
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
22
20
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
21
|
+
import {ProductStore} from "../instance/ProductStore.sol";
|
23
22
|
import {Service} from "../shared/Service.sol";
|
24
23
|
import {StateId} from "../type/StateId.sol";
|
25
24
|
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
|
@@ -68,14 +67,13 @@ contract ClaimService is
|
|
68
67
|
{
|
69
68
|
// checks
|
70
69
|
(
|
71
|
-
|
72
|
-
IInstance
|
73
|
-
InstanceStore instanceStore,
|
70
|
+
,,
|
71
|
+
IInstance.InstanceContracts memory instanceContracts,
|
74
72
|
IPolicy.PolicyInfo memory policyInfo
|
75
73
|
) = _verifyCallerWithPolicy(policyNftId);
|
76
74
|
|
77
75
|
// check policy is in its active period
|
78
|
-
if(policyInfo.activatedAt.eqz() || TimestampLib.
|
76
|
+
if(policyInfo.activatedAt.eqz() || TimestampLib.current() >= policyInfo.expiredAt) {
|
79
77
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
80
78
|
}
|
81
79
|
|
@@ -84,7 +82,7 @@ contract ClaimService is
|
|
84
82
|
// effects
|
85
83
|
// create new claim
|
86
84
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
87
|
-
|
85
|
+
instanceContracts.productStore.createClaim(
|
88
86
|
policyNftId,
|
89
87
|
claimId,
|
90
88
|
IPolicy.ClaimInfo({
|
@@ -100,7 +98,7 @@ contract ClaimService is
|
|
100
98
|
// policy claim amount is only updated when claim is confirmed
|
101
99
|
policyInfo.claimsCount += 1;
|
102
100
|
policyInfo.openClaimsCount += 1;
|
103
|
-
|
101
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
104
102
|
|
105
103
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
106
104
|
}
|
@@ -114,6 +112,7 @@ contract ClaimService is
|
|
114
112
|
)
|
115
113
|
external
|
116
114
|
virtual
|
115
|
+
restricted()
|
117
116
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
118
117
|
{
|
119
118
|
// checks
|
@@ -122,8 +121,7 @@ contract ClaimService is
|
|
122
121
|
(
|
123
122
|
NftId productNftId,
|
124
123
|
IInstance instance,
|
125
|
-
|
126
|
-
InstanceStore instanceStore,
|
124
|
+
IInstance.InstanceContracts memory instanceContracts,
|
127
125
|
IPolicy.PolicyInfo memory policyInfo
|
128
126
|
) = _verifyCallerWithPolicy(policyNftId);
|
129
127
|
|
@@ -131,25 +129,25 @@ contract ClaimService is
|
|
131
129
|
|
132
130
|
// effects
|
133
131
|
// check/update claim info
|
134
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
132
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
135
133
|
claimInfo.claimAmount = confirmedAmount;
|
136
134
|
claimInfo.processData = data;
|
137
|
-
|
135
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
138
136
|
|
139
137
|
// update and save policy info with instance
|
140
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
141
|
-
|
139
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
142
140
|
|
143
141
|
// should policy still be active it needs to become expired
|
144
142
|
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
145
|
-
_policyService.expirePolicy(instance, policyNftId, TimestampLib.
|
143
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.current());
|
146
144
|
}
|
147
145
|
|
148
146
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
149
147
|
|
150
148
|
// interactions
|
151
149
|
// callback to pool if applicable
|
152
|
-
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
150
|
+
_processConfirmedClaimByPool(instanceContracts.instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
153
151
|
|
154
152
|
// callback to policy holder if applicable
|
155
153
|
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
@@ -163,27 +161,26 @@ contract ClaimService is
|
|
163
161
|
)
|
164
162
|
external
|
165
163
|
virtual
|
164
|
+
restricted()
|
166
165
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
167
166
|
{
|
168
167
|
_checkNftType(policyNftId, POLICY());
|
169
168
|
|
170
169
|
(
|
171
|
-
|
172
|
-
IInstance
|
173
|
-
InstanceReader instanceReader,
|
174
|
-
InstanceStore instanceStore,
|
170
|
+
,,
|
171
|
+
IInstance.InstanceContracts memory instanceContracts,
|
175
172
|
IPolicy.PolicyInfo memory policyInfo
|
176
173
|
) = _verifyCallerWithPolicy(policyNftId);
|
177
174
|
|
178
175
|
// check/update claim info
|
179
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
176
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
180
177
|
claimInfo.processData = data;
|
181
|
-
claimInfo.closedAt = TimestampLib.
|
182
|
-
|
178
|
+
claimInfo.closedAt = TimestampLib.current();
|
179
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
183
180
|
|
184
181
|
// update and save policy info with instance
|
185
182
|
policyInfo.openClaimsCount -= 1;
|
186
|
-
|
183
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
187
184
|
|
188
185
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
189
186
|
}
|
@@ -195,49 +192,46 @@ contract ClaimService is
|
|
195
192
|
)
|
196
193
|
external
|
197
194
|
virtual
|
195
|
+
restricted()
|
198
196
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
199
197
|
{
|
200
198
|
(
|
201
|
-
|
202
|
-
IInstance
|
203
|
-
InstanceReader instanceReader,
|
204
|
-
InstanceStore instanceStore,
|
199
|
+
,,
|
200
|
+
IInstance.InstanceContracts memory instanceContracts,
|
205
201
|
IPolicy.PolicyInfo memory policyInfo
|
206
202
|
) = _verifyCallerWithPolicy(policyNftId);
|
207
203
|
|
208
204
|
// check/update claim info
|
209
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
210
|
-
claimInfo.closedAt = TimestampLib.
|
211
|
-
|
205
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
|
206
|
+
claimInfo.closedAt = TimestampLib.current();
|
207
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
212
208
|
|
213
209
|
// update and save policy info with instance
|
214
210
|
policyInfo.openClaimsCount -= 1;
|
215
|
-
|
211
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
216
212
|
|
217
213
|
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
218
214
|
}
|
219
215
|
|
220
216
|
|
221
|
-
function
|
217
|
+
function cancelConfirmedClaim(
|
222
218
|
NftId policyNftId,
|
223
219
|
ClaimId claimId
|
224
220
|
)
|
225
221
|
external
|
226
222
|
virtual
|
223
|
+
restricted()
|
227
224
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
228
225
|
{
|
229
226
|
_checkNftType(policyNftId, POLICY());
|
230
227
|
|
231
228
|
(
|
232
|
-
|
233
|
-
IInstance
|
234
|
-
InstanceReader instanceReader,
|
235
|
-
InstanceStore instanceStore,
|
236
|
-
IPolicy.PolicyInfo memory policyInfo
|
229
|
+
,,
|
230
|
+
IInstance.InstanceContracts memory instanceContracts,
|
237
231
|
) = _verifyCallerWithPolicy(policyNftId);
|
238
232
|
|
239
233
|
// check/update claim info
|
240
|
-
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
|
234
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, CONFIRMED());
|
241
235
|
|
242
236
|
// check claim has no open payouts
|
243
237
|
if(claimInfo.openPayoutsCount > 0) {
|
@@ -247,17 +241,10 @@ contract ClaimService is
|
|
247
241
|
claimInfo.openPayoutsCount);
|
248
242
|
}
|
249
243
|
|
250
|
-
|
251
|
-
|
252
|
-
revert ErrorClaimServiceClaimWithMissingPayouts(
|
253
|
-
policyNftId,
|
254
|
-
claimId,
|
255
|
-
claimInfo.claimAmount,
|
256
|
-
claimInfo.paidAmount);
|
257
|
-
}
|
244
|
+
claimInfo.closedAt = TimestampLib.current();
|
245
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
|
258
246
|
|
259
|
-
|
260
|
-
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
247
|
+
emit LogClaimServiceClaimCancelled(policyNftId, claimId);
|
261
248
|
}
|
262
249
|
|
263
250
|
|
@@ -270,6 +257,7 @@ contract ClaimService is
|
|
270
257
|
)
|
271
258
|
external
|
272
259
|
virtual
|
260
|
+
restricted()
|
273
261
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
274
262
|
returns (PayoutId payoutId)
|
275
263
|
{
|
@@ -294,6 +282,7 @@ contract ClaimService is
|
|
294
282
|
)
|
295
283
|
external
|
296
284
|
virtual
|
285
|
+
restricted()
|
297
286
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
298
287
|
returns (PayoutId payoutId)
|
299
288
|
{
|
@@ -314,76 +303,82 @@ contract ClaimService is
|
|
314
303
|
)
|
315
304
|
external
|
316
305
|
virtual
|
306
|
+
restricted()
|
317
307
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
308
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
318
309
|
{
|
319
310
|
// checks
|
320
311
|
(
|
321
|
-
|
322
|
-
|
323
|
-
InstanceReader instanceReader,
|
324
|
-
InstanceStore instanceStore,
|
312
|
+
,,
|
313
|
+
IInstance.InstanceContracts memory instanceContracts,
|
325
314
|
IPolicy.PolicyInfo memory policyInfo
|
326
315
|
) = _verifyCallerWithPolicy(policyNftId);
|
327
316
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
317
|
+
IPolicy.ClaimInfo memory claimInfo;
|
318
|
+
address payoutBeneficiary;
|
319
|
+
Amount payoutAmount;
|
320
|
+
|
321
|
+
{
|
322
|
+
// check that payout exists and is open
|
323
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceContracts.instanceReader.getPayoutInfo(policyNftId, payoutId);
|
324
|
+
payoutBeneficiary = payoutInfo.beneficiary;
|
325
|
+
payoutAmount = payoutInfo.amount;
|
326
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
327
|
+
if(payoutState != EXPECTED()) {
|
328
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
329
|
+
}
|
334
330
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
331
|
+
// check that payout amount does not violate claim amount
|
332
|
+
claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
333
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
334
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
335
|
+
policyNftId,
|
336
|
+
payoutId.toClaimId(),
|
337
|
+
claimInfo.claimAmount,
|
338
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
339
|
+
}
|
344
340
|
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
341
|
+
// effects
|
342
|
+
// update and save payout info with instance
|
343
|
+
payoutInfo.paidAt = TimestampLib.current();
|
344
|
+
instanceContracts.productStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
345
|
+
}
|
349
346
|
|
350
347
|
// update and save claim info with instance
|
351
|
-
Amount payoutAmount = payoutInfo.amount;
|
352
348
|
{
|
353
349
|
ClaimId claimId = payoutId.toClaimId();
|
354
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
355
350
|
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
356
351
|
claimInfo.openPayoutsCount -= 1;
|
357
352
|
|
358
353
|
// check if this payout is closing the linked claim
|
359
354
|
// update claim and policy info accordingly
|
360
355
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
361
|
-
claimInfo.closedAt = TimestampLib.
|
362
|
-
|
356
|
+
claimInfo.closedAt = TimestampLib.current();
|
357
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
363
358
|
|
364
359
|
policyInfo.openClaimsCount -= 1;
|
365
360
|
} else {
|
366
|
-
|
361
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
367
362
|
}
|
368
363
|
}
|
369
364
|
|
370
365
|
// update and save policy info with instance
|
371
366
|
policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
|
372
|
-
|
367
|
+
instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
373
368
|
|
374
369
|
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
|
375
370
|
|
376
371
|
// effects + interactions (push tokens to beneficiary, product)
|
377
372
|
// delegate to pool to update book keeping and moving tokens payout
|
378
|
-
_poolService.processPayout(
|
379
|
-
instanceReader,
|
380
|
-
instanceStore,
|
373
|
+
(netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
|
374
|
+
instanceContracts.instanceReader,
|
375
|
+
instanceContracts.instanceStore,
|
381
376
|
policyInfo.productNftId, // product nft id
|
382
377
|
policyNftId,
|
383
378
|
policyInfo.bundleNftId,
|
384
379
|
payoutId,
|
385
380
|
payoutAmount,
|
386
|
-
|
381
|
+
payoutBeneficiary);
|
387
382
|
}
|
388
383
|
|
389
384
|
function cancelPayout(
|
@@ -392,30 +387,28 @@ contract ClaimService is
|
|
392
387
|
)
|
393
388
|
external
|
394
389
|
virtual
|
390
|
+
restricted()
|
395
391
|
{
|
396
392
|
// checks
|
397
393
|
(
|
398
|
-
|
399
|
-
IInstance
|
400
|
-
InstanceReader instanceReader,
|
401
|
-
InstanceStore instanceStore,
|
402
|
-
IPolicy.PolicyInfo memory policyInfo
|
394
|
+
,,
|
395
|
+
IInstance.InstanceContracts memory instanceContracts,
|
403
396
|
) = _verifyCallerWithPolicy(policyNftId);
|
404
397
|
|
405
|
-
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
398
|
+
StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
|
406
399
|
if (payoutState != EXPECTED()) {
|
407
400
|
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
408
401
|
}
|
409
402
|
|
410
403
|
// effects
|
411
404
|
// update and save payout info with instance
|
412
|
-
|
405
|
+
instanceContracts.productStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
|
413
406
|
|
414
407
|
{
|
415
408
|
ClaimId claimId = payoutId.toClaimId();
|
416
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
409
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
417
410
|
claimInfo.openPayoutsCount -= 1;
|
418
|
-
|
411
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
419
412
|
}
|
420
413
|
|
421
414
|
emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
|
@@ -459,16 +452,15 @@ contract ClaimService is
|
|
459
452
|
// checks
|
460
453
|
(
|
461
454
|
,,
|
462
|
-
|
463
|
-
InstanceStore instanceStore,
|
455
|
+
IInstance.InstanceContracts memory instanceContracts,
|
464
456
|
// IPolicy.PolicyInfo memory policyInfo
|
465
457
|
) = _verifyCallerWithPolicy(policyNftId);
|
466
458
|
|
467
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
459
|
+
IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
|
468
460
|
|
469
461
|
{
|
470
462
|
// check claim state
|
471
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
463
|
+
StateId claimState = instanceContracts.instanceReader.getClaimState(policyNftId, claimId);
|
472
464
|
if (claimState != CONFIRMED()) {
|
473
465
|
revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
|
474
466
|
}
|
@@ -489,7 +481,7 @@ contract ClaimService is
|
|
489
481
|
beneficiary = getRegistry().ownerOf(policyNftId);
|
490
482
|
}
|
491
483
|
|
492
|
-
|
484
|
+
instanceContracts.productStore.createPayout(
|
493
485
|
policyNftId,
|
494
486
|
payoutId,
|
495
487
|
IPolicy.PayoutInfo({
|
@@ -502,12 +494,14 @@ contract ClaimService is
|
|
502
494
|
// update and save claim info with instance
|
503
495
|
claimInfo.payoutsCount += 1;
|
504
496
|
claimInfo.openPayoutsCount += 1;
|
505
|
-
|
497
|
+
instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
506
498
|
|
507
499
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
508
500
|
}
|
509
501
|
|
510
|
-
|
502
|
+
/// @dev Verifies the caller is a product and the policy is active.
|
503
|
+
/// Returns the product nft id, instance, instance contracts and policy info.
|
504
|
+
/// in InstanceContracts only the contracts instanceReader, instanceStore and productStore are set.
|
511
505
|
function _verifyCallerWithPolicy(
|
512
506
|
NftId policyNftId
|
513
507
|
)
|
@@ -517,17 +511,17 @@ contract ClaimService is
|
|
517
511
|
returns (
|
518
512
|
NftId productNftId,
|
519
513
|
IInstance instance,
|
520
|
-
|
521
|
-
InstanceStore instanceStore,
|
514
|
+
IInstance.InstanceContracts memory instanceContracts,
|
522
515
|
IPolicy.PolicyInfo memory policyInfo
|
523
516
|
)
|
524
517
|
{
|
525
|
-
(productNftId, instance) =
|
526
|
-
instanceReader = instance.getInstanceReader();
|
527
|
-
instanceStore = instance.getInstanceStore();
|
518
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
519
|
+
instanceContracts.instanceReader = InstanceReader(instance.getInstanceReader());
|
520
|
+
instanceContracts.instanceStore = InstanceStore(instance.getInstanceStore());
|
521
|
+
instanceContracts.productStore = ProductStore(instance.getProductStore());
|
528
522
|
|
529
523
|
// check caller(product) policy match
|
530
|
-
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
524
|
+
policyInfo = instanceContracts.instanceReader.getPolicyInfo(policyNftId);
|
531
525
|
if(policyInfo.productNftId != productNftId) {
|
532
526
|
revert ErrorClaimServicePolicyProductMismatch(policyNftId,
|
533
527
|
policyInfo.productNftId,
|
@@ -536,7 +530,7 @@ contract ClaimService is
|
|
536
530
|
}
|
537
531
|
|
538
532
|
|
539
|
-
function
|
533
|
+
function _getAndVerifyActiveProduct()
|
540
534
|
internal
|
541
535
|
view
|
542
536
|
returns (
|
@@ -6,7 +6,6 @@ import {IService} from "../shared/IService.sol";
|
|
6
6
|
|
7
7
|
import {Amount} from "../type/Amount.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
10
9
|
import {ReferralId} from "../type/Referral.sol";
|
11
10
|
import {RiskId} from "../type/RiskId.sol";
|
12
11
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -15,10 +14,30 @@ import {Seconds} from "../type/Seconds.sol";
|
|
15
14
|
/// only product components may call transaction functions
|
16
15
|
interface IApplicationService is IService {
|
17
16
|
|
17
|
+
event LogApplicationServiceApplicationCreated(
|
18
|
+
NftId applicationNftId,
|
19
|
+
NftId productNftId,
|
20
|
+
NftId bundleNftId,
|
21
|
+
RiskId riskId,
|
22
|
+
ReferralId referralId,
|
23
|
+
address applicationOwner,
|
24
|
+
Amount sumInsuredAmount,
|
25
|
+
Amount premiumAmount,
|
26
|
+
Seconds lifetime);
|
27
|
+
event LogApplicationServiceApplicationRenewed(NftId policyNftId, NftId bundleNftId);
|
28
|
+
event LogApplicationServiceApplicationAdjusted(
|
29
|
+
NftId applicationNftId,
|
30
|
+
NftId bundleNftId,
|
31
|
+
RiskId riskId,
|
32
|
+
ReferralId referralId,
|
33
|
+
Amount sumInsuredAmount,
|
34
|
+
Seconds lifetime);
|
35
|
+
event LogApplicationServiceApplicationRevoked(NftId applicationNftId);
|
36
|
+
|
18
37
|
// _checkLinkedApplicationParameters
|
19
38
|
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
20
39
|
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
21
|
-
error
|
40
|
+
error ErrorApplicationServiceRiskLocked(RiskId riskId, NftId productNftId);
|
22
41
|
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
23
42
|
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
24
43
|
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
@@ -23,7 +23,7 @@ interface IClaimService is
|
|
23
23
|
event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
|
24
24
|
event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
|
25
25
|
event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
|
26
|
-
event
|
26
|
+
event LogClaimServiceClaimCancelled(NftId policyNftId, ClaimId claimId);
|
27
27
|
|
28
28
|
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
|
29
29
|
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount);
|
@@ -83,9 +83,10 @@ interface IClaimService is
|
|
83
83
|
) external;
|
84
84
|
|
85
85
|
|
86
|
-
/// @dev
|
86
|
+
/// @dev cancels a confirmed claim before it has been fully paid out.
|
87
|
+
/// Can only be called when there are not pending payouts
|
87
88
|
/// function can only be called by product, policy needs to match with calling product
|
88
|
-
function
|
89
|
+
function cancelConfirmedClaim(
|
89
90
|
NftId policyNftId,
|
90
91
|
ClaimId claimId
|
91
92
|
) external;
|
@@ -125,7 +126,7 @@ interface IClaimService is
|
|
125
126
|
function processPayout(
|
126
127
|
NftId policyNftId,
|
127
128
|
PayoutId payoutId
|
128
|
-
) external;
|
129
|
+
) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
|
129
130
|
|
130
131
|
/// @dev cancels the specified payout. no tokens are moved, payout is set to cancelled.
|
131
132
|
function cancelPayout(
|
@@ -5,7 +5,6 @@ import {IService} from "../shared/IService.sol";
|
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
9
8
|
import {NftId} from "../type/NftId.sol";
|
10
9
|
import {StateId} from "../type/StateId.sol";
|
11
10
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -14,12 +13,13 @@ interface IPolicyService is IService {
|
|
14
13
|
|
15
14
|
event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
|
16
15
|
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
17
|
-
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
|
16
|
+
event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, NftId productNftId, Amount premiumAmount, Timestamp activateAt);
|
18
17
|
event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
|
19
18
|
event LogPolicyServicePolicyActivatedUpdated(NftId policyNftId, Timestamp activatedAt);
|
20
19
|
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
21
20
|
event LogPolicyServicePolicyClosed(NftId policyNftId);
|
22
21
|
|
22
|
+
error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
|
23
23
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
24
24
|
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
25
25
|
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
@@ -45,14 +45,21 @@ interface IPolicyService is IService {
|
|
45
45
|
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
|
46
46
|
|
47
47
|
/// @dev creates the policy from {applicationNftId}.
|
48
|
+
/// @param applicationNftId the application NftId
|
49
|
+
/// @param activateAt the timestamp when the policy should be activated
|
50
|
+
/// @param maxPremiumAmount the maximum premium amount that the policy holder is willing to pay
|
51
|
+
/// During policy creation, the effective premium amount is calculated based on the provided parameters. If this
|
52
|
+
/// amount is higher than the maxPremiumAmount, the function will revert.
|
48
53
|
/// After successful completion of the function the policy can be referenced using the application NftId.
|
49
54
|
/// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
|
50
55
|
/// Sets the policy state to collateralized.
|
51
56
|
/// Optionally activates the policy if activateAt is a non-zero timestamp.
|
52
57
|
/// only the related product may create a policy from an application
|
58
|
+
/// @return premiumAmount the effective premium amount
|
53
59
|
function createPolicy(
|
54
60
|
NftId applicationNftId,
|
55
|
-
Timestamp activateAt
|
61
|
+
Timestamp activateAt,
|
62
|
+
Amount maxPremiumAmount
|
56
63
|
)
|
57
64
|
external
|
58
65
|
returns (Amount premiumAmount);
|