@etherisc/gif-next 0.0.2-da2c7dd-538 → 0.0.2-da87b00-860
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 +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
- 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 +452 -210
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -142
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -77
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
- 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 +109 -100
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -124
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +126 -166
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -180
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +274 -58
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +427 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +335 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -62
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +822 -402
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +299 -58
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -402
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +367 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +448 -374
- 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 +33 -35
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
- 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 -21
- 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 -21
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
- 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 +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
- 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 +113 -75
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -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 +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -42
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
- 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 +184 -128
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -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 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
- 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/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
- 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 +1450 -140
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- 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 +1624 -272
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +135 -68
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1600 -818
- 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 +159 -87
- 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 +45 -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 +33 -31
- 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 +2 -2
- 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/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 +45 -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 +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- 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/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- 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 +65 -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 +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +389 -298
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +60 -228
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +81 -80
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +10 -52
- package/contracts/distribution/DistributionService.sol +154 -64
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/IInstance.sol +87 -12
- package/contracts/instance/IInstanceService.sol +52 -7
- package/contracts/instance/Instance.sol +148 -48
- package/contracts/instance/InstanceAdmin.sol +227 -281
- package/contracts/instance/InstanceAuthorizationV3.sol +79 -26
- package/contracts/instance/InstanceReader.sol +375 -380
- package/contracts/instance/InstanceService.sol +230 -134
- package/contracts/instance/RiskSet.sol +10 -2
- 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 +16 -5
- package/contracts/instance/module/IDistribution.sol +19 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +2 -4
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +3 -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 +7 -2
- package/contracts/pool/Pool.sol +4 -16
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +83 -15
- package/contracts/product/BasicProduct.sol +1 -3
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +56 -58
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +21 -3
- package/contracts/product/PolicyService.sol +31 -68
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +38 -14
- package/contracts/product/RiskService.sol +55 -9
- 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 +100 -263
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +62 -112
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +18 -31
- package/contracts/shared/ComponentService.sol +239 -244
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -7
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +266 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +473 -202
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1089 -330
- 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 +15 -15
- 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 +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +25 -11
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- 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/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- 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/staking/StakingLifecycle.sol +0 -23
@@ -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,11 +13,10 @@ 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";
|
23
21
|
import {Service} from "../shared/Service.sol";
|
24
22
|
import {StateId} from "../type/StateId.sol";
|
@@ -68,14 +66,13 @@ contract ClaimService is
|
|
68
66
|
{
|
69
67
|
// checks
|
70
68
|
(
|
71
|
-
|
72
|
-
IInstance instance,,
|
69
|
+
,,,
|
73
70
|
InstanceStore instanceStore,
|
74
71
|
IPolicy.PolicyInfo memory policyInfo
|
75
72
|
) = _verifyCallerWithPolicy(policyNftId);
|
76
73
|
|
77
74
|
// check policy is in its active period
|
78
|
-
if(policyInfo.activatedAt.eqz() || TimestampLib.
|
75
|
+
if(policyInfo.activatedAt.eqz() || TimestampLib.current() >= policyInfo.expiredAt) {
|
79
76
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
80
77
|
}
|
81
78
|
|
@@ -114,6 +111,7 @@ contract ClaimService is
|
|
114
111
|
)
|
115
112
|
external
|
116
113
|
virtual
|
114
|
+
restricted()
|
117
115
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
118
116
|
{
|
119
117
|
// checks
|
@@ -142,7 +140,7 @@ contract ClaimService is
|
|
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);
|
@@ -163,13 +161,13 @@ 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 instance,
|
170
|
+
,,
|
173
171
|
InstanceReader instanceReader,
|
174
172
|
InstanceStore instanceStore,
|
175
173
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -178,7 +176,7 @@ contract ClaimService is
|
|
178
176
|
// check/update claim info
|
179
177
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
180
178
|
claimInfo.processData = data;
|
181
|
-
claimInfo.closedAt = TimestampLib.
|
179
|
+
claimInfo.closedAt = TimestampLib.current();
|
182
180
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
183
181
|
|
184
182
|
// update and save policy info with instance
|
@@ -195,11 +193,11 @@ contract ClaimService is
|
|
195
193
|
)
|
196
194
|
external
|
197
195
|
virtual
|
196
|
+
restricted()
|
198
197
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
199
198
|
{
|
200
199
|
(
|
201
|
-
|
202
|
-
IInstance instance,
|
200
|
+
,,
|
203
201
|
InstanceReader instanceReader,
|
204
202
|
InstanceStore instanceStore,
|
205
203
|
IPolicy.PolicyInfo memory policyInfo
|
@@ -207,7 +205,7 @@ contract ClaimService is
|
|
207
205
|
|
208
206
|
// check/update claim info
|
209
207
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
210
|
-
claimInfo.closedAt = TimestampLib.
|
208
|
+
claimInfo.closedAt = TimestampLib.current();
|
211
209
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
212
210
|
|
213
211
|
// update and save policy info with instance
|
@@ -218,22 +216,21 @@ contract ClaimService is
|
|
218
216
|
}
|
219
217
|
|
220
218
|
|
221
|
-
function
|
219
|
+
function cancelConfirmedClaim(
|
222
220
|
NftId policyNftId,
|
223
221
|
ClaimId claimId
|
224
222
|
)
|
225
223
|
external
|
226
224
|
virtual
|
225
|
+
restricted()
|
227
226
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
228
227
|
{
|
229
228
|
_checkNftType(policyNftId, POLICY());
|
230
229
|
|
231
230
|
(
|
232
|
-
|
233
|
-
IInstance instance,
|
231
|
+
,,
|
234
232
|
InstanceReader instanceReader,
|
235
233
|
InstanceStore instanceStore,
|
236
|
-
IPolicy.PolicyInfo memory policyInfo
|
237
234
|
) = _verifyCallerWithPolicy(policyNftId);
|
238
235
|
|
239
236
|
// check/update claim info
|
@@ -247,17 +244,10 @@ contract ClaimService is
|
|
247
244
|
claimInfo.openPayoutsCount);
|
248
245
|
}
|
249
246
|
|
250
|
-
|
251
|
-
|
252
|
-
revert ErrorClaimServiceClaimWithMissingPayouts(
|
253
|
-
policyNftId,
|
254
|
-
claimId,
|
255
|
-
claimInfo.claimAmount,
|
256
|
-
claimInfo.paidAmount);
|
257
|
-
}
|
247
|
+
claimInfo.closedAt = TimestampLib.current();
|
248
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
|
258
249
|
|
259
|
-
|
260
|
-
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
250
|
+
emit LogClaimServiceClaimCancelled(policyNftId, claimId);
|
261
251
|
}
|
262
252
|
|
263
253
|
|
@@ -270,6 +260,7 @@ contract ClaimService is
|
|
270
260
|
)
|
271
261
|
external
|
272
262
|
virtual
|
263
|
+
restricted()
|
273
264
|
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
274
265
|
returns (PayoutId payoutId)
|
275
266
|
{
|
@@ -294,6 +285,7 @@ contract ClaimService is
|
|
294
285
|
)
|
295
286
|
external
|
296
287
|
virtual
|
288
|
+
restricted()
|
297
289
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
298
290
|
returns (PayoutId payoutId)
|
299
291
|
{
|
@@ -314,51 +306,58 @@ contract ClaimService is
|
|
314
306
|
)
|
315
307
|
external
|
316
308
|
virtual
|
309
|
+
restricted()
|
317
310
|
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
311
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
318
312
|
{
|
319
313
|
// checks
|
320
314
|
(
|
321
|
-
|
322
|
-
// IInstance instance,
|
315
|
+
,,
|
323
316
|
InstanceReader instanceReader,
|
324
317
|
InstanceStore instanceStore,
|
325
318
|
IPolicy.PolicyInfo memory policyInfo
|
326
319
|
) = _verifyCallerWithPolicy(policyNftId);
|
327
320
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
321
|
+
IPolicy.ClaimInfo memory claimInfo;
|
322
|
+
address payoutBeneficiary;
|
323
|
+
Amount payoutAmount;
|
324
|
+
|
325
|
+
{
|
326
|
+
// check that payout exists and is open
|
327
|
+
IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
|
328
|
+
payoutBeneficiary = payoutInfo.beneficiary;
|
329
|
+
payoutAmount = payoutInfo.amount;
|
330
|
+
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
331
|
+
if(payoutState != EXPECTED()) {
|
332
|
+
revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
|
333
|
+
}
|
334
334
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
335
|
+
// check that payout amount does not violate claim amount
|
336
|
+
claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
|
337
|
+
if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
|
338
|
+
revert ErrorClaimServicePayoutExceedsClaimAmount(
|
339
|
+
policyNftId,
|
340
|
+
payoutId.toClaimId(),
|
341
|
+
claimInfo.claimAmount,
|
342
|
+
claimInfo.paidAmount + payoutInfo.amount);
|
343
|
+
}
|
344
344
|
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
345
|
+
// effects
|
346
|
+
// update and save payout info with instance
|
347
|
+
payoutInfo.paidAt = TimestampLib.current();
|
348
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
349
|
+
}
|
349
350
|
|
350
351
|
// update and save claim info with instance
|
351
|
-
Amount payoutAmount = payoutInfo.amount;
|
352
352
|
{
|
353
353
|
ClaimId claimId = payoutId.toClaimId();
|
354
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
355
354
|
claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
|
356
355
|
claimInfo.openPayoutsCount -= 1;
|
357
356
|
|
358
357
|
// check if this payout is closing the linked claim
|
359
358
|
// update claim and policy info accordingly
|
360
359
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
361
|
-
claimInfo.closedAt = TimestampLib.
|
360
|
+
claimInfo.closedAt = TimestampLib.current();
|
362
361
|
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
363
362
|
|
364
363
|
policyInfo.openClaimsCount -= 1;
|
@@ -375,7 +374,7 @@ contract ClaimService is
|
|
375
374
|
|
376
375
|
// effects + interactions (push tokens to beneficiary, product)
|
377
376
|
// delegate to pool to update book keeping and moving tokens payout
|
378
|
-
_poolService.processPayout(
|
377
|
+
(netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
|
379
378
|
instanceReader,
|
380
379
|
instanceStore,
|
381
380
|
policyInfo.productNftId, // product nft id
|
@@ -383,7 +382,7 @@ contract ClaimService is
|
|
383
382
|
policyInfo.bundleNftId,
|
384
383
|
payoutId,
|
385
384
|
payoutAmount,
|
386
|
-
|
385
|
+
payoutBeneficiary);
|
387
386
|
}
|
388
387
|
|
389
388
|
function cancelPayout(
|
@@ -392,14 +391,13 @@ contract ClaimService is
|
|
392
391
|
)
|
393
392
|
external
|
394
393
|
virtual
|
394
|
+
restricted()
|
395
395
|
{
|
396
396
|
// checks
|
397
397
|
(
|
398
|
-
|
399
|
-
IInstance instance,
|
398
|
+
,,
|
400
399
|
InstanceReader instanceReader,
|
401
400
|
InstanceStore instanceStore,
|
402
|
-
IPolicy.PolicyInfo memory policyInfo
|
403
401
|
) = _verifyCallerWithPolicy(policyNftId);
|
404
402
|
|
405
403
|
StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
|
@@ -522,7 +520,7 @@ contract ClaimService is
|
|
522
520
|
IPolicy.PolicyInfo memory policyInfo
|
523
521
|
)
|
524
522
|
{
|
525
|
-
(productNftId, instance) =
|
523
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
526
524
|
instanceReader = instance.getInstanceReader();
|
527
525
|
instanceStore = instance.getInstanceStore();
|
528
526
|
|
@@ -536,7 +534,7 @@ contract ClaimService is
|
|
536
534
|
}
|
537
535
|
|
538
536
|
|
539
|
-
function
|
537
|
+
function _getAndVerifyActiveProduct()
|
540
538
|
internal
|
541
539
|
view
|
542
540
|
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,11 +14,34 @@ 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
|
38
|
+
error ErrorApplicationServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
19
39
|
error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
|
20
|
-
error
|
40
|
+
error ErrorApplicationServiceRiskLocked(RiskId riskId, NftId productNftId);
|
21
41
|
error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
|
22
42
|
error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
|
43
|
+
error ErrorApplicationServiceReferralInvalid(NftId productNftId, NftId distributionNftId, ReferralId referralId);
|
44
|
+
|
23
45
|
|
24
46
|
/// @dev creates a new application based on the specified attributes
|
25
47
|
/// may only be called by a product component
|
@@ -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";
|
@@ -20,6 +19,7 @@ interface IPolicyService is IService {
|
|
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);
|
@@ -14,6 +14,7 @@ interface IPricingService is IService
|
|
14
14
|
{
|
15
15
|
|
16
16
|
error ErrorPricingServiceTargetWalletAmountsMismatch();
|
17
|
+
error ErrorPricingServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
17
18
|
error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
|
18
19
|
error ErrorPricingServiceFeeCalculationMismatch(
|
19
20
|
Amount distributionFeeFixAmount,
|
@@ -3,11 +3,23 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IService} from "../shared/IService.sol";
|
5
5
|
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
6
7
|
import {RiskId} from "../type/RiskId.sol";
|
7
8
|
import {StateId} from "../type/StateId.sol";
|
8
9
|
|
9
10
|
interface IRiskService is IService {
|
10
11
|
|
12
|
+
event LogRiskServiceRiskCreated(NftId productNftId, RiskId riskId);
|
13
|
+
event LogRiskServiceRiskUpdated(NftId productNftId, RiskId riskId);
|
14
|
+
event LogRiskServiceRiskLocked(NftId productNftId, RiskId riskId);
|
15
|
+
event LogRiskServiceRiskUnlocked(NftId productNftId, RiskId riskId);
|
16
|
+
event LogRiskServiceRiskClosed(NftId productNftId, RiskId riskId);
|
17
|
+
|
18
|
+
error ErrorRiskServiceRiskProductMismatch(RiskId riskId, NftId riskProductNftId, NftId productNftId);
|
19
|
+
error ErrorRiskServiceRiskNotActive(NftId productNftId, RiskId riskId);
|
20
|
+
error ErrorRiskServiceUnknownRisk(NftId productNftId, RiskId riskId);
|
21
|
+
error ErrorRiskServiceRiskNotLocked(NftId productNftId, RiskId riskId);
|
22
|
+
|
11
23
|
/// @dev Create a new risk with the given id and provided data.
|
12
24
|
/// The key of the risk derived from the risk id in comination with the product NftId.
|
13
25
|
/// Risk data is stored in the instance store.
|
@@ -22,9 +34,15 @@ interface IRiskService is IService {
|
|
22
34
|
bytes memory data
|
23
35
|
) external;
|
24
36
|
|
25
|
-
|
26
|
-
|
37
|
+
/// @dev Locks/unlocks the risk with the given id.
|
38
|
+
/// No new policies can be underwritten for a locked risk.
|
39
|
+
function setRiskLocked(
|
27
40
|
RiskId riskId,
|
28
|
-
|
41
|
+
bool locked
|
42
|
+
) external;
|
43
|
+
|
44
|
+
/// @dev Close the risk with the given id.
|
45
|
+
function closeRisk(
|
46
|
+
RiskId riskId
|
29
47
|
) external;
|
30
48
|
}
|