@etherisc/gif-next 0.0.2-8773a53-517 → 0.0.2-88095ce-205
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 +5 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -52
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +0 -19
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +52 -212
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +16 -184
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +150 -286
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +100 -120
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +16 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +65 -62
- 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 +1507 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1978 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -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 +1427 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1187 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1561 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1996 -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 +16 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +16 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +26 -99
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +97 -100
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +424 -74
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +55 -146
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +77 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +249 -111
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +42 -202
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +18 -18
- 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 +16 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +16 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +16 -184
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +53 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +76 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +48 -188
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +160 -223
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -107
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +52 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +48 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +215 -145
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -185
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +290 -314
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +96 -96
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +52 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +73 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +44 -210
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +258 -184
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +117 -101
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +21 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +148 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +247 -140
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +59 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +44 -63
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +18 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +323 -363
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +108 -116
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -261
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +97 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +44 -210
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +604 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +698 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +288 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +16 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +494 -82
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +243 -131
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +39 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +68 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +24 -14
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +16 -173
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -228
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +112 -122
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +21 -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 +16 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +16 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +16 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +16 -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 +16 -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 +16 -184
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +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 +24 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +21 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +288 -16
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +43 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +16 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -248
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +93 -100
- 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 +47 -159
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +72 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +84 -84
- 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 +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +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 +25 -24
- package/contracts/authorization/Authorization.sol +5 -2
- package/contracts/authorization/IAccessAdmin.sol +0 -1
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/Distribution.sol +3 -2
- package/contracts/distribution/DistributionService.sol +72 -60
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +9 -5
- 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 +411 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +7 -30
- package/contracts/instance/Instance.sol +10 -35
- package/contracts/instance/InstanceAdmin.sol +29 -7
- package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
- package/contracts/instance/InstanceReader.sol +107 -25
- package/contracts/instance/InstanceService.sol +63 -41
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/module/IComponents.sol +4 -3
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/Oracle.sol +2 -1
- package/contracts/oracle/OracleService.sol +41 -33
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +16 -17
- package/contracts/pool/BasicPoolAuthorization.sol +2 -2
- package/contracts/pool/BundleService.sol +57 -37
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +14 -4
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +54 -32
- package/contracts/pool/Pool.sol +65 -36
- package/contracts/pool/PoolService.sol +148 -110
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +50 -29
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +1 -0
- package/contracts/product/ClaimService.sol +245 -88
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +31 -35
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +17 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +317 -173
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +47 -47
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +76 -53
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +55 -15
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +336 -197
- package/contracts/registry/RegistryAdmin.sol +150 -51
- package/contracts/registry/RegistryService.sol +55 -48
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseRegistry.sol +12 -6
- package/contracts/registry/ServiceAuthorizationV3.sol +6 -8
- package/contracts/shared/Component.sol +12 -32
- package/contracts/shared/ComponentService.sol +20 -29
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +2 -3
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +0 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +5 -6
- package/contracts/shared/NftOwnable.sol +22 -5
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +16 -11
- package/contracts/shared/TokenHandler.sol +99 -22
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +11 -29
- 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/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +67 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -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";
|
@@ -17,7 +18,7 @@ import {UFixed} from "../type/UFixed.sol";
|
|
17
18
|
|
18
19
|
interface IPoolService is IService {
|
19
20
|
|
20
|
-
event
|
21
|
+
event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
|
21
22
|
event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
|
22
23
|
|
23
24
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
@@ -26,19 +27,20 @@ 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
|
-
error
|
33
|
-
|
34
|
-
error ErrorPoolServiceAmountIsZero();
|
35
|
-
|
36
|
+
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
37
|
+
|
36
38
|
/// @dev defines the required role for bundle owners for the calling pool
|
37
39
|
/// default implementation returns PUBLIC ROLE
|
38
40
|
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
39
41
|
|
40
|
-
/// @dev sets the max
|
41
|
-
function
|
42
|
+
/// @dev sets the max balance amount for the calling pool
|
43
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
42
44
|
|
43
45
|
/// @dev locks required collateral to cover the specified application (and turn it into a policy)
|
44
46
|
/// - retention level == 1: the full collateral amount will be locked by the specified bundle
|
@@ -70,10 +72,10 @@ interface IPoolService is IService {
|
|
70
72
|
) external;
|
71
73
|
|
72
74
|
|
73
|
-
/// @dev reduces the locked collateral in the bundle associated with the specified policy
|
75
|
+
/// @dev reduces the locked collateral in the bundle associated with the specified policy and updates pool/bundle counters
|
74
76
|
/// every payout of a policy reduces the collateral by the payout amount
|
75
77
|
/// may only be called by the claim service for unlocked pool components
|
76
|
-
function
|
78
|
+
function processPayout(
|
77
79
|
IInstance instance,
|
78
80
|
address token,
|
79
81
|
NftId policyNftId,
|
@@ -82,19 +84,28 @@ interface IPoolService is IService {
|
|
82
84
|
) external;
|
83
85
|
|
84
86
|
|
85
|
-
/// @dev create a new bundle
|
86
|
-
/// staking fees will be deducted by the pool service from the staking amount
|
87
|
+
/// @dev create a new empty bundle with the provided parameters
|
87
88
|
/// may only be called by registered and unlocked pool components.
|
88
|
-
/// The pool balance is equal to the pool fees plus the capital of all bundles.
|
89
89
|
function createBundle(
|
90
90
|
address owner, // initial bundle owner
|
91
91
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
92
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
93
92
|
Seconds lifetime, // initial duration for which new policies are covered
|
94
93
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
95
94
|
)
|
96
95
|
external
|
97
|
-
returns(NftId bundleNftId
|
96
|
+
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
97
|
+
|
98
|
+
|
99
|
+
/// @dev increase stakes for bundle
|
100
|
+
/// staking fees will be deducted by the pool service from the staking amount
|
101
|
+
/// may only be called by registered and unlocked pool components
|
102
|
+
function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
103
|
+
|
104
|
+
|
105
|
+
/// @dev decrease stakes for bundle
|
106
|
+
/// performance fees will be deducted by the pool service from the staking amount
|
107
|
+
/// may only be called by registered and unlocked pool components
|
108
|
+
function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
98
109
|
|
99
110
|
|
100
111
|
/// @dev closes the specified bundle
|
@@ -105,21 +116,30 @@ interface IPoolService is IService {
|
|
105
116
|
function closeBundle(NftId bundleNftId) external;
|
106
117
|
|
107
118
|
|
108
|
-
/// @dev
|
109
|
-
function
|
119
|
+
/// @dev Informs product about available funds to process a confirmed claim.
|
120
|
+
/// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
|
121
|
+
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
110
122
|
|
111
|
-
/// @dev increase stakes for bundle
|
112
|
-
/// staking fees will be deducted by the pool service from the staking amount
|
113
|
-
/// may only be called by registered and unlocked pool components
|
114
|
-
function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
115
123
|
|
116
|
-
/// @dev
|
117
|
-
///
|
118
|
-
///
|
119
|
-
|
124
|
+
/// @dev Fund the specified pool wallet with the provided amount.
|
125
|
+
/// This function will collect the amount from the sender address and transfers it to the pool wallet.
|
126
|
+
/// The function will not update balance amounts managed by the framework.
|
127
|
+
/// Only available for externally managed pools.
|
128
|
+
function fundPoolWallet(NftId poolNftId, Amount amount) external;
|
120
129
|
|
121
130
|
|
122
|
-
/// @dev
|
131
|
+
/// @dev Defund the specified pool wallet with the provided amount.
|
132
|
+
/// This function will transfer the amount from the pool wallet to the sender address.
|
133
|
+
/// The function will not update balance amounts managed by the framework.
|
134
|
+
/// Only available for externally managed pools.
|
135
|
+
function defundPoolWallet(NftId poolNftId, Amount amount) external;
|
136
|
+
|
137
|
+
|
138
|
+
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
139
|
+
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
140
|
+
|
141
|
+
|
142
|
+
/// @dev Calulate required collateral for the provided parameters.
|
123
143
|
function calculateRequiredCollateral(
|
124
144
|
InstanceReader instanceReader,
|
125
145
|
NftId productNftId,
|
@@ -128,12 +148,14 @@ interface IPoolService is IService {
|
|
128
148
|
external
|
129
149
|
view
|
130
150
|
returns(
|
131
|
-
Amount
|
132
|
-
Amount
|
151
|
+
Amount totalCollateralAmount,
|
152
|
+
Amount localCollateralAmount
|
133
153
|
);
|
134
154
|
|
135
155
|
|
136
|
-
/// @dev calulate required collateral for the provided parameters
|
156
|
+
/// @dev calulate required collateral for the provided parameters.
|
157
|
+
/// Collateralization is applied to sum insured.
|
158
|
+
/// Retention level defines the fraction of the collateral that is required locally.
|
137
159
|
function calculateRequiredCollateral(
|
138
160
|
UFixed collateralizationLevel,
|
139
161
|
UFixed retentionLevel,
|
@@ -142,8 +164,8 @@ interface IPoolService is IService {
|
|
142
164
|
external
|
143
165
|
pure
|
144
166
|
returns(
|
145
|
-
Amount
|
146
|
-
Amount
|
167
|
+
Amount totalCollateralAmount,
|
168
|
+
Amount localCollateralAmount
|
147
169
|
);
|
148
170
|
|
149
171
|
}
|
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,
|
@@ -40,6 +40,16 @@ abstract contract Pool is
|
|
40
40
|
}
|
41
41
|
|
42
42
|
|
43
|
+
function register()
|
44
|
+
external
|
45
|
+
virtual
|
46
|
+
onlyOwner()
|
47
|
+
{
|
48
|
+
_getPoolStorage()._componentService.registerPool();
|
49
|
+
_approveTokenHandler(type(uint256).max);
|
50
|
+
}
|
51
|
+
|
52
|
+
|
43
53
|
/// @dev see {IPoolComponent.verifyApplication}
|
44
54
|
function verifyApplication(
|
45
55
|
NftId applicationNftId,
|
@@ -51,6 +61,7 @@ abstract contract Pool is
|
|
51
61
|
public
|
52
62
|
virtual
|
53
63
|
restricted()
|
64
|
+
onlyNftObjectType(applicationNftId, POLICY())
|
54
65
|
{
|
55
66
|
if(!applicationMatchesBundle(
|
56
67
|
applicationNftId,
|
@@ -67,6 +78,21 @@ abstract contract Pool is
|
|
67
78
|
}
|
68
79
|
|
69
80
|
|
81
|
+
/// @dev see {IPoolComponent.processConfirmedClaim}
|
82
|
+
function processConfirmedClaim(
|
83
|
+
NftId policyNftId,
|
84
|
+
ClaimId claimId,
|
85
|
+
Amount amount
|
86
|
+
)
|
87
|
+
public
|
88
|
+
virtual
|
89
|
+
restricted()
|
90
|
+
onlyNftObjectType(policyNftId, POLICY())
|
91
|
+
{
|
92
|
+
// default implementation is empty
|
93
|
+
}
|
94
|
+
|
95
|
+
|
70
96
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
71
97
|
/// Override this function to implement any custom application verification
|
72
98
|
/// Default implementation always returns true
|
@@ -80,27 +106,20 @@ abstract contract Pool is
|
|
80
106
|
public
|
81
107
|
virtual
|
82
108
|
view
|
109
|
+
onlyNftObjectType(applicationNftId, POLICY())
|
110
|
+
onlyNftObjectType(bundleNftId, BUNDLE())
|
83
111
|
returns (bool isMatching)
|
84
112
|
{
|
85
113
|
return true;
|
86
114
|
}
|
87
115
|
|
88
|
-
|
89
|
-
function register()
|
90
|
-
external
|
91
|
-
virtual
|
92
|
-
onlyOwner()
|
93
|
-
{
|
94
|
-
_getPoolStorage()._componentService.registerPool();
|
95
|
-
_approveTokenHandler(type(uint256).max);
|
96
|
-
}
|
97
|
-
|
98
116
|
/// @inheritdoc IPoolComponent
|
99
117
|
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
100
118
|
external
|
101
119
|
virtual
|
102
120
|
restricted()
|
103
121
|
onlyBundleOwner(bundleNftId)
|
122
|
+
onlyNftObjectType(bundleNftId, BUNDLE())
|
104
123
|
returns (Amount withdrawnAmount)
|
105
124
|
{
|
106
125
|
return _withdrawBundleFees(bundleNftId, amount);
|
@@ -113,15 +132,16 @@ abstract contract Pool is
|
|
113
132
|
view
|
114
133
|
returns (IComponents.PoolInfo memory poolInfo)
|
115
134
|
{
|
116
|
-
return IComponents.PoolInfo(
|
117
|
-
|
118
|
-
|
119
|
-
isNftInterceptor(),
|
120
|
-
false,
|
121
|
-
false,
|
122
|
-
|
123
|
-
UFixedLib.toUFixed(1)
|
124
|
-
|
135
|
+
return IComponents.PoolInfo({
|
136
|
+
maxBalanceAmount: AmountLib.max(),
|
137
|
+
bundleOwnerRole: PUBLIC_ROLE(),
|
138
|
+
isInterceptingBundleTransfers: isNftInterceptor(),
|
139
|
+
isProcessingConfirmedClaims: false,
|
140
|
+
isExternallyManaged: false,
|
141
|
+
isVerifyingApplications: false,
|
142
|
+
collateralizationLevel: UFixedLib.toUFixed(1),
|
143
|
+
retentionLevel: UFixedLib.toUFixed(1)
|
144
|
+
});
|
125
145
|
}
|
126
146
|
|
127
147
|
// Internals
|
@@ -158,7 +178,7 @@ abstract contract Pool is
|
|
158
178
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
159
179
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
160
180
|
|
161
|
-
|
181
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
162
182
|
}
|
163
183
|
|
164
184
|
/// @dev increases the staked tokens by the specified amount
|
@@ -169,9 +189,9 @@ abstract contract Pool is
|
|
169
189
|
)
|
170
190
|
internal
|
171
191
|
virtual
|
172
|
-
returns(Amount
|
192
|
+
returns(Amount)
|
173
193
|
{
|
174
|
-
_getPoolStorage()._poolService.stake(bundleNftId, amount);
|
194
|
+
return _getPoolStorage()._poolService.stake(bundleNftId, amount);
|
175
195
|
}
|
176
196
|
|
177
197
|
|
@@ -229,7 +249,7 @@ abstract contract Pool is
|
|
229
249
|
/// To close a bundle all all linked policies MUST be in closed state as well.
|
230
250
|
/// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
|
231
251
|
/// Once a bundle is closed this action cannot be reversed.
|
232
|
-
function
|
252
|
+
function _closeBundle(NftId bundleNftId)
|
233
253
|
internal
|
234
254
|
virtual
|
235
255
|
{
|
@@ -251,13 +271,13 @@ abstract contract Pool is
|
|
251
271
|
}
|
252
272
|
|
253
273
|
|
254
|
-
/// @dev Sets the maximum
|
274
|
+
/// @dev Sets the maximum balance amound held by this pool.
|
255
275
|
/// Function may only be called by pool owner.
|
256
|
-
function
|
276
|
+
function _setMaxBalanceAmount(Amount maxBalanceAmount)
|
257
277
|
internal
|
258
278
|
virtual
|
259
279
|
{
|
260
|
-
_getPoolStorage()._poolService.
|
280
|
+
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
261
281
|
}
|
262
282
|
|
263
283
|
/// @dev Sets the required role to create/own bundles.
|
@@ -287,21 +307,19 @@ abstract contract Pool is
|
|
287
307
|
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
288
308
|
}
|
289
309
|
|
290
|
-
/// @dev Creates a new bundle using the provided parameter values.
|
310
|
+
/// @dev Creates a new empty bundle using the provided parameter values.
|
291
311
|
function _createBundle(
|
292
312
|
address bundleOwner,
|
293
313
|
Fee memory fee,
|
294
|
-
Amount amount,
|
295
314
|
Seconds lifetime,
|
296
315
|
bytes memory filter
|
297
316
|
)
|
298
317
|
internal
|
299
|
-
returns(NftId bundleNftId
|
318
|
+
returns(NftId bundleNftId)
|
300
319
|
{
|
301
|
-
|
320
|
+
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
302
321
|
bundleOwner,
|
303
322
|
fee,
|
304
|
-
amount,
|
305
323
|
lifetime,
|
306
324
|
filter);
|
307
325
|
|
@@ -320,6 +338,17 @@ abstract contract Pool is
|
|
320
338
|
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
321
339
|
}
|
322
340
|
|
341
|
+
function _processFundedClaim(
|
342
|
+
NftId policyNftId,
|
343
|
+
ClaimId claimId,
|
344
|
+
Amount availableAmount
|
345
|
+
)
|
346
|
+
internal
|
347
|
+
{
|
348
|
+
_getPoolStorage()._poolService.processFundedClaim(
|
349
|
+
policyNftId, claimId, availableAmount);
|
350
|
+
}
|
351
|
+
|
323
352
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
324
353
|
assembly {
|
325
354
|
$.slot := POOL_STORAGE_LOCATION_V1
|