@etherisc/gif-next 0.0.2-abde86b-349 → 0.0.2-acc7efa-771
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
- 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 +67 -11
- 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 +60 -13
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +154 -94
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +94 -58
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +81 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1501 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2042 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +156 -96
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +137 -77
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +213 -135
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +518 -171
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +62 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +113 -130
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +72 -130
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +48 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +174 -103
- 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 +46 -5
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +135 -75
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
- 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 +76 -53
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +89 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +86 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +48 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +89 -71
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +180 -82
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -58
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -120
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +89 -58
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +209 -180
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +134 -54
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +167 -82
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +82 -58
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +58 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +121 -54
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +139 -60
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +67 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +149 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +134 -54
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +60 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -30
- 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 +48 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +145 -61
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -29
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +121 -223
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +68 -28
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +350 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +76 -53
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +18 -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 +66 -8
- 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 +42 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +55 -28
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +138 -78
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +68 -42
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +66 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +45 -33
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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 +32 -8
- 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 +28 -4
- 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 +2 -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/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 +15 -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/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- 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 +28 -12
- 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 +65 -61
- package/contracts/authorization/Authorization.sol +106 -38
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -2
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +6 -16
- package/contracts/distribution/DistributionService.sol +52 -34
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +87 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +428 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +11 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +16 -27
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +9 -33
- package/contracts/instance/InstanceService.sol +13 -68
- package/contracts/instance/module/IComponents.sol +7 -4
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +37 -27
- package/contracts/pool/BasicPool.sol +18 -28
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +24 -1
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolService.sol +2 -6
- package/contracts/pool/Pool.sol +17 -41
- package/contracts/pool/PoolService.sol +41 -64
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +46 -28
- package/contracts/product/IClaimService.sol +2 -1
- package/contracts/product/IPolicyService.sol +3 -0
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +6 -0
- package/contracts/product/PolicyService.sol +50 -13
- package/contracts/product/PricingService.sol +4 -7
- package/contracts/product/Product.sol +54 -55
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +4 -3
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +14 -4
- package/contracts/registry/RegistryAdmin.sol +7 -23
- package/contracts/registry/RegistryService.sol +37 -55
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +201 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +25 -28
- package/contracts/shared/ComponentService.sol +224 -130
- package/contracts/shared/ComponentVerifyingService.sol +22 -12
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +67 -25
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +19 -3
- package/contracts/shared/Registerable.sol +15 -5
- package/contracts/shared/Service.sol +4 -7
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +2 -3
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +1 -15
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +2 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Fee} from "../type/Fee.sol";
|
5
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
7
|
import {NftId} from "../type/NftId.sol";
|
7
8
|
import {Product} from "../product/Product.sol";
|
8
9
|
|
@@ -25,13 +26,11 @@ abstract contract BasicProduct is
|
|
25
26
|
function _initializeBasicProduct(
|
26
27
|
address registry,
|
27
28
|
NftId instanceNftId,
|
28
|
-
IAuthorization authorization,
|
29
|
-
address initialOwner,
|
30
29
|
string memory name,
|
31
30
|
address token,
|
32
|
-
|
33
|
-
|
34
|
-
address
|
31
|
+
IComponents.ProductInfo memory productInfo,
|
32
|
+
IAuthorization authorization,
|
33
|
+
address initialOwner
|
35
34
|
)
|
36
35
|
internal
|
37
36
|
virtual
|
@@ -40,14 +39,11 @@ abstract contract BasicProduct is
|
|
40
39
|
_initializeProduct(
|
41
40
|
registry,
|
42
41
|
instanceNftId,
|
43
|
-
authorization,
|
44
|
-
initialOwner,
|
45
42
|
name,
|
46
43
|
token,
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
""
|
51
|
-
""); // componentData
|
44
|
+
productInfo,
|
45
|
+
authorization,
|
46
|
+
initialOwner,
|
47
|
+
""); // component data
|
52
48
|
}
|
53
49
|
}
|
@@ -36,7 +36,6 @@ contract BasicProductAuthorization
|
|
36
36
|
// authorize public role (open access to any account, only allows to lock target)
|
37
37
|
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
38
38
|
_authorize(functions, BasicProduct.setFees.selector, "setFees");
|
39
|
-
|
40
39
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
41
40
|
}
|
42
41
|
}
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {TimestampLib} from "../type/Timestamp.sol";
|
6
|
-
import {ObjectType, CLAIM,
|
6
|
+
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
7
7
|
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {FeeLib} from "../type/Fee.sol";
|
@@ -13,12 +13,14 @@ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
|
13
13
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
14
14
|
import {ContractLib} from "../shared/ContractLib.sol";
|
15
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
16
17
|
import {IClaimService} from "./IClaimService.sol";
|
17
18
|
import {IComponents} from "../instance/module/IComponents.sol";
|
18
19
|
import {IInstance} from "../instance/IInstance.sol";
|
19
20
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
20
21
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
21
22
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
22
24
|
import {IPoolService} from "../pool/IPoolService.sol";
|
23
25
|
|
24
26
|
|
@@ -27,6 +29,7 @@ contract ClaimService is
|
|
27
29
|
IClaimService
|
28
30
|
{
|
29
31
|
|
32
|
+
IPolicyService internal _policyService;
|
30
33
|
IPoolService internal _poolService;
|
31
34
|
|
32
35
|
function _initialize(
|
@@ -44,6 +47,7 @@ contract ClaimService is
|
|
44
47
|
|
45
48
|
_initializeService(registryAddress, authority, owner);
|
46
49
|
|
50
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
47
51
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
48
52
|
|
49
53
|
_registerInterface(type(IClaimService).interfaceId);
|
@@ -61,8 +65,8 @@ contract ClaimService is
|
|
61
65
|
{
|
62
66
|
(
|
63
67
|
,
|
64
|
-
IInstance instance
|
65
|
-
|
68
|
+
IInstance instance,,
|
69
|
+
InstanceStore instanceStore,
|
66
70
|
IPolicy.PolicyInfo memory policyInfo
|
67
71
|
) = _verifyCallerWithPolicy(policyNftId);
|
68
72
|
|
@@ -82,7 +86,7 @@ contract ClaimService is
|
|
82
86
|
|
83
87
|
// create new claim
|
84
88
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
85
|
-
|
89
|
+
instanceStore.createClaim(
|
86
90
|
policyNftId,
|
87
91
|
claimId,
|
88
92
|
IPolicy.ClaimInfo({
|
@@ -95,10 +99,10 @@ contract ClaimService is
|
|
95
99
|
closedAt: TimestampLib.zero()}));
|
96
100
|
|
97
101
|
// update and save policy info with instance
|
102
|
+
// policy claim amount is only updated when claim is confirmed
|
98
103
|
policyInfo.claimsCount += 1;
|
99
104
|
policyInfo.openClaimsCount += 1;
|
100
|
-
|
101
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
105
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
102
106
|
|
103
107
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
104
108
|
}
|
@@ -118,6 +122,7 @@ contract ClaimService is
|
|
118
122
|
NftId productNftId,
|
119
123
|
IInstance instance,
|
120
124
|
InstanceReader instanceReader,
|
125
|
+
InstanceStore instanceStore,
|
121
126
|
IPolicy.PolicyInfo memory policyInfo
|
122
127
|
) = _verifyCallerWithPolicy(policyNftId);
|
123
128
|
|
@@ -127,14 +132,16 @@ contract ClaimService is
|
|
127
132
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
128
133
|
claimInfo.claimAmount = confirmedAmount;
|
129
134
|
claimInfo.processData = data;
|
130
|
-
|
131
|
-
|
132
|
-
// TODO test if claim results in total claim amount == sum insured amount
|
133
|
-
// should policy still be active it needs to automatically become expired
|
135
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
134
136
|
|
135
137
|
// update and save policy info with instance
|
136
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
137
|
-
|
139
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
140
|
+
|
141
|
+
// should policy still be active it needs to become expired
|
142
|
+
if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
|
143
|
+
_policyService.expirePolicy(instance, policyNftId, TimestampLib.blockTimestamp());
|
144
|
+
}
|
138
145
|
|
139
146
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
140
147
|
|
@@ -159,6 +166,7 @@ contract ClaimService is
|
|
159
166
|
,
|
160
167
|
IInstance instance,
|
161
168
|
InstanceReader instanceReader,
|
169
|
+
InstanceStore instanceStore,
|
162
170
|
IPolicy.PolicyInfo memory policyInfo
|
163
171
|
) = _verifyCallerWithPolicy(policyNftId);
|
164
172
|
|
@@ -166,11 +174,11 @@ contract ClaimService is
|
|
166
174
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
167
175
|
claimInfo.processData = data;
|
168
176
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
169
|
-
|
177
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
170
178
|
|
171
179
|
// update and save policy info with instance
|
172
180
|
policyInfo.openClaimsCount -= 1;
|
173
|
-
|
181
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
174
182
|
|
175
183
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
176
184
|
}
|
@@ -189,17 +197,18 @@ contract ClaimService is
|
|
189
197
|
,
|
190
198
|
IInstance instance,
|
191
199
|
InstanceReader instanceReader,
|
200
|
+
InstanceStore instanceStore,
|
192
201
|
IPolicy.PolicyInfo memory policyInfo
|
193
202
|
) = _verifyCallerWithPolicy(policyNftId);
|
194
203
|
|
195
204
|
// check/update claim info
|
196
205
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
197
206
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
198
|
-
|
207
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
199
208
|
|
200
209
|
// update and save policy info with instance
|
201
210
|
policyInfo.openClaimsCount -= 1;
|
202
|
-
|
211
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
203
212
|
|
204
213
|
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
205
214
|
}
|
@@ -217,6 +226,7 @@ contract ClaimService is
|
|
217
226
|
,
|
218
227
|
IInstance instance,
|
219
228
|
InstanceReader instanceReader,
|
229
|
+
InstanceStore instanceStore,
|
220
230
|
IPolicy.PolicyInfo memory policyInfo
|
221
231
|
) = _verifyCallerWithPolicy(policyNftId);
|
222
232
|
|
@@ -241,7 +251,7 @@ contract ClaimService is
|
|
241
251
|
}
|
242
252
|
|
243
253
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
244
|
-
|
254
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
245
255
|
}
|
246
256
|
|
247
257
|
|
@@ -302,6 +312,7 @@ contract ClaimService is
|
|
302
312
|
,
|
303
313
|
IInstance instance,
|
304
314
|
InstanceReader instanceReader,
|
315
|
+
InstanceStore instanceStore,
|
305
316
|
IPolicy.PolicyInfo memory policyInfo
|
306
317
|
) = _verifyCallerWithPolicy(policyNftId);
|
307
318
|
|
@@ -310,7 +321,7 @@ contract ClaimService is
|
|
310
321
|
|
311
322
|
// update and save payout info with instance
|
312
323
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
313
|
-
|
324
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
314
325
|
|
315
326
|
ClaimId claimId = payoutId.toClaimId();
|
316
327
|
Amount payoutAmount = payoutInfo.amount;
|
@@ -321,26 +332,26 @@ contract ClaimService is
|
|
321
332
|
// check if this payout is closing the linked claim
|
322
333
|
// update claim and policy info accordingly
|
323
334
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
324
|
-
claimInfo.closedAt
|
325
|
-
|
335
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
336
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
326
337
|
|
327
338
|
policyInfo.openClaimsCount -= 1;
|
328
339
|
} else {
|
329
|
-
|
340
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
330
341
|
}
|
331
342
|
|
332
343
|
// update and save policy info with instance
|
333
344
|
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
334
|
-
|
345
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
335
346
|
|
336
347
|
// inform pool about payout
|
337
|
-
_poolService.
|
348
|
+
_poolService.processPayout(
|
338
349
|
instance,
|
339
350
|
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
340
351
|
policyNftId,
|
341
352
|
policyInfo,
|
342
353
|
payoutAmount);
|
343
|
-
|
354
|
+
|
344
355
|
// transfer payout token and fee
|
345
356
|
(
|
346
357
|
Amount netPayoutAmount,
|
@@ -382,8 +393,9 @@ contract ClaimService is
|
|
382
393
|
{
|
383
394
|
(
|
384
395
|
,
|
385
|
-
|
396
|
+
,
|
386
397
|
InstanceReader instanceReader,
|
398
|
+
InstanceStore instanceStore,
|
387
399
|
IPolicy.PolicyInfo memory policyInfo
|
388
400
|
) = _verifyCallerWithPolicy(policyNftId);
|
389
401
|
|
@@ -398,7 +410,11 @@ contract ClaimService is
|
|
398
410
|
// create payout info with instance
|
399
411
|
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
400
412
|
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
401
|
-
|
413
|
+
if (beneficiary == address(0)) {
|
414
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
415
|
+
}
|
416
|
+
|
417
|
+
instanceStore.createPayout(
|
402
418
|
policyNftId,
|
403
419
|
payoutId,
|
404
420
|
IPolicy.PayoutInfo({
|
@@ -411,13 +427,13 @@ contract ClaimService is
|
|
411
427
|
// update and save claim info with instance
|
412
428
|
claimInfo.payoutsCount += 1;
|
413
429
|
claimInfo.openPayoutsCount += 1;
|
414
|
-
|
430
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
415
431
|
|
416
432
|
// update and save policy info with instance
|
417
433
|
policyInfo.payoutAmount.add(amount);
|
418
|
-
|
434
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
419
435
|
|
420
|
-
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
|
436
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
421
437
|
}
|
422
438
|
|
423
439
|
|
@@ -469,11 +485,13 @@ contract ClaimService is
|
|
469
485
|
NftId productNftId,
|
470
486
|
IInstance instance,
|
471
487
|
InstanceReader instanceReader,
|
488
|
+
InstanceStore instanceStore,
|
472
489
|
IPolicy.PolicyInfo memory policyInfo
|
473
490
|
)
|
474
491
|
{
|
475
492
|
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
476
493
|
instanceReader = instance.getInstanceReader();
|
494
|
+
instanceStore = instance.getInstanceStore();
|
477
495
|
|
478
496
|
// check caller(product) policy match
|
479
497
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -26,8 +26,9 @@ interface IClaimService is
|
|
26
26
|
event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
|
27
27
|
event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
|
28
28
|
|
29
|
-
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
|
29
|
+
event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
|
30
30
|
event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount, Amount processingFeeAmount);
|
31
|
+
error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
|
31
32
|
|
32
33
|
error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
|
33
34
|
error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IService} from "../shared/IService.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
8
|
import {NftId} from "../type/NftId.sol";
|
8
9
|
import {StateId} from "../type/StateId.sol";
|
9
10
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -69,6 +70,8 @@ interface IPolicyService is IService {
|
|
69
70
|
/// @return expiredAt the effective expiry date
|
70
71
|
function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
71
72
|
|
73
|
+
function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
74
|
+
|
72
75
|
/// @dev closes the specified policy and sets the closed data in the policy metadata
|
73
76
|
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
74
77
|
/// this function can only be called by a product. the policy needs to match with the calling product
|
@@ -14,15 +14,15 @@ interface IPricingService is IService
|
|
14
14
|
{
|
15
15
|
|
16
16
|
error ErrorPricingServiceTargetWalletAmountsMismatch();
|
17
|
-
error
|
18
|
-
error
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
|
18
|
+
error ErrorPricingServiceFeeCalculationMismatch(
|
19
|
+
Amount distributionFeeFixAmount,
|
20
|
+
Amount distributionFeeVarAmount,
|
21
|
+
Amount distributionOwnerFeeFixAmount,
|
22
|
+
Amount distributionOwnerFeeVarAmount,
|
23
|
+
Amount commissionAmount,
|
24
|
+
Amount discountAmount
|
25
|
+
);
|
26
26
|
|
27
27
|
function calculatePremium(
|
28
28
|
NftId productNftId,
|
@@ -6,6 +6,7 @@ import {ClaimId} from "../type/ClaimId.sol";
|
|
6
6
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
9
10
|
import {ReferralId} from "../type/Referral.sol";
|
10
11
|
import {RiskId} from "../type/RiskId.sol";
|
11
12
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -14,6 +15,11 @@ interface IProductComponent is
|
|
14
15
|
IInstanceLinkedComponent
|
15
16
|
{
|
16
17
|
|
18
|
+
// @dev register a new component for this product cluster.
|
19
|
+
function registerComponent(address component)
|
20
|
+
external
|
21
|
+
returns (NftId componentNftId);
|
22
|
+
|
17
23
|
/// @dev Callback function to inform product compnent about arrival of funding for a claim.
|
18
24
|
/// The callback is called by the pool service after the corresponding pool triggers this function.
|
19
25
|
/// The callback is only called when the product's property isProcessingFundedClaims is set.
|
@@ -38,9 +38,6 @@ contract PolicyService is
|
|
38
38
|
ComponentVerifyingService,
|
39
39
|
IPolicyService
|
40
40
|
{
|
41
|
-
using NftIdLib for NftId;
|
42
|
-
using TimestampLib for Timestamp;
|
43
|
-
|
44
41
|
IApplicationService internal _applicationService;
|
45
42
|
IComponentService internal _componentService;
|
46
43
|
IBundleService internal _bundleService;
|
@@ -178,9 +175,12 @@ contract PolicyService is
|
|
178
175
|
// update referral counter
|
179
176
|
{
|
180
177
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
181
|
-
|
182
|
-
|
183
|
-
|
178
|
+
|
179
|
+
if (! productInfo.distributionNftId.eqz()) { // only call distribution service if a distribution component is connected to the product
|
180
|
+
_distributionService.processReferral(
|
181
|
+
productInfo.distributionNftId,
|
182
|
+
applicationInfo.referralId);
|
183
|
+
}
|
184
184
|
}
|
185
185
|
|
186
186
|
// log policy creation before interactions with token and policy holder
|
@@ -274,10 +274,9 @@ contract PolicyService is
|
|
274
274
|
returns (Timestamp expiredAt)
|
275
275
|
{
|
276
276
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
277
|
-
|
278
|
-
|
277
|
+
|
279
278
|
// check policy matches with calling product
|
280
|
-
IPolicy.PolicyInfo memory policyInfo =
|
279
|
+
IPolicy.PolicyInfo memory policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
281
280
|
if(policyInfo.productNftId != productNftId) {
|
282
281
|
revert ErrorPolicyServicePolicyProductMismatch(
|
283
282
|
policyNftId,
|
@@ -285,8 +284,44 @@ contract PolicyService is
|
|
285
284
|
productNftId);
|
286
285
|
}
|
287
286
|
|
287
|
+
return _expire(
|
288
|
+
instance,
|
289
|
+
policyNftId,
|
290
|
+
expireAt
|
291
|
+
);
|
292
|
+
}
|
293
|
+
|
294
|
+
/// @inheritdoc IPolicyService
|
295
|
+
function expirePolicy(
|
296
|
+
IInstance instance,
|
297
|
+
NftId policyNftId,
|
298
|
+
Timestamp expireAt
|
299
|
+
)
|
300
|
+
external
|
301
|
+
virtual
|
302
|
+
nonReentrant()
|
303
|
+
returns (Timestamp expiredAt)
|
304
|
+
{
|
305
|
+
return _expire(
|
306
|
+
instance,
|
307
|
+
policyNftId,
|
308
|
+
expireAt
|
309
|
+
);
|
310
|
+
}
|
311
|
+
|
312
|
+
function _expire(
|
313
|
+
IInstance instance,
|
314
|
+
NftId policyNftId,
|
315
|
+
Timestamp expireAt
|
316
|
+
)
|
317
|
+
internal
|
318
|
+
returns (Timestamp expiredAt)
|
319
|
+
{
|
320
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
321
|
+
|
288
322
|
// check policy is active
|
289
323
|
StateId policyState = instanceReader.getPolicyState(policyNftId);
|
324
|
+
IPolicy.PolicyInfo memory policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
290
325
|
if (!_policyHasBeenActivated(policyState, policyInfo)) {
|
291
326
|
revert ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
292
327
|
}
|
@@ -453,10 +488,12 @@ contract PolicyService is
|
|
453
488
|
premium.productFeeVarAmount + premium.productFeeFixAmount);
|
454
489
|
|
455
490
|
// update distribution fees and distributor commission and pool fees
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
491
|
+
if (!distributionNftId.eqz()) { // only call distribution service if a distribution component is connected to the product
|
492
|
+
_distributionService.processSale(
|
493
|
+
distributionNftId,
|
494
|
+
referralId,
|
495
|
+
premium);
|
496
|
+
}
|
460
497
|
|
461
498
|
// update pool and bundle fees
|
462
499
|
_poolService.processSale(
|
@@ -31,11 +31,8 @@ contract PricingService is
|
|
31
31
|
ComponentVerifyingService,
|
32
32
|
IPricingService
|
33
33
|
{
|
34
|
-
using UFixedLib for UFixed;
|
35
|
-
|
36
34
|
IDistributionService internal _distributionService;
|
37
35
|
|
38
|
-
|
39
36
|
function _initialize(
|
40
37
|
address owner,
|
41
38
|
bytes memory data
|
@@ -101,7 +98,7 @@ contract PricingService is
|
|
101
98
|
|
102
99
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
103
100
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
104
|
-
revert
|
101
|
+
revert ErrorPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
105
102
|
}
|
106
103
|
|
107
104
|
// calculate fixed fees for product, pool, bundle
|
@@ -138,7 +135,7 @@ contract PricingService is
|
|
138
135
|
}
|
139
136
|
|
140
137
|
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
141
|
-
revert
|
138
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
142
139
|
premium.distributionFeeFixAmount,
|
143
140
|
premium.distributionFeeVarAmount,
|
144
141
|
premium.distributionOwnerFeeFixAmount,
|
@@ -149,7 +146,7 @@ contract PricingService is
|
|
149
146
|
}
|
150
147
|
|
151
148
|
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
152
|
-
revert
|
149
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
153
150
|
premium.distributionFeeFixAmount,
|
154
151
|
premium.distributionFeeVarAmount,
|
155
152
|
premium.distributionOwnerFeeFixAmount,
|
@@ -239,7 +236,7 @@ contract PricingService is
|
|
239
236
|
{
|
240
237
|
|
241
238
|
// if the referral is not valid, then the distribution owner gets everything
|
242
|
-
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
239
|
+
if (productInfo.distributionNftId.eqz() || ! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
243
240
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
244
241
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
245
242
|
premium.premiumAmount = premium.fullPremiumAmount;
|