@etherisc/gif-next 0.0.2-e1f23dc-329 → 0.0.2-e26c262-698
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 +832 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +931 -230
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → components/IComponent.sol/IComponent.json} +211 -172
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +743 -26
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +755 -50
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +582 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +817 -243
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +628 -190
- 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 +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +91 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1058 -366
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +252 -165
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +929 -1212
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +571 -177
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +126 -254
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +412 -310
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +302 -109
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -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} +189 -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 +69 -43
- 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 +968 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1093 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +661 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1229 -213
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +440 -79
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +630 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → instance/service/IClaimService.sol/IClaimService.json} +146 -179
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +727 -160
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +540 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +84 -304
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +39 -394
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1021 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +689 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +278 -380
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +298 -89
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +211 -528
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +292 -115
- 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 +244 -133
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +158 -215
- 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 +257 -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 +202 -318
- 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 +31 -183
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +127 -170
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +129 -51
- 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 +148 -227
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/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 +2 -2
- 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 +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 +251 -0
- package/contracts/components/Distribution.sol +200 -79
- package/contracts/components/IComponent.sol +74 -0
- package/contracts/components/IDistributionComponent.sol +44 -17
- package/contracts/components/IPoolComponent.sol +88 -37
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +215 -158
- package/contracts/components/Product.sol +125 -116
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +127 -0
- package/contracts/instance/Cloneable.sol +51 -0
- package/contracts/instance/IInstance.sol +58 -14
- package/contracts/instance/IInstanceService.sol +47 -5
- package/contracts/instance/Instance.sol +144 -260
- package/contracts/instance/InstanceAccessManager.sol +410 -176
- package/contracts/instance/InstanceReader.sol +9 -34
- package/contracts/instance/InstanceService.sol +418 -121
- package/contracts/instance/InstanceServiceManager.sol +6 -9
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/base/KeyValueStore.sol +5 -2
- package/contracts/instance/base/Lifecycle.sol +11 -2
- package/contracts/instance/module/IAccess.sol +36 -20
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IComponents.sol +35 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +9 -20
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +336 -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 +408 -29
- package/contracts/instance/service/DistributionServiceManager.sol +7 -10
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +62 -0
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +86 -0
- package/contracts/instance/service/IPolicyService.sol +72 -0
- package/contracts/instance/service/IPoolService.sol +20 -26
- package/contracts/instance/service/IProductService.sol +3 -70
- package/contracts/instance/service/PolicyService.sol +403 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +150 -131
- package/contracts/instance/service/PoolServiceManager.sol +6 -9
- package/contracts/instance/service/ProductService.sol +131 -454
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +9 -1
- package/contracts/registry/IRegistry.sol +39 -19
- package/contracts/registry/IRegistryService.sol +30 -13
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +243 -224
- 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 +4 -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/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +1 -0
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/NftIdSet.sol +26 -24
- 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 +26 -19
- 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/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
- 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
@@ -2,11 +2,16 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Fee} from "../types/Fee.sol";
|
5
|
+
import {IComponent} from "./IComponent.sol";
|
6
|
+
import {ISetup} from "../instance/module/ISetup.sol";
|
5
7
|
import {NftId} from "../types/NftId.sol";
|
6
8
|
import {ReferralId} from "../types/Referral.sol";
|
7
9
|
import {RiskId} from "../types/RiskId.sol";
|
10
|
+
import {Seconds} from "../types/Seconds.sol";
|
8
11
|
|
9
|
-
interface IProductComponent {
|
12
|
+
interface IProductComponent is IComponent {
|
13
|
+
|
14
|
+
function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
|
10
15
|
|
11
16
|
function setFees(
|
12
17
|
Fee memory productFee,
|
@@ -16,16 +21,16 @@ interface IProductComponent {
|
|
16
21
|
function calculatePremium(
|
17
22
|
uint256 sumInsuredAmount,
|
18
23
|
RiskId riskId,
|
19
|
-
|
24
|
+
Seconds lifetime,
|
20
25
|
bytes memory applicationData,
|
21
|
-
|
22
|
-
|
26
|
+
NftId bundleNftId,
|
27
|
+
ReferralId referralId
|
23
28
|
) external view returns (uint256 premiumAmount);
|
24
29
|
|
25
30
|
function calculateNetPremium(
|
26
31
|
uint256 sumInsuredAmount,
|
27
32
|
RiskId riskId,
|
28
|
-
|
33
|
+
Seconds lifetime,
|
29
34
|
bytes memory applicationData
|
30
35
|
) external view returns (uint256 netPremiumAmount);
|
31
36
|
|
@@ -1,242 +1,299 @@
|
|
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 {
|
9
|
+
import {IPoolService} from "../instance/service/IPoolService.sol";
|
10
|
+
import {IComponents} from "../instance/module/IComponents.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";
|
12
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
13
|
-
import {
|
16
|
+
import {UFixed, UFixedLib} from "../types/UFixed.sol";
|
14
17
|
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
19
|
+
abstract contract Pool is
|
20
|
+
Component,
|
21
|
+
IPoolComponent
|
22
|
+
{
|
23
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
24
|
+
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
21
25
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
using NftIdLib for NftId;
|
27
|
-
|
28
|
-
bool internal _isVerifying;
|
29
|
-
UFixed internal _collateralizationLevel;
|
26
|
+
struct PoolStorage {
|
27
|
+
IPoolService _poolService;
|
28
|
+
IBundleService _bundleService;
|
29
|
+
}
|
30
30
|
|
31
|
-
Fee internal _initialPoolFee;
|
32
|
-
Fee internal _initialStakingFee;
|
33
|
-
Fee internal _initialPerformanceFee;
|
34
31
|
|
35
|
-
|
36
|
-
|
32
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
33
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
34
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
37
38
|
|
38
|
-
// only relevant to protect callback functions for "active" pools
|
39
|
-
IProductService private _productService;
|
40
39
|
|
41
40
|
modifier onlyPoolService() {
|
42
|
-
|
43
|
-
msg.sender
|
44
|
-
|
41
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
42
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
43
|
+
}
|
45
44
|
_;
|
46
45
|
}
|
47
46
|
|
48
|
-
modifier onlyProductService() {
|
49
|
-
require(
|
50
|
-
msg.sender == address(_productService),
|
51
|
-
"ERROR:POL-002:NOT_PRODUCT_SERVICE");
|
52
|
-
_;
|
53
|
-
}
|
54
47
|
|
55
|
-
|
48
|
+
function initializePool(
|
56
49
|
address registry,
|
57
50
|
NftId instanceNftId,
|
58
|
-
|
51
|
+
string memory name,
|
59
52
|
address token,
|
60
|
-
bool
|
61
|
-
|
62
|
-
|
63
|
-
Fee memory poolFee,
|
64
|
-
Fee memory stakingFee,
|
65
|
-
Fee memory performanceFee,
|
66
|
-
address initialOwner
|
53
|
+
bool isInterceptingNftTransfers,
|
54
|
+
address initialOwner,
|
55
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
67
56
|
)
|
68
|
-
|
57
|
+
public
|
58
|
+
virtual
|
59
|
+
onlyInitializing()
|
69
60
|
{
|
70
|
-
|
71
|
-
// TODO add validation
|
72
|
-
_collateralizationLevel = collateralizationLevel;
|
73
|
-
_initialPoolFee = poolFee;
|
74
|
-
_initialStakingFee = stakingFee;
|
75
|
-
_initialPerformanceFee = performanceFee;
|
61
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
76
62
|
|
77
|
-
|
78
|
-
|
63
|
+
PoolStorage storage $ = _getPoolStorage();
|
64
|
+
$._poolService = getInstance().getPoolService();
|
65
|
+
$._bundleService = getInstance().getBundleService();
|
79
66
|
|
80
|
-
|
67
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
81
68
|
}
|
82
69
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
uint256
|
87
|
-
bytes memory filter
|
70
|
+
|
71
|
+
function stake(
|
72
|
+
NftId bundleNftId,
|
73
|
+
uint256 amount
|
88
74
|
)
|
89
|
-
|
90
|
-
virtual
|
91
|
-
|
75
|
+
public
|
76
|
+
virtual
|
77
|
+
restricted()
|
78
|
+
onlyBundleOwner(bundleNftId)
|
92
79
|
{
|
93
|
-
|
94
|
-
bundleNftId = _poolService.createBundle(
|
95
|
-
owner,
|
96
|
-
fee,
|
97
|
-
initialAmount,
|
98
|
-
lifetime,
|
99
|
-
filter
|
100
|
-
);
|
101
|
-
|
102
|
-
// TODO add logging
|
80
|
+
// TODO add implementation
|
103
81
|
}
|
104
82
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
function underwrite(
|
110
|
-
NftId policyNftId,
|
111
|
-
bytes memory policyData,
|
112
|
-
bytes memory bundleFilter,
|
113
|
-
uint256 collateralizationAmount
|
83
|
+
|
84
|
+
function unstake(
|
85
|
+
NftId bundleNftId,
|
86
|
+
uint256 amount
|
114
87
|
)
|
115
|
-
|
116
|
-
|
117
|
-
|
88
|
+
public
|
89
|
+
virtual
|
90
|
+
restricted()
|
91
|
+
onlyBundleOwner(bundleNftId)
|
118
92
|
{
|
119
|
-
|
93
|
+
// TODO add implementation
|
120
94
|
}
|
121
95
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
function policyMatchesBundle(
|
127
|
-
bytes memory, // policyData
|
128
|
-
bytes memory // bundleFilter
|
96
|
+
|
97
|
+
function extend(
|
98
|
+
NftId bundleNftId,
|
99
|
+
Seconds lifetimeExtension
|
129
100
|
)
|
130
101
|
public
|
131
|
-
|
132
|
-
|
133
|
-
|
102
|
+
virtual
|
103
|
+
restricted()
|
104
|
+
onlyBundleOwner(bundleNftId)
|
134
105
|
{
|
135
|
-
|
106
|
+
// TODO add implementation
|
136
107
|
}
|
137
108
|
|
138
109
|
|
139
|
-
function
|
140
|
-
|
110
|
+
function lockBundle(NftId bundleNftId)
|
111
|
+
public
|
112
|
+
virtual
|
113
|
+
//restricted() // TODO consider adding this back
|
114
|
+
onlyBundleOwner(bundleNftId)
|
115
|
+
{
|
116
|
+
_getPoolStorage()._bundleService.lock(bundleNftId);
|
141
117
|
}
|
142
118
|
|
143
|
-
|
144
|
-
|
119
|
+
|
120
|
+
function unlockBundle(NftId bundleNftId)
|
121
|
+
public
|
122
|
+
virtual
|
123
|
+
//restricted()
|
124
|
+
onlyBundleOwner(bundleNftId)
|
125
|
+
{
|
126
|
+
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
145
127
|
}
|
146
128
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
onlyOwner
|
154
|
-
override
|
129
|
+
|
130
|
+
function close(NftId bundleNftId)
|
131
|
+
public
|
132
|
+
virtual
|
133
|
+
//restricted()
|
134
|
+
onlyBundleOwner(bundleNftId)
|
155
135
|
{
|
156
|
-
|
136
|
+
_getPoolStorage()._bundleService.close(bundleNftId);
|
157
137
|
}
|
158
138
|
|
139
|
+
|
159
140
|
function setBundleFee(
|
160
141
|
NftId bundleNftId,
|
161
142
|
Fee memory fee
|
162
143
|
)
|
163
|
-
|
164
|
-
|
165
|
-
|
144
|
+
public
|
145
|
+
virtual
|
146
|
+
restricted()
|
147
|
+
onlyBundleOwner(bundleNftId)
|
166
148
|
{
|
167
|
-
|
149
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
168
150
|
}
|
169
151
|
|
170
|
-
|
171
|
-
|
172
|
-
|
152
|
+
|
153
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
154
|
+
public
|
155
|
+
virtual
|
156
|
+
restricted()
|
157
|
+
onlyOwner()
|
158
|
+
{
|
159
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
173
160
|
}
|
174
161
|
|
175
|
-
// from IRegisterable
|
176
162
|
|
177
|
-
|
178
|
-
// TODO do not use super
|
179
|
-
function getInitialInfo()
|
163
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
180
164
|
public
|
181
|
-
|
182
|
-
|
183
|
-
|
165
|
+
virtual
|
166
|
+
restricted()
|
167
|
+
onlyOwner()
|
184
168
|
{
|
185
|
-
(
|
186
|
-
|
187
|
-
) = super.getInitialInfo();
|
169
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
170
|
+
}
|
188
171
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
)
|
202
|
-
)
|
203
|
-
);
|
172
|
+
|
173
|
+
function setFees(
|
174
|
+
Fee memory poolFee,
|
175
|
+
Fee memory stakingFee,
|
176
|
+
Fee memory performanceFee
|
177
|
+
)
|
178
|
+
public
|
179
|
+
virtual
|
180
|
+
restricted()
|
181
|
+
onlyOwner()
|
182
|
+
{
|
183
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
204
184
|
}
|
205
185
|
|
206
|
-
// Internals
|
207
186
|
|
208
|
-
|
209
|
-
|
210
|
-
|
187
|
+
/// @dev see {IPool.verifyApplication}
|
188
|
+
function verifyApplication(
|
189
|
+
NftId applicationNftId,
|
190
|
+
bytes memory applicationData,
|
191
|
+
NftId bundleNftId,
|
211
192
|
bytes memory bundleFilter,
|
212
193
|
uint256 collateralizationAmount
|
213
194
|
)
|
214
|
-
|
195
|
+
public
|
196
|
+
virtual
|
197
|
+
restricted()
|
215
198
|
{
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
199
|
+
if(!applicationMatchesBundle(
|
200
|
+
applicationNftId,
|
201
|
+
applicationData,
|
202
|
+
bundleNftId,
|
203
|
+
bundleFilter,
|
204
|
+
collateralizationAmount)
|
205
|
+
)
|
206
|
+
{
|
207
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
208
|
+
}
|
220
209
|
|
221
|
-
emit
|
210
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
222
211
|
}
|
223
212
|
|
213
|
+
|
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,
|
221
|
+
bytes memory bundleFilter,
|
222
|
+
uint256 collateralizationAmount
|
223
|
+
)
|
224
|
+
public
|
225
|
+
view
|
226
|
+
virtual override
|
227
|
+
returns (bool isMatching)
|
228
|
+
{
|
229
|
+
return true;
|
230
|
+
}
|
231
|
+
|
232
|
+
|
233
|
+
function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
|
234
|
+
poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
|
235
|
+
}
|
236
|
+
|
237
|
+
// Internals
|
238
|
+
|
224
239
|
function _createBundle(
|
225
240
|
address bundleOwner,
|
226
241
|
Fee memory fee,
|
227
242
|
uint256 amount,
|
228
|
-
|
229
|
-
bytes
|
243
|
+
Seconds lifetime,
|
244
|
+
bytes memory filter
|
230
245
|
)
|
231
246
|
internal
|
232
247
|
returns(NftId bundleNftId)
|
233
248
|
{
|
234
|
-
bundleNftId =
|
249
|
+
bundleNftId = _getPoolStorage()._bundleService.create(
|
235
250
|
bundleOwner,
|
236
251
|
fee,
|
237
252
|
amount,
|
238
253
|
lifetime,
|
239
|
-
filter
|
240
|
-
|
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
|
+
abi.encode(
|
278
|
+
IComponents.PoolInfo(
|
279
|
+
NftIdLib.zero(), // will be set when GIF registers the related product
|
280
|
+
PUBLIC_ROLE(), // bundleOwnerRole
|
281
|
+
type(uint256).max, // maxCapitalAmount,
|
282
|
+
isNftInterceptor(), // isInterceptingBundleTransfers
|
283
|
+
false, // isExternallyManaged,
|
284
|
+
false, // isVerifyingApplications,
|
285
|
+
UFixedLib.toUFixed(1), // collateralizationLevel,
|
286
|
+
UFixedLib.toUFixed(1), // retentionLevel,
|
287
|
+
FeeLib.zeroFee(), // initialPoolFee,
|
288
|
+
FeeLib.zeroFee(), // initialStakingFee,
|
289
|
+
FeeLib.zeroFee() // initialPerformanceFee,
|
290
|
+
)));
|
291
|
+
}
|
292
|
+
|
293
|
+
|
294
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
295
|
+
assembly {
|
296
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
297
|
+
}
|
241
298
|
}
|
242
299
|
}
|