@etherisc/gif-next 0.0.2-a6ce659-551 → 0.0.2-a6ea1b1-244
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 +13 -1
- 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 +10 -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 +1548 -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 -228
- 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 +134 -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 -88
- 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 +77 -103
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +6 -6
- 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 +1185 -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 +43 -96
- 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 +1521 -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 +224 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -200
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +189 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -301
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +289 -36
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +68 -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 +1318 -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 +72 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -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/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- 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 +50 -50
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -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 -153
- 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 +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +6 -6
- 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 +24 -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/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -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/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- 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 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +4 -54
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- 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 +6 -6
- 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 +44 -44
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +6 -6
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -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 +139 -134
- 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 +4 -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 +5 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -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 +71 -31
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +17 -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 +7 -2
- package/contracts/instance/base/ObjectLifecycle.sol +49 -42
- 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 -2
- package/contracts/instance/module/IDistribution.sol +0 -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 +171 -29
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +30 -3
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +12 -4
- package/contracts/pool/Pool.sol +166 -134
- package/contracts/pool/PoolService.sol +142 -32
- 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 +82 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +7 -32
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +1 -0
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -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 +8 -9
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +97 -135
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +13 -14
- package/contracts/shared/ComponentService.sol +101 -70
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- 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 +1 -1
- package/contracts/shared/Lifecycle.sol +15 -5
- 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/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +20 -17
- package/contracts/staking/StakingLifecycle.sol +5 -6
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/type/Amount.sol +12 -5
- 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/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 -1211
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- 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/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
@@ -23,8 +23,15 @@ interface IPoolService is IService {
|
|
23
23
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
24
24
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
25
25
|
|
26
|
+
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
27
|
+
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
|
28
|
+
|
26
29
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
27
30
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
31
|
+
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
32
|
+
error ErrorPoolServiceMaxCapitalAmountExceeded(NftId poolNftId, Amount maxCapitalAmount, Amount capitalAmount, Amount amountToBeAdded);
|
33
|
+
error ErrorPoolServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
34
|
+
error ErrorPoolServiceAmountIsZero();
|
28
35
|
|
29
36
|
/// @dev defines the required role for bundle owners for the calling pool
|
30
37
|
/// default implementation returns PUBLIC ROLE
|
@@ -85,7 +92,8 @@ interface IPoolService is IService {
|
|
85
92
|
|
86
93
|
/// @dev create a new bundle for the provided parameters
|
87
94
|
/// staking fees will be deducted by the pool service from the staking amount
|
88
|
-
/// may only be called by registered and unlocked pool components
|
95
|
+
/// may only be called by registered and unlocked pool components.
|
96
|
+
/// The pool balance is equal to the pool fees plus the capital of all bundles.
|
89
97
|
function createBundle(
|
90
98
|
address owner, // initial bundle owner
|
91
99
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
@@ -95,6 +103,7 @@ interface IPoolService is IService {
|
|
95
103
|
)
|
96
104
|
external
|
97
105
|
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
106
|
+
// TODO: return netAmount
|
98
107
|
|
99
108
|
|
100
109
|
/// @dev closes the specified bundle
|
@@ -111,13 +120,12 @@ interface IPoolService is IService {
|
|
111
120
|
/// @dev increase stakes for bundle
|
112
121
|
/// staking fees will be deducted by the pool service from the staking amount
|
113
122
|
/// may only be called by registered and unlocked pool components
|
114
|
-
|
115
|
-
|
123
|
+
function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
116
124
|
|
117
125
|
/// @dev decrease stakes for bundle
|
118
126
|
/// performance fees will be deducted by the pool service from the staking amount
|
119
127
|
/// may only be called by registered and unlocked pool components
|
120
|
-
|
128
|
+
function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
121
129
|
|
122
130
|
|
123
131
|
/// @dev calulate required collateral for the provided parameters
|
package/contracts/pool/Pool.sol
CHANGED
@@ -2,17 +2,19 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {
|
6
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
5
|
+
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
7
6
|
import {IBundleService} from "./IBundleService.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
8
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
9
9
|
import {IPoolService} from "./IPoolService.sol";
|
10
10
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
12
14
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
13
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
14
15
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
15
16
|
import {Seconds} from "../type/Seconds.sol";
|
17
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
16
18
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
19
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
18
20
|
|
@@ -38,29 +40,121 @@ abstract contract Pool is
|
|
38
40
|
}
|
39
41
|
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
|
43
|
+
/// @dev see {IPoolComponent.verifyApplication}
|
44
|
+
function verifyApplication(
|
45
|
+
NftId applicationNftId,
|
46
|
+
bytes memory applicationData,
|
47
|
+
NftId bundleNftId,
|
48
|
+
bytes memory bundleFilter,
|
49
|
+
Amount collateralizationAmount
|
50
|
+
)
|
51
|
+
public
|
52
|
+
virtual
|
53
|
+
restricted()
|
54
|
+
{
|
55
|
+
if(!applicationMatchesBundle(
|
56
|
+
applicationNftId,
|
57
|
+
applicationData,
|
58
|
+
bundleNftId,
|
59
|
+
bundleFilter,
|
60
|
+
collateralizationAmount)
|
61
|
+
)
|
62
|
+
{
|
63
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
44
64
|
}
|
45
|
-
|
65
|
+
|
66
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
71
|
+
/// Override this function to implement any custom application verification
|
72
|
+
/// Default implementation always returns true
|
73
|
+
function applicationMatchesBundle(
|
74
|
+
NftId applicationNftId,
|
75
|
+
bytes memory applicationData,
|
76
|
+
NftId bundleNftId,
|
77
|
+
bytes memory bundleFilter,
|
78
|
+
Amount collateralizationAmount
|
79
|
+
)
|
80
|
+
public
|
81
|
+
virtual
|
82
|
+
view
|
83
|
+
returns (bool isMatching)
|
84
|
+
{
|
85
|
+
return true;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
function register()
|
90
|
+
external
|
91
|
+
virtual
|
92
|
+
onlyOwner()
|
93
|
+
{
|
94
|
+
_getPoolStorage()._componentService.registerPool();
|
95
|
+
_approveTokenHandler(type(uint256).max);
|
96
|
+
}
|
97
|
+
|
98
|
+
/// @inheritdoc IPoolComponent
|
99
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
restricted()
|
103
|
+
onlyBundleOwner(bundleNftId)
|
104
|
+
returns (Amount withdrawnAmount)
|
105
|
+
{
|
106
|
+
return _withdrawBundleFees(bundleNftId, amount);
|
46
107
|
}
|
47
108
|
|
48
109
|
|
49
|
-
function
|
110
|
+
function getInitialPoolInfo()
|
111
|
+
public
|
112
|
+
virtual
|
113
|
+
view
|
114
|
+
returns (IComponents.PoolInfo memory poolInfo)
|
115
|
+
{
|
116
|
+
return IComponents.PoolInfo(
|
117
|
+
PUBLIC_ROLE(), // bundleOwnerRole
|
118
|
+
AmountLib.max(), // maxCapitalAmount,
|
119
|
+
isNftInterceptor(), // isInterceptingBundleTransfers
|
120
|
+
false, // isExternallyManaged,
|
121
|
+
false, // isVerifyingApplications,
|
122
|
+
UFixedLib.toUFixed(1), // collateralizationLevel,
|
123
|
+
UFixedLib.toUFixed(1), // retentionLevel,
|
124
|
+
FeeLib.zero(), // initialPoolFee,
|
125
|
+
FeeLib.zero(), // initialStakingFee,
|
126
|
+
FeeLib.zero() // initialPerformanceFee,
|
127
|
+
);
|
128
|
+
}
|
129
|
+
|
130
|
+
// Internals
|
131
|
+
|
132
|
+
function _initializePool(
|
50
133
|
address registry,
|
51
134
|
NftId instanceNftId,
|
52
135
|
string memory name,
|
53
136
|
address token,
|
137
|
+
IAuthorization authorization,
|
54
138
|
bool isInterceptingNftTransfers,
|
55
139
|
address initialOwner,
|
56
140
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
57
141
|
bytes memory componentData // component specifidc data
|
58
142
|
)
|
59
|
-
|
143
|
+
internal
|
60
144
|
virtual
|
61
145
|
onlyInitializing()
|
62
146
|
{
|
63
|
-
|
147
|
+
_initializeInstanceLinkedComponent(
|
148
|
+
registry,
|
149
|
+
instanceNftId,
|
150
|
+
name,
|
151
|
+
token,
|
152
|
+
POOL(),
|
153
|
+
authorization,
|
154
|
+
isInterceptingNftTransfers,
|
155
|
+
initialOwner,
|
156
|
+
registryData,
|
157
|
+
componentData);
|
64
158
|
|
65
159
|
PoolStorage storage $ = _getPoolStorage();
|
66
160
|
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
@@ -70,201 +164,133 @@ abstract contract Pool is
|
|
70
164
|
registerInterface(type(IPoolComponent).interfaceId);
|
71
165
|
}
|
72
166
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
virtual
|
77
|
-
onlyOwner()
|
78
|
-
{
|
79
|
-
_getPoolStorage()._componentService.registerPool();
|
80
|
-
}
|
81
|
-
|
82
|
-
|
83
|
-
function stake(
|
167
|
+
/// @dev increases the staked tokens by the specified amount
|
168
|
+
/// bundle MUST be in active or locked state
|
169
|
+
function _stake(
|
84
170
|
NftId bundleNftId,
|
85
171
|
Amount amount
|
86
172
|
)
|
87
|
-
|
173
|
+
internal
|
88
174
|
virtual
|
89
|
-
|
90
|
-
onlyBundleOwner(bundleNftId)
|
175
|
+
returns(Amount netAmount)
|
91
176
|
{
|
92
|
-
|
177
|
+
_getPoolStorage()._poolService.stake(bundleNftId, amount);
|
93
178
|
}
|
94
179
|
|
95
180
|
|
96
|
-
|
181
|
+
/// @dev decreases the staked tokens by the specified amount
|
182
|
+
/// bundle MUST be in active, locked or closed state
|
183
|
+
function _unstake(
|
97
184
|
NftId bundleNftId,
|
98
185
|
Amount amount
|
99
186
|
)
|
100
|
-
|
187
|
+
internal
|
101
188
|
virtual
|
102
|
-
|
103
|
-
onlyBundleOwner(bundleNftId)
|
189
|
+
returns(Amount netAmount)
|
104
190
|
{
|
105
|
-
|
191
|
+
return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
|
106
192
|
}
|
107
193
|
|
108
194
|
|
109
|
-
|
195
|
+
/// @dev extends the bundle lifetime of the bundle by the specified time
|
196
|
+
/// bundle MUST be in active or locked state
|
197
|
+
function _extend(
|
110
198
|
NftId bundleNftId,
|
111
199
|
Seconds lifetimeExtension
|
112
200
|
)
|
113
|
-
|
201
|
+
internal
|
114
202
|
virtual
|
115
|
-
|
116
|
-
onlyBundleOwner(bundleNftId)
|
203
|
+
returns (Timestamp extendedExpiredAt)
|
117
204
|
{
|
118
|
-
|
205
|
+
return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
|
119
206
|
}
|
120
207
|
|
121
208
|
|
122
|
-
|
123
|
-
|
209
|
+
/// @dev Locks the specified bundle.
|
210
|
+
/// A bundle to be locked MUST be in active state.
|
211
|
+
/// Locked bundles may not be used to collateralize any new policy.
|
212
|
+
function _lockBundle(NftId bundleNftId)
|
213
|
+
internal
|
124
214
|
virtual
|
125
|
-
//restricted() // TODO consider adding this back
|
126
|
-
onlyBundleOwner(bundleNftId)
|
127
215
|
{
|
128
216
|
_getPoolStorage()._bundleService.lock(bundleNftId);
|
129
217
|
}
|
130
218
|
|
131
219
|
|
132
|
-
|
133
|
-
|
220
|
+
/// @dev Unlocks the specified bundle.
|
221
|
+
/// A bundle to be unlocked MUST be in locked state.
|
222
|
+
function _unlockBundle(NftId bundleNftId)
|
223
|
+
internal
|
134
224
|
virtual
|
135
|
-
//restricted()
|
136
|
-
onlyBundleOwner(bundleNftId)
|
137
225
|
{
|
138
226
|
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
139
227
|
}
|
140
228
|
|
141
229
|
|
142
|
-
|
143
|
-
|
230
|
+
/// @dev Close the specified bundle.
|
231
|
+
/// A bundle to be closed MUST be in active or locked state.
|
232
|
+
/// To close a bundle all all linked policies MUST be in closed state as well.
|
233
|
+
/// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
|
234
|
+
/// Once a bundle is closed this action cannot be reversed.
|
235
|
+
function _close(NftId bundleNftId)
|
236
|
+
internal
|
144
237
|
virtual
|
145
|
-
//restricted()
|
146
|
-
onlyBundleOwner(bundleNftId)
|
147
238
|
{
|
148
239
|
_getPoolStorage()._poolService.closeBundle(bundleNftId);
|
149
240
|
}
|
150
241
|
|
151
242
|
|
152
|
-
|
243
|
+
/// @dev Sets the fee for the specified bundle.
|
244
|
+
/// The fee is added on top of the poolFee and deducted from the premium amounts
|
245
|
+
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
246
|
+
function _setBundleFee(
|
153
247
|
NftId bundleNftId,
|
154
248
|
Fee memory fee
|
155
249
|
)
|
156
|
-
|
250
|
+
internal
|
157
251
|
virtual
|
158
|
-
//restricted()
|
159
|
-
onlyBundleOwner(bundleNftId)
|
160
252
|
{
|
161
253
|
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
162
254
|
}
|
163
255
|
|
164
256
|
|
165
|
-
|
166
|
-
|
257
|
+
/// @dev Sets the maximum overall capital amound held by this pool.
|
258
|
+
/// Function may only be called by pool owner.
|
259
|
+
function _setMaxCapitalAmount(Amount maxCapitalAmount)
|
260
|
+
internal
|
167
261
|
virtual
|
168
|
-
restricted()
|
169
|
-
onlyOwner()
|
170
262
|
{
|
171
263
|
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
172
264
|
}
|
173
265
|
|
174
|
-
|
175
|
-
|
176
|
-
|
266
|
+
/// @dev Sets the required role to create/own bundles.
|
267
|
+
/// May only be called once after setting up a pool.
|
268
|
+
/// May only be called by pool owner.
|
269
|
+
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
270
|
+
internal
|
177
271
|
virtual
|
178
|
-
restricted()
|
179
|
-
onlyOwner()
|
180
272
|
{
|
181
273
|
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
182
274
|
}
|
183
275
|
|
184
276
|
|
185
|
-
|
277
|
+
/// @dev Update pool fees to the specified values.
|
278
|
+
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
279
|
+
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
280
|
+
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
281
|
+
/// The performance fee is deducted from this profit and goes to the pool owner.
|
282
|
+
function _setPoolFees(
|
186
283
|
Fee memory poolFee,
|
187
284
|
Fee memory stakingFee,
|
188
285
|
Fee memory performanceFee
|
189
286
|
)
|
190
|
-
|
287
|
+
internal
|
191
288
|
virtual
|
192
|
-
restricted()
|
193
|
-
onlyOwner()
|
194
289
|
{
|
195
290
|
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
196
291
|
}
|
197
292
|
|
198
|
-
|
199
|
-
/// @dev see {IPool.verifyApplication}
|
200
|
-
function verifyApplication(
|
201
|
-
NftId applicationNftId,
|
202
|
-
bytes memory applicationData,
|
203
|
-
NftId bundleNftId,
|
204
|
-
bytes memory bundleFilter,
|
205
|
-
Amount collateralizationAmount
|
206
|
-
)
|
207
|
-
public
|
208
|
-
virtual
|
209
|
-
restricted()
|
210
|
-
{
|
211
|
-
if(!applicationMatchesBundle(
|
212
|
-
applicationNftId,
|
213
|
-
applicationData,
|
214
|
-
bundleNftId,
|
215
|
-
bundleFilter,
|
216
|
-
collateralizationAmount)
|
217
|
-
)
|
218
|
-
{
|
219
|
-
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
220
|
-
}
|
221
|
-
|
222
|
-
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
223
|
-
}
|
224
|
-
|
225
|
-
|
226
|
-
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
227
|
-
/// Override this function to implement any custom application verification
|
228
|
-
/// Default implementation always returns true
|
229
|
-
function applicationMatchesBundle(
|
230
|
-
NftId applicationNftId,
|
231
|
-
bytes memory applicationData,
|
232
|
-
NftId bundleNftId,
|
233
|
-
bytes memory bundleFilter,
|
234
|
-
Amount collateralizationAmount
|
235
|
-
)
|
236
|
-
public
|
237
|
-
view
|
238
|
-
virtual override
|
239
|
-
returns (bool isMatching)
|
240
|
-
{
|
241
|
-
return true;
|
242
|
-
}
|
243
|
-
|
244
|
-
|
245
|
-
function getInitialPoolInfo()
|
246
|
-
public
|
247
|
-
virtual
|
248
|
-
view
|
249
|
-
returns (IComponents.PoolInfo memory poolInfo)
|
250
|
-
{
|
251
|
-
return IComponents.PoolInfo(
|
252
|
-
NftIdLib.zero(), // will be set when GIF registers the related product
|
253
|
-
PUBLIC_ROLE(), // bundleOwnerRole
|
254
|
-
AmountLib.max(), // maxCapitalAmount,
|
255
|
-
isNftInterceptor(), // isInterceptingBundleTransfers
|
256
|
-
false, // isExternallyManaged,
|
257
|
-
false, // isVerifyingApplications,
|
258
|
-
UFixedLib.toUFixed(1), // collateralizationLevel,
|
259
|
-
UFixedLib.toUFixed(1), // retentionLevel,
|
260
|
-
FeeLib.zero(), // initialPoolFee,
|
261
|
-
FeeLib.zero(), // initialStakingFee,
|
262
|
-
FeeLib.zero() // initialPerformanceFee,
|
263
|
-
);
|
264
|
-
}
|
265
|
-
|
266
|
-
// Internals
|
267
|
-
|
293
|
+
/// @dev Creates a new bundle using the provided parameter values.
|
268
294
|
function _createBundle(
|
269
295
|
address bundleOwner,
|
270
296
|
Fee memory fee,
|
@@ -290,6 +316,12 @@ abstract contract Pool is
|
|
290
316
|
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
291
317
|
}
|
292
318
|
|
319
|
+
function _withdrawBundleFees(NftId bundleNftId, Amount amount)
|
320
|
+
internal
|
321
|
+
returns (Amount withdrawnAmount)
|
322
|
+
{
|
323
|
+
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
324
|
+
}
|
293
325
|
|
294
326
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
295
327
|
assembly {
|