@etherisc/gif-next 0.0.2-e964d24-516 → 0.0.2-e987ccf-894
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 +51 -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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- 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/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- 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 +1500 -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 +179 -385
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +280 -324
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +130 -72
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +171 -254
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +186 -94
- 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 +77 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +193 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +93 -126
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- 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 +590 -328
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +282 -101
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1294 -370
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- 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/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -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 +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1029 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1406 -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 +399 -213
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +176 -50
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +204 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +181 -356
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +342 -211
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +227 -442
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +401 -432
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +106 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +92 -158
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +111 -37
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1254 -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 +142 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +130 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +46 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +217 -73
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +83 -44
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +271 -173
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +244 -286
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +117 -91
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +188 -220
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +135 -57
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +345 -331
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- 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 +183 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
- 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 +440 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- 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 +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +104 -145
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1252 -203
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -107
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -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/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- 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 +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +951 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- 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 +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- 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/Service.sol/Service.json +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
- 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 +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -85
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- 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 +97 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -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 +39 -34
- 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 +47 -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 +149 -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 +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +100 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -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/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +162 -152
- package/contracts/distribution/DistributionService.sol +124 -136
- package/contracts/distribution/DistributionServiceManager.sol +11 -23
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +26 -17
- package/contracts/instance/IInstanceService.sol +46 -27
- package/contracts/instance/Instance.sol +114 -89
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
- package/contracts/instance/InstanceReader.sol +106 -52
- package/contracts/instance/InstanceService.sol +291 -132
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +146 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +110 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -10
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +29 -22
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +252 -196
- package/contracts/pool/BundleServiceManager.sol +11 -23
- package/contracts/pool/IBundleService.sol +35 -19
- package/contracts/pool/IPoolComponent.sol +10 -66
- package/contracts/pool/IPoolService.sol +79 -33
- package/contracts/pool/Pool.sol +168 -144
- package/contracts/pool/PoolService.sol +322 -216
- package/contracts/pool/PoolServiceManager.sol +11 -23
- package/contracts/product/ApplicationService.sol +144 -81
- package/contracts/product/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +45 -66
- package/contracts/product/ClaimServiceManager.sol +11 -8
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +13 -3
- package/contracts/product/IPolicyService.sol +29 -36
- package/contracts/product/IPricingService.sol +10 -8
- package/contracts/product/IProductComponent.sol +10 -12
- package/contracts/product/IProductService.sol +2 -8
- package/contracts/product/PolicyService.sol +390 -190
- package/contracts/product/PolicyServiceManager.sol +11 -26
- package/contracts/product/PricingService.sol +103 -77
- package/contracts/product/PricingServiceManager.sol +11 -23
- package/contracts/product/Product.sol +154 -123
- package/contracts/product/ProductService.sol +36 -147
- package/contracts/product/ProductServiceManager.sol +11 -26
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +55 -22
- package/contracts/registry/IRegistryService.sol +38 -35
- package/contracts/registry/Registry.sol +234 -125
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +67 -100
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +141 -144
- package/contracts/shared/ComponentService.sol +587 -96
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +21 -41
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +5 -16
- package/contracts/shared/PolicyHolder.sol +22 -17
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +112 -8
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +105 -47
- package/contracts/staking/StakeManagerLib.sol +206 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +288 -47
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +13 -6
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +29 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -62
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +117 -40
- package/contracts/type/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +33 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- 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/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
package/contracts/pool/Pool.sol
CHANGED
@@ -2,27 +2,31 @@
|
|
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
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
11
14
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
12
|
-
import {BUNDLE, POOL} from "../type/ObjectType.sol";
|
13
15
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
14
16
|
import {Seconds} from "../type/Seconds.sol";
|
17
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
15
18
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
19
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
17
20
|
|
18
21
|
abstract contract Pool is
|
19
|
-
|
22
|
+
InstanceLinkedComponent,
|
20
23
|
IPoolComponent
|
21
24
|
{
|
22
25
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
23
26
|
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
24
27
|
|
25
28
|
struct PoolStorage {
|
29
|
+
IComponentService _componentService;
|
26
30
|
IPoolService _poolService;
|
27
31
|
IBundleService _bundleService;
|
28
32
|
}
|
@@ -36,209 +40,257 @@ abstract contract Pool is
|
|
36
40
|
}
|
37
41
|
|
38
42
|
|
39
|
-
|
40
|
-
|
41
|
-
|
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);
|
42
64
|
}
|
43
|
-
|
65
|
+
|
66
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
44
67
|
}
|
45
68
|
|
46
69
|
|
47
|
-
|
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);
|
107
|
+
}
|
108
|
+
|
109
|
+
|
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
|
+
);
|
125
|
+
}
|
126
|
+
|
127
|
+
// Internals
|
128
|
+
|
129
|
+
function _initializePool(
|
48
130
|
address registry,
|
49
131
|
NftId instanceNftId,
|
50
132
|
string memory name,
|
51
133
|
address token,
|
134
|
+
IAuthorization authorization,
|
52
135
|
bool isInterceptingNftTransfers,
|
53
136
|
address initialOwner,
|
54
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
137
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
138
|
+
bytes memory componentData // component specifidc data
|
55
139
|
)
|
56
|
-
|
140
|
+
internal
|
57
141
|
virtual
|
58
142
|
onlyInitializing()
|
59
143
|
{
|
60
|
-
|
144
|
+
_initializeInstanceLinkedComponent(
|
145
|
+
registry,
|
146
|
+
instanceNftId,
|
147
|
+
name,
|
148
|
+
token,
|
149
|
+
POOL(),
|
150
|
+
authorization,
|
151
|
+
isInterceptingNftTransfers,
|
152
|
+
initialOwner,
|
153
|
+
registryData,
|
154
|
+
componentData);
|
61
155
|
|
62
156
|
PoolStorage storage $ = _getPoolStorage();
|
63
157
|
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
64
158
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
159
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
65
160
|
|
66
161
|
registerInterface(type(IPoolComponent).interfaceId);
|
67
162
|
}
|
68
163
|
|
69
|
-
|
70
|
-
|
164
|
+
/// @dev increases the staked tokens by the specified amount
|
165
|
+
/// bundle MUST be in active or locked state
|
166
|
+
function _stake(
|
71
167
|
NftId bundleNftId,
|
72
168
|
Amount amount
|
73
169
|
)
|
74
|
-
|
170
|
+
internal
|
75
171
|
virtual
|
76
|
-
|
77
|
-
onlyBundleOwner(bundleNftId)
|
172
|
+
returns(Amount)
|
78
173
|
{
|
79
|
-
|
174
|
+
return _getPoolStorage()._poolService.stake(bundleNftId, amount);
|
80
175
|
}
|
81
176
|
|
82
177
|
|
83
|
-
|
178
|
+
/// @dev decreases the staked tokens by the specified amount
|
179
|
+
/// bundle MUST be in active, locked or closed state
|
180
|
+
function _unstake(
|
84
181
|
NftId bundleNftId,
|
85
182
|
Amount amount
|
86
183
|
)
|
87
|
-
|
184
|
+
internal
|
88
185
|
virtual
|
89
|
-
|
90
|
-
onlyBundleOwner(bundleNftId)
|
186
|
+
returns(Amount netAmount)
|
91
187
|
{
|
92
|
-
|
188
|
+
return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
|
93
189
|
}
|
94
190
|
|
95
191
|
|
96
|
-
|
192
|
+
/// @dev extends the bundle lifetime of the bundle by the specified time
|
193
|
+
/// bundle MUST be in active or locked state
|
194
|
+
function _extend(
|
97
195
|
NftId bundleNftId,
|
98
196
|
Seconds lifetimeExtension
|
99
197
|
)
|
100
|
-
|
198
|
+
internal
|
101
199
|
virtual
|
102
|
-
|
103
|
-
onlyBundleOwner(bundleNftId)
|
200
|
+
returns (Timestamp extendedExpiredAt)
|
104
201
|
{
|
105
|
-
|
202
|
+
return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
|
106
203
|
}
|
107
204
|
|
108
205
|
|
109
|
-
|
110
|
-
|
206
|
+
/// @dev Locks the specified bundle.
|
207
|
+
/// A bundle to be locked MUST be in active state.
|
208
|
+
/// Locked bundles may not be used to collateralize any new policy.
|
209
|
+
function _lockBundle(NftId bundleNftId)
|
210
|
+
internal
|
111
211
|
virtual
|
112
|
-
//restricted() // TODO consider adding this back
|
113
|
-
onlyBundleOwner(bundleNftId)
|
114
212
|
{
|
115
213
|
_getPoolStorage()._bundleService.lock(bundleNftId);
|
116
214
|
}
|
117
215
|
|
118
216
|
|
119
|
-
|
120
|
-
|
217
|
+
/// @dev Unlocks the specified bundle.
|
218
|
+
/// A bundle to be unlocked MUST be in locked state.
|
219
|
+
function _unlockBundle(NftId bundleNftId)
|
220
|
+
internal
|
121
221
|
virtual
|
122
|
-
//restricted()
|
123
|
-
onlyBundleOwner(bundleNftId)
|
124
222
|
{
|
125
223
|
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
126
224
|
}
|
127
225
|
|
128
226
|
|
129
|
-
|
130
|
-
|
227
|
+
/// @dev Close the specified bundle.
|
228
|
+
/// A bundle to be closed MUST be in active or locked state.
|
229
|
+
/// To close a bundle all all linked policies MUST be in closed state as well.
|
230
|
+
/// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
|
231
|
+
/// Once a bundle is closed this action cannot be reversed.
|
232
|
+
function _closeBundle(NftId bundleNftId)
|
233
|
+
internal
|
131
234
|
virtual
|
132
|
-
//restricted()
|
133
|
-
onlyBundleOwner(bundleNftId)
|
134
235
|
{
|
135
236
|
_getPoolStorage()._poolService.closeBundle(bundleNftId);
|
136
237
|
}
|
137
238
|
|
138
239
|
|
139
|
-
|
240
|
+
/// @dev Sets the fee for the specified bundle.
|
241
|
+
/// The fee is added on top of the poolFee and deducted from the premium amounts
|
242
|
+
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
243
|
+
function _setBundleFee(
|
140
244
|
NftId bundleNftId,
|
141
245
|
Fee memory fee
|
142
246
|
)
|
143
|
-
|
247
|
+
internal
|
144
248
|
virtual
|
145
|
-
restricted()
|
146
|
-
onlyBundleOwner(bundleNftId)
|
147
249
|
{
|
148
250
|
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
149
251
|
}
|
150
252
|
|
151
253
|
|
152
|
-
|
153
|
-
|
254
|
+
/// @dev Sets the maximum balance amound held by this pool.
|
255
|
+
/// Function may only be called by pool owner.
|
256
|
+
function _setMaxBalanceAmount(Amount maxBalanceAmount)
|
257
|
+
internal
|
154
258
|
virtual
|
155
|
-
restricted()
|
156
|
-
onlyOwner()
|
157
259
|
{
|
158
|
-
_getPoolStorage()._poolService.
|
260
|
+
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
159
261
|
}
|
160
262
|
|
161
|
-
|
162
|
-
|
163
|
-
|
263
|
+
/// @dev Sets the required role to create/own bundles.
|
264
|
+
/// May only be called once after setting up a pool.
|
265
|
+
/// May only be called by pool owner.
|
266
|
+
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
267
|
+
internal
|
164
268
|
virtual
|
165
|
-
restricted()
|
166
|
-
onlyOwner()
|
167
269
|
{
|
168
270
|
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
169
271
|
}
|
170
272
|
|
171
273
|
|
172
|
-
|
274
|
+
/// @dev Update pool fees to the specified values.
|
275
|
+
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
276
|
+
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
277
|
+
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
278
|
+
/// The performance fee is deducted from this profit and goes to the pool owner.
|
279
|
+
function _setPoolFees(
|
173
280
|
Fee memory poolFee,
|
174
281
|
Fee memory stakingFee,
|
175
282
|
Fee memory performanceFee
|
176
283
|
)
|
177
|
-
|
284
|
+
internal
|
178
285
|
virtual
|
179
|
-
restricted()
|
180
|
-
onlyOwner()
|
181
286
|
{
|
182
|
-
_getPoolStorage().
|
287
|
+
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
183
288
|
}
|
184
289
|
|
185
|
-
|
186
|
-
/// @dev see {IPool.verifyApplication}
|
187
|
-
function verifyApplication(
|
188
|
-
NftId applicationNftId,
|
189
|
-
bytes memory applicationData,
|
190
|
-
NftId bundleNftId,
|
191
|
-
bytes memory bundleFilter,
|
192
|
-
Amount collateralizationAmount
|
193
|
-
)
|
194
|
-
public
|
195
|
-
virtual
|
196
|
-
restricted()
|
197
|
-
{
|
198
|
-
if(!applicationMatchesBundle(
|
199
|
-
applicationNftId,
|
200
|
-
applicationData,
|
201
|
-
bundleNftId,
|
202
|
-
bundleFilter,
|
203
|
-
collateralizationAmount)
|
204
|
-
)
|
205
|
-
{
|
206
|
-
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
207
|
-
}
|
208
|
-
|
209
|
-
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
210
|
-
}
|
211
|
-
|
212
|
-
|
213
|
-
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
214
|
-
/// Override this function to implement any custom application verification
|
215
|
-
/// Default implementation always returns true
|
216
|
-
function applicationMatchesBundle(
|
217
|
-
NftId applicationNftId,
|
218
|
-
bytes memory applicationData,
|
219
|
-
NftId bundleNftId,
|
220
|
-
bytes memory bundleFilter,
|
221
|
-
Amount collateralizationAmount
|
222
|
-
)
|
223
|
-
public
|
224
|
-
view
|
225
|
-
virtual override
|
226
|
-
returns (bool isMatching)
|
227
|
-
{
|
228
|
-
return true;
|
229
|
-
}
|
230
|
-
|
231
|
-
|
232
|
-
function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
|
233
|
-
poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
|
234
|
-
}
|
235
|
-
|
236
|
-
// Internals
|
237
|
-
|
290
|
+
/// @dev Creates a new empty bundle using the provided parameter values.
|
238
291
|
function _createBundle(
|
239
292
|
address bundleOwner,
|
240
293
|
Fee memory fee,
|
241
|
-
Amount amount,
|
242
294
|
Seconds lifetime,
|
243
295
|
bytes memory filter
|
244
296
|
)
|
@@ -248,7 +300,6 @@ abstract contract Pool is
|
|
248
300
|
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
249
301
|
bundleOwner,
|
250
302
|
fee,
|
251
|
-
amount,
|
252
303
|
lifetime,
|
253
304
|
filter);
|
254
305
|
|
@@ -260,40 +311,13 @@ abstract contract Pool is
|
|
260
311
|
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
261
312
|
}
|
262
313
|
|
263
|
-
|
264
|
-
/// overwrite this function according to your use case
|
265
|
-
function _getInitialInfo()
|
314
|
+
function _withdrawBundleFees(NftId bundleNftId, Amount amount)
|
266
315
|
internal
|
267
|
-
|
268
|
-
virtual override
|
269
|
-
returns (IComponents.ComponentInfo memory info)
|
316
|
+
returns (Amount withdrawnAmount)
|
270
317
|
{
|
271
|
-
return
|
272
|
-
getName(),
|
273
|
-
getToken(),
|
274
|
-
TokenHandler(address(0)), // will be created by GIF service during registration
|
275
|
-
address(this), // contract is its own wallet
|
276
|
-
AmountLib.zero(), // balance amount
|
277
|
-
AmountLib.zero(), // fee amount
|
278
|
-
abi.encode(
|
279
|
-
IComponents.PoolInfo(
|
280
|
-
NftIdLib.zero(), // will be set when GIF registers the related product
|
281
|
-
PUBLIC_ROLE(), // bundleOwnerRole
|
282
|
-
AmountLib.max(), // maxCapitalAmount,
|
283
|
-
AmountLib.zero(), // initial balance amount
|
284
|
-
AmountLib.zero(), // initial fee amount
|
285
|
-
isNftInterceptor(), // isInterceptingBundleTransfers
|
286
|
-
false, // isExternallyManaged,
|
287
|
-
false, // isVerifyingApplications,
|
288
|
-
UFixedLib.toUFixed(1), // collateralizationLevel,
|
289
|
-
UFixedLib.toUFixed(1), // retentionLevel,
|
290
|
-
FeeLib.zeroFee(), // initialPoolFee,
|
291
|
-
FeeLib.zeroFee(), // initialStakingFee,
|
292
|
-
FeeLib.zeroFee() // initialPerformanceFee,
|
293
|
-
)));
|
318
|
+
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
294
319
|
}
|
295
320
|
|
296
|
-
|
297
321
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
298
322
|
assembly {
|
299
323
|
$.slot := POOL_STORAGE_LOCATION_V1
|