@etherisc/gif-next 0.0.2-b9366f5-670 → 0.0.2-b95860d-028
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- 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 -32
- 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 +148 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +88 -186
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +125 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -107
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -57
- 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 +1551 -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 +2090 -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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -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/IInstance.sol/IInstance.json +48 -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 +51 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +165 -138
- 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 +280 -72
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +189 -98
- 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 +130 -204
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +71 -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 +84 -182
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +103 -186
- 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 +178 -187
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +117 -105
- 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 +92 -46
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -115
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +103 -173
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +308 -264
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +108 -88
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -144
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -80
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +140 -197
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +194 -200
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -104
- 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 +64 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +140 -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 +129 -70
- 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 +252 -166
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -91
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +154 -219
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +87 -91
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +140 -197
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +65 -138
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +69 -77
- 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 +285 -33
- 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 +0 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +491 -94
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- 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 +129 -221
- 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 +63 -157
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +351 -263
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +120 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +50 -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 +71 -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/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- 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/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -182
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- 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 +47 -112
- 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 +50 -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 +133 -207
- 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 +99 -88
- 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 +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- 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 +19 -19
- 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/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -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 +55 -70
- 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 +64 -59
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- 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 +5 -15
- package/contracts/distribution/DistributionService.sol +61 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/{example_components → examples}/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimplePool.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimpleProduct.sol +10 -10
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +21 -12
- package/contracts/instance/InstanceAdmin.sol +22 -30
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +83 -18
- package/contracts/instance/InstanceService.sol +19 -76
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/module/IComponents.sol +9 -4
- package/contracts/instance/module/IPolicy.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +47 -35
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +32 -9
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +21 -14
- package/contracts/pool/Pool.sol +39 -30
- package/contracts/pool/PoolService.sol +99 -83
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +11 -8
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +6 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +190 -86
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +145 -35
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +8 -12
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +83 -53
- package/contracts/product/RiskService.sol +4 -5
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +65 -36
- package/contracts/registry/IRegistry.sol +54 -17
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +341 -200
- package/contracts/registry/RegistryAdmin.sol +124 -50
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +203 -187
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +26 -18
- package/contracts/shared/ComponentService.sol +230 -136
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +22 -13
- package/contracts/shared/ContractLib.sol +38 -0
- 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/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +71 -30
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +22 -6
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +5 -6
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +3 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- 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/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- 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/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +0 -1558
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.json +0 -1318
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.json +0 -1664
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.json +0 -2125
- 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
@@ -41,18 +41,17 @@ contract ApplicationService is
|
|
41
41
|
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address registryAddress
|
45
|
-
//address managerAddress
|
44
|
+
address registryAddress,
|
46
45
|
address authority
|
47
|
-
) = abi.decode(data, (address, address
|
46
|
+
) = abi.decode(data, (address, address));
|
48
47
|
|
49
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
50
49
|
|
51
50
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
53
52
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
54
53
|
|
55
|
-
|
54
|
+
_registerInterface(type(IApplicationService).interfaceId);
|
56
55
|
}
|
57
56
|
|
58
57
|
|
@@ -135,6 +134,7 @@ contract ApplicationService is
|
|
135
134
|
)
|
136
135
|
external
|
137
136
|
virtual
|
137
|
+
nonReentrant()
|
138
138
|
returns (NftId applicationNftId)
|
139
139
|
{
|
140
140
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
@@ -209,7 +209,8 @@ contract ApplicationService is
|
|
209
209
|
NftId bundleNftId // will likely need a newer bundle for underwriting
|
210
210
|
)
|
211
211
|
external
|
212
|
-
virtual
|
212
|
+
virtual
|
213
|
+
nonReentrant()
|
213
214
|
returns (NftId applicationNftId)
|
214
215
|
{
|
215
216
|
// TODO implement
|
@@ -226,14 +227,16 @@ contract ApplicationService is
|
|
226
227
|
bytes memory applicationData
|
227
228
|
)
|
228
229
|
external
|
229
|
-
virtual
|
230
|
+
virtual
|
231
|
+
nonReentrant()
|
230
232
|
{
|
231
233
|
// TODO implement
|
232
234
|
}
|
233
235
|
|
234
236
|
function revoke(NftId applicationNftId)
|
235
237
|
external
|
236
|
-
virtual
|
238
|
+
virtual
|
239
|
+
nonReentrant()
|
237
240
|
{
|
238
241
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
239
242
|
instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
|
@@ -12,14 +12,14 @@ contract ApplicationServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
ApplicationService svc = new ApplicationService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -30,8 +30,8 @@ abstract contract BasicProduct is
|
|
30
30
|
string memory name,
|
31
31
|
address token,
|
32
32
|
bool isInterceptor,
|
33
|
-
|
34
|
-
|
33
|
+
bool hasDistribution,
|
34
|
+
uint8 numberOfOracles
|
35
35
|
)
|
36
36
|
internal
|
37
37
|
virtual
|
@@ -45,9 +45,9 @@ abstract contract BasicProduct is
|
|
45
45
|
name,
|
46
46
|
token,
|
47
47
|
isInterceptor,
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
""); //
|
48
|
+
false, // is processing funded claims
|
49
|
+
hasDistribution,
|
50
|
+
numberOfOracles,
|
51
|
+
""); // component data
|
52
52
|
}
|
53
53
|
}
|
@@ -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
|
}
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
5
|
-
import {IInstance} from "../instance/IInstance.sol";
|
6
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
7
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
8
5
|
import {TimestampLib} from "../type/Timestamp.sol";
|
9
|
-
import {ObjectType, CLAIM,
|
6
|
+
import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
10
7
|
import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
11
8
|
import {NftId} from "../type/NftId.sol";
|
12
9
|
import {FeeLib} from "../type/Fee.sol";
|
@@ -14,8 +11,16 @@ import {StateId} from "../type/StateId.sol";
|
|
14
11
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
15
12
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
16
13
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
14
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
18
17
|
import {IClaimService} from "./IClaimService.sol";
|
18
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
19
|
+
import {IInstance} from "../instance/IInstance.sol";
|
20
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
22
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
19
24
|
import {IPoolService} from "../pool/IPoolService.sol";
|
20
25
|
|
21
26
|
|
@@ -24,6 +29,7 @@ contract ClaimService is
|
|
24
29
|
IClaimService
|
25
30
|
{
|
26
31
|
|
32
|
+
IPolicyService internal _policyService;
|
27
33
|
IPoolService internal _poolService;
|
28
34
|
|
29
35
|
function _initialize(
|
@@ -35,16 +41,16 @@ contract ClaimService is
|
|
35
41
|
initializer()
|
36
42
|
{
|
37
43
|
(
|
38
|
-
address registryAddress
|
39
|
-
//address managerAddress
|
44
|
+
address registryAddress,
|
40
45
|
address authority
|
41
|
-
) = abi.decode(data, (address, address
|
46
|
+
) = abi.decode(data, (address, address));
|
42
47
|
|
43
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
44
49
|
|
50
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
45
51
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
46
52
|
|
47
|
-
|
53
|
+
_registerInterface(type(IClaimService).interfaceId);
|
48
54
|
}
|
49
55
|
|
50
56
|
function submit(
|
@@ -54,11 +60,13 @@ contract ClaimService is
|
|
54
60
|
)
|
55
61
|
external
|
56
62
|
virtual
|
63
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
57
64
|
returns (ClaimId claimId)
|
58
65
|
{
|
59
66
|
(
|
60
|
-
|
61
|
-
|
67
|
+
,
|
68
|
+
IInstance instance,,
|
69
|
+
InstanceStore instanceStore,
|
62
70
|
IPolicy.PolicyInfo memory policyInfo
|
63
71
|
) = _verifyCallerWithPolicy(policyNftId);
|
64
72
|
|
@@ -78,7 +86,7 @@ contract ClaimService is
|
|
78
86
|
|
79
87
|
// create new claim
|
80
88
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
81
|
-
|
89
|
+
instanceStore.createClaim(
|
82
90
|
policyNftId,
|
83
91
|
claimId,
|
84
92
|
IPolicy.ClaimInfo({
|
@@ -91,10 +99,10 @@ contract ClaimService is
|
|
91
99
|
closedAt: TimestampLib.zero()}));
|
92
100
|
|
93
101
|
// update and save policy info with instance
|
102
|
+
// policy claim amount is only updated when claim is confirmed
|
94
103
|
policyInfo.claimsCount += 1;
|
95
104
|
policyInfo.openClaimsCount += 1;
|
96
|
-
|
97
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
105
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
98
106
|
|
99
107
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
100
108
|
}
|
@@ -108,10 +116,13 @@ contract ClaimService is
|
|
108
116
|
)
|
109
117
|
external
|
110
118
|
virtual
|
119
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
111
120
|
{
|
112
121
|
(
|
122
|
+
NftId productNftId,
|
113
123
|
IInstance instance,
|
114
124
|
InstanceReader instanceReader,
|
125
|
+
InstanceStore instanceStore,
|
115
126
|
IPolicy.PolicyInfo memory policyInfo
|
116
127
|
) = _verifyCallerWithPolicy(policyNftId);
|
117
128
|
|
@@ -121,18 +132,27 @@ contract ClaimService is
|
|
121
132
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
122
133
|
claimInfo.claimAmount = confirmedAmount;
|
123
134
|
claimInfo.processData = data;
|
124
|
-
|
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
|
135
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
128
136
|
|
129
137
|
// update and save policy info with instance
|
130
138
|
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
131
|
-
|
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
|
+
}
|
132
145
|
|
133
146
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
147
|
+
|
148
|
+
// callback to pool if applicable
|
149
|
+
_processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
|
150
|
+
|
151
|
+
// callback to policy holder if applicable
|
152
|
+
_policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
134
153
|
}
|
135
154
|
|
155
|
+
|
136
156
|
function decline(
|
137
157
|
NftId policyNftId,
|
138
158
|
ClaimId claimId,
|
@@ -140,10 +160,13 @@ contract ClaimService is
|
|
140
160
|
)
|
141
161
|
external
|
142
162
|
virtual
|
163
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
143
164
|
{
|
144
165
|
(
|
166
|
+
,
|
145
167
|
IInstance instance,
|
146
168
|
InstanceReader instanceReader,
|
169
|
+
InstanceStore instanceStore,
|
147
170
|
IPolicy.PolicyInfo memory policyInfo
|
148
171
|
) = _verifyCallerWithPolicy(policyNftId);
|
149
172
|
|
@@ -151,11 +174,11 @@ contract ClaimService is
|
|
151
174
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
152
175
|
claimInfo.processData = data;
|
153
176
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
154
|
-
|
177
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
155
178
|
|
156
179
|
// update and save policy info with instance
|
157
180
|
policyInfo.openClaimsCount -= 1;
|
158
|
-
|
181
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
159
182
|
|
160
183
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
161
184
|
}
|
@@ -168,21 +191,24 @@ contract ClaimService is
|
|
168
191
|
)
|
169
192
|
external
|
170
193
|
virtual
|
194
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
171
195
|
{
|
172
196
|
(
|
197
|
+
,
|
173
198
|
IInstance instance,
|
174
199
|
InstanceReader instanceReader,
|
200
|
+
InstanceStore instanceStore,
|
175
201
|
IPolicy.PolicyInfo memory policyInfo
|
176
202
|
) = _verifyCallerWithPolicy(policyNftId);
|
177
203
|
|
178
204
|
// check/update claim info
|
179
205
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
180
206
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
181
|
-
|
207
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
|
182
208
|
|
183
209
|
// update and save policy info with instance
|
184
210
|
policyInfo.openClaimsCount -= 1;
|
185
|
-
|
211
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
186
212
|
|
187
213
|
emit LogClaimServiceClaimRevoked(policyNftId, claimId);
|
188
214
|
}
|
@@ -194,10 +220,13 @@ contract ClaimService is
|
|
194
220
|
)
|
195
221
|
external
|
196
222
|
virtual
|
223
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
197
224
|
{
|
198
225
|
(
|
226
|
+
,
|
199
227
|
IInstance instance,
|
200
228
|
InstanceReader instanceReader,
|
229
|
+
InstanceStore instanceStore,
|
201
230
|
IPolicy.PolicyInfo memory policyInfo
|
202
231
|
) = _verifyCallerWithPolicy(policyNftId);
|
203
232
|
|
@@ -222,10 +251,10 @@ contract ClaimService is
|
|
222
251
|
}
|
223
252
|
|
224
253
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
225
|
-
|
254
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
226
255
|
}
|
227
256
|
|
228
|
-
|
257
|
+
|
229
258
|
function createPayoutForBeneficiary(
|
230
259
|
NftId policyNftId,
|
231
260
|
ClaimId claimId,
|
@@ -235,6 +264,7 @@ contract ClaimService is
|
|
235
264
|
)
|
236
265
|
external
|
237
266
|
virtual
|
267
|
+
// nonReentrant() // prevents creating a reinsurance claim in a single tx
|
238
268
|
returns (PayoutId payoutId)
|
239
269
|
{
|
240
270
|
if (beneficiary == address(0)) {
|
@@ -258,6 +288,7 @@ contract ClaimService is
|
|
258
288
|
)
|
259
289
|
external
|
260
290
|
virtual
|
291
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
261
292
|
returns (PayoutId payoutId)
|
262
293
|
{
|
263
294
|
return _createPayout(
|
@@ -268,56 +299,6 @@ contract ClaimService is
|
|
268
299
|
data);
|
269
300
|
}
|
270
301
|
|
271
|
-
function _createPayout(
|
272
|
-
NftId policyNftId,
|
273
|
-
ClaimId claimId,
|
274
|
-
Amount amount,
|
275
|
-
address beneficiary,
|
276
|
-
bytes memory data
|
277
|
-
)
|
278
|
-
internal
|
279
|
-
virtual
|
280
|
-
returns (PayoutId payoutId)
|
281
|
-
{
|
282
|
-
(
|
283
|
-
IInstance instance,
|
284
|
-
InstanceReader instanceReader,
|
285
|
-
IPolicy.PolicyInfo memory policyInfo
|
286
|
-
) = _verifyCallerWithPolicy(policyNftId);
|
287
|
-
|
288
|
-
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
289
|
-
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
290
|
-
|
291
|
-
// TODO add checks
|
292
|
-
// claim needs to be open
|
293
|
-
// claim.paidAmount + amount <= claim.claimAmount
|
294
|
-
|
295
|
-
// check/update claim info
|
296
|
-
// create payout info with instance
|
297
|
-
uint8 claimNo = claimInfo.payoutsCount + 1;
|
298
|
-
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
299
|
-
instance.getInstanceStore().createPayout(
|
300
|
-
policyNftId,
|
301
|
-
payoutId,
|
302
|
-
IPolicy.PayoutInfo({
|
303
|
-
claimId: payoutId.toClaimId(),
|
304
|
-
amount: amount,
|
305
|
-
beneficiary: beneficiary,
|
306
|
-
data: data,
|
307
|
-
paidAt: TimestampLib.zero()}));
|
308
|
-
|
309
|
-
// update and save claim info with instance
|
310
|
-
claimInfo.payoutsCount += 1;
|
311
|
-
claimInfo.openPayoutsCount += 1;
|
312
|
-
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
313
|
-
|
314
|
-
// update and save policy info with instance
|
315
|
-
policyInfo.payoutAmount.add(amount);
|
316
|
-
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
317
|
-
|
318
|
-
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
|
319
|
-
}
|
320
|
-
|
321
302
|
|
322
303
|
function processPayout(
|
323
304
|
NftId policyNftId,
|
@@ -325,10 +306,13 @@ contract ClaimService is
|
|
325
306
|
)
|
326
307
|
external
|
327
308
|
virtual
|
309
|
+
// nonReentrant() // prevents creating a reinsurance payout in a single tx
|
328
310
|
{
|
329
311
|
(
|
312
|
+
,
|
330
313
|
IInstance instance,
|
331
314
|
InstanceReader instanceReader,
|
315
|
+
InstanceStore instanceStore,
|
332
316
|
IPolicy.PolicyInfo memory policyInfo
|
333
317
|
) = _verifyCallerWithPolicy(policyNftId);
|
334
318
|
|
@@ -337,9 +321,8 @@ contract ClaimService is
|
|
337
321
|
|
338
322
|
// update and save payout info with instance
|
339
323
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
340
|
-
|
324
|
+
instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
341
325
|
|
342
|
-
// TODO update and save claim info with instance
|
343
326
|
ClaimId claimId = payoutId.toClaimId();
|
344
327
|
Amount payoutAmount = payoutInfo.amount;
|
345
328
|
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
@@ -349,26 +332,26 @@ contract ClaimService is
|
|
349
332
|
// check if this payout is closing the linked claim
|
350
333
|
// update claim and policy info accordingly
|
351
334
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
352
|
-
claimInfo.closedAt
|
353
|
-
|
335
|
+
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
336
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
354
337
|
|
355
338
|
policyInfo.openClaimsCount -= 1;
|
356
339
|
} else {
|
357
|
-
|
340
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
358
341
|
}
|
359
342
|
|
360
343
|
// update and save policy info with instance
|
361
344
|
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
362
|
-
|
345
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
363
346
|
|
364
347
|
// inform pool about payout
|
365
|
-
_poolService.
|
348
|
+
_poolService.processPayout(
|
366
349
|
instance,
|
367
350
|
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
368
351
|
policyNftId,
|
369
352
|
policyInfo,
|
370
353
|
payoutAmount);
|
371
|
-
|
354
|
+
|
372
355
|
// transfer payout token and fee
|
373
356
|
(
|
374
357
|
Amount netPayoutAmount,
|
@@ -390,9 +373,70 @@ contract ClaimService is
|
|
390
373
|
// TODO add 2nd token tx if processingFeeAmount > 0
|
391
374
|
}
|
392
375
|
|
393
|
-
//
|
376
|
+
// callback to policy holder if applicable
|
377
|
+
_policyHolderPayoutExecuted(policyNftId, payoutId, beneficiary, payoutAmount);
|
394
378
|
}
|
395
379
|
|
380
|
+
// internal functions
|
381
|
+
|
382
|
+
|
383
|
+
function _createPayout(
|
384
|
+
NftId policyNftId,
|
385
|
+
ClaimId claimId,
|
386
|
+
Amount amount,
|
387
|
+
address beneficiary,
|
388
|
+
bytes memory data
|
389
|
+
)
|
390
|
+
internal
|
391
|
+
virtual
|
392
|
+
returns (PayoutId payoutId)
|
393
|
+
{
|
394
|
+
(
|
395
|
+
,
|
396
|
+
,
|
397
|
+
InstanceReader instanceReader,
|
398
|
+
InstanceStore instanceStore,
|
399
|
+
IPolicy.PolicyInfo memory policyInfo
|
400
|
+
) = _verifyCallerWithPolicy(policyNftId);
|
401
|
+
|
402
|
+
IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
403
|
+
StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
|
404
|
+
|
405
|
+
// TODO add checks
|
406
|
+
// claim needs to be open
|
407
|
+
// claim.paidAmount + amount <= claim.claimAmount
|
408
|
+
|
409
|
+
// check/update claim info
|
410
|
+
// create payout info with instance
|
411
|
+
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
412
|
+
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
413
|
+
if (beneficiary == address(0)) {
|
414
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
415
|
+
}
|
416
|
+
|
417
|
+
instanceStore.createPayout(
|
418
|
+
policyNftId,
|
419
|
+
payoutId,
|
420
|
+
IPolicy.PayoutInfo({
|
421
|
+
claimId: payoutId.toClaimId(),
|
422
|
+
amount: amount,
|
423
|
+
beneficiary: beneficiary,
|
424
|
+
data: data,
|
425
|
+
paidAt: TimestampLib.zero()}));
|
426
|
+
|
427
|
+
// update and save claim info with instance
|
428
|
+
claimInfo.payoutsCount += 1;
|
429
|
+
claimInfo.openPayoutsCount += 1;
|
430
|
+
instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
431
|
+
|
432
|
+
// update and save policy info with instance
|
433
|
+
policyInfo.payoutAmount.add(amount);
|
434
|
+
instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
435
|
+
|
436
|
+
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
|
437
|
+
}
|
438
|
+
|
439
|
+
|
396
440
|
function _calculatePayoutAmount(
|
397
441
|
InstanceReader instanceReader,
|
398
442
|
NftId policyNftId,
|
@@ -430,7 +474,6 @@ contract ClaimService is
|
|
430
474
|
}
|
431
475
|
}
|
432
476
|
|
433
|
-
// internal functions
|
434
477
|
|
435
478
|
function _verifyCallerWithPolicy(
|
436
479
|
NftId policyNftId
|
@@ -439,14 +482,16 @@ contract ClaimService is
|
|
439
482
|
view
|
440
483
|
virtual
|
441
484
|
returns (
|
485
|
+
NftId productNftId,
|
442
486
|
IInstance instance,
|
443
487
|
InstanceReader instanceReader,
|
488
|
+
InstanceStore instanceStore,
|
444
489
|
IPolicy.PolicyInfo memory policyInfo
|
445
490
|
)
|
446
491
|
{
|
447
|
-
NftId productNftId;
|
448
492
|
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
449
493
|
instanceReader = instance.getInstanceReader();
|
494
|
+
instanceStore = instance.getInstanceStore();
|
450
495
|
|
451
496
|
// check caller(product) policy match
|
452
497
|
policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -480,6 +525,65 @@ contract ClaimService is
|
|
480
525
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
481
526
|
}
|
482
527
|
|
528
|
+
function _processConfirmedClaimByPool(
|
529
|
+
InstanceReader instanceReader,
|
530
|
+
NftId productNftId,
|
531
|
+
NftId policyNftId,
|
532
|
+
ClaimId claimId,
|
533
|
+
Amount amount
|
534
|
+
)
|
535
|
+
internal
|
536
|
+
{
|
537
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
538
|
+
if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
|
539
|
+
address poolAddress = getRegistry().getObjectAddress(poolNftId);
|
540
|
+
IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
|
541
|
+
}
|
542
|
+
}
|
543
|
+
|
544
|
+
|
545
|
+
function _policyHolderClaimConfirmed(
|
546
|
+
NftId policyNftId,
|
547
|
+
ClaimId claimId,
|
548
|
+
Amount confirmedAmount
|
549
|
+
)
|
550
|
+
internal
|
551
|
+
{
|
552
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
553
|
+
if(address(policyHolder) != address(0)) {
|
554
|
+
policyHolder.claimConfirmed(policyNftId, claimId, confirmedAmount);
|
555
|
+
}
|
556
|
+
}
|
557
|
+
|
558
|
+
|
559
|
+
function _policyHolderPayoutExecuted(
|
560
|
+
NftId policyNftId,
|
561
|
+
PayoutId payoutId,
|
562
|
+
address beneficiary,
|
563
|
+
Amount payoutAmount
|
564
|
+
)
|
565
|
+
internal
|
566
|
+
{
|
567
|
+
IPolicyHolder policyHolder = _getPolicyHolder(policyNftId);
|
568
|
+
if(address(policyHolder) != address(0)) {
|
569
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
570
|
+
}
|
571
|
+
}
|
572
|
+
|
573
|
+
|
574
|
+
function _getPolicyHolder(NftId policyNftId)
|
575
|
+
internal
|
576
|
+
view
|
577
|
+
returns (IPolicyHolder policyHolder)
|
578
|
+
{
|
579
|
+
address policyHolderAddress = getRegistry().ownerOf(policyNftId);
|
580
|
+
policyHolder = IPolicyHolder(policyHolderAddress);
|
581
|
+
|
582
|
+
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
583
|
+
policyHolder = IPolicyHolder(address(0));
|
584
|
+
}
|
585
|
+
}
|
586
|
+
|
483
587
|
|
484
588
|
function _getDomain() internal pure override returns(ObjectType) {
|
485
589
|
return CLAIM();
|
@@ -12,14 +12,14 @@ contract ClaimServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
ClaimService svc = new ClaimService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -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);
|
@@ -35,7 +36,7 @@ interface IClaimService is
|
|
35
36
|
error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
|
36
37
|
error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
|
37
38
|
|
38
|
-
error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId,
|
39
|
+
error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint24 openPayouts);
|
39
40
|
error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
|
40
41
|
error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
|
41
42
|
|