@etherisc/gif-next 0.0.2-98b8042-501 → 0.0.2-99c2cd1-219
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 +136 -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 +890 -198
- 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 +725 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +745 -58
- 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 +802 -251
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +562 -124
- 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} +86 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +954 -287
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +183 -165
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +831 -1157
- 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 +91 -193
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +410 -306
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +297 -112
- 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} +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/BaseComponent.sol/BaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +154 -83
- 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 +73 -325
- 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 +255 -421
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +297 -104
- 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/TokenHandler.sol/TokenHandler.json +2 -2
- 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 +17 -4
- 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/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 +93 -36
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +275 -161
- package/contracts/components/Product.sol +125 -121
- package/contracts/instance/BundleManager.sol +125 -0
- package/contracts/instance/Cloneable.sol +46 -0
- package/contracts/instance/IInstance.sol +50 -12
- package/contracts/instance/IInstanceService.sol +34 -4
- package/contracts/instance/Instance.sol +114 -265
- package/contracts/instance/InstanceAccessManager.sol +87 -78
- package/contracts/instance/InstanceReader.sol +6 -28
- package/contracts/instance/InstanceService.sol +398 -107
- package/contracts/instance/InstanceServiceManager.sol +6 -9
- 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 -1
- package/contracts/instance/module/IPolicy.sol +6 -3
- package/contracts/instance/module/ISetup.sol +32 -6
- package/contracts/instance/service/ApplicationService.sol +270 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +301 -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 +20 -28
- package/contracts/instance/service/IProductService.sol +2 -72
- package/contracts/instance/service/PolicyService.sol +490 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +94 -135
- package/contracts/instance/service/PoolServiceManager.sol +6 -9
- package/contracts/instance/service/ProductService.sol +123 -451
- 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/TokenHandler.sol +11 -5
- 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/NftId.sol +7 -0
- 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 -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/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- 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 -91
- package/contracts/components/IBaseComponent.sol +0 -25
- 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,247 +1,361 @@
|
|
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, UFixedLib} 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
|
+
// TODO cleanup
|
28
|
+
// UFixed _collateralizationLevel;
|
29
|
+
// UFixed _retentionLevel;
|
30
|
+
// uint256 _maxCapitalAmount;
|
31
|
+
|
32
|
+
// bool _isExternallyManaged;
|
33
|
+
// bool _isVerifyingApplications;
|
27
34
|
|
28
|
-
|
29
|
-
|
35
|
+
// RoleId _bundleOwnerRole;
|
36
|
+
// bool _isInterceptingBundleTransfers;
|
30
37
|
|
31
|
-
|
32
|
-
|
33
|
-
|
38
|
+
// Fee _initialPoolFee;
|
39
|
+
// Fee _initialStakingFee;
|
40
|
+
// Fee _initialPerformanceFee;
|
34
41
|
|
35
|
-
|
42
|
+
// TokenHandler _tokenHandler;
|
36
43
|
|
37
|
-
|
38
|
-
|
44
|
+
// may be used to interact with instance by derived contracts
|
45
|
+
IPoolService _poolService;
|
46
|
+
IBundleService _bundleService;
|
47
|
+
}
|
39
48
|
|
40
|
-
// only relevant to protect callback functions for "active" pools
|
41
|
-
IProductService private _productService;
|
42
49
|
|
43
|
-
modifier
|
44
|
-
|
45
|
-
msg.sender
|
46
|
-
|
50
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
51
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
52
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
53
|
+
}
|
47
54
|
_;
|
48
55
|
}
|
49
56
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
57
|
+
|
58
|
+
modifier onlyPoolService() {
|
59
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
60
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
61
|
+
}
|
54
62
|
_;
|
55
63
|
}
|
56
64
|
|
57
|
-
|
65
|
+
|
66
|
+
function initializePool(
|
58
67
|
address registry,
|
59
68
|
NftId instanceNftId,
|
60
|
-
|
69
|
+
string memory name,
|
61
70
|
address token,
|
62
|
-
bool
|
63
|
-
bool
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
71
|
+
bool isInterceptingNftTransfers,
|
72
|
+
// bool isExternallyManaging,
|
73
|
+
// bool isVerifying,
|
74
|
+
// UFixed collateralizationLevel,
|
75
|
+
// UFixed retentionLevel,
|
76
|
+
address initialOwner,
|
77
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
69
78
|
)
|
70
|
-
|
79
|
+
public
|
80
|
+
virtual
|
81
|
+
onlyInitializing()
|
71
82
|
{
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
83
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
84
|
+
|
85
|
+
PoolStorage storage $ = _getPoolStorage();
|
86
|
+
// TODO cleanup
|
87
|
+
// $._tokenHandler = new TokenHandler(token);
|
88
|
+
// $._maxCapitalAmount = type(uint256).max;
|
89
|
+
// $._isExternallyManaged = isExternallyManaging;
|
90
|
+
// $._isVerifyingApplications = isVerifying;
|
91
|
+
// $._bundleOwnerRole = PUBLIC_ROLE();
|
92
|
+
// $._collateralizationLevel = collateralizationLevel;
|
93
|
+
// $._retentionLevel = retentionLevel;
|
94
|
+
// $._initialPoolFee = FeeLib.zeroFee();
|
95
|
+
// $._initialStakingFee = FeeLib.zeroFee();
|
96
|
+
// $._initialPerformanceFee = FeeLib.zeroFee();
|
97
|
+
$._poolService = getInstance().getPoolService();
|
98
|
+
$._bundleService = getInstance().getBundleService();
|
99
|
+
|
100
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
101
|
+
}
|
78
102
|
|
79
|
-
_tokenHandler = new TokenHandler(token);
|
80
103
|
|
81
|
-
|
82
|
-
|
104
|
+
function stake(
|
105
|
+
NftId bundleNftId,
|
106
|
+
uint256 amount
|
107
|
+
)
|
108
|
+
public
|
109
|
+
virtual
|
110
|
+
restricted()
|
111
|
+
onlyBundleOwner(bundleNftId)
|
112
|
+
{
|
113
|
+
// TODO add implementation
|
114
|
+
}
|
115
|
+
|
83
116
|
|
84
|
-
|
117
|
+
function unstake(
|
118
|
+
NftId bundleNftId,
|
119
|
+
uint256 amount
|
120
|
+
)
|
121
|
+
public
|
122
|
+
virtual
|
123
|
+
restricted()
|
124
|
+
onlyBundleOwner(bundleNftId)
|
125
|
+
{
|
126
|
+
// TODO add implementation
|
85
127
|
}
|
86
128
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
bytes memory filter
|
129
|
+
|
130
|
+
function extend(
|
131
|
+
NftId bundleNftId,
|
132
|
+
Seconds lifetimeExtension
|
92
133
|
)
|
93
|
-
|
94
|
-
virtual
|
95
|
-
|
134
|
+
public
|
135
|
+
virtual
|
136
|
+
restricted()
|
137
|
+
onlyBundleOwner(bundleNftId)
|
96
138
|
{
|
97
|
-
|
98
|
-
|
99
|
-
owner,
|
100
|
-
fee,
|
101
|
-
initialAmount,
|
102
|
-
lifetime,
|
103
|
-
filter
|
104
|
-
);
|
139
|
+
// TODO add implementation
|
140
|
+
}
|
105
141
|
|
106
|
-
|
142
|
+
|
143
|
+
function lockBundle(NftId bundleNftId)
|
144
|
+
public
|
145
|
+
virtual
|
146
|
+
restricted()
|
147
|
+
onlyBundleOwner(bundleNftId)
|
148
|
+
{
|
149
|
+
_getPoolStorage()._bundleService.lockBundle(bundleNftId);
|
107
150
|
}
|
108
151
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
bytes memory policyData,
|
116
|
-
bytes memory bundleFilter,
|
117
|
-
uint256 collateralizationAmount
|
118
|
-
)
|
119
|
-
external
|
120
|
-
onlyProductService
|
121
|
-
virtual override
|
152
|
+
|
153
|
+
function unlockBundle(NftId bundleNftId)
|
154
|
+
public
|
155
|
+
virtual
|
156
|
+
restricted()
|
157
|
+
onlyBundleOwner(bundleNftId)
|
122
158
|
{
|
123
|
-
|
159
|
+
_getPoolStorage()._bundleService.unlockBundle(bundleNftId);
|
124
160
|
}
|
125
161
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
162
|
+
|
163
|
+
function close(NftId bundleNftId)
|
164
|
+
public
|
165
|
+
virtual
|
166
|
+
restricted()
|
167
|
+
onlyBundleOwner(bundleNftId)
|
168
|
+
{
|
169
|
+
// TODO add implementation
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
function setBundleFee(
|
174
|
+
NftId bundleNftId,
|
175
|
+
Fee memory fee
|
133
176
|
)
|
134
177
|
public
|
135
|
-
|
136
|
-
|
137
|
-
|
178
|
+
virtual
|
179
|
+
restricted()
|
180
|
+
onlyBundleOwner(bundleNftId)
|
138
181
|
{
|
139
|
-
|
182
|
+
_getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
|
140
183
|
}
|
141
184
|
|
142
185
|
|
143
|
-
function
|
144
|
-
|
186
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
187
|
+
public
|
188
|
+
virtual
|
189
|
+
restricted()
|
190
|
+
onlyOwner()
|
191
|
+
{
|
192
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
145
193
|
}
|
146
194
|
|
147
|
-
|
148
|
-
|
195
|
+
|
196
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
197
|
+
public
|
198
|
+
virtual
|
199
|
+
restricted()
|
200
|
+
onlyOwner()
|
201
|
+
{
|
202
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
149
203
|
}
|
150
204
|
|
205
|
+
|
151
206
|
function setFees(
|
152
207
|
Fee memory poolFee,
|
153
208
|
Fee memory stakingFee,
|
154
209
|
Fee memory performanceFee
|
155
210
|
)
|
156
|
-
|
157
|
-
|
158
|
-
|
211
|
+
public
|
212
|
+
virtual
|
213
|
+
restricted()
|
214
|
+
onlyOwner()
|
159
215
|
{
|
160
|
-
_poolService.setFees(poolFee, stakingFee, performanceFee);
|
216
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
161
217
|
}
|
162
218
|
|
163
|
-
|
219
|
+
|
220
|
+
/// @dev see {IPool.verifyApplication}
|
221
|
+
function verifyApplication(
|
222
|
+
NftId applicationNftId,
|
223
|
+
bytes memory applicationData,
|
164
224
|
NftId bundleNftId,
|
165
|
-
|
225
|
+
bytes memory bundleFilter,
|
226
|
+
uint256 collateralizationAmount
|
166
227
|
)
|
167
|
-
|
168
|
-
|
169
|
-
|
228
|
+
public
|
229
|
+
virtual
|
230
|
+
restricted()
|
170
231
|
{
|
171
|
-
|
232
|
+
// validate application data against bundle filter
|
233
|
+
if(!applicationMatchesBundle(
|
234
|
+
applicationNftId,
|
235
|
+
applicationData,
|
236
|
+
bundleNftId,
|
237
|
+
bundleFilter,
|
238
|
+
collateralizationAmount)
|
239
|
+
)
|
240
|
+
{
|
241
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
242
|
+
}
|
243
|
+
|
244
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
172
245
|
}
|
173
246
|
|
174
|
-
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
175
|
-
InstanceReader reader = _instance.getInstanceReader();
|
176
|
-
return reader.getPoolSetupInfo(getNftId());
|
177
|
-
}
|
178
247
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
248
|
+
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
249
|
+
/// Override this function to implement any custom application verification
|
250
|
+
/// Default implementation always returns true
|
251
|
+
function applicationMatchesBundle(
|
252
|
+
NftId applicationNftId,
|
253
|
+
bytes memory applicationData,
|
254
|
+
NftId bundleNftId,
|
255
|
+
bytes memory bundleFilter,
|
256
|
+
uint256 collateralizationAmount
|
257
|
+
)
|
184
258
|
public
|
185
259
|
view
|
186
|
-
override
|
187
|
-
returns (
|
260
|
+
virtual override
|
261
|
+
returns (bool isMatching)
|
188
262
|
{
|
189
|
-
|
190
|
-
|
191
|
-
) = super.getInitialInfo();
|
263
|
+
return true;
|
264
|
+
}
|
192
265
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
ISetup.PoolSetupInfo(
|
197
|
-
_productNftId,
|
198
|
-
_tokenHandler,
|
199
|
-
_collateralizationLevel,
|
200
|
-
_initialPoolFee,
|
201
|
-
_initialStakingFee,
|
202
|
-
_initialPerformanceFee,
|
203
|
-
false,
|
204
|
-
_isConfirmingApplication,
|
205
|
-
_wallet
|
206
|
-
)
|
207
|
-
)
|
208
|
-
);
|
266
|
+
|
267
|
+
function getPoolInfo() external view returns (ISetup.PoolInfo memory poolInfo) {
|
268
|
+
poolInfo = abi.decode(getComponentInfo().data, (ISetup.PoolInfo));
|
209
269
|
}
|
210
270
|
|
211
|
-
// Internals
|
212
271
|
|
213
|
-
function
|
214
|
-
|
215
|
-
bytes memory policyData,
|
216
|
-
bytes memory bundleFilter,
|
217
|
-
uint256 collateralizationAmount
|
218
|
-
)
|
219
|
-
internal
|
220
|
-
{
|
221
|
-
require(
|
222
|
-
policyMatchesBundle(policyData, bundleFilter),
|
223
|
-
"ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
|
224
|
-
);
|
272
|
+
function getComponentInfo() public view returns (ISetup.ComponentInfo memory info) {
|
273
|
+
info = _getInstanceReader().getComponentInfo(getNftId());
|
225
274
|
|
226
|
-
|
275
|
+
// fallback to initial info (wallet is always != address(0))
|
276
|
+
if(info.wallet == address(0)) {
|
277
|
+
info = _getInitialInfo();
|
278
|
+
}
|
227
279
|
}
|
228
280
|
|
281
|
+
// Internals
|
282
|
+
|
229
283
|
function _createBundle(
|
230
284
|
address bundleOwner,
|
231
285
|
Fee memory fee,
|
232
286
|
uint256 amount,
|
233
|
-
|
234
|
-
bytes
|
287
|
+
Seconds lifetime,
|
288
|
+
bytes memory filter
|
235
289
|
)
|
236
290
|
internal
|
237
291
|
returns(NftId bundleNftId)
|
238
292
|
{
|
239
|
-
bundleNftId =
|
293
|
+
bundleNftId = _getPoolStorage()._bundleService.createBundle(
|
240
294
|
bundleOwner,
|
241
295
|
fee,
|
242
296
|
amount,
|
243
297
|
lifetime,
|
244
|
-
filter
|
245
|
-
|
298
|
+
filter);
|
299
|
+
|
300
|
+
// TODO add logging
|
301
|
+
}
|
302
|
+
|
303
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
304
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
305
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
306
|
+
}
|
307
|
+
|
308
|
+
/// @dev defines initial pool specification
|
309
|
+
/// overwrite this function according to your use case
|
310
|
+
function _getInitialInfo()
|
311
|
+
internal
|
312
|
+
view
|
313
|
+
virtual
|
314
|
+
returns (ISetup.ComponentInfo memory info)
|
315
|
+
{
|
316
|
+
// PoolStorage storage $ = _getPoolStorage();
|
317
|
+
|
318
|
+
return ISetup.ComponentInfo(
|
319
|
+
getName(),
|
320
|
+
getToken(),
|
321
|
+
TokenHandler(address(0)), // will be created by GIF service during registration
|
322
|
+
address(this), // contract is its own wallet
|
323
|
+
abi.encode(
|
324
|
+
ISetup.PoolInfo(
|
325
|
+
NftIdLib.zero(), // will be set when GIF registers the related product
|
326
|
+
PUBLIC_ROLE(), // bundleOwnerRole
|
327
|
+
type(uint256).max, // maxCapitalAmount,
|
328
|
+
isNftInterceptor(), // isInterceptingBundleTransfers
|
329
|
+
false, // isExternallyManaged,
|
330
|
+
false, // isVerifyingApplications,
|
331
|
+
UFixedLib.toUFixed(1), // collateralizationLevel,
|
332
|
+
UFixedLib.toUFixed(1), // retentionLevel,
|
333
|
+
FeeLib.zeroFee(), // initialPoolFee,
|
334
|
+
FeeLib.zeroFee(), // initialStakingFee,
|
335
|
+
FeeLib.zeroFee() // initialPerformanceFee,
|
336
|
+
)));
|
337
|
+
|
338
|
+
// return ISetup.PoolInfo(
|
339
|
+
// getProductNftId(),
|
340
|
+
// TokenHandler(address(0)), // GIF will be created by GIF during registration
|
341
|
+
// PUBLIC_ROLE(), // bundleOwnerRole
|
342
|
+
// type(uint256).max, // maxCapitalAmount,
|
343
|
+
// isNftInterceptor(), // isInterceptingBundleTransfers
|
344
|
+
// false, // isExternallyManaged,
|
345
|
+
// false, // isVerifyingApplications,
|
346
|
+
// UFixedLib.toUFixed(1), // collateralizationLevel,
|
347
|
+
// UFixedLib.toUFixed(1), // retentionLevel,
|
348
|
+
// FeeLib.zero(), // initialPoolFee,
|
349
|
+
// FeeLib.zero(), // initialStakingFee,
|
350
|
+
// FeeLib.zero(), // initialPerformanceFee,
|
351
|
+
// getWallet()
|
352
|
+
// );
|
353
|
+
}
|
354
|
+
|
355
|
+
|
356
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
357
|
+
assembly {
|
358
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
359
|
+
}
|
246
360
|
}
|
247
361
|
}
|