@etherisc/gif-next 0.0.2-bca36d7-613 → 0.0.2-bdcb44f-543
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 +140 -2
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +774 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +895 -226
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → components/IComponent.sol/IComponent.json} +164 -159
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +699 -22
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +838 -58
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +524 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +874 -197
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +570 -225
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +764 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +74 -3
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +2196 -125
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -165
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +909 -1099
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +199 -145
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +213 -141
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +501 -210
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +338 -77
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +261 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +215 -144
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +2 -2
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1096 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +661 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1553 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +793 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +633 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IClaimService.sol/IClaimService.json} +150 -207
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +596 -184
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +519 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +37 -251
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +47 -414
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1000 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +689 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +727 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +649 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +777 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +649 -0
- 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 +354 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +234 -216
- 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 +314 -188
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +229 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +304 -138
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +31 -183
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +127 -170
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +148 -227
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
- package/contracts/components/Component.sol +221 -0
- package/contracts/components/Distribution.sol +206 -79
- package/contracts/components/IComponent.sol +68 -0
- package/contracts/components/IDistributionComponent.sol +44 -8
- package/contracts/components/IPoolComponent.sol +126 -37
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +288 -169
- package/contracts/components/Product.sol +126 -134
- package/contracts/instance/BundleManager.sol +125 -0
- package/contracts/instance/Cloneable.sol +46 -0
- package/contracts/instance/IInstance.sol +74 -10
- package/contracts/instance/IInstanceService.sol +33 -4
- package/contracts/instance/Instance.sol +123 -274
- package/contracts/instance/InstanceAccessManager.sol +87 -78
- package/contracts/instance/InstanceReader.sol +29 -26
- package/contracts/instance/InstanceService.sol +429 -77
- package/contracts/instance/InstanceServiceManager.sol +11 -13
- package/contracts/instance/ObjectManager.sol +84 -0
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/module/IAccess.sol +27 -18
- package/contracts/instance/module/IBundle.sol +2 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +12 -9
- package/contracts/instance/service/ApplicationService.sol +349 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +299 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +394 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +55 -0
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +74 -0
- package/contracts/instance/service/IPolicyService.sol +70 -0
- package/contracts/instance/service/IPoolService.sol +6 -23
- package/contracts/instance/service/IProductService.sol +6 -73
- package/contracts/instance/service/PolicyService.sol +402 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +109 -0
- package/contracts/instance/service/PoolServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +233 -0
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +49 -8
- package/contracts/registry/IRegistryService.sol +46 -14
- package/contracts/registry/Registry.sol +261 -220
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +112 -273
- package/contracts/registry/RegistryServiceManager.sol +24 -26
- package/contracts/registry/ReleaseManager.sol +322 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/ERC165.sol +14 -8
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +4 -1
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +67 -83
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -31
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +26 -22
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +4 -3
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/ObjectType.sol +9 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/RoleId.sol +19 -6
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +4 -0
- package/contracts/types/Timestamp.sol +12 -13
- package/contracts/types/Version.sol +4 -1
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -86
- package/contracts/components/IBaseComponent.sol +0 -24
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -122
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,259 +1,378 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {Fee} from "../types/Fee.sol";
|
9
|
-
import {UFixed} from "../types/UFixed.sol";
|
4
|
+
import {Component} from "./Component.sol";
|
5
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
6
|
+
import {IBundleService} from "../instance/service/IBundleService.sol";
|
7
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
8
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
11
|
-
import {
|
12
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
9
|
+
import {IPoolService} from "../instance/service/IPoolService.sol";
|
13
10
|
import {ISetup} from "../instance/module/ISetup.sol";
|
11
|
+
import {NftId, NftIdLib} from "../types/NftId.sol";
|
12
|
+
import {POOL} from "../types/ObjectType.sol";
|
13
|
+
import {RoleId, PUBLIC_ROLE} from "../types/RoleId.sol";
|
14
|
+
import {Seconds} from "../types/Seconds.sol";
|
15
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
+
import {UFixed} from "../types/UFixed.sol";
|
14
17
|
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
19
|
+
abstract contract Pool is
|
20
|
+
Component,
|
21
|
+
IPoolComponent
|
22
|
+
{
|
23
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
24
|
+
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
21
25
|
|
22
|
-
|
23
|
-
|
26
|
+
struct PoolStorage {
|
27
|
+
UFixed _collateralizationLevel;
|
28
|
+
UFixed _retentionLevel;
|
29
|
+
uint256 _maxCapitalAmount;
|
30
|
+
|
31
|
+
bool _isExternallyManaged;
|
32
|
+
bool _isVerifyingApplications;
|
24
33
|
|
25
|
-
|
26
|
-
|
34
|
+
RoleId _bundleOwnerRole;
|
35
|
+
bool _isInterceptingBundleTransfers;
|
27
36
|
|
28
|
-
|
29
|
-
|
37
|
+
Fee _initialPoolFee;
|
38
|
+
Fee _initialStakingFee;
|
39
|
+
Fee _initialPerformanceFee;
|
30
40
|
|
31
|
-
|
32
|
-
Fee internal _initialStakingFee;
|
33
|
-
Fee internal _initialPerformanceFee;
|
41
|
+
TokenHandler _tokenHandler;
|
34
42
|
|
35
|
-
|
36
|
-
|
43
|
+
// may be used to interact with instance by derived contracts
|
44
|
+
IPoolService _poolService;
|
45
|
+
IBundleService _bundleService;
|
46
|
+
}
|
37
47
|
|
38
|
-
// only relevant to protect callback functions for "active" pools
|
39
|
-
IProductService private _productService;
|
40
48
|
|
41
|
-
modifier
|
42
|
-
|
43
|
-
msg.sender
|
44
|
-
|
49
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
50
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
51
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
52
|
+
}
|
45
53
|
_;
|
46
54
|
}
|
47
55
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
56
|
+
|
57
|
+
modifier onlyPoolService() {
|
58
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
59
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
60
|
+
}
|
52
61
|
_;
|
53
62
|
}
|
54
63
|
|
55
|
-
|
64
|
+
|
65
|
+
function initializePool(
|
56
66
|
address registry,
|
57
67
|
NftId instanceNftId,
|
58
|
-
|
59
|
-
// TODO refactor into tokenNftId
|
68
|
+
string memory name,
|
60
69
|
address token,
|
61
|
-
bool
|
62
|
-
bool
|
70
|
+
bool isInterceptingNftTransfers,
|
71
|
+
bool isExternallyManaging,
|
72
|
+
bool isVerifying,
|
63
73
|
UFixed collateralizationLevel,
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
address initialOwner
|
74
|
+
UFixed retentionLevel,
|
75
|
+
address initialOwner,
|
76
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
68
77
|
)
|
69
|
-
|
78
|
+
public
|
79
|
+
virtual
|
80
|
+
onlyInitializing()
|
70
81
|
{
|
71
|
-
|
82
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
83
|
+
|
84
|
+
PoolStorage storage $ = _getPoolStorage();
|
72
85
|
// TODO add validation
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
86
|
+
$._tokenHandler = new TokenHandler(token);
|
87
|
+
$._maxCapitalAmount = type(uint256).max;
|
88
|
+
$._isExternallyManaged = isExternallyManaging;
|
89
|
+
$._isVerifyingApplications = isVerifying;
|
90
|
+
$._bundleOwnerRole = PUBLIC_ROLE();
|
91
|
+
$._collateralizationLevel = collateralizationLevel;
|
92
|
+
$._retentionLevel = retentionLevel;
|
93
|
+
$._initialPoolFee = FeeLib.zeroFee();
|
94
|
+
$._initialStakingFee = FeeLib.zeroFee();
|
95
|
+
$._initialPerformanceFee = FeeLib.zeroFee();
|
96
|
+
$._poolService = getInstance().getPoolService();
|
97
|
+
$._bundleService = getInstance().getBundleService();
|
98
|
+
|
99
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
100
|
+
}
|
77
101
|
|
78
|
-
// TODO: reactivate when services are available again
|
79
|
-
// _poolService = _instance.getPoolService();
|
80
|
-
// _productService = _instance.getProductService();
|
81
102
|
|
82
|
-
|
103
|
+
function stake(
|
104
|
+
NftId bundleNftId,
|
105
|
+
uint256 amount
|
106
|
+
)
|
107
|
+
public
|
108
|
+
virtual
|
109
|
+
restricted()
|
110
|
+
onlyBundleOwner(bundleNftId)
|
111
|
+
{
|
112
|
+
// TODO add implementation
|
83
113
|
}
|
84
114
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
uint256
|
89
|
-
bytes memory filter
|
115
|
+
|
116
|
+
function unstake(
|
117
|
+
NftId bundleNftId,
|
118
|
+
uint256 amount
|
90
119
|
)
|
91
|
-
|
92
|
-
virtual
|
93
|
-
|
120
|
+
public
|
121
|
+
virtual
|
122
|
+
restricted()
|
123
|
+
onlyBundleOwner(bundleNftId)
|
94
124
|
{
|
95
|
-
|
96
|
-
bundleNftId = _poolService.createBundle(
|
97
|
-
owner,
|
98
|
-
fee,
|
99
|
-
initialAmount,
|
100
|
-
lifetime,
|
101
|
-
filter
|
102
|
-
);
|
103
|
-
|
104
|
-
// TODO add logging
|
125
|
+
// TODO add implementation
|
105
126
|
}
|
106
127
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
function underwrite(
|
112
|
-
NftId policyNftId,
|
113
|
-
bytes memory policyData,
|
114
|
-
bytes memory bundleFilter,
|
115
|
-
uint256 collateralizationAmount
|
128
|
+
|
129
|
+
function extend(
|
130
|
+
NftId bundleNftId,
|
131
|
+
Seconds lifetimeExtension
|
116
132
|
)
|
117
|
-
|
118
|
-
|
119
|
-
|
133
|
+
public
|
134
|
+
virtual
|
135
|
+
restricted()
|
136
|
+
onlyBundleOwner(bundleNftId)
|
137
|
+
{
|
138
|
+
// TODO add implementation
|
139
|
+
}
|
140
|
+
|
141
|
+
|
142
|
+
function lockBundle(NftId bundleNftId)
|
143
|
+
public
|
144
|
+
virtual
|
145
|
+
restricted()
|
146
|
+
onlyBundleOwner(bundleNftId)
|
147
|
+
{
|
148
|
+
_getPoolStorage()._bundleService.lockBundle(bundleNftId);
|
149
|
+
}
|
150
|
+
|
151
|
+
|
152
|
+
function unlockBundle(NftId bundleNftId)
|
153
|
+
public
|
154
|
+
virtual
|
155
|
+
restricted()
|
156
|
+
onlyBundleOwner(bundleNftId)
|
157
|
+
{
|
158
|
+
_getPoolStorage()._bundleService.unlockBundle(bundleNftId);
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
function close(NftId bundleNftId)
|
163
|
+
public
|
164
|
+
virtual
|
165
|
+
restricted()
|
166
|
+
onlyBundleOwner(bundleNftId)
|
120
167
|
{
|
121
|
-
|
168
|
+
// TODO add implementation
|
122
169
|
}
|
123
170
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
function policyMatchesBundle(
|
129
|
-
bytes memory, // policyData
|
130
|
-
bytes memory // bundleFilter
|
171
|
+
|
172
|
+
function setBundleFee(
|
173
|
+
NftId bundleNftId,
|
174
|
+
Fee memory fee
|
131
175
|
)
|
132
176
|
public
|
133
|
-
|
134
|
-
|
135
|
-
|
177
|
+
virtual
|
178
|
+
restricted()
|
179
|
+
onlyBundleOwner(bundleNftId)
|
136
180
|
{
|
137
|
-
|
181
|
+
_getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
|
138
182
|
}
|
139
183
|
|
140
184
|
|
141
|
-
function
|
142
|
-
|
185
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
186
|
+
public
|
187
|
+
virtual
|
188
|
+
restricted()
|
189
|
+
onlyOwner()
|
190
|
+
{
|
191
|
+
// TODO refactor to use pool service
|
192
|
+
// _getPoolStorage()._poolService.setMaxCapitalAmount(...);
|
193
|
+
|
194
|
+
uint256 previousMaxCapitalAmount = _getPoolStorage()._maxCapitalAmount;
|
195
|
+
_getPoolStorage()._maxCapitalAmount = maxCapitalAmount;
|
196
|
+
|
197
|
+
emit LogPoolBundleMaxCapitalAmountUpdated(previousMaxCapitalAmount, maxCapitalAmount);
|
143
198
|
}
|
144
199
|
|
145
|
-
|
146
|
-
|
200
|
+
|
201
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
202
|
+
public
|
203
|
+
virtual
|
204
|
+
restricted()
|
205
|
+
onlyOwner()
|
206
|
+
{
|
207
|
+
// TODO refactor to use pool service
|
208
|
+
// _getPoolStorage()._poolService.setBundleOwnerRole(...);
|
209
|
+
|
210
|
+
if(_getPoolStorage()._bundleOwnerRole != PUBLIC_ROLE()) {
|
211
|
+
revert ErrorPoolBundleOwnerRoleAlreadySet();
|
212
|
+
}
|
213
|
+
|
214
|
+
_getPoolStorage()._bundleOwnerRole = bundleOwnerRole;
|
215
|
+
|
216
|
+
emit LogPoolBundleOwnerRoleSet(bundleOwnerRole);
|
147
217
|
}
|
148
218
|
|
219
|
+
|
149
220
|
function setFees(
|
150
221
|
Fee memory poolFee,
|
151
222
|
Fee memory stakingFee,
|
152
223
|
Fee memory performanceFee
|
153
224
|
)
|
154
|
-
|
155
|
-
|
156
|
-
|
225
|
+
public
|
226
|
+
virtual
|
227
|
+
restricted()
|
228
|
+
onlyOwner()
|
157
229
|
{
|
158
|
-
_poolService.setFees(poolFee, stakingFee, performanceFee);
|
230
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
159
231
|
}
|
160
232
|
|
161
|
-
|
233
|
+
|
234
|
+
/// @dev see {IPool.verifyApplication}
|
235
|
+
function verifyApplication(
|
236
|
+
NftId applicationNftId,
|
237
|
+
bytes memory applicationData,
|
162
238
|
NftId bundleNftId,
|
163
|
-
|
239
|
+
bytes memory bundleFilter,
|
240
|
+
uint256 collateralizationAmount
|
164
241
|
)
|
165
|
-
|
166
|
-
|
167
|
-
|
242
|
+
public
|
243
|
+
virtual
|
244
|
+
restricted()
|
168
245
|
{
|
169
|
-
|
246
|
+
// validate application data against bundle filter
|
247
|
+
if(!applicationMatchesBundle(
|
248
|
+
applicationNftId,
|
249
|
+
applicationData,
|
250
|
+
bundleNftId,
|
251
|
+
bundleFilter,
|
252
|
+
collateralizationAmount)
|
253
|
+
)
|
254
|
+
{
|
255
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
256
|
+
}
|
257
|
+
|
258
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
170
259
|
}
|
171
260
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
return ISetup.PoolSetupInfo(
|
176
|
-
_productNftId,
|
177
|
-
TokenHandler(address(0)),
|
178
|
-
_collateralizationLevel,
|
179
|
-
_initialPoolFee,
|
180
|
-
_initialStakingFee,
|
181
|
-
_initialPerformanceFee,
|
182
|
-
_isVerifying,
|
183
|
-
_wallet
|
184
|
-
);
|
185
|
-
}
|
186
|
-
|
187
|
-
InstanceReader reader = _instance.getInstanceReader();
|
188
|
-
return reader.getPoolSetupInfo(getNftId());
|
261
|
+
|
262
|
+
function getCollateralizationLevel() public view virtual returns (UFixed collateralizationLevel) {
|
263
|
+
return _getPoolStorage()._collateralizationLevel;
|
189
264
|
}
|
190
265
|
|
191
|
-
// from IRegisterable
|
192
266
|
|
193
|
-
|
194
|
-
|
195
|
-
function getInitialInfo()
|
196
|
-
public
|
197
|
-
view
|
198
|
-
override (IRegisterable, Registerable)
|
199
|
-
returns (IRegistry.ObjectInfo memory, bytes memory)
|
200
|
-
{
|
201
|
-
(
|
202
|
-
IRegistry.ObjectInfo memory info,
|
203
|
-
bytes memory data
|
204
|
-
) = super.getInitialInfo();
|
205
|
-
|
206
|
-
return (
|
207
|
-
info,
|
208
|
-
abi.encode(
|
209
|
-
ISetup.PoolSetupInfo(
|
210
|
-
getProductNftId(),
|
211
|
-
TokenHandler(address(0)),
|
212
|
-
_collateralizationLevel,
|
213
|
-
_initialPoolFee,
|
214
|
-
_initialStakingFee,
|
215
|
-
_initialPerformanceFee,
|
216
|
-
_isVerifying,
|
217
|
-
_wallet
|
218
|
-
)
|
219
|
-
)
|
220
|
-
);
|
267
|
+
function getRetentionLevel() public view virtual returns (UFixed retentionLevel) {
|
268
|
+
return _getPoolStorage()._retentionLevel;
|
221
269
|
}
|
222
270
|
|
223
|
-
// Internals
|
224
271
|
|
225
|
-
function
|
226
|
-
|
227
|
-
|
272
|
+
function isExternallyManaged() public view virtual returns (bool) {
|
273
|
+
return _getPoolStorage()._isExternallyManaged;
|
274
|
+
}
|
275
|
+
|
276
|
+
|
277
|
+
function isVerifyingApplications() public view virtual returns (bool isConfirmingApplication) {
|
278
|
+
return _getPoolStorage()._isVerifyingApplications;
|
279
|
+
}
|
280
|
+
|
281
|
+
|
282
|
+
function getMaxCapitalAmount() public view virtual returns (uint256 maxCapitalAmount) {
|
283
|
+
return _getPoolStorage()._maxCapitalAmount;
|
284
|
+
}
|
285
|
+
|
286
|
+
|
287
|
+
function isInterceptingBundleTransfers() public view virtual returns (bool) {
|
288
|
+
return isNftInterceptor();
|
289
|
+
}
|
290
|
+
|
291
|
+
|
292
|
+
function getBundleOwnerRole() public view returns (RoleId bundleOwnerRole) {
|
293
|
+
return _getPoolStorage()._bundleOwnerRole;
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
298
|
+
/// Override this function to implement any custom application verification
|
299
|
+
/// Default implementation always returns true
|
300
|
+
function applicationMatchesBundle(
|
301
|
+
NftId applicationNftId,
|
302
|
+
bytes memory applicationData,
|
303
|
+
NftId bundleNftId,
|
228
304
|
bytes memory bundleFilter,
|
229
305
|
uint256 collateralizationAmount
|
230
306
|
)
|
231
|
-
|
307
|
+
public
|
308
|
+
view
|
309
|
+
virtual override
|
310
|
+
returns (bool isMatching)
|
232
311
|
{
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
);
|
312
|
+
return true;
|
313
|
+
}
|
314
|
+
|
237
315
|
|
238
|
-
|
316
|
+
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
317
|
+
InstanceReader reader = getInstance().getInstanceReader();
|
318
|
+
setupInfo = reader.getPoolSetupInfo(getNftId());
|
319
|
+
|
320
|
+
// fallback to initial setup info (wallet is always != address(0))
|
321
|
+
if(setupInfo.wallet == address(0)) {
|
322
|
+
setupInfo = _getInitialSetupInfo();
|
323
|
+
}
|
239
324
|
}
|
240
325
|
|
326
|
+
// Internals
|
327
|
+
|
241
328
|
function _createBundle(
|
242
329
|
address bundleOwner,
|
243
330
|
Fee memory fee,
|
244
331
|
uint256 amount,
|
245
|
-
|
246
|
-
bytes
|
332
|
+
Seconds lifetime,
|
333
|
+
bytes memory filter
|
247
334
|
)
|
248
335
|
internal
|
249
336
|
returns(NftId bundleNftId)
|
250
337
|
{
|
251
|
-
bundleNftId =
|
338
|
+
bundleNftId = _getPoolStorage()._bundleService.createBundle(
|
252
339
|
bundleOwner,
|
253
340
|
fee,
|
254
341
|
amount,
|
255
342
|
lifetime,
|
256
|
-
filter
|
343
|
+
filter);
|
344
|
+
|
345
|
+
// TODO add logging
|
346
|
+
}
|
347
|
+
|
348
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
349
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
350
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
351
|
+
}
|
352
|
+
|
353
|
+
|
354
|
+
function _getInitialSetupInfo() internal view returns (ISetup.PoolSetupInfo memory) {
|
355
|
+
PoolStorage storage $ = _getPoolStorage();
|
356
|
+
return ISetup.PoolSetupInfo(
|
357
|
+
getProductNftId(),
|
358
|
+
$._tokenHandler,
|
359
|
+
$._maxCapitalAmount,
|
360
|
+
isNftInterceptor(),
|
361
|
+
$._isExternallyManaged,
|
362
|
+
$._isVerifyingApplications,
|
363
|
+
$._collateralizationLevel,
|
364
|
+
$._retentionLevel,
|
365
|
+
$._initialPoolFee,
|
366
|
+
$._initialStakingFee,
|
367
|
+
$._initialPerformanceFee,
|
368
|
+
getWallet()
|
257
369
|
);
|
258
370
|
}
|
371
|
+
|
372
|
+
|
373
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
374
|
+
assembly {
|
375
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
376
|
+
}
|
377
|
+
}
|
259
378
|
}
|