@etherisc/gif-next 0.0.2-a3c2eef-755 → 0.0.2-a49c403-485
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 +31 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1518 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -266
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +269 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +83 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +103 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +112 -139
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +88 -217
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -131
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1432 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +455 -55
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +128 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +193 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -251
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +188 -53
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -390
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -88
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +60 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +143 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +66 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +102 -6
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +304 -57
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +103 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +32 -191
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -38
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +326 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +89 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -91
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +53 -6
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +42 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +42 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +68 -82
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +52 -40
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +4 -4
- 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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- 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/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +58 -32
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +15 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +8 -9
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +74 -70
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +13 -5
- package/contracts/instance/base/ObjectLifecycle.sol +104 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +0 -5
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +72 -51
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +157 -29
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +28 -3
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +13 -13
- package/contracts/pool/Pool.sol +165 -136
- package/contracts/pool/PoolService.sol +126 -71
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +12 -36
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +14 -39
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +13 -6
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +183 -99
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +122 -88
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +118 -86
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +21 -21
- package/contracts/shared/ComponentService.sol +91 -68
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -3
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +4 -0
- package/contracts/shared/TokenTransferLib.sol +60 -0
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +20 -17
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +3 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -0,0 +1,166 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
6
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
+
import {IBundleService} from "./IBundleService.sol";
|
9
|
+
import {IPoolComponent} from "./IPoolComponent.sol";
|
10
|
+
import {IPoolService} from "./IPoolService.sol";
|
11
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
12
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
13
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
14
|
+
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
15
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {Seconds} from "../type/Seconds.sol";
|
17
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
20
|
+
|
21
|
+
import {Pool} from "./Pool.sol";
|
22
|
+
|
23
|
+
abstract contract BasicPool is
|
24
|
+
Pool
|
25
|
+
{
|
26
|
+
|
27
|
+
function _initializeBasicPool(
|
28
|
+
address registry,
|
29
|
+
NftId instanceNftId,
|
30
|
+
IAuthorization authorization,
|
31
|
+
address token,
|
32
|
+
string memory name,
|
33
|
+
address initialOwner
|
34
|
+
)
|
35
|
+
internal
|
36
|
+
virtual
|
37
|
+
onlyInitializing()
|
38
|
+
{
|
39
|
+
_initializePool(
|
40
|
+
registry,
|
41
|
+
instanceNftId,
|
42
|
+
name,
|
43
|
+
token,
|
44
|
+
authorization,
|
45
|
+
false, // isInterceptingNftTransfers,
|
46
|
+
initialOwner,
|
47
|
+
"", // registryData
|
48
|
+
""); // componentData
|
49
|
+
}
|
50
|
+
|
51
|
+
function stake(
|
52
|
+
NftId bundleNftId,
|
53
|
+
Amount amount
|
54
|
+
)
|
55
|
+
public
|
56
|
+
virtual
|
57
|
+
restricted()
|
58
|
+
onlyBundleOwner(bundleNftId)
|
59
|
+
{
|
60
|
+
_stake(bundleNftId, amount);
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
function unstake(
|
65
|
+
NftId bundleNftId,
|
66
|
+
Amount amount
|
67
|
+
)
|
68
|
+
public
|
69
|
+
virtual
|
70
|
+
restricted()
|
71
|
+
onlyBundleOwner(bundleNftId)
|
72
|
+
{
|
73
|
+
_unstake(bundleNftId, amount);
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
function extend(
|
78
|
+
NftId bundleNftId,
|
79
|
+
Seconds lifetimeExtension
|
80
|
+
)
|
81
|
+
public
|
82
|
+
virtual
|
83
|
+
restricted()
|
84
|
+
onlyBundleOwner(bundleNftId)
|
85
|
+
returns(Timestamp newExpiredAt)
|
86
|
+
{
|
87
|
+
return _extend(bundleNftId, lifetimeExtension);
|
88
|
+
}
|
89
|
+
|
90
|
+
|
91
|
+
function lockBundle(NftId bundleNftId)
|
92
|
+
public
|
93
|
+
virtual
|
94
|
+
restricted()
|
95
|
+
onlyBundleOwner(bundleNftId)
|
96
|
+
{
|
97
|
+
_lockBundle(bundleNftId);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
function unlockBundle(NftId bundleNftId)
|
102
|
+
public
|
103
|
+
virtual
|
104
|
+
restricted()
|
105
|
+
onlyBundleOwner(bundleNftId)
|
106
|
+
{
|
107
|
+
_unlockBundle(bundleNftId);
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
function close(NftId bundleNftId)
|
112
|
+
public
|
113
|
+
virtual
|
114
|
+
restricted()
|
115
|
+
onlyBundleOwner(bundleNftId)
|
116
|
+
{
|
117
|
+
_close(bundleNftId);
|
118
|
+
}
|
119
|
+
|
120
|
+
|
121
|
+
function setBundleFee(
|
122
|
+
NftId bundleNftId,
|
123
|
+
Fee memory fee
|
124
|
+
)
|
125
|
+
public
|
126
|
+
virtual
|
127
|
+
restricted()
|
128
|
+
onlyBundleOwner(bundleNftId)
|
129
|
+
{
|
130
|
+
_setBundleFee(bundleNftId, fee);
|
131
|
+
}
|
132
|
+
|
133
|
+
|
134
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount)
|
135
|
+
public
|
136
|
+
virtual
|
137
|
+
restricted()
|
138
|
+
onlyOwner()
|
139
|
+
{
|
140
|
+
_setMaxCapitalAmount(maxCapitalAmount);
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
145
|
+
public
|
146
|
+
virtual
|
147
|
+
restricted()
|
148
|
+
onlyOwner()
|
149
|
+
{
|
150
|
+
_setBundleOwnerRole(bundleOwnerRole);
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
function setFees(
|
155
|
+
Fee memory poolFee,
|
156
|
+
Fee memory stakingFee,
|
157
|
+
Fee memory performanceFee
|
158
|
+
)
|
159
|
+
public
|
160
|
+
virtual
|
161
|
+
restricted()
|
162
|
+
onlyOwner()
|
163
|
+
{
|
164
|
+
_setPoolFees(poolFee, stakingFee, performanceFee);
|
165
|
+
}
|
166
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
5
|
+
import {BasicPool} from "./BasicPool.sol";
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
|
+
import {IPoolComponent} from "./IPoolComponent.sol";
|
9
|
+
import {POOL} from "../type/ObjectType.sol";
|
10
|
+
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
11
|
+
import {RoleId} from "../type/RoleId.sol";
|
12
|
+
|
13
|
+
|
14
|
+
contract BasicPoolAuthorization
|
15
|
+
is Authorization
|
16
|
+
{
|
17
|
+
|
18
|
+
constructor(string memory poolName)
|
19
|
+
Authorization(poolName)
|
20
|
+
{}
|
21
|
+
|
22
|
+
function _setupTargets()
|
23
|
+
internal
|
24
|
+
virtual override
|
25
|
+
{
|
26
|
+
_addComponentTargetWithRole(POOL()); // basic pool target
|
27
|
+
}
|
28
|
+
|
29
|
+
|
30
|
+
function _setupTargetAuthorizations()
|
31
|
+
internal
|
32
|
+
virtual override
|
33
|
+
{
|
34
|
+
IAccess.FunctionInfo[] storage functions;
|
35
|
+
|
36
|
+
// authorize public role (open access to any account, only allows to lock target)
|
37
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
38
|
+
_authorize(functions, BasicPool.stake.selector, "stake");
|
39
|
+
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
40
|
+
_authorize(functions, BasicPool.extend.selector, "extend");
|
41
|
+
_authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
|
42
|
+
_authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
|
43
|
+
_authorize(functions, BasicPool.close.selector, "close");
|
44
|
+
_authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
|
45
|
+
|
46
|
+
_authorize(functions, BasicPool.setMaxCapitalAmount.selector, "setMaxCapitalAmount");
|
47
|
+
_authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
|
48
|
+
_authorize(functions, BasicPool.setFees.selector, "setFees");
|
49
|
+
_authorize(functions, BasicPool.stake.selector, "stake");
|
50
|
+
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
51
|
+
_authorize(functions, BasicPool.extend.selector, "extend");
|
52
|
+
|
53
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
54
|
+
|
55
|
+
_authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
@@ -2,36 +2,26 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
|
+
import {IBundleService} from "./IBundleService.sol";
|
5
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
6
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
7
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
8
10
|
import {IInstance} from "../instance/IInstance.sol";
|
9
11
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
12
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
13
|
|
12
|
-
import {
|
13
|
-
import {
|
14
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
|
+
import {BundleSet} from "../instance/BundleSet.sol";
|
16
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
17
|
+
import {Fee} from "../type/Fee.sol";
|
18
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
14
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
20
|
import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
|
16
|
-
import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
|
17
|
-
import {Pool} from "./Pool.sol";
|
18
|
-
|
19
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
20
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
21
|
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
22
22
|
import {Seconds} from "../type/Seconds.sol";
|
23
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
24
|
-
import {
|
25
|
-
import {Versionable} from "../shared/Versionable.sol";
|
26
|
-
|
27
|
-
import {IService} from "../shared/IService.sol";
|
28
|
-
import {Service} from "../shared/Service.sol";
|
29
|
-
import {BundleManager} from "../instance/BundleManager.sol";
|
30
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
31
|
-
import {IBundleService} from "./IBundleService.sol";
|
32
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
33
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
34
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
23
|
+
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
24
|
+
import {TokenTransferLib} from "../shared/TokenTransferLib.sol";
|
35
25
|
|
36
26
|
string constant BUNDLE_SERVICE_NAME = "BundleService";
|
37
27
|
|
@@ -39,8 +29,7 @@ contract BundleService is
|
|
39
29
|
ComponentVerifyingService,
|
40
30
|
IBundleService
|
41
31
|
{
|
42
|
-
|
43
|
-
|
32
|
+
|
44
33
|
string public constant NAME = "BundleService";
|
45
34
|
|
46
35
|
address private _registryAddress;
|
@@ -127,7 +116,7 @@ contract BundleService is
|
|
127
116
|
poolNftId,
|
128
117
|
bundleFee,
|
129
118
|
filter,
|
130
|
-
|
119
|
+
TimestampLib.blockTimestamp(),
|
131
120
|
TimestampLib.blockTimestamp().addSeconds(lifetime),
|
132
121
|
zeroTimestamp()));
|
133
122
|
|
@@ -139,7 +128,7 @@ contract BundleService is
|
|
139
128
|
AmountLib.zero()); // fee amount
|
140
129
|
|
141
130
|
// put bundle under bundle managemet
|
142
|
-
|
131
|
+
BundleSet bundleManager = instance.getBundleSet();
|
143
132
|
bundleManager.add(bundleNftId);
|
144
133
|
|
145
134
|
// TODO add logging
|
@@ -197,7 +186,7 @@ contract BundleService is
|
|
197
186
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
198
187
|
|
199
188
|
// update set of active bundles
|
200
|
-
|
189
|
+
BundleSet bundleManager = instance.getBundleSet();
|
201
190
|
bundleManager.lock(bundleNftId);
|
202
191
|
|
203
192
|
emit LogBundleServiceBundleLocked(bundleNftId);
|
@@ -214,7 +203,7 @@ contract BundleService is
|
|
214
203
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
215
204
|
|
216
205
|
// update set of active bundles
|
217
|
-
|
206
|
+
BundleSet bundleManager = instance.getBundleSet();
|
218
207
|
bundleManager.unlock(bundleNftId);
|
219
208
|
|
220
209
|
emit LogBundleServiceBundleActivated(bundleNftId);
|
@@ -233,7 +222,7 @@ contract BundleService is
|
|
233
222
|
instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
|
234
223
|
|
235
224
|
// ensure no open policies attached to bundle
|
236
|
-
|
225
|
+
BundleSet bundleManager = instance.getBundleSet();
|
237
226
|
uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
|
238
227
|
if(openPolicies > 0) {
|
239
228
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
@@ -243,6 +232,103 @@ contract BundleService is
|
|
243
232
|
bundleManager.lock(bundleNftId);
|
244
233
|
}
|
245
234
|
|
235
|
+
/// @inheritdoc IBundleService
|
236
|
+
function stake(
|
237
|
+
IInstance instance,
|
238
|
+
NftId bundleNftId,
|
239
|
+
Amount amount
|
240
|
+
)
|
241
|
+
external
|
242
|
+
virtual
|
243
|
+
// TODO: restricted() (once #462 is done)
|
244
|
+
{
|
245
|
+
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
246
|
+
StateId bundleState = instance.getInstanceReader().getMetadata(bundleNftId.toKey32(BUNDLE())).state;
|
247
|
+
|
248
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp() || bundleInfo.closedAt.gtz()) {
|
249
|
+
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
250
|
+
}
|
251
|
+
|
252
|
+
_componentService.increaseBundleBalance(
|
253
|
+
instance.getInstanceStore(),
|
254
|
+
bundleNftId,
|
255
|
+
amount,
|
256
|
+
AmountLib.zero());
|
257
|
+
}
|
258
|
+
|
259
|
+
/// @inheritdoc IBundleService
|
260
|
+
function unstake(
|
261
|
+
IInstance instance,
|
262
|
+
NftId bundleNftId,
|
263
|
+
Amount amount
|
264
|
+
)
|
265
|
+
external
|
266
|
+
virtual
|
267
|
+
// TODO: restricted() (once #462 is done)
|
268
|
+
returns (Amount unstakedAmount)
|
269
|
+
{
|
270
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
271
|
+
(
|
272
|
+
Amount balanceAmount,
|
273
|
+
Amount lockedAmount,
|
274
|
+
Amount feeAmount
|
275
|
+
) = instanceStore.getAmounts(bundleNftId);
|
276
|
+
|
277
|
+
Amount unstakedAmount = amount;
|
278
|
+
Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
|
279
|
+
|
280
|
+
// if amount is max, then unstake all available
|
281
|
+
if (amount.gte(AmountLib.max())) {
|
282
|
+
unstakedAmount = availableAmount;
|
283
|
+
}
|
284
|
+
|
285
|
+
// ensure unstaked amount does not exceed available amount
|
286
|
+
if (unstakedAmount > availableAmount) {
|
287
|
+
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
288
|
+
}
|
289
|
+
|
290
|
+
_componentService.decreaseBundleBalance(
|
291
|
+
instanceStore,
|
292
|
+
bundleNftId,
|
293
|
+
unstakedAmount,
|
294
|
+
AmountLib.zero());
|
295
|
+
|
296
|
+
return unstakedAmount;
|
297
|
+
}
|
298
|
+
|
299
|
+
/// @inheritdoc IBundleService
|
300
|
+
function extend(NftId bundleNftId, Seconds lifetimeExtension)
|
301
|
+
external
|
302
|
+
virtual
|
303
|
+
// TODO: restricted() (once #462 is done)
|
304
|
+
returns (Timestamp extendedExpiredAt)
|
305
|
+
{
|
306
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
307
|
+
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
308
|
+
StateId bundleState = instance.getInstanceReader().getMetadata(bundleNftId.toKey32(BUNDLE())).state;
|
309
|
+
|
310
|
+
// ensure bundle belongs to the pool
|
311
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
312
|
+
revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
313
|
+
}
|
314
|
+
|
315
|
+
// ensure bundle is active and not yet expired
|
316
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
|
317
|
+
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
318
|
+
}
|
319
|
+
|
320
|
+
if (lifetimeExtension.eqz()) {
|
321
|
+
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
322
|
+
}
|
323
|
+
|
324
|
+
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
325
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
326
|
+
|
327
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, bundleInfo.expiredAt);
|
328
|
+
|
329
|
+
return bundleInfo.expiredAt;
|
330
|
+
}
|
331
|
+
|
246
332
|
|
247
333
|
function releaseCollateral(
|
248
334
|
IInstance instance,
|
@@ -271,7 +357,49 @@ contract BundleService is
|
|
271
357
|
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
272
358
|
}
|
273
359
|
|
274
|
-
instance.
|
360
|
+
instance.getBundleSet().unlinkPolicy(policyNftId);
|
361
|
+
}
|
362
|
+
|
363
|
+
/// @inheritdoc IBundleService
|
364
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
365
|
+
public
|
366
|
+
virtual
|
367
|
+
// TODO: restricted() (once #462 is done)
|
368
|
+
returns (Amount withdrawnAmount)
|
369
|
+
{
|
370
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
371
|
+
InstanceReader reader = instance.getInstanceReader();
|
372
|
+
|
373
|
+
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
374
|
+
address poolWallet = poolInfo.wallet;
|
375
|
+
|
376
|
+
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
377
|
+
|
378
|
+
// determine withdrawn amount
|
379
|
+
withdrawnAmount = amount;
|
380
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
381
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
382
|
+
} else {
|
383
|
+
if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
|
384
|
+
revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
385
|
+
}
|
386
|
+
}
|
387
|
+
|
388
|
+
// decrease fee counters by withdrawnAmount
|
389
|
+
{
|
390
|
+
InstanceStore store = instance.getInstanceStore();
|
391
|
+
// decrease fee amount of the bundle
|
392
|
+
_componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
393
|
+
// decrease pool balance
|
394
|
+
_componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
395
|
+
}
|
396
|
+
|
397
|
+
// transfer amount to bundle owner
|
398
|
+
{
|
399
|
+
address owner = getRegistry().ownerOf(bundleNftId);
|
400
|
+
emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
|
401
|
+
TokenTransferLib.distributeTokens(poolWallet, owner, withdrawnAmount, poolInfo.tokenHandler);
|
402
|
+
}
|
275
403
|
}
|
276
404
|
|
277
405
|
/// @dev links policy to bundle
|
@@ -283,10 +411,10 @@ contract BundleService is
|
|
283
411
|
|
284
412
|
// ensure policy has not yet been activated in a previous tx already
|
285
413
|
if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
|
286
|
-
revert
|
414
|
+
revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
|
287
415
|
}
|
288
416
|
|
289
|
-
|
417
|
+
BundleSet bundleManager = instance.getBundleSet();
|
290
418
|
bundleManager.linkPolicy(policyNftId);
|
291
419
|
}
|
292
420
|
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {BundleService} from "./BundleService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
|
10
7
|
|
11
8
|
contract BundleServiceManager is ProxyManager {
|
12
9
|
|
@@ -26,6 +26,15 @@ interface IBundleService is IService {
|
|
26
26
|
|
27
27
|
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
28
|
|
29
|
+
error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
|
+
|
31
|
+
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
32
|
+
|
33
|
+
error ErrorBundleServiceExtensionLifetimeIsZero();
|
34
|
+
|
35
|
+
event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
36
|
+
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
37
|
+
|
29
38
|
/// @dev create a new bundle for the specified attributes
|
30
39
|
/// may only be called by pool service
|
31
40
|
function create(
|
@@ -42,10 +51,19 @@ interface IBundleService is IService {
|
|
42
51
|
|
43
52
|
|
44
53
|
/// @dev increase bundle stakes by the specified amount
|
45
|
-
/// may only be called by the
|
46
|
-
|
54
|
+
/// may only be called by the pool service
|
55
|
+
function stake(IInstance instance, NftId bundleNftId, Amount amount) external;
|
47
56
|
|
48
|
-
|
57
|
+
/// @dev decrease bundle stakes by the specified amount
|
58
|
+
/// may only be called by the pool service
|
59
|
+
/// @param instance the instance relevant for the bundle
|
60
|
+
/// @param bundleNftId the bundle nft id
|
61
|
+
/// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
|
62
|
+
/// @return unstakedAmount the effective unstaked amount
|
63
|
+
function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
64
|
+
|
65
|
+
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
66
|
+
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
49
67
|
|
50
68
|
/// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
|
51
69
|
/// only active bundles may be locked
|
@@ -103,4 +121,11 @@ interface IBundleService is IService {
|
|
103
121
|
IInstance instance,
|
104
122
|
NftId policyNftId
|
105
123
|
) external;
|
124
|
+
|
125
|
+
/// @dev Withdraw bundle feeds for the given bundle
|
126
|
+
/// @param bundleNftId the bundle Nft Id
|
127
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
128
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
129
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
130
|
+
|
106
131
|
}
|
@@ -16,70 +16,10 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
16
16
|
|
17
17
|
error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
|
18
18
|
error ErrorPoolNotPoolService(address caller);
|
19
|
-
|
20
19
|
error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
|
21
20
|
|
22
21
|
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
23
22
|
|
24
|
-
/// @dev increases the staked tokens by the specified amount
|
25
|
-
/// only the bundle owner may stake tokens
|
26
|
-
/// bundle MUST be in active or locked state
|
27
|
-
function stake(NftId bundleNftId, Amount amount) external;
|
28
|
-
|
29
|
-
/// @dev decreases the staked tokens by the specified amount
|
30
|
-
/// only the bundle owner may unstake tokens from the bundle
|
31
|
-
/// bundle MUST be in active, locked or closed state
|
32
|
-
function unstake(NftId bundleNftId, Amount amount) external;
|
33
|
-
|
34
|
-
/// @dev extends the bundle lifetime of the bundle by the specified time
|
35
|
-
/// only the bundle owner may extend the bundle's lifetime
|
36
|
-
/// bundle MUST be in active or locked state
|
37
|
-
function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
|
38
|
-
|
39
|
-
/// @dev locks the specified bundle
|
40
|
-
/// a bundle to be locked MUST be in active state
|
41
|
-
/// locked bundles may not be used to collateralize any new policy
|
42
|
-
function lockBundle(NftId bundleNftId) external;
|
43
|
-
|
44
|
-
/// @dev unlocks the specified bundle
|
45
|
-
/// a bundle to be unlocked MUST be in locked state
|
46
|
-
function unlockBundle(NftId bundleNftId) external;
|
47
|
-
|
48
|
-
/// @dev close the specified bundle
|
49
|
-
/// a bundle to be closed MUST be in active or locked state
|
50
|
-
/// to close a bundle all all linked policies MUST be in closed state as well
|
51
|
-
/// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
|
52
|
-
/// once a bundle is closed this action cannot be reversed
|
53
|
-
function close(NftId bundleNftId) external;
|
54
|
-
|
55
|
-
/// @dev sets the fee for the specified bundle
|
56
|
-
/// the fee is added on top of the poolFee and deducted from the premium amounts
|
57
|
-
/// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
|
58
|
-
function setBundleFee(
|
59
|
-
NftId bundleNftId,
|
60
|
-
Fee memory fee
|
61
|
-
) external;
|
62
|
-
|
63
|
-
/// @dev sets the maximum overall capital amound held by this pool
|
64
|
-
/// function may only be called by pool owner
|
65
|
-
function setMaxCapitalAmount(Amount maxCapitalAmount) external;
|
66
|
-
|
67
|
-
/// @dev sets the required role to create/own bundles
|
68
|
-
/// may only be called once after setting up a pool
|
69
|
-
/// may only be called by pool owner
|
70
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
71
|
-
|
72
|
-
/// @dev update pool fees to the specified values
|
73
|
-
/// pool fees: are deducted from the premium amount and goes to the pool owner
|
74
|
-
/// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
|
75
|
-
/// performance fees: when a bundle is closed a bundle specific profit is calculated
|
76
|
-
/// the performance fee is deducted from this profit and goes to the pool owner
|
77
|
-
function setFees(
|
78
|
-
Fee memory poolFee,
|
79
|
-
Fee memory stakingFee,
|
80
|
-
Fee memory performanceFee
|
81
|
-
) external;
|
82
|
-
|
83
23
|
/// @dev this is a callback function that is called by the product service when underwriting a policy.
|
84
24
|
/// the pool has the option to check the details and object to underwriting by reverting.
|
85
25
|
/// the function is only called for "active" pools that ask to be involved/notified
|
@@ -106,6 +46,12 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
106
46
|
view
|
107
47
|
returns (bool isMatching);
|
108
48
|
|
49
|
+
/// @dev Withdraw bundle feeds for the given bundle
|
50
|
+
/// @param bundleNftId the bundle Nft Id
|
51
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
52
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
53
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
54
|
+
|
109
55
|
/// @dev returns initial pool specific infos for this pool
|
110
56
|
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
111
57
|
|