@etherisc/gif-next 0.0.2-acc7efa-771 → 0.0.2-ad346f1-601
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 +81 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- 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 +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- 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 +114 -291
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -164
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +577 -185
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -69
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +376 -71
- 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 +131 -171
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +292 -308
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +185 -252
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +191 -186
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +415 -290
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -49
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +312 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +531 -81
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1024 -328
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1060 -472
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +334 -83
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +82 -51
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +673 -567
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/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 +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +66 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +36 -71
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +37 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +50 -103
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +138 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +114 -45
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +71 -134
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +282 -312
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +108 -91
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +183 -121
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +46 -115
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +355 -208
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +59 -146
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +600 -411
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +148 -67
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +308 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -220
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +282 -180
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -82
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +249 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +164 -21
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +148 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +58 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +163 -183
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +131 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +277 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +130 -77
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +125 -119
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +92 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +176 -214
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +211 -72
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -42
- 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 +72 -13
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +37 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +110 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +726 -465
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -42
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- 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 +386 -64
- 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 +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +270 -522
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +100 -79
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +36 -57
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +168 -347
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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/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 +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +37 -3
- 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 +49 -102
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- 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 +2 -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 +118 -62
- 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 +37 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +251 -89
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +144 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +350 -203
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +107 -60
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +213 -56
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -43
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
- 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 +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- 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 +94 -38
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -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 +59 -24
- 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 +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +426 -242
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +41 -79
- package/contracts/distribution/DistributionService.sol +192 -98
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +10 -11
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +17 -12
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +26 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -11
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +97 -18
- package/contracts/instance/IInstanceService.sol +52 -11
- package/contracts/instance/Instance.sol +171 -57
- package/contracts/instance/InstanceAdmin.sol +271 -165
- package/contracts/instance/InstanceAuthorizationV3.sol +115 -43
- package/contracts/instance/InstanceReader.sol +449 -312
- package/contracts/instance/InstanceService.sol +269 -167
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -8
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +96 -77
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +19 -2
- package/contracts/pool/BasicPoolAuthorization.sol +33 -8
- package/contracts/pool/BundleService.sol +108 -163
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +24 -46
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +99 -85
- package/contracts/pool/PoolLib.sol +359 -0
- package/contracts/pool/PoolService.sol +314 -225
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +100 -24
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -2
- package/contracts/product/BasicProductAuthorization.sol +32 -11
- package/contracts/product/ClaimService.sol +201 -151
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +11 -7
- package/contracts/product/PolicyService.sol +256 -294
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +55 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +68 -27
- package/contracts/product/RiskService.sol +98 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +20 -16
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +25 -6
- package/contracts/registry/RegistryAdmin.sol +101 -361
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +154 -135
- package/contracts/registry/ServiceAuthorizationV3.sol +197 -46
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +52 -107
- package/contracts/shared/ComponentService.sol +354 -410
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +276 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -25
- package/contracts/shared/NftOwnable.sol +11 -7
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +46 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +190 -82
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +91 -16
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +69 -38
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +34 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
@@ -0,0 +1,139 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
5
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
6
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {StateId, CLOSED, COLLATERALIZED} from "../type/StateId.sol";
|
9
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
10
|
+
|
11
|
+
library PolicyServiceLib {
|
12
|
+
|
13
|
+
function policyIsActive(InstanceReader instanceReader, NftId policyNftId)
|
14
|
+
external
|
15
|
+
view
|
16
|
+
returns (bool isActive)
|
17
|
+
{
|
18
|
+
// policy not collateralized
|
19
|
+
if (instanceReader.getPolicyState(policyNftId) != COLLATERALIZED()) {
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
|
23
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
24
|
+
|
25
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
26
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
27
|
+
if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
|
28
|
+
if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
|
29
|
+
|
30
|
+
return true;
|
31
|
+
}
|
32
|
+
|
33
|
+
function activate(
|
34
|
+
NftId policyNftId,
|
35
|
+
IPolicy.PolicyInfo memory policyInfo,
|
36
|
+
Timestamp activateAt
|
37
|
+
)
|
38
|
+
external
|
39
|
+
pure
|
40
|
+
returns (IPolicy.PolicyInfo memory)
|
41
|
+
{
|
42
|
+
// fail if policy has already been activated and activateAt is different
|
43
|
+
if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
|
44
|
+
revert IPolicyService.ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
|
45
|
+
}
|
46
|
+
|
47
|
+
// ignore if policy has already been activated and activateAt is the same
|
48
|
+
if (policyInfo.activatedAt == activateAt) {
|
49
|
+
return policyInfo;
|
50
|
+
}
|
51
|
+
|
52
|
+
policyInfo.activatedAt = activateAt;
|
53
|
+
policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
|
54
|
+
|
55
|
+
return policyInfo;
|
56
|
+
}
|
57
|
+
|
58
|
+
function expire(
|
59
|
+
InstanceReader instanceReader,
|
60
|
+
NftId policyNftId,
|
61
|
+
IPolicy.PolicyInfo memory policyInfo,
|
62
|
+
Timestamp expireAt
|
63
|
+
)
|
64
|
+
external
|
65
|
+
view
|
66
|
+
returns (IPolicy.PolicyInfo memory)
|
67
|
+
{
|
68
|
+
StateId policyState = instanceReader.getPolicyState(policyNftId);
|
69
|
+
|
70
|
+
checkExpiration(
|
71
|
+
expireAt,
|
72
|
+
policyNftId,
|
73
|
+
policyState,
|
74
|
+
policyInfo);
|
75
|
+
|
76
|
+
// effects
|
77
|
+
// update policyInfo with new expiredAt timestamp
|
78
|
+
if (expireAt.gtz()) {
|
79
|
+
policyInfo.expiredAt = expireAt;
|
80
|
+
} else {
|
81
|
+
policyInfo.expiredAt = TimestampLib.blockTimestamp();
|
82
|
+
}
|
83
|
+
|
84
|
+
return policyInfo;
|
85
|
+
}
|
86
|
+
|
87
|
+
function checkExpiration(
|
88
|
+
Timestamp newExpiredAt,
|
89
|
+
NftId policyNftId,
|
90
|
+
StateId policyState,
|
91
|
+
IPolicy.PolicyInfo memory policyInfo
|
92
|
+
)
|
93
|
+
public
|
94
|
+
view
|
95
|
+
{
|
96
|
+
if (policyState != COLLATERALIZED()) {
|
97
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
98
|
+
}
|
99
|
+
if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) {
|
100
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
101
|
+
}
|
102
|
+
|
103
|
+
// check expiredAt represents a valid expiry time
|
104
|
+
if (newExpiredAt >= policyInfo.expiredAt) {
|
105
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
|
106
|
+
}
|
107
|
+
|
108
|
+
if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.blockTimestamp()) {
|
109
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newExpiredAt);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
114
|
+
external
|
115
|
+
view
|
116
|
+
returns (bool isCloseable)
|
117
|
+
{
|
118
|
+
// policy already closed
|
119
|
+
if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
|
120
|
+
return false;
|
121
|
+
}
|
122
|
+
|
123
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
124
|
+
|
125
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
126
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
127
|
+
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
128
|
+
|
129
|
+
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
130
|
+
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
131
|
+
|
132
|
+
// not closeable: not yet expired
|
133
|
+
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
134
|
+
|
135
|
+
// all conditions to close the policy are met
|
136
|
+
return true;
|
137
|
+
}
|
138
|
+
|
139
|
+
}
|
@@ -17,7 +17,7 @@ contract PolicyServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PolicyService svc = new PolicyService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -1,34 +1,31 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {Seconds} from "../type/Seconds.sol";
|
6
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
7
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {Fee} from "../type/Fee.sol";
|
10
|
-
import {ReferralId} from "../type/Referral.sol";
|
11
|
-
import {RiskId} from "../type/RiskId.sol";
|
12
|
-
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
13
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
-
|
15
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
16
|
-
|
17
|
-
import {IInstance} from "../instance/IInstance.sol";
|
18
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
20
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
22
6
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
23
|
-
|
24
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
25
|
-
|
26
|
-
import {IPricingService} from "./IPricingService.sol";
|
27
7
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
import {IPricingService} from "./IPricingService.sol";
|
11
|
+
import {IProductComponent} from "./IProductComponent.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
|
14
|
+
import {Amount} from "../type/Amount.sol";
|
15
|
+
import {BUNDLE, DISTRIBUTION, PRICE, PRODUCT} from "../type/ObjectType.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {Fee} from "../type/Fee.sol";
|
18
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
|
+
import {NftId} from "../type/NftId.sol";
|
20
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
21
|
+
import {ReferralId} from "../type/Referral.sol";
|
22
|
+
import {RiskId} from "../type/RiskId.sol";
|
23
|
+
import {Seconds} from "../type/Seconds.sol";
|
24
|
+
import {Service} from "../shared/Service.sol";
|
28
25
|
|
29
26
|
|
30
27
|
contract PricingService is
|
31
|
-
|
28
|
+
Service,
|
32
29
|
IPricingService
|
33
30
|
{
|
34
31
|
IDistributionService internal _distributionService;
|
@@ -42,14 +39,15 @@ contract PricingService is
|
|
42
39
|
initializer()
|
43
40
|
{
|
44
41
|
(
|
45
|
-
address
|
46
|
-
address
|
42
|
+
address authority,
|
43
|
+
address registry
|
47
44
|
) = abi.decode(data, (address, address));
|
48
45
|
|
49
|
-
|
50
|
-
_registerInterface(type(IPricingService).interfaceId);
|
46
|
+
__Service_init(authority, registry, owner);
|
51
47
|
|
52
48
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
49
|
+
|
50
|
+
_registerInterface(type(IPricingService).interfaceId);
|
53
51
|
}
|
54
52
|
|
55
53
|
/// @dev calculates the premium amount for the specified attributes
|
@@ -70,6 +68,9 @@ contract PricingService is
|
|
70
68
|
IPolicy.PremiumInfo memory premium
|
71
69
|
)
|
72
70
|
{
|
71
|
+
_checkNftType(productNftId, PRODUCT());
|
72
|
+
_checkNftType(bundleNftId, BUNDLE());
|
73
|
+
|
73
74
|
InstanceReader reader;
|
74
75
|
Amount netPremiumAmount;
|
75
76
|
|
@@ -77,11 +78,16 @@ contract PricingService is
|
|
77
78
|
// verify product
|
78
79
|
(
|
79
80
|
IRegistry.ObjectInfo memory registryInfo,
|
80
|
-
|
81
|
-
) =
|
81
|
+
address instanceAddress
|
82
|
+
) = ContractLib.getInfoAndInstance(getRegistry(), productNftId, false);
|
82
83
|
|
83
84
|
// get instance reader from local instance variable
|
84
|
-
reader =
|
85
|
+
reader = IInstance(instanceAddress).getInstanceReader();
|
86
|
+
|
87
|
+
NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
|
88
|
+
if (productNftId != riskProductNftId) {
|
89
|
+
revert ErrorPricingServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
90
|
+
}
|
85
91
|
|
86
92
|
// calculate net premium
|
87
93
|
netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
|
@@ -95,6 +101,7 @@ contract PricingService is
|
|
95
101
|
{
|
96
102
|
// get configurations for all involed objects
|
97
103
|
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
104
|
+
IComponents.FeeInfo memory feeInfo = reader.getFeeInfo(productNftId);
|
98
105
|
|
99
106
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
100
107
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
@@ -104,21 +111,22 @@ contract PricingService is
|
|
104
111
|
// calculate fixed fees for product, pool, bundle
|
105
112
|
premium = _getFixedFeeAmounts(
|
106
113
|
netPremiumAmount,
|
107
|
-
|
114
|
+
feeInfo,
|
108
115
|
bundleInfo
|
109
116
|
);
|
110
117
|
|
111
118
|
// calculate variable fees for product, pool, bundle
|
112
119
|
premium = _calculateVariableFeeAmounts(
|
113
120
|
premium,
|
114
|
-
|
121
|
+
feeInfo,
|
115
122
|
bundleInfo
|
116
123
|
);
|
117
124
|
|
118
125
|
// calculate distribution fee and (if applicable) commission
|
119
126
|
premium = _calculateDistributionOwnerFeeAmount(
|
120
127
|
premium,
|
121
|
-
|
128
|
+
feeInfo,
|
129
|
+
productInfo.distributionNftId,
|
122
130
|
referralId,
|
123
131
|
reader
|
124
132
|
);
|
@@ -134,7 +142,7 @@ contract PricingService is
|
|
134
142
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
135
143
|
}
|
136
144
|
|
137
|
-
if (premium.distributionOwnerFeeFixAmount
|
145
|
+
if (premium.distributionOwnerFeeFixAmount < feeInfo.minDistributionOwnerFee.fixedFee) {
|
138
146
|
revert ErrorPricingServiceFeeCalculationMismatch(
|
139
147
|
premium.distributionFeeFixAmount,
|
140
148
|
premium.distributionFeeVarAmount,
|
@@ -161,7 +169,7 @@ contract PricingService is
|
|
161
169
|
// internal functions
|
162
170
|
function _getFixedFeeAmounts(
|
163
171
|
Amount netPremiumAmount,
|
164
|
-
IComponents.
|
172
|
+
IComponents.FeeInfo memory feeInfo,
|
165
173
|
IBundle.BundleInfo memory bundleInfo
|
166
174
|
)
|
167
175
|
internal
|
@@ -174,26 +182,26 @@ contract PricingService is
|
|
174
182
|
premium.netPremiumAmount = netPremiumAmount;
|
175
183
|
premium.fullPremiumAmount = netPremiumAmount;
|
176
184
|
|
177
|
-
Amount t =
|
185
|
+
Amount t = feeInfo.productFee.fixedFee;
|
178
186
|
premium.productFeeFixAmount = t;
|
179
187
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
180
188
|
|
181
|
-
t =
|
189
|
+
t = feeInfo.poolFee.fixedFee;
|
182
190
|
premium.poolFeeFixAmount = t;
|
183
191
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
184
192
|
|
185
|
-
t =
|
193
|
+
t = bundleInfo.fee.fixedFee;
|
186
194
|
premium.bundleFeeFixAmount = t;
|
187
195
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
188
196
|
|
189
|
-
t =
|
197
|
+
t = feeInfo.distributionFee.fixedFee;
|
190
198
|
premium.distributionFeeFixAmount = t;
|
191
199
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
192
200
|
}
|
193
201
|
|
194
202
|
function _calculateVariableFeeAmounts(
|
195
203
|
IPolicy.PremiumInfo memory premium,
|
196
|
-
IComponents.
|
204
|
+
IComponents.FeeInfo memory feeInfo,
|
197
205
|
IBundle.BundleInfo memory bundleInfo
|
198
206
|
)
|
199
207
|
internal
|
@@ -204,11 +212,11 @@ contract PricingService is
|
|
204
212
|
{
|
205
213
|
Amount netPremiumAmount = premium.netPremiumAmount;
|
206
214
|
|
207
|
-
Amount t = netPremiumAmount.multiplyWith(
|
215
|
+
Amount t = netPremiumAmount.multiplyWith(feeInfo.productFee.fractionalFee);
|
208
216
|
premium.productFeeVarAmount = t;
|
209
217
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
210
218
|
|
211
|
-
t = netPremiumAmount.multiplyWith(
|
219
|
+
t = netPremiumAmount.multiplyWith(feeInfo.poolFee.fractionalFee);
|
212
220
|
premium.poolFeeVarAmount = t;
|
213
221
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
214
222
|
|
@@ -216,7 +224,7 @@ contract PricingService is
|
|
216
224
|
premium.bundleFeeVarAmount = t;
|
217
225
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
218
226
|
|
219
|
-
t = netPremiumAmount.multiplyWith(
|
227
|
+
t = netPremiumAmount.multiplyWith(feeInfo.distributionFee.fractionalFee);
|
220
228
|
premium.distributionFeeVarAmount = t;
|
221
229
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
222
230
|
|
@@ -225,7 +233,8 @@ contract PricingService is
|
|
225
233
|
|
226
234
|
function _calculateDistributionOwnerFeeAmount(
|
227
235
|
IPolicy.PremiumInfo memory premium,
|
228
|
-
IComponents.
|
236
|
+
IComponents.FeeInfo memory feeInfo,
|
237
|
+
NftId distributionNftId,
|
229
238
|
// ISetup.DistributionSetupInfo memory distInfo,
|
230
239
|
ReferralId referralId,
|
231
240
|
InstanceReader reader
|
@@ -236,14 +245,14 @@ contract PricingService is
|
|
236
245
|
{
|
237
246
|
|
238
247
|
// if the referral is not valid, then the distribution owner gets everything
|
239
|
-
if (
|
248
|
+
if (distributionNftId.eqz() || ! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
240
249
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
241
250
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
242
251
|
premium.premiumAmount = premium.fullPremiumAmount;
|
243
252
|
return premium;
|
244
253
|
}
|
245
254
|
|
246
|
-
Fee memory minDistributionOwnerFee =
|
255
|
+
Fee memory minDistributionOwnerFee = feeInfo.minDistributionOwnerFee;
|
247
256
|
|
248
257
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
249
258
|
// the remaing amount goes to the distribution owner
|
@@ -255,7 +264,7 @@ contract PricingService is
|
|
255
264
|
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
256
265
|
premium.commissionAmount = commissionAmount;
|
257
266
|
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
258
|
-
premium.distributionOwnerFeeFixAmount =
|
267
|
+
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
259
268
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
260
269
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
261
270
|
}
|
@@ -12,14 +12,14 @@ contract PricingServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pricing service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PricingService pricingSrv = new PricingService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
|
-
|
22
|
+
registry,
|
23
23
|
address(pricingSrv),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -3,34 +3,28 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {
|
7
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
8
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
9
7
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
9
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
10
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
14
11
|
import {IPolicyService} from "./IPolicyService.sol";
|
15
12
|
import {IRiskService} from "./IRiskService.sol";
|
16
13
|
import {IClaimService} from "./IClaimService.sol";
|
17
14
|
import {IPricingService} from "./IPricingService.sol";
|
18
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId
|
20
|
-
import {
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
22
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
19
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
23
20
|
import {ReferralId} from "../type/Referral.sol";
|
24
|
-
import {RiskId
|
21
|
+
import {RiskId} from "../type/RiskId.sol";
|
25
22
|
import {Seconds} from "../type/Seconds.sol";
|
26
23
|
import {StateId} from "../type/StateId.sol";
|
27
24
|
import {Timestamp} from "../type/Timestamp.sol";
|
28
25
|
|
29
26
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
30
27
|
import {IComponents} from "../instance/module/IComponents.sol";
|
31
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
-
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
34
28
|
|
35
29
|
abstract contract Product is
|
36
30
|
InstanceLinkedComponent,
|
@@ -41,6 +35,7 @@ abstract contract Product is
|
|
41
35
|
|
42
36
|
struct ProductStorage {
|
43
37
|
IComponents.ProductInfo _productInfo;
|
38
|
+
IComponents.FeeInfo _feeInfo;
|
44
39
|
IComponentService _componentService;
|
45
40
|
IRiskService _riskService;
|
46
41
|
IApplicationService _applicationService;
|
@@ -53,6 +48,7 @@ abstract contract Product is
|
|
53
48
|
function registerComponent(address component)
|
54
49
|
external
|
55
50
|
virtual
|
51
|
+
restricted()
|
56
52
|
onlyOwner()
|
57
53
|
returns (NftId componentNftId)
|
58
54
|
{
|
@@ -84,6 +80,7 @@ abstract contract Product is
|
|
84
80
|
)
|
85
81
|
public
|
86
82
|
view
|
83
|
+
virtual
|
87
84
|
override
|
88
85
|
onlyNftOfType(bundleNftId, BUNDLE())
|
89
86
|
returns (Amount premiumAmount)
|
@@ -126,13 +123,22 @@ abstract contract Product is
|
|
126
123
|
return _getProductStorage()._productInfo;
|
127
124
|
}
|
128
125
|
|
126
|
+
function getInitialFeeInfo()
|
127
|
+
public
|
128
|
+
virtual
|
129
|
+
view
|
130
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
131
|
+
{
|
132
|
+
return _getProductStorage()._feeInfo;
|
133
|
+
}
|
134
|
+
|
129
135
|
|
130
136
|
function _initializeProduct(
|
131
137
|
address registry,
|
132
138
|
NftId instanceNftId,
|
133
139
|
string memory name,
|
134
|
-
address token,
|
135
140
|
IComponents.ProductInfo memory productInfo,
|
141
|
+
IComponents.FeeInfo memory feeInfo,
|
136
142
|
IAuthorization authorization,
|
137
143
|
address initialOwner,
|
138
144
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
@@ -145,7 +151,6 @@ abstract contract Product is
|
|
145
151
|
registry,
|
146
152
|
instanceNftId,
|
147
153
|
name,
|
148
|
-
token,
|
149
154
|
PRODUCT(),
|
150
155
|
authorization,
|
151
156
|
productInfo.isInterceptingPolicyTransfers,
|
@@ -154,7 +159,8 @@ abstract contract Product is
|
|
154
159
|
|
155
160
|
ProductStorage storage $ = _getProductStorage();
|
156
161
|
$._productInfo = productInfo;
|
157
|
-
$.
|
162
|
+
$._feeInfo = feeInfo;
|
163
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
158
164
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
159
165
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
160
166
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
@@ -177,13 +183,14 @@ abstract contract Product is
|
|
177
183
|
|
178
184
|
|
179
185
|
function _createRisk(
|
180
|
-
|
186
|
+
bytes32 id,
|
181
187
|
bytes memory data
|
182
188
|
)
|
183
189
|
internal
|
184
190
|
virtual
|
191
|
+
returns (RiskId riskId)
|
185
192
|
{
|
186
|
-
_getProductStorage()._riskService.createRisk(
|
193
|
+
return _getProductStorage()._riskService.createRisk(
|
187
194
|
id,
|
188
195
|
data
|
189
196
|
);
|
@@ -216,11 +223,6 @@ abstract contract Product is
|
|
216
223
|
}
|
217
224
|
|
218
225
|
|
219
|
-
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
220
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
221
|
-
}
|
222
|
-
|
223
|
-
|
224
226
|
function _createApplication(
|
225
227
|
address applicationOwner,
|
226
228
|
RiskId riskId,
|
@@ -249,14 +251,17 @@ abstract contract Product is
|
|
249
251
|
|
250
252
|
function _createPolicy(
|
251
253
|
NftId applicationNftId,
|
252
|
-
Timestamp activateAt
|
254
|
+
Timestamp activateAt,
|
255
|
+
Amount maxPremiumAmount
|
253
256
|
)
|
254
257
|
internal
|
255
258
|
virtual
|
259
|
+
returns (Amount premiumAmount)
|
256
260
|
{
|
257
|
-
_getProductStorage()._policyService.createPolicy(
|
261
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
258
262
|
applicationNftId,
|
259
|
-
activateAt
|
263
|
+
activateAt,
|
264
|
+
maxPremiumAmount);
|
260
265
|
}
|
261
266
|
|
262
267
|
function _decline(
|
@@ -280,6 +285,21 @@ abstract contract Product is
|
|
280
285
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
281
286
|
}
|
282
287
|
|
288
|
+
/// @dev adjust the activation date of the policy.
|
289
|
+
/// The policy must already have an activation date set.
|
290
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
291
|
+
function _adjustActivation(
|
292
|
+
NftId policyNftId,
|
293
|
+
Timestamp activateAt
|
294
|
+
)
|
295
|
+
internal
|
296
|
+
virtual
|
297
|
+
{
|
298
|
+
_getProductStorage()._policyService.adjustActivation(
|
299
|
+
policyNftId,
|
300
|
+
activateAt);
|
301
|
+
}
|
302
|
+
|
283
303
|
function _collectPremium(
|
284
304
|
NftId policyNftId,
|
285
305
|
Timestamp activateAt
|
@@ -329,6 +349,18 @@ abstract contract Product is
|
|
329
349
|
claimData);
|
330
350
|
}
|
331
351
|
|
352
|
+
function _revokeClaim(
|
353
|
+
NftId policyNftId,
|
354
|
+
ClaimId claimId
|
355
|
+
)
|
356
|
+
internal
|
357
|
+
virtual
|
358
|
+
{
|
359
|
+
_getProductStorage()._claimService.revoke(
|
360
|
+
policyNftId,
|
361
|
+
claimId);
|
362
|
+
}
|
363
|
+
|
332
364
|
function _confirmClaim(
|
333
365
|
NftId policyNftId,
|
334
366
|
ClaimId claimId,
|
@@ -413,14 +445,23 @@ abstract contract Product is
|
|
413
445
|
)
|
414
446
|
internal
|
415
447
|
virtual
|
448
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
416
449
|
{
|
417
|
-
_getProductStorage()._claimService.processPayout(
|
450
|
+
(netPayoutAmount, processingFeeAmount) = _getProductStorage()._claimService.processPayout(
|
418
451
|
policyNftId,
|
419
452
|
payoutId);
|
420
453
|
}
|
421
454
|
|
422
|
-
function
|
423
|
-
|
455
|
+
function _cancelPayout(
|
456
|
+
NftId policyNftId,
|
457
|
+
PayoutId payoutId
|
458
|
+
)
|
459
|
+
internal
|
460
|
+
virtual
|
461
|
+
{
|
462
|
+
_getProductStorage()._claimService.cancelPayout(
|
463
|
+
policyNftId,
|
464
|
+
payoutId);
|
424
465
|
}
|
425
466
|
|
426
467
|
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|