@etherisc/gif-next 0.0.2-a9ccad5-356 → 0.0.2-a9f5983-610
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 +73 -1
- 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 +758 -192
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +103 -109
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +725 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +814 -60
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +592 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +833 -321
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +461 -149
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +38 -49
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +911 -115
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +178 -165
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +797 -1007
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +211 -144
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +70 -101
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +395 -330
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +297 -116
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -19
- 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} +181 -180
- 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 +858 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +657 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1085 -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 +743 -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 +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +434 -215
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +316 -83
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +200 -204
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +622 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +154 -124
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +197 -163
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +572 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +24 -416
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +30 -417
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1109 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +717 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +178 -511
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +293 -108
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +190 -571
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +286 -125
- 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 +225 -133
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +149 -217
- 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 +238 -235
- 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 +195 -322
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +298 -145
- 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 +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -53
- 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 +23 -186
- 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 +120 -174
- 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 +141 -231
- 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/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 +2 -2
- 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/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/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +221 -0
- package/contracts/components/Distribution.sol +209 -64
- package/contracts/components/IComponent.sol +68 -0
- package/contracts/components/IDistributionComponent.sol +59 -3
- package/contracts/components/IPoolComponent.sol +124 -39
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +283 -172
- package/contracts/components/Product.sol +125 -121
- package/contracts/instance/BundleManager.sol +8 -12
- package/contracts/instance/IInstance.sol +46 -10
- package/contracts/instance/IInstanceService.sol +30 -3
- package/contracts/instance/Instance.sol +99 -262
- package/contracts/instance/InstanceAccessManager.sol +87 -78
- package/contracts/instance/InstanceReader.sol +3 -25
- package/contracts/instance/InstanceService.sol +381 -123
- package/contracts/instance/InstanceServiceManager.sol +6 -9
- package/contracts/instance/ObjectManager.sol +8 -19
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/module/IAccess.sol +27 -18
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +6 -3
- package/contracts/instance/module/ISetup.sol +6 -4
- package/contracts/instance/service/ApplicationService.sol +269 -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 +216 -27
- package/contracts/instance/service/DistributionServiceManager.sol +7 -10
- package/contracts/instance/service/IApplicationService.sol +83 -0
- package/contracts/instance/service/IBundleService.sol +55 -0
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +53 -0
- package/contracts/instance/service/IPolicyService.sol +90 -0
- package/contracts/instance/service/IPoolService.sol +2 -33
- package/contracts/instance/service/IProductService.sol +2 -72
- package/contracts/instance/service/PolicyService.sol +476 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +34 -212
- package/contracts/instance/service/PoolServiceManager.sol +6 -9
- package/contracts/instance/service/ProductService.sol +123 -460
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +37 -19
- package/contracts/registry/IRegistryService.sol +30 -13
- package/contracts/registry/Registry.sol +233 -217
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +96 -171
- package/contracts/registry/RegistryServiceManager.sol +21 -39
- package/contracts/registry/ReleaseManager.sol +322 -0
- package/contracts/registry/TokenRegistry.sol +22 -17
- package/contracts/shared/ERC165.sol +14 -12
- 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 +2 -1
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -80
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -32
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +25 -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/ObjectType.sol +9 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/RoleId.sol +19 -14
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/Timestamp.sol +12 -13
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- 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/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
- 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/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -129
- package/contracts/components/IBaseComponent.sol +0 -31
- 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 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -134
- 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,267 +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
|
-
|
17
|
-
// import {IPool} from "../instance/module/pool/IPoolModule.sol";
|
18
|
-
import {ITreasury} from "../instance/module/ITreasury.sol";
|
19
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
20
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
21
18
|
|
22
|
-
|
23
|
-
|
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;
|
24
25
|
|
25
|
-
|
26
|
-
|
26
|
+
struct PoolStorage {
|
27
|
+
UFixed _collateralizationLevel;
|
28
|
+
UFixed _retentionLevel;
|
29
|
+
uint256 _maxCapitalAmount;
|
30
|
+
|
31
|
+
bool _isExternallyManaged;
|
32
|
+
bool _isVerifyingApplications;
|
27
33
|
|
28
|
-
|
29
|
-
|
34
|
+
RoleId _bundleOwnerRole;
|
35
|
+
bool _isInterceptingBundleTransfers;
|
30
36
|
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
Fee _initialPoolFee;
|
38
|
+
Fee _initialStakingFee;
|
39
|
+
Fee _initialPerformanceFee;
|
34
40
|
|
35
|
-
|
41
|
+
TokenHandler _tokenHandler;
|
36
42
|
|
37
|
-
|
38
|
-
|
43
|
+
// may be used to interact with instance by derived contracts
|
44
|
+
IPoolService _poolService;
|
45
|
+
IBundleService _bundleService;
|
46
|
+
}
|
39
47
|
|
40
|
-
// only relevant to protect callback functions for "active" pools
|
41
|
-
IProductService private _productService;
|
42
48
|
|
43
|
-
modifier
|
44
|
-
|
45
|
-
msg.sender
|
46
|
-
|
49
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
50
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
51
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
52
|
+
}
|
47
53
|
_;
|
48
54
|
}
|
49
55
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
56
|
+
|
57
|
+
modifier onlyPoolService() {
|
58
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
59
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
60
|
+
}
|
54
61
|
_;
|
55
62
|
}
|
56
63
|
|
57
|
-
|
64
|
+
|
65
|
+
function initializePool(
|
58
66
|
address registry,
|
59
67
|
NftId instanceNftId,
|
60
|
-
|
68
|
+
string memory name,
|
61
69
|
address token,
|
62
|
-
bool
|
63
|
-
bool
|
70
|
+
bool isInterceptingNftTransfers,
|
71
|
+
bool isExternallyManaging,
|
72
|
+
bool isVerifying,
|
64
73
|
UFixed collateralizationLevel,
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
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
|
69
77
|
)
|
70
|
-
|
78
|
+
public
|
79
|
+
virtual
|
80
|
+
onlyInitializing()
|
71
81
|
{
|
72
|
-
|
82
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
83
|
+
|
84
|
+
PoolStorage storage $ = _getPoolStorage();
|
73
85
|
// TODO add validation
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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
|
+
}
|
78
101
|
|
79
|
-
_tokenHandler = new TokenHandler(token);
|
80
102
|
|
81
|
-
|
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
|
113
|
+
}
|
114
|
+
|
83
115
|
|
84
|
-
|
116
|
+
function unstake(
|
117
|
+
NftId bundleNftId,
|
118
|
+
uint256 amount
|
119
|
+
)
|
120
|
+
public
|
121
|
+
virtual
|
122
|
+
restricted()
|
123
|
+
onlyBundleOwner(bundleNftId)
|
124
|
+
{
|
125
|
+
// TODO add implementation
|
85
126
|
}
|
86
127
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
bytes memory filter
|
128
|
+
|
129
|
+
function extend(
|
130
|
+
NftId bundleNftId,
|
131
|
+
Seconds lifetimeExtension
|
92
132
|
)
|
93
|
-
|
94
|
-
virtual
|
95
|
-
|
133
|
+
public
|
134
|
+
virtual
|
135
|
+
restricted()
|
136
|
+
onlyBundleOwner(bundleNftId)
|
96
137
|
{
|
97
|
-
|
98
|
-
|
99
|
-
owner,
|
100
|
-
fee,
|
101
|
-
initialAmount,
|
102
|
-
lifetime,
|
103
|
-
filter
|
104
|
-
);
|
138
|
+
// TODO add implementation
|
139
|
+
}
|
105
140
|
|
106
|
-
|
141
|
+
|
142
|
+
function lockBundle(NftId bundleNftId)
|
143
|
+
public
|
144
|
+
virtual
|
145
|
+
restricted()
|
146
|
+
onlyBundleOwner(bundleNftId)
|
147
|
+
{
|
148
|
+
_getPoolStorage()._bundleService.lockBundle(bundleNftId);
|
107
149
|
}
|
108
150
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
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)
|
122
167
|
{
|
123
|
-
|
168
|
+
// TODO add implementation
|
124
169
|
}
|
125
170
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
function policyMatchesBundle(
|
131
|
-
bytes memory, // policyData
|
132
|
-
bytes memory // bundleFilter
|
171
|
+
|
172
|
+
function setBundleFee(
|
173
|
+
NftId bundleNftId,
|
174
|
+
Fee memory fee
|
133
175
|
)
|
134
176
|
public
|
135
|
-
|
136
|
-
|
137
|
-
|
177
|
+
virtual
|
178
|
+
restricted()
|
179
|
+
onlyBundleOwner(bundleNftId)
|
138
180
|
{
|
139
|
-
|
181
|
+
_getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
|
140
182
|
}
|
141
183
|
|
142
184
|
|
143
|
-
function
|
144
|
-
|
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);
|
145
198
|
}
|
146
199
|
|
147
|
-
|
148
|
-
|
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);
|
149
217
|
}
|
150
218
|
|
219
|
+
|
151
220
|
function setFees(
|
152
221
|
Fee memory poolFee,
|
153
222
|
Fee memory stakingFee,
|
154
223
|
Fee memory performanceFee
|
155
224
|
)
|
156
|
-
|
157
|
-
|
158
|
-
|
225
|
+
public
|
226
|
+
virtual
|
227
|
+
restricted()
|
228
|
+
onlyOwner()
|
159
229
|
{
|
160
|
-
_poolService.setFees(poolFee, stakingFee, performanceFee);
|
230
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
161
231
|
}
|
162
232
|
|
163
|
-
|
233
|
+
|
234
|
+
/// @dev see {IPool.verifyApplication}
|
235
|
+
function verifyApplication(
|
236
|
+
NftId applicationNftId,
|
237
|
+
bytes memory applicationData,
|
164
238
|
NftId bundleNftId,
|
165
|
-
|
239
|
+
bytes memory bundleFilter,
|
240
|
+
uint256 collateralizationAmount
|
166
241
|
)
|
167
|
-
|
168
|
-
|
169
|
-
|
242
|
+
public
|
243
|
+
virtual
|
244
|
+
restricted()
|
170
245
|
{
|
171
|
-
|
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);
|
172
259
|
}
|
173
260
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
external
|
178
|
-
override
|
179
|
-
// TODO add onlyBundleOwner
|
180
|
-
{
|
181
|
-
_poolService.lockBundle(bundleNftId);
|
261
|
+
|
262
|
+
function getCollateralizationLevel() public view virtual returns (UFixed collateralizationLevel) {
|
263
|
+
return _getPoolStorage()._collateralizationLevel;
|
182
264
|
}
|
183
265
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
external
|
188
|
-
override
|
189
|
-
// TODO add onlyBundleOwner
|
190
|
-
{
|
191
|
-
_poolService.unlockBundle(bundleNftId);
|
266
|
+
|
267
|
+
function getRetentionLevel() public view virtual returns (UFixed retentionLevel) {
|
268
|
+
return _getPoolStorage()._retentionLevel;
|
192
269
|
}
|
193
270
|
|
194
|
-
|
195
|
-
|
196
|
-
return
|
271
|
+
|
272
|
+
function isExternallyManaged() public view virtual returns (bool) {
|
273
|
+
return _getPoolStorage()._isExternallyManaged;
|
197
274
|
}
|
198
275
|
|
199
|
-
// from IRegisterable
|
200
276
|
|
201
|
-
|
202
|
-
|
203
|
-
function getInitialInfo()
|
204
|
-
public
|
205
|
-
view
|
206
|
-
override (IRegisterable, Registerable)
|
207
|
-
returns (IRegistry.ObjectInfo memory, bytes memory)
|
208
|
-
{
|
209
|
-
(
|
210
|
-
IRegistry.ObjectInfo memory info,
|
211
|
-
) = super.getInitialInfo();
|
212
|
-
|
213
|
-
return (
|
214
|
-
info,
|
215
|
-
abi.encode(
|
216
|
-
ISetup.PoolSetupInfo(
|
217
|
-
_productNftId,
|
218
|
-
_tokenHandler,
|
219
|
-
_collateralizationLevel,
|
220
|
-
_initialPoolFee,
|
221
|
-
_initialStakingFee,
|
222
|
-
_initialPerformanceFee,
|
223
|
-
false,
|
224
|
-
_isConfirmingApplication,
|
225
|
-
_wallet
|
226
|
-
)
|
227
|
-
)
|
228
|
-
);
|
277
|
+
function isVerifyingApplications() public view virtual returns (bool isConfirmingApplication) {
|
278
|
+
return _getPoolStorage()._isVerifyingApplications;
|
229
279
|
}
|
230
280
|
|
231
|
-
// Internals
|
232
281
|
|
233
|
-
function
|
234
|
-
|
235
|
-
|
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,
|
236
304
|
bytes memory bundleFilter,
|
237
305
|
uint256 collateralizationAmount
|
238
306
|
)
|
239
|
-
|
307
|
+
public
|
308
|
+
view
|
309
|
+
virtual override
|
310
|
+
returns (bool isMatching)
|
240
311
|
{
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
);
|
312
|
+
return true;
|
313
|
+
}
|
314
|
+
|
245
315
|
|
246
|
-
|
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
|
+
}
|
247
324
|
}
|
248
325
|
|
326
|
+
// Internals
|
327
|
+
|
249
328
|
function _createBundle(
|
250
329
|
address bundleOwner,
|
251
330
|
Fee memory fee,
|
252
331
|
uint256 amount,
|
253
|
-
|
254
|
-
bytes
|
332
|
+
Seconds lifetime,
|
333
|
+
bytes memory filter
|
255
334
|
)
|
256
335
|
internal
|
257
336
|
returns(NftId bundleNftId)
|
258
337
|
{
|
259
|
-
bundleNftId =
|
338
|
+
bundleNftId = _getPoolStorage()._bundleService.createBundle(
|
260
339
|
bundleOwner,
|
261
340
|
fee,
|
262
341
|
amount,
|
263
342
|
lifetime,
|
264
|
-
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()
|
265
369
|
);
|
266
370
|
}
|
371
|
+
|
372
|
+
|
373
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
374
|
+
assembly {
|
375
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
376
|
+
}
|
377
|
+
}
|
267
378
|
}
|