@etherisc/gif-next 0.0.2-baec8d5-329 → 0.0.2-bafc958-412
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +19 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +21 -21
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +42 -248
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -222
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +134 -294
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -124
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +49 -62
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1660 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- 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/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +71 -71
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -123
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +34 -146
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +30 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +215 -219
- 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 +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +32 -238
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +0 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -222
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +29 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +12 -284
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +263 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +82 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +125 -23
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +2 -95
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +2 -280
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -248
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +35 -82
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +26 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +3 -225
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +185 -175
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +53 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -37
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +50 -101
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +52 -123
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +3 -225
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +221 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.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 +419 -82
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +229 -114
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -130
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -73
- 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 +24 -14
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +127 -199
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +55 -114
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -112
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +56 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -37
- 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/IPolicyHolder.sol/IPolicyHolder.json +0 -42
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -222
- 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 +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +0 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
- 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 +42 -89
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +26 -77
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +89 -84
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +13 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +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 +7 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +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 +2 -2
- 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 +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +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/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +14 -65
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +1 -3
- package/contracts/authorization/Authorization.sol +0 -1
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/Distribution.sol +4 -10
- package/contracts/distribution/DistributionService.sol +35 -44
- package/contracts/distribution/IDistributionService.sol +9 -5
- package/contracts/examples/fire/FirePool.sol +76 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +316 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +16 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +7 -30
- package/contracts/instance/Instance.sol +10 -35
- package/contracts/instance/InstanceAdmin.sol +23 -4
- package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
- package/contracts/instance/InstanceReader.sol +32 -7
- package/contracts/instance/InstanceService.sol +60 -36
- package/contracts/instance/InstanceStore.sol +12 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -6
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +22 -22
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/Oracle.sol +4 -7
- package/contracts/oracle/OracleService.sol +4 -3
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +5 -2
- package/contracts/pool/BundleService.sol +138 -42
- package/contracts/pool/IBundleService.sol +22 -8
- package/contracts/pool/IPoolService.sol +36 -26
- package/contracts/pool/Pool.sol +22 -24
- package/contracts/pool/PoolService.sol +155 -82
- package/contracts/product/ApplicationService.sol +41 -23
- package/contracts/product/BasicProduct.sol +3 -32
- package/contracts/product/ClaimService.sol +116 -45
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +28 -5
- package/contracts/product/IPolicyService.sol +27 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +0 -1
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +280 -182
- package/contracts/product/PricingService.sol +44 -43
- package/contracts/product/Product.sol +67 -34
- package/contracts/product/{ProductService.sol → RiskService.sol} +5 -7
- package/contracts/product/{ProductServiceManager.sol → RiskServiceManager.sol} +8 -8
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +49 -15
- package/contracts/registry/Registry.sol +321 -195
- package/contracts/registry/RegistryAdmin.sol +150 -51
- package/contracts/registry/RegistryService.sol +2 -2
- package/contracts/registry/ReleaseRegistry.sol +12 -8
- package/contracts/registry/ServiceAuthorizationV3.sol +2 -3
- package/contracts/shared/Component.sol +17 -29
- package/contracts/shared/ComponentService.sol +46 -27
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +5 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
- package/contracts/shared/IPolicyHolder.sol +0 -9
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +4 -4
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +7 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +5 -5
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +10 -26
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +5 -3
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +15 -11
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +29 -10
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
@@ -7,7 +7,7 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
|
|
7
7
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
8
8
|
import {TimestampLib} from "../type/Timestamp.sol";
|
9
9
|
import {ObjectType, CLAIM, PRODUCT, POOL} from "../type/ObjectType.sol";
|
10
|
-
import {SUBMITTED, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
10
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
11
11
|
import {NftId} from "../type/NftId.sol";
|
12
12
|
import {FeeLib} from "../type/Fee.sol";
|
13
13
|
import {StateId} from "../type/StateId.sol";
|
@@ -40,11 +40,11 @@ contract ClaimService is
|
|
40
40
|
address authority
|
41
41
|
) = abi.decode(data, (address, address, address));
|
42
42
|
|
43
|
-
|
43
|
+
_initializeService(registryAddress, authority, owner);
|
44
44
|
|
45
45
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
46
46
|
|
47
|
-
|
47
|
+
_registerInterface(type(IClaimService).interfaceId);
|
48
48
|
}
|
49
49
|
|
50
50
|
function submit(
|
@@ -67,6 +67,7 @@ contract ClaimService is
|
|
67
67
|
revert ErrorClaimServicePolicyNotOpen(policyNftId);
|
68
68
|
}
|
69
69
|
|
70
|
+
// TODO check claim amount > 0
|
70
71
|
// check policy including this claim is still within sum insured
|
71
72
|
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
72
73
|
revert ErrorClaimServiceClaimExceedsSumInsured(
|
@@ -80,14 +81,14 @@ contract ClaimService is
|
|
80
81
|
instance.getInstanceStore().createClaim(
|
81
82
|
policyNftId,
|
82
83
|
claimId,
|
83
|
-
IPolicy.ClaimInfo(
|
84
|
-
claimAmount,
|
85
|
-
AmountLib.zero(),
|
86
|
-
0,
|
87
|
-
0,
|
88
|
-
claimData,
|
89
|
-
"",
|
90
|
-
TimestampLib.zero()));
|
84
|
+
IPolicy.ClaimInfo({
|
85
|
+
claimAmount: claimAmount,
|
86
|
+
paidAmount: AmountLib.zero(),
|
87
|
+
payoutsCount: 0,
|
88
|
+
openPayoutsCount: 0,
|
89
|
+
submissionData: claimData,
|
90
|
+
processData: "",
|
91
|
+
closedAt: TimestampLib.zero()}));
|
91
92
|
|
92
93
|
// update and save policy info with instance
|
93
94
|
policyInfo.claimsCount += 1;
|
@@ -114,12 +115,17 @@ contract ClaimService is
|
|
114
115
|
IPolicy.PolicyInfo memory policyInfo
|
115
116
|
) = _verifyCallerWithPolicy(policyNftId);
|
116
117
|
|
118
|
+
// TODO add check for confirmedAmount > 0 and does not lead to exceeding sum insured
|
119
|
+
|
117
120
|
// check/update claim info
|
118
121
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
119
122
|
claimInfo.claimAmount = confirmedAmount;
|
120
123
|
claimInfo.processData = data;
|
121
124
|
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
122
125
|
|
126
|
+
// TODO test if claim results in total claim amount == sum insured amount
|
127
|
+
// should policy still be active it needs to automatically become expired
|
128
|
+
|
123
129
|
// update and save policy info with instance
|
124
130
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
125
131
|
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
@@ -154,6 +160,34 @@ contract ClaimService is
|
|
154
160
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
155
161
|
}
|
156
162
|
|
163
|
+
|
164
|
+
// TODO add test case
|
165
|
+
function revoke(
|
166
|
+
NftId policyNftId,
|
167
|
+
ClaimId claimId
|
168
|
+
)
|
169
|
+
external
|
170
|
+
virtual
|
171
|
+
{
|
172
|
+
(
|
173
|
+
IInstance instance,
|
174
|
+
InstanceReader instanceReader,
|
175
|
+
IPolicy.PolicyInfo memory policyInfo
|
176
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
177
|
+
|
178
|
+
// check/update claim info
|
179
|
+
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
180
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
181
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
182
|
+
|
183
|
+
// update and save policy info with instance
|
184
|
+
policyInfo.openClaimsCount -= 1;
|
185
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
186
|
+
|
187
|
+
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
188
|
+
}
|
189
|
+
|
190
|
+
|
157
191
|
function close(
|
158
192
|
NftId policyNftId,
|
159
193
|
ClaimId claimId
|
@@ -191,6 +225,30 @@ contract ClaimService is
|
|
191
225
|
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
192
226
|
}
|
193
227
|
|
228
|
+
// TODO add test
|
229
|
+
function createPayoutForBeneficiary(
|
230
|
+
NftId policyNftId,
|
231
|
+
ClaimId claimId,
|
232
|
+
Amount amount,
|
233
|
+
address beneficiary,
|
234
|
+
bytes memory data
|
235
|
+
)
|
236
|
+
external
|
237
|
+
virtual
|
238
|
+
returns (PayoutId payoutId)
|
239
|
+
{
|
240
|
+
if (beneficiary == address(0)) {
|
241
|
+
revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
|
242
|
+
}
|
243
|
+
|
244
|
+
return _createPayout(
|
245
|
+
policyNftId,
|
246
|
+
claimId,
|
247
|
+
amount,
|
248
|
+
beneficiary,
|
249
|
+
data);
|
250
|
+
}
|
251
|
+
|
194
252
|
|
195
253
|
function createPayout(
|
196
254
|
NftId policyNftId,
|
@@ -199,6 +257,26 @@ contract ClaimService is
|
|
199
257
|
bytes memory data
|
200
258
|
)
|
201
259
|
external
|
260
|
+
virtual
|
261
|
+
returns (PayoutId payoutId)
|
262
|
+
{
|
263
|
+
return _createPayout(
|
264
|
+
policyNftId,
|
265
|
+
claimId,
|
266
|
+
amount,
|
267
|
+
address(0), // defaults to owner of policy nft
|
268
|
+
data);
|
269
|
+
}
|
270
|
+
|
271
|
+
function _createPayout(
|
272
|
+
NftId policyNftId,
|
273
|
+
ClaimId claimId,
|
274
|
+
Amount amount,
|
275
|
+
address beneficiary,
|
276
|
+
bytes memory data
|
277
|
+
)
|
278
|
+
internal
|
279
|
+
virtual
|
202
280
|
returns (PayoutId payoutId)
|
203
281
|
{
|
204
282
|
(
|
@@ -221,11 +299,12 @@ contract ClaimService is
|
|
221
299
|
instance.getInstanceStore().createPayout(
|
222
300
|
policyNftId,
|
223
301
|
payoutId,
|
224
|
-
IPolicy.PayoutInfo(
|
225
|
-
payoutId.toClaimId(),
|
226
|
-
amount,
|
227
|
-
|
228
|
-
|
302
|
+
IPolicy.PayoutInfo({
|
303
|
+
claimId: payoutId.toClaimId(),
|
304
|
+
amount: amount,
|
305
|
+
beneficiary: beneficiary,
|
306
|
+
data: data,
|
307
|
+
paidAt: TimestampLib.zero()}));
|
229
308
|
|
230
309
|
// update and save claim info with instance
|
231
310
|
claimInfo.payoutsCount += 1;
|
@@ -293,20 +372,28 @@ contract ClaimService is
|
|
293
372
|
// transfer payout token and fee
|
294
373
|
(
|
295
374
|
Amount netPayoutAmount,
|
375
|
+
Amount processingFeeAmount,
|
296
376
|
address beneficiary
|
297
|
-
) =
|
377
|
+
) = _calculatePayoutAmount(
|
298
378
|
instanceReader,
|
299
379
|
policyNftId,
|
300
380
|
policyInfo,
|
301
381
|
payoutInfo);
|
302
382
|
|
303
|
-
|
383
|
+
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
|
304
384
|
|
305
|
-
|
385
|
+
{
|
386
|
+
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
387
|
+
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
388
|
+
poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
|
389
|
+
|
390
|
+
// TODO add 2nd token tx if processingFeeAmount > 0
|
391
|
+
}
|
392
|
+
|
393
|
+
// TODO callback IPolicyHolder
|
306
394
|
}
|
307
395
|
|
308
|
-
|
309
|
-
function _transferPayoutAmount(
|
396
|
+
function _calculatePayoutAmount(
|
310
397
|
InstanceReader instanceReader,
|
311
398
|
NftId policyNftId,
|
312
399
|
IPolicy.PolicyInfo memory policyInfo,
|
@@ -315,6 +402,7 @@ contract ClaimService is
|
|
315
402
|
internal
|
316
403
|
returns (
|
317
404
|
Amount netPayoutAmount,
|
405
|
+
Amount processingFeeAmount,
|
318
406
|
address beneficiary
|
319
407
|
)
|
320
408
|
{
|
@@ -328,39 +416,22 @@ contract ClaimService is
|
|
328
416
|
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
329
417
|
|
330
418
|
netPayoutAmount = payoutAmount;
|
331
|
-
|
419
|
+
|
420
|
+
if (payoutInfo.beneficiary == address(0)) {
|
421
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
422
|
+
} else {
|
423
|
+
beneficiary = payoutInfo.beneficiary;
|
424
|
+
}
|
332
425
|
|
333
426
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
334
427
|
if(FeeLib.gtz(productInfo.processingFee)) {
|
335
|
-
// TODO calculate net payout and processing fees
|
336
|
-
// TODO transfer processing fees to product wallet
|
337
|
-
// TODO inform product to update fee book keeping
|
428
|
+
// TODO calculate and set net payout and processing fees
|
338
429
|
}
|
339
|
-
|
340
|
-
poolInfo.tokenHandler.transfer(
|
341
|
-
poolInfo.wallet,
|
342
|
-
beneficiary,
|
343
|
-
netPayoutAmount);
|
344
430
|
}
|
345
431
|
}
|
346
432
|
|
347
433
|
// internal functions
|
348
434
|
|
349
|
-
function _getBeneficiary(
|
350
|
-
NftId policyNftId,
|
351
|
-
ClaimId claimId
|
352
|
-
)
|
353
|
-
internal
|
354
|
-
returns (address beneficiary)
|
355
|
-
{
|
356
|
-
// TODO check if owner is IPolicyHolder
|
357
|
-
// if so, obtain beneficiary from this contract
|
358
|
-
|
359
|
-
// default beneficiary is policy nft owner
|
360
|
-
beneficiary = getRegistry().ownerOf(policyNftId);
|
361
|
-
}
|
362
|
-
|
363
|
-
|
364
435
|
function _verifyCallerWithPolicy(
|
365
436
|
NftId policyNftId
|
366
437
|
)
|
@@ -23,14 +23,17 @@ interface IClaimService is
|
|
23
23
|
event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
|
24
24
|
event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
|
25
25
|
event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
|
26
|
+
event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
|
26
27
|
event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
|
27
28
|
|
28
29
|
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
|
29
|
-
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount);
|
30
|
+
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount, Amount processingFeeAmount);
|
30
31
|
|
31
32
|
error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
|
32
33
|
error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
|
33
34
|
error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
|
35
|
+
error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
|
36
|
+
error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
|
34
37
|
|
35
38
|
error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
|
36
39
|
error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
|
@@ -46,9 +49,6 @@ interface IClaimService is
|
|
46
49
|
) external returns (ClaimId claimId);
|
47
50
|
|
48
51
|
|
49
|
-
// TODO add claim revoke functionality
|
50
|
-
|
51
|
-
|
52
52
|
/// @dev declines the specified claim
|
53
53
|
/// function can only be called by product, policy needs to match with calling product
|
54
54
|
function decline(
|
@@ -58,6 +58,14 @@ interface IClaimService is
|
|
58
58
|
) external;
|
59
59
|
|
60
60
|
|
61
|
+
/// @dev revokes the specified claim
|
62
|
+
/// function can only be called by product, policy needs to match with calling product
|
63
|
+
function revoke(
|
64
|
+
NftId policyNftId,
|
65
|
+
ClaimId claimId
|
66
|
+
) external;
|
67
|
+
|
68
|
+
|
61
69
|
/// @dev confirms the specified claim and specifies the payout amount
|
62
70
|
/// function can only be called by product, policy needs to match with calling product
|
63
71
|
function confirm(
|
@@ -76,7 +84,8 @@ interface IClaimService is
|
|
76
84
|
) external;
|
77
85
|
|
78
86
|
|
79
|
-
/// @dev
|
87
|
+
/// @dev Creates a new payout for the specified claim.
|
88
|
+
/// The beneficiary is the holder of the policy NFT
|
80
89
|
/// returns the id of the newly created payout, this id is unique for the specified policy
|
81
90
|
/// function can only be called by product, policy needs to match with calling product
|
82
91
|
function createPayout(
|
@@ -89,6 +98,20 @@ interface IClaimService is
|
|
89
98
|
returns (PayoutId payoutId);
|
90
99
|
|
91
100
|
|
101
|
+
/// @dev Creates a new payout for the specified claim and beneficiary.
|
102
|
+
/// returns the id of the newly created payout, this id is unique for the specified policy
|
103
|
+
/// function can only be called by product, policy needs to match with calling product
|
104
|
+
function createPayoutForBeneficiary(
|
105
|
+
NftId policyNftId,
|
106
|
+
ClaimId claimId,
|
107
|
+
Amount amount,
|
108
|
+
address beneficiary,
|
109
|
+
bytes memory data
|
110
|
+
)
|
111
|
+
external
|
112
|
+
returns (PayoutId payoutId);
|
113
|
+
|
114
|
+
|
92
115
|
/// @dev processes the specified payout
|
93
116
|
/// this includes moving the payout token to the beneficiary (default: policy holder)
|
94
117
|
/// function can only be called by product, policy needs to match with calling product
|
@@ -1,54 +1,48 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
5
4
|
import {IService} from "../shared/IService.sol";
|
6
5
|
|
7
6
|
import {Amount} from "../type/Amount.sol";
|
8
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
9
7
|
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
11
|
-
import {ReferralId} from "../type/Referral.sol";
|
12
|
-
import {RiskId} from "../type/RiskId.sol";
|
13
|
-
import {Seconds} from "../type/Seconds.sol";
|
14
8
|
import {StateId} from "../type/StateId.sol";
|
15
9
|
import {Timestamp} from "../type/Timestamp.sol";
|
16
|
-
import {UFixed} from "../type/UFixed.sol";
|
17
|
-
import {Fee} from "../type/Fee.sol";
|
18
10
|
|
19
11
|
interface IPolicyService is IService {
|
20
12
|
|
21
13
|
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
22
14
|
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
23
|
-
error
|
15
|
+
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
16
|
+
error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
|
24
17
|
|
25
|
-
error ErrorPolicyServicePremiumHigherThanExpected(Amount premiumExpectedAmount, Amount premiumToBePaidAmount);
|
26
18
|
error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
|
27
19
|
error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
|
28
20
|
|
29
|
-
error
|
30
|
-
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId
|
31
|
-
error
|
32
|
-
error
|
33
|
-
error
|
34
|
-
error
|
35
|
-
error
|
36
|
-
error
|
21
|
+
error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
22
|
+
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
|
23
|
+
error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
|
24
|
+
error ErrorPolicyServicePolicyAlreadyClosed(NftId policyNftId);
|
25
|
+
error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
|
26
|
+
error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
|
27
|
+
error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
|
28
|
+
error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
|
29
|
+
error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
|
30
|
+
error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
|
37
31
|
|
38
32
|
error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
|
39
33
|
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
|
40
34
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
///
|
45
|
-
///
|
46
|
-
///
|
47
|
-
///
|
48
|
-
///
|
49
|
-
|
50
|
-
|
51
|
-
|
35
|
+
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
36
|
+
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
37
|
+
|
38
|
+
/// @dev creates the policy from {applicationNftId}.
|
39
|
+
/// After successful completion of the function the policy can be referenced using the application NftId.
|
40
|
+
/// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
|
41
|
+
/// Sets the policy state to collateralized.
|
42
|
+
/// Optionally activates the policy if activateAt is a non-zero timestamp.
|
43
|
+
/// only the related product may create a policy from an application
|
44
|
+
function createPolicy(
|
45
|
+
NftId applicationNftId,
|
52
46
|
Timestamp activateAt
|
53
47
|
) external;
|
54
48
|
|
@@ -57,18 +51,19 @@ interface IPolicyService is IService {
|
|
57
51
|
/// only the related product may decline an application
|
58
52
|
function decline(NftId policyNftId) external;
|
59
53
|
|
60
|
-
/// @dev collects the premium token for the specified policy
|
54
|
+
/// @dev collects the premium token for the specified policy (must be in COLLATERALIZED state)
|
61
55
|
function collectPremium(NftId policyNftId, Timestamp activateAt) external;
|
62
56
|
|
63
57
|
/// @dev activates the specified policy and sets the activation date in the policy metadata
|
64
58
|
/// to activate a policy it needs to be in underwritten state
|
65
59
|
function activate(NftId policyNftId, Timestamp activateAt) external;
|
66
60
|
|
67
|
-
/// @dev expires the specified policy and sets the expiry date in the policy metadata
|
61
|
+
/// @dev expires the specified policy and sets the expiry date in the policy metadata. If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
|
68
62
|
/// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
|
69
63
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
70
64
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
71
|
-
|
65
|
+
/// @return expiredAt the effective expiry date
|
66
|
+
function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
72
67
|
|
73
68
|
/// @dev closes the specified policy and sets the closed data in the policy metadata
|
74
69
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
@@ -16,12 +16,12 @@ interface IPricingService is IService
|
|
16
16
|
error ErrorPricingServiceTargetWalletAmountsMismatch();
|
17
17
|
error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
|
18
18
|
error ErrorIPricingServiceFeeCalculationMismatch(
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
Amount distributionFeeFixAmount,
|
20
|
+
Amount distributionFeeVarAmount,
|
21
|
+
Amount distributionOwnerFeeFixAmount,
|
22
|
+
Amount distributionOwnerFeeVarAmount,
|
23
|
+
Amount commissionAmount,
|
24
|
+
Amount discountAmount
|
25
25
|
);
|
26
26
|
|
27
27
|
function calculatePremium(
|
@@ -35,5 +35,5 @@ interface IPricingService is IService
|
|
35
35
|
)
|
36
36
|
external
|
37
37
|
view
|
38
|
-
returns (IPolicy.
|
38
|
+
returns (IPolicy.PremiumInfo memory premium);
|
39
39
|
}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {Fee} from "../type/Fee.sol";
|
6
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
7
|
import {NftId} from "../type/NftId.sol";
|
@@ -12,7 +12,7 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
12
12
|
import {UFixed} from "../type/UFixed.sol";
|
13
13
|
import {Fee} from "../type/Fee.sol";
|
14
14
|
|
15
|
-
interface
|
15
|
+
interface IRiskService is IService {
|
16
16
|
|
17
17
|
function createRisk(
|
18
18
|
RiskId riskId,
|