@etherisc/gif-next 0.0.2-b8e869c-076 → 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 +174 -237
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -111
- 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 +78 -31
- 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 +446 -81
- 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 +335 -126
- 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 +107 -190
- 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 +184 -185
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -104
- 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 +96 -50
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -177
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +296 -296
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -94
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +143 -200
- 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 +288 -188
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- 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 +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- 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 +257 -218
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +110 -110
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +143 -200
- 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 +286 -34
- 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 +492 -95
- 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 +77 -29
- 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 +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +166 -206
- 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 +102 -87
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- 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 +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +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/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +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/Timestamp.sol/TimestampLib.json +2 -2
- 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 +79 -47
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +8 -2
- 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/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +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 +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +24 -81
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +47 -34
- 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 +40 -15
- 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 +24 -20
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +106 -122
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +13 -12
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +268 -93
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/PolicyService.sol +197 -98
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +45 -52
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -61
- 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 +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +342 -201
- 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 +204 -188
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +231 -137
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- 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 +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -7
- 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/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +8 -8
- 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/staking/TargetManagerLib.sol +7 -3
- 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 +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -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/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
@@ -2,6 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
5
6
|
import {Fee} from "../type/Fee.sol";
|
6
7
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -20,10 +21,10 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
20
21
|
|
21
22
|
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
22
23
|
|
23
|
-
/// @dev
|
24
|
-
///
|
25
|
-
///
|
26
|
-
///
|
24
|
+
/// @dev This is a callback function that is called by the product service when underwriting a policy.
|
25
|
+
/// The pool has the option to check the details and object to underwriting by reverting.
|
26
|
+
/// The function is only called for "active" pools that ask to be involved/notified.
|
27
|
+
/// The default implementation is empty.
|
27
28
|
function verifyApplication(
|
28
29
|
NftId applicationNftId,
|
29
30
|
bytes memory applicationData,
|
@@ -32,9 +33,9 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
32
33
|
Amount collateralizationAmount
|
33
34
|
) external;
|
34
35
|
|
35
|
-
/// @dev
|
36
|
-
///
|
37
|
-
/// default implementation returns true
|
36
|
+
/// @dev Returns true iff the application matches with the bundle.
|
37
|
+
/// This is a callback function that is only called if a pool declares itself as a verifying pool
|
38
|
+
/// The default implementation returns true.
|
38
39
|
function applicationMatchesBundle(
|
39
40
|
NftId applicationNftId,
|
40
41
|
bytes memory applicationData,
|
@@ -46,13 +47,22 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
46
47
|
view
|
47
48
|
returns (bool isMatching);
|
48
49
|
|
50
|
+
/// @dev This is a callback function that is called by the claim service when a claim is confirmed.
|
51
|
+
/// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
|
52
|
+
/// The default implementation is empty.
|
53
|
+
function processConfirmedClaim(
|
54
|
+
NftId policyNftId,
|
55
|
+
ClaimId claimId,
|
56
|
+
Amount amount
|
57
|
+
) external;
|
58
|
+
|
49
59
|
/// @dev Withdraw bundle feeds for the given bundle
|
50
60
|
/// @param bundleNftId the bundle Nft Id
|
51
61
|
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
52
62
|
/// @return withdrawnAmount the effective withdrawn amount
|
53
63
|
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
54
64
|
|
55
|
-
/// @dev
|
65
|
+
/// @dev Returns initial pool specific infos for this pool
|
56
66
|
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
57
67
|
|
58
68
|
}
|
@@ -2,14 +2,15 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
5
6
|
import {Fee} from "../type/Fee.sol";
|
6
|
-
import {NftId} from "../type/NftId.sol";
|
7
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
8
7
|
import {IBundle} from "../instance/module/IBundle.sol";
|
9
8
|
import {IInstance} from "../instance/IInstance.sol";
|
10
9
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
11
|
import {IService} from "../shared/IService.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
13
14
|
import {RoleId} from "../type/RoleId.sol";
|
14
15
|
import {Seconds} from "../type/Seconds.sol";
|
15
16
|
import {StateId} from "../type/StateId.sol";
|
@@ -26,14 +27,13 @@ interface IPoolService is IService {
|
|
26
27
|
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
27
28
|
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
|
28
29
|
|
30
|
+
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
31
|
+
|
32
|
+
error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
|
29
33
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
30
34
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
31
35
|
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
32
36
|
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
33
|
-
|
34
|
-
/// @dev defines the required role for bundle owners for the calling pool
|
35
|
-
/// default implementation returns PUBLIC ROLE
|
36
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
37
37
|
|
38
38
|
/// @dev sets the max balance amount for the calling pool
|
39
39
|
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
@@ -68,10 +68,10 @@ interface IPoolService is IService {
|
|
68
68
|
) external;
|
69
69
|
|
70
70
|
|
71
|
-
/// @dev reduces the locked collateral in the bundle associated with the specified policy
|
71
|
+
/// @dev reduces the locked collateral in the bundle associated with the specified policy and updates pool/bundle counters
|
72
72
|
/// every payout of a policy reduces the collateral by the payout amount
|
73
73
|
/// may only be called by the claim service for unlocked pool components
|
74
|
-
function
|
74
|
+
function processPayout(
|
75
75
|
IInstance instance,
|
76
76
|
address token,
|
77
77
|
NftId policyNftId,
|
@@ -80,19 +80,16 @@ interface IPoolService is IService {
|
|
80
80
|
) external;
|
81
81
|
|
82
82
|
|
83
|
-
/// @dev create a new bundle
|
84
|
-
/// staking fees will be deducted by the pool service from the staking amount
|
83
|
+
/// @dev create a new empty bundle with the provided parameters
|
85
84
|
/// may only be called by registered and unlocked pool components.
|
86
|
-
/// The pool balance is equal to the pool fees plus the capital of all bundles.
|
87
85
|
function createBundle(
|
88
86
|
address owner, // initial bundle owner
|
89
87
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
90
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
91
88
|
Seconds lifetime, // initial duration for which new policies are covered
|
92
89
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
93
90
|
)
|
94
91
|
external
|
95
|
-
returns(NftId bundleNftId
|
92
|
+
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
96
93
|
|
97
94
|
|
98
95
|
/// @dev increase stakes for bundle
|
@@ -115,6 +112,11 @@ interface IPoolService is IService {
|
|
115
112
|
function closeBundle(NftId bundleNftId) external;
|
116
113
|
|
117
114
|
|
115
|
+
/// @dev Informs product about available funds to process a confirmed claim.
|
116
|
+
/// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
|
117
|
+
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
118
|
+
|
119
|
+
|
118
120
|
/// @dev Fund the specified pool wallet with the provided amount.
|
119
121
|
/// This function will collect the amount from the sender address and transfers it to the pool wallet.
|
120
122
|
/// The function will not update balance amounts managed by the framework.
|
@@ -130,10 +132,10 @@ interface IPoolService is IService {
|
|
130
132
|
|
131
133
|
|
132
134
|
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
133
|
-
function processSale(NftId bundleNftId, IPolicy.
|
135
|
+
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
134
136
|
|
135
137
|
|
136
|
-
/// @dev
|
138
|
+
/// @dev Calulate required collateral for the provided parameters.
|
137
139
|
function calculateRequiredCollateral(
|
138
140
|
InstanceReader instanceReader,
|
139
141
|
NftId productNftId,
|
@@ -142,12 +144,14 @@ interface IPoolService is IService {
|
|
142
144
|
external
|
143
145
|
view
|
144
146
|
returns(
|
145
|
-
Amount
|
146
|
-
Amount
|
147
|
+
Amount totalCollateralAmount,
|
148
|
+
Amount localCollateralAmount
|
147
149
|
);
|
148
150
|
|
149
151
|
|
150
|
-
/// @dev calulate required collateral for the provided parameters
|
152
|
+
/// @dev calulate required collateral for the provided parameters.
|
153
|
+
/// Collateralization is applied to sum insured.
|
154
|
+
/// Retention level defines the fraction of the collateral that is required locally.
|
151
155
|
function calculateRequiredCollateral(
|
152
156
|
UFixed collateralizationLevel,
|
153
157
|
UFixed retentionLevel,
|
@@ -156,8 +160,8 @@ interface IPoolService is IService {
|
|
156
160
|
external
|
157
161
|
pure
|
158
162
|
returns(
|
159
|
-
Amount
|
160
|
-
Amount
|
163
|
+
Amount totalCollateralAmount,
|
164
|
+
Amount localCollateralAmount
|
161
165
|
);
|
162
166
|
|
163
167
|
}
|
package/contracts/pool/Pool.sol
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
5
|
+
import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
|
6
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
6
7
|
import {IBundleService} from "./IBundleService.sol";
|
7
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
9
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
@@ -10,13 +11,12 @@ import {IPoolService} from "./IPoolService.sol";
|
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {Fee
|
14
|
-
import {NftId
|
14
|
+
import {Fee} from "../type/Fee.sol";
|
15
|
+
import {NftId} from "../type/NftId.sol";
|
15
16
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
16
17
|
import {Seconds} from "../type/Seconds.sol";
|
17
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
-
import {
|
19
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
20
20
|
|
21
21
|
abstract contract Pool is
|
22
22
|
InstanceLinkedComponent,
|
@@ -51,6 +51,7 @@ abstract contract Pool is
|
|
51
51
|
public
|
52
52
|
virtual
|
53
53
|
restricted()
|
54
|
+
onlyNftOfType(applicationNftId, POLICY())
|
54
55
|
{
|
55
56
|
if(!applicationMatchesBundle(
|
56
57
|
applicationNftId,
|
@@ -67,6 +68,21 @@ abstract contract Pool is
|
|
67
68
|
}
|
68
69
|
|
69
70
|
|
71
|
+
/// @dev see {IPoolComponent.processConfirmedClaim}
|
72
|
+
function processConfirmedClaim(
|
73
|
+
NftId policyNftId,
|
74
|
+
ClaimId claimId,
|
75
|
+
Amount amount
|
76
|
+
)
|
77
|
+
public
|
78
|
+
virtual
|
79
|
+
restricted()
|
80
|
+
onlyNftOfType(policyNftId, POLICY())
|
81
|
+
{
|
82
|
+
// default implementation is empty
|
83
|
+
}
|
84
|
+
|
85
|
+
|
70
86
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
71
87
|
/// Override this function to implement any custom application verification
|
72
88
|
/// Default implementation always returns true
|
@@ -80,27 +96,20 @@ abstract contract Pool is
|
|
80
96
|
public
|
81
97
|
virtual
|
82
98
|
view
|
99
|
+
onlyNftOfType(applicationNftId, POLICY())
|
100
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
83
101
|
returns (bool isMatching)
|
84
102
|
{
|
85
103
|
return true;
|
86
104
|
}
|
87
105
|
|
88
|
-
|
89
|
-
function register()
|
90
|
-
external
|
91
|
-
virtual
|
92
|
-
onlyOwner()
|
93
|
-
{
|
94
|
-
_getPoolStorage()._componentService.registerPool();
|
95
|
-
_approveTokenHandler(type(uint256).max);
|
96
|
-
}
|
97
|
-
|
98
106
|
/// @inheritdoc IPoolComponent
|
99
107
|
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
100
108
|
external
|
101
109
|
virtual
|
102
110
|
restricted()
|
103
111
|
onlyBundleOwner(bundleNftId)
|
112
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
104
113
|
returns (Amount withdrawnAmount)
|
105
114
|
{
|
106
115
|
return _withdrawBundleFees(bundleNftId, amount);
|
@@ -113,28 +122,28 @@ abstract contract Pool is
|
|
113
122
|
view
|
114
123
|
returns (IComponents.PoolInfo memory poolInfo)
|
115
124
|
{
|
116
|
-
return IComponents.PoolInfo(
|
117
|
-
|
118
|
-
|
119
|
-
isNftInterceptor(),
|
120
|
-
false,
|
121
|
-
false,
|
122
|
-
|
123
|
-
UFixedLib.toUFixed(1)
|
124
|
-
|
125
|
+
return IComponents.PoolInfo({
|
126
|
+
maxBalanceAmount: AmountLib.max(),
|
127
|
+
bundleOwnerRole: PUBLIC_ROLE(),
|
128
|
+
isInterceptingBundleTransfers: isNftInterceptor(),
|
129
|
+
isProcessingConfirmedClaims: false,
|
130
|
+
isExternallyManaged: false,
|
131
|
+
isVerifyingApplications: false,
|
132
|
+
collateralizationLevel: UFixedLib.toUFixed(1),
|
133
|
+
retentionLevel: UFixedLib.toUFixed(1)
|
134
|
+
});
|
125
135
|
}
|
126
136
|
|
127
137
|
// Internals
|
128
138
|
|
129
139
|
function _initializePool(
|
130
140
|
address registry,
|
131
|
-
NftId
|
141
|
+
NftId productNftId,
|
132
142
|
string memory name,
|
133
143
|
address token,
|
134
144
|
IAuthorization authorization,
|
135
145
|
bool isInterceptingNftTransfers,
|
136
146
|
address initialOwner,
|
137
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
138
147
|
bytes memory componentData // component specifidc data
|
139
148
|
)
|
140
149
|
internal
|
@@ -143,14 +152,13 @@ abstract contract Pool is
|
|
143
152
|
{
|
144
153
|
_initializeInstanceLinkedComponent(
|
145
154
|
registry,
|
146
|
-
|
155
|
+
productNftId,
|
147
156
|
name,
|
148
157
|
token,
|
149
158
|
POOL(),
|
150
159
|
authorization,
|
151
160
|
isInterceptingNftTransfers,
|
152
161
|
initialOwner,
|
153
|
-
registryData,
|
154
162
|
componentData);
|
155
163
|
|
156
164
|
PoolStorage storage $ = _getPoolStorage();
|
@@ -158,7 +166,7 @@ abstract contract Pool is
|
|
158
166
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
159
167
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
160
168
|
|
161
|
-
|
169
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
162
170
|
}
|
163
171
|
|
164
172
|
/// @dev increases the staked tokens by the specified amount
|
@@ -169,9 +177,9 @@ abstract contract Pool is
|
|
169
177
|
)
|
170
178
|
internal
|
171
179
|
virtual
|
172
|
-
returns(Amount
|
180
|
+
returns(Amount)
|
173
181
|
{
|
174
|
-
_getPoolStorage()._poolService.stake(bundleNftId, amount);
|
182
|
+
return _getPoolStorage()._poolService.stake(bundleNftId, amount);
|
175
183
|
}
|
176
184
|
|
177
185
|
|
@@ -260,16 +268,6 @@ abstract contract Pool is
|
|
260
268
|
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
261
269
|
}
|
262
270
|
|
263
|
-
/// @dev Sets the required role to create/own bundles.
|
264
|
-
/// May only be called once after setting up a pool.
|
265
|
-
/// May only be called by pool owner.
|
266
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
267
|
-
internal
|
268
|
-
virtual
|
269
|
-
{
|
270
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
271
|
-
}
|
272
|
-
|
273
271
|
|
274
272
|
/// @dev Update pool fees to the specified values.
|
275
273
|
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
@@ -287,21 +285,19 @@ abstract contract Pool is
|
|
287
285
|
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
288
286
|
}
|
289
287
|
|
290
|
-
/// @dev Creates a new bundle using the provided parameter values.
|
288
|
+
/// @dev Creates a new empty bundle using the provided parameter values.
|
291
289
|
function _createBundle(
|
292
290
|
address bundleOwner,
|
293
291
|
Fee memory fee,
|
294
|
-
Amount amount,
|
295
292
|
Seconds lifetime,
|
296
293
|
bytes memory filter
|
297
294
|
)
|
298
295
|
internal
|
299
|
-
returns(NftId bundleNftId
|
296
|
+
returns(NftId bundleNftId)
|
300
297
|
{
|
301
|
-
|
298
|
+
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
302
299
|
bundleOwner,
|
303
300
|
fee,
|
304
|
-
amount,
|
305
301
|
lifetime,
|
306
302
|
filter);
|
307
303
|
|
@@ -320,6 +316,17 @@ abstract contract Pool is
|
|
320
316
|
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
321
317
|
}
|
322
318
|
|
319
|
+
function _processFundedClaim(
|
320
|
+
NftId policyNftId,
|
321
|
+
ClaimId claimId,
|
322
|
+
Amount availableAmount
|
323
|
+
)
|
324
|
+
internal
|
325
|
+
{
|
326
|
+
_getPoolStorage()._poolService.processFundedClaim(
|
327
|
+
policyNftId, claimId, availableAmount);
|
328
|
+
}
|
329
|
+
|
323
330
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
324
331
|
assembly {
|
325
332
|
$.slot := POOL_STORAGE_LOCATION_V1
|