@etherisc/gif-next 0.0.2-4e6a781-730 → 0.0.2-4e99ed1-062
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 +8 -13
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +280 -94
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +632 -152
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +208 -58
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +407 -86
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +446 -151
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +212 -130
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +591 -185
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +384 -166
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +845 -458
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +240 -193
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1013 -783
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +463 -167
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +136 -228
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +455 -300
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +370 -102
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +181 -177
- 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 +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- 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 +1039 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +673 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +474 -345
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +363 -91
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +817 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +641 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1224 -198
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +453 -85
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +622 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +223 -279
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +475 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +796 -147
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +91 -251
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +476 -126
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +73 -154
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +250 -385
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +317 -125
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +634 -203
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +317 -93
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +217 -233
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +309 -93
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +34 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +75 -190
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -15
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +191 -233
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -94
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -37
- 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 -29
- 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 +73 -154
- 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 +113 -33
- 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 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -55
- 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 +178 -158
- 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/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +125 -55
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +195 -207
- 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/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +161 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- 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/Fee.sol/FeeLib.json +40 -9
- 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 +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 +23 -4
- 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/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- 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 +2 -2
- package/contracts/components/Component.sol +115 -78
- package/contracts/components/Distribution.sol +187 -57
- package/contracts/components/IComponent.sol +50 -17
- package/contracts/components/IDistributionComponent.sol +39 -15
- package/contracts/components/IPoolComponent.sol +84 -31
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +224 -148
- package/contracts/components/Product.sol +97 -69
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +7 -5
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +36 -10
- package/contracts/instance/IInstanceService.sol +35 -4
- package/contracts/instance/Instance.sol +101 -43
- package/contracts/instance/InstanceAccessManager.sol +389 -160
- package/contracts/instance/InstanceReader.sol +8 -10
- package/contracts/instance/InstanceService.sol +243 -190
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +17 -30
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +11 -2
- package/contracts/instance/module/IAccess.sol +22 -16
- package/contracts/instance/module/IBundle.sol +8 -5
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +7 -20
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +215 -77
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +348 -19
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +70 -21
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +87 -0
- package/contracts/instance/service/IPolicyService.sol +27 -49
- package/contracts/instance/service/IPoolService.sol +82 -3
- package/contracts/instance/service/PolicyService.sol +145 -321
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +214 -21
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +34 -58
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +5 -2
- package/contracts/registry/IRegistryService.sol +14 -11
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +43 -28
- package/contracts/registry/RegistryService.sol +70 -50
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +32 -40
- package/contracts/registry/TokenRegistry.sol +16 -12
- 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 +3 -3
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +4 -4
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -85
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +7 -19
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +32 -20
- 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 +1 -1
- package/contracts/types/Amount.sol +60 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +10 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +16 -9
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +1 -0
- package/contracts/types/Timestamp.sol +13 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +3 -3
- 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/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
|
@@ -1,227 +1,303 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import {Amount, AmountLib} from "../types/Amount.sol";
|
|
5
|
+
import {Component} from "./Component.sol";
|
|
6
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
|
6
7
|
import {IBundleService} from "../instance/service/IBundleService.sol";
|
|
7
|
-
import {
|
|
8
|
-
import {Fee} from "../types/Fee.sol";
|
|
9
|
-
import {UFixed} from "../types/UFixed.sol";
|
|
8
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
10
9
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
|
11
|
-
import {
|
|
10
|
+
import {IPoolService} from "../instance/service/IPoolService.sol";
|
|
11
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
|
12
|
+
import {NftId, NftIdLib} from "../types/NftId.sol";
|
|
13
|
+
import {POOL} from "../types/ObjectType.sol";
|
|
14
|
+
import {RoleId, PUBLIC_ROLE} from "../types/RoleId.sol";
|
|
15
|
+
import {Seconds} from "../types/Seconds.sol";
|
|
12
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
|
16
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
17
|
+
import {UFixed, UFixedLib} from "../types/UFixed.sol";
|
|
17
18
|
|
|
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;
|
|
18
25
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
UFixed internal _collateralizationLevel;
|
|
26
|
+
struct PoolStorage {
|
|
27
|
+
IPoolService _poolService;
|
|
28
|
+
IBundleService _bundleService;
|
|
29
|
+
}
|
|
24
30
|
|
|
25
|
-
Fee internal _initialPoolFee;
|
|
26
|
-
Fee internal _initialStakingFee;
|
|
27
|
-
Fee internal _initialPerformanceFee;
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
|
33
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
|
34
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
|
35
|
+
}
|
|
36
|
+
_;
|
|
37
|
+
}
|
|
30
38
|
|
|
31
|
-
// may be used to interact with instance by derived contracts
|
|
32
|
-
IPoolService internal _poolService;
|
|
33
|
-
IBundleService private _bundleService;
|
|
34
39
|
|
|
35
40
|
modifier onlyPoolService() {
|
|
36
|
-
|
|
37
|
-
msg.sender
|
|
38
|
-
|
|
41
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
|
42
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
|
43
|
+
}
|
|
39
44
|
_;
|
|
40
45
|
}
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
|
|
48
|
+
function initializePool(
|
|
43
49
|
address registry,
|
|
44
50
|
NftId instanceNftId,
|
|
45
51
|
string memory name,
|
|
46
|
-
// TODO refactor into tokenNftId
|
|
47
52
|
address token,
|
|
48
|
-
bool
|
|
49
|
-
bool isConfirmingApplication,
|
|
50
|
-
UFixed collateralizationLevel,
|
|
51
|
-
Fee memory poolFee,
|
|
52
|
-
Fee memory stakingFee,
|
|
53
|
-
Fee memory performanceFee,
|
|
53
|
+
bool isInterceptingNftTransfers,
|
|
54
54
|
address initialOwner,
|
|
55
|
-
bytes memory data
|
|
56
|
-
) Component(
|
|
57
|
-
registry,
|
|
58
|
-
instanceNftId,
|
|
59
|
-
name,
|
|
60
|
-
token,
|
|
61
|
-
POOL(),
|
|
62
|
-
isInterceptor,
|
|
63
|
-
initialOwner,
|
|
64
|
-
data
|
|
65
|
-
) {
|
|
66
|
-
_isConfirmingApplication = isConfirmingApplication;
|
|
67
|
-
// TODO add validation
|
|
68
|
-
_collateralizationLevel = collateralizationLevel;
|
|
69
|
-
_initialPoolFee = poolFee;
|
|
70
|
-
_initialStakingFee = stakingFee;
|
|
71
|
-
_initialPerformanceFee = performanceFee;
|
|
72
|
-
|
|
73
|
-
_tokenHandler = new TokenHandler(token);
|
|
74
|
-
|
|
75
|
-
_poolService = getInstance().getPoolService();
|
|
76
|
-
_bundleService = getInstance().getBundleService();
|
|
77
|
-
|
|
78
|
-
_registerInterface(type(IPoolComponent).interfaceId);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* @dev see {IPool.underwrite}.
|
|
83
|
-
* Default implementation that only writes a {LogUnderwrittenByPool} entry.
|
|
84
|
-
*/
|
|
85
|
-
// FIXME: remove this function .. only _internal
|
|
86
|
-
function underwrite(
|
|
87
|
-
NftId policyNftId,
|
|
88
|
-
bytes memory policyData,
|
|
89
|
-
bytes memory bundleFilter,
|
|
90
|
-
uint256 collateralizationAmount
|
|
55
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
|
91
56
|
)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
57
|
+
public
|
|
58
|
+
virtual
|
|
59
|
+
onlyInitializing()
|
|
95
60
|
{
|
|
96
|
-
|
|
61
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
|
62
|
+
|
|
63
|
+
PoolStorage storage $ = _getPoolStorage();
|
|
64
|
+
$._poolService = getInstance().getPoolService();
|
|
65
|
+
$._bundleService = getInstance().getBundleService();
|
|
66
|
+
|
|
67
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
|
97
68
|
}
|
|
98
69
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
function policyMatchesBundle(
|
|
104
|
-
bytes memory, // policyData
|
|
105
|
-
bytes memory // bundleFilter
|
|
70
|
+
|
|
71
|
+
function stake(
|
|
72
|
+
NftId bundleNftId,
|
|
73
|
+
uint256 amount
|
|
106
74
|
)
|
|
107
75
|
public
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
76
|
+
virtual
|
|
77
|
+
restricted()
|
|
78
|
+
onlyBundleOwner(bundleNftId)
|
|
111
79
|
{
|
|
112
|
-
|
|
80
|
+
// TODO add implementation
|
|
113
81
|
}
|
|
114
82
|
|
|
115
83
|
|
|
116
|
-
function
|
|
117
|
-
|
|
84
|
+
function unstake(
|
|
85
|
+
NftId bundleNftId,
|
|
86
|
+
uint256 amount
|
|
87
|
+
)
|
|
88
|
+
public
|
|
89
|
+
virtual
|
|
90
|
+
restricted()
|
|
91
|
+
onlyBundleOwner(bundleNftId)
|
|
92
|
+
{
|
|
93
|
+
// TODO add implementation
|
|
118
94
|
}
|
|
119
95
|
|
|
120
|
-
function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
|
|
121
|
-
return _collateralizationLevel;
|
|
122
|
-
}
|
|
123
96
|
|
|
124
|
-
function
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
Fee memory performanceFee
|
|
97
|
+
function extend(
|
|
98
|
+
NftId bundleNftId,
|
|
99
|
+
Seconds lifetimeExtension
|
|
128
100
|
)
|
|
129
|
-
|
|
101
|
+
public
|
|
102
|
+
virtual
|
|
130
103
|
restricted()
|
|
131
|
-
|
|
104
|
+
onlyBundleOwner(bundleNftId)
|
|
105
|
+
{
|
|
106
|
+
// TODO add implementation
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
function lockBundle(NftId bundleNftId)
|
|
111
|
+
public
|
|
112
|
+
virtual
|
|
113
|
+
//restricted() // TODO consider adding this back
|
|
114
|
+
onlyBundleOwner(bundleNftId)
|
|
132
115
|
{
|
|
133
|
-
|
|
116
|
+
_getPoolStorage()._bundleService.lock(bundleNftId);
|
|
134
117
|
}
|
|
135
118
|
|
|
119
|
+
|
|
120
|
+
function unlockBundle(NftId bundleNftId)
|
|
121
|
+
public
|
|
122
|
+
virtual
|
|
123
|
+
//restricted()
|
|
124
|
+
onlyBundleOwner(bundleNftId)
|
|
125
|
+
{
|
|
126
|
+
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
function close(NftId bundleNftId)
|
|
131
|
+
public
|
|
132
|
+
virtual
|
|
133
|
+
//restricted()
|
|
134
|
+
onlyBundleOwner(bundleNftId)
|
|
135
|
+
{
|
|
136
|
+
_getPoolStorage()._poolService.closeBundle(bundleNftId);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
|
|
136
140
|
function setBundleFee(
|
|
137
141
|
NftId bundleNftId,
|
|
138
142
|
Fee memory fee
|
|
139
143
|
)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
144
|
+
public
|
|
145
|
+
virtual
|
|
146
|
+
restricted()
|
|
147
|
+
onlyBundleOwner(bundleNftId)
|
|
143
148
|
{
|
|
144
|
-
_bundleService.
|
|
149
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
|
145
150
|
}
|
|
146
151
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
|
|
153
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
|
154
|
+
public
|
|
155
|
+
virtual
|
|
156
|
+
restricted()
|
|
157
|
+
onlyOwner()
|
|
158
|
+
{
|
|
159
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
|
164
|
+
public
|
|
165
|
+
virtual
|
|
166
|
+
restricted()
|
|
167
|
+
onlyOwner()
|
|
153
168
|
{
|
|
154
|
-
|
|
169
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
|
155
170
|
}
|
|
156
171
|
|
|
157
|
-
|
|
158
|
-
|
|
172
|
+
|
|
173
|
+
function setFees(
|
|
174
|
+
Fee memory poolFee,
|
|
175
|
+
Fee memory stakingFee,
|
|
176
|
+
Fee memory performanceFee
|
|
159
177
|
)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
178
|
+
public
|
|
179
|
+
virtual
|
|
180
|
+
restricted()
|
|
181
|
+
onlyOwner()
|
|
163
182
|
{
|
|
164
|
-
|
|
183
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
|
165
184
|
}
|
|
166
185
|
|
|
167
|
-
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
|
168
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
|
169
|
-
setupInfo = reader.getPoolSetupInfo(getNftId());
|
|
170
186
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
187
|
+
/// @dev see {IPool.verifyApplication}
|
|
188
|
+
function verifyApplication(
|
|
189
|
+
NftId applicationNftId,
|
|
190
|
+
bytes memory applicationData,
|
|
191
|
+
NftId bundleNftId,
|
|
192
|
+
bytes memory bundleFilter,
|
|
193
|
+
uint256 collateralizationAmount
|
|
194
|
+
)
|
|
195
|
+
public
|
|
196
|
+
virtual
|
|
197
|
+
restricted()
|
|
198
|
+
{
|
|
199
|
+
if(!applicationMatchesBundle(
|
|
200
|
+
applicationNftId,
|
|
201
|
+
applicationData,
|
|
202
|
+
bundleNftId,
|
|
203
|
+
bundleFilter,
|
|
204
|
+
collateralizationAmount)
|
|
205
|
+
)
|
|
206
|
+
{
|
|
207
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
|
174
208
|
}
|
|
175
|
-
}
|
|
176
209
|
|
|
177
|
-
|
|
178
|
-
return ISetup.PoolSetupInfo(
|
|
179
|
-
getProductNftId(),
|
|
180
|
-
_tokenHandler,
|
|
181
|
-
_collateralizationLevel,
|
|
182
|
-
_initialPoolFee,
|
|
183
|
-
_initialStakingFee,
|
|
184
|
-
_initialPerformanceFee,
|
|
185
|
-
false,
|
|
186
|
-
_isConfirmingApplication,
|
|
187
|
-
getWallet()
|
|
188
|
-
);
|
|
210
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
|
189
211
|
}
|
|
190
212
|
|
|
191
|
-
// Internals
|
|
192
213
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
214
|
+
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
|
215
|
+
/// Override this function to implement any custom application verification
|
|
216
|
+
/// Default implementation always returns true
|
|
217
|
+
function applicationMatchesBundle(
|
|
218
|
+
NftId applicationNftId,
|
|
219
|
+
bytes memory applicationData,
|
|
220
|
+
NftId bundleNftId,
|
|
196
221
|
bytes memory bundleFilter,
|
|
197
222
|
uint256 collateralizationAmount
|
|
198
223
|
)
|
|
199
|
-
|
|
224
|
+
public
|
|
225
|
+
view
|
|
226
|
+
virtual override
|
|
227
|
+
returns (bool isMatching)
|
|
200
228
|
{
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
);
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
|
|
205
232
|
|
|
206
|
-
|
|
233
|
+
function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
|
|
234
|
+
poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
|
|
207
235
|
}
|
|
208
236
|
|
|
237
|
+
// Internals
|
|
238
|
+
|
|
209
239
|
function _createBundle(
|
|
210
240
|
address bundleOwner,
|
|
211
241
|
Fee memory fee,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
bytes
|
|
242
|
+
Amount amount,
|
|
243
|
+
Seconds lifetime,
|
|
244
|
+
bytes memory filter
|
|
215
245
|
)
|
|
216
246
|
internal
|
|
217
247
|
returns(NftId bundleNftId)
|
|
218
248
|
{
|
|
219
|
-
bundleNftId =
|
|
249
|
+
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
|
220
250
|
bundleOwner,
|
|
221
251
|
fee,
|
|
222
252
|
amount,
|
|
223
253
|
lifetime,
|
|
224
|
-
filter
|
|
225
|
-
|
|
254
|
+
filter);
|
|
255
|
+
|
|
256
|
+
// TODO add logging
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
|
260
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
|
261
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/// @dev defines initial pool specification
|
|
265
|
+
/// overwrite this function according to your use case
|
|
266
|
+
function _getInitialInfo()
|
|
267
|
+
internal
|
|
268
|
+
view
|
|
269
|
+
virtual override
|
|
270
|
+
returns (IComponents.ComponentInfo memory info)
|
|
271
|
+
{
|
|
272
|
+
return IComponents.ComponentInfo(
|
|
273
|
+
getName(),
|
|
274
|
+
getToken(),
|
|
275
|
+
TokenHandler(address(0)), // will be created by GIF service during registration
|
|
276
|
+
address(this), // contract is its own wallet
|
|
277
|
+
AmountLib.zero(), // balance amount
|
|
278
|
+
AmountLib.zero(), // fee amount
|
|
279
|
+
abi.encode(
|
|
280
|
+
IComponents.PoolInfo(
|
|
281
|
+
NftIdLib.zero(), // will be set when GIF registers the related product
|
|
282
|
+
PUBLIC_ROLE(), // bundleOwnerRole
|
|
283
|
+
type(uint256).max, // maxCapitalAmount,
|
|
284
|
+
0, // initial balance amount
|
|
285
|
+
0, // initial fee amount
|
|
286
|
+
isNftInterceptor(), // isInterceptingBundleTransfers
|
|
287
|
+
false, // isExternallyManaged,
|
|
288
|
+
false, // isVerifyingApplications,
|
|
289
|
+
UFixedLib.toUFixed(1), // collateralizationLevel,
|
|
290
|
+
UFixedLib.toUFixed(1), // retentionLevel,
|
|
291
|
+
FeeLib.zeroFee(), // initialPoolFee,
|
|
292
|
+
FeeLib.zeroFee(), // initialStakingFee,
|
|
293
|
+
FeeLib.zeroFee() // initialPerformanceFee,
|
|
294
|
+
)));
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
|
299
|
+
assembly {
|
|
300
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
|
301
|
+
}
|
|
226
302
|
}
|
|
227
303
|
}
|