@etherisc/gif-next 0.0.2-a7954cc-097 → 0.0.2-a84aad4-747
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +832 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +747 -103
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +137 -114
- 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 +737 -58
- 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 +692 -178
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +517 -135
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +15 -15
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +69 -79
- 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 +1003 -393
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -197
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1015 -781
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +440 -176
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +120 -263
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +369 -299
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -89
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +11 -40
- 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} +178 -158
- 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 +61 -78
- 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 +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +421 -273
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +308 -79
- 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 +1211 -172
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +456 -71
- 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} +275 -185
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +199 -238
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +159 -147
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +728 -161
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +152 -276
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -152
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -174
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +363 -335
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +321 -96
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +289 -192
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +313 -76
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +206 -206
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +305 -76
- 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 +117 -5
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +112 -198
- 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 +131 -27
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +18 -18
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +216 -234
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -81
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +70 -69
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +151 -50
- 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 +22 -174
- 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 +114 -157
- 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 +135 -214
- 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 +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 +251 -0
- package/contracts/components/Distribution.sol +199 -82
- package/contracts/components/IComponent.sol +74 -0
- package/contracts/components/IDistributionComponent.sol +44 -17
- package/contracts/components/IPoolComponent.sol +88 -41
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +209 -181
- package/contracts/components/Product.sol +125 -124
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +2 -12
- package/contracts/instance/BundleManager.sol +14 -16
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +52 -16
- package/contracts/instance/IInstanceService.sol +37 -5
- package/contracts/instance/Instance.sol +126 -75
- package/contracts/instance/InstanceAccessManager.sol +383 -164
- package/contracts/instance/InstanceReader.sol +9 -34
- package/contracts/instance/InstanceService.sol +279 -134
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +10 -29
- 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 +22 -16
- 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 +7 -20
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +111 -35
- 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 +393 -39
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +31 -14
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +86 -0
- package/contracts/instance/service/IPolicyService.sol +34 -49
- package/contracts/instance/service/IPoolService.sol +17 -2
- package/contracts/instance/service/PolicyService.sol +205 -305
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +138 -42
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +104 -33
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +18 -8
- package/contracts/registry/IRegistryService.sol +19 -10
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +142 -71
- package/contracts/registry/RegistryAccessManager.sol +31 -25
- package/contracts/registry/RegistryService.sol +94 -134
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +94 -120
- package/contracts/registry/TokenRegistry.sol +19 -13
- 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 -0
- 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 +19 -19
- 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/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/ObjectType.sol +10 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +18 -11
- 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/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- 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 -814
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -159
- package/contracts/components/IBaseComponent.sol +0 -34
- 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/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -82
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- 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,271 +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 {IPoolService} from "../instance/service/IPoolService.sol";
|
4
|
+
import {Component} from "./Component.sol";
|
5
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
7
6
|
import {IBundleService} from "../instance/service/IBundleService.sol";
|
8
|
-
import {
|
9
|
-
import {Fee} from "../types/Fee.sol";
|
10
|
-
import {UFixed} from "../types/UFixed.sol";
|
7
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
8
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
12
|
-
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";
|
13
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
|
-
import {
|
15
|
-
|
16
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
17
|
-
|
18
|
-
// import {IPool} from "../instance/module/pool/IPoolModule.sol";
|
19
|
-
import {ITreasury} from "../instance/module/ITreasury.sol";
|
20
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
21
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
|
-
|
23
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
24
|
-
import {Registerable} from "../shared/Registerable.sol";
|
16
|
+
import {UFixed, UFixedLib} from "../types/UFixed.sol";
|
25
17
|
|
26
|
-
abstract contract Pool is BaseComponent, IPoolComponent {
|
27
|
-
using NftIdLib for NftId;
|
28
18
|
|
29
|
-
|
30
|
-
|
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;
|
31
25
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
TokenHandler internal _tokenHandler;
|
26
|
+
struct PoolStorage {
|
27
|
+
IPoolService _poolService;
|
28
|
+
IBundleService _bundleService;
|
29
|
+
}
|
37
30
|
|
38
|
-
// may be used to interact with instance by derived contracts
|
39
|
-
IPoolService internal _poolService;
|
40
31
|
|
41
|
-
|
42
|
-
|
32
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
33
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
34
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
43
38
|
|
44
|
-
IBundleService private _bundleService;
|
45
39
|
|
46
40
|
modifier onlyPoolService() {
|
47
|
-
|
48
|
-
msg.sender
|
49
|
-
|
41
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
42
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
43
|
+
}
|
50
44
|
_;
|
51
45
|
}
|
52
46
|
|
53
|
-
modifier onlyProductService() {
|
54
|
-
require(
|
55
|
-
msg.sender == address(_productService),
|
56
|
-
"ERROR:POL-002:NOT_PRODUCT_SERVICE");
|
57
|
-
_;
|
58
|
-
}
|
59
47
|
|
60
|
-
|
48
|
+
function initializePool(
|
61
49
|
address registry,
|
62
50
|
NftId instanceNftId,
|
63
|
-
|
51
|
+
string memory name,
|
64
52
|
address token,
|
65
|
-
bool
|
66
|
-
|
67
|
-
|
68
|
-
Fee memory poolFee,
|
69
|
-
Fee memory stakingFee,
|
70
|
-
Fee memory performanceFee,
|
71
|
-
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
|
72
56
|
)
|
73
|
-
|
57
|
+
public
|
58
|
+
virtual
|
59
|
+
onlyInitializing()
|
74
60
|
{
|
75
|
-
|
76
|
-
// TODO add validation
|
77
|
-
_collateralizationLevel = collateralizationLevel;
|
78
|
-
_initialPoolFee = poolFee;
|
79
|
-
_initialStakingFee = stakingFee;
|
80
|
-
_initialPerformanceFee = performanceFee;
|
61
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
81
62
|
|
82
|
-
|
63
|
+
PoolStorage storage $ = _getPoolStorage();
|
64
|
+
$._poolService = getInstance().getPoolService();
|
65
|
+
$._bundleService = getInstance().getBundleService();
|
83
66
|
|
84
|
-
|
85
|
-
_productService = _instance.getProductService();
|
86
|
-
_bundleService = _instance.getBundleService();
|
87
|
-
|
88
|
-
_registerInterface(type(IPoolComponent).interfaceId);
|
67
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
89
68
|
}
|
90
69
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
uint256
|
95
|
-
bytes memory filter
|
70
|
+
|
71
|
+
function stake(
|
72
|
+
NftId bundleNftId,
|
73
|
+
uint256 amount
|
96
74
|
)
|
97
|
-
|
98
|
-
virtual
|
99
|
-
|
75
|
+
public
|
76
|
+
virtual
|
77
|
+
restricted()
|
78
|
+
onlyBundleOwner(bundleNftId)
|
100
79
|
{
|
101
|
-
|
102
|
-
bundleNftId = _bundleService.createBundle(
|
103
|
-
owner,
|
104
|
-
fee,
|
105
|
-
initialAmount,
|
106
|
-
lifetime,
|
107
|
-
filter
|
108
|
-
);
|
109
|
-
|
110
|
-
// TODO add logging
|
80
|
+
// TODO add implementation
|
111
81
|
}
|
112
82
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
function underwrite(
|
118
|
-
NftId policyNftId,
|
119
|
-
bytes memory policyData,
|
120
|
-
bytes memory bundleFilter,
|
121
|
-
uint256 collateralizationAmount
|
83
|
+
|
84
|
+
function unstake(
|
85
|
+
NftId bundleNftId,
|
86
|
+
uint256 amount
|
122
87
|
)
|
123
|
-
|
124
|
-
|
125
|
-
|
88
|
+
public
|
89
|
+
virtual
|
90
|
+
restricted()
|
91
|
+
onlyBundleOwner(bundleNftId)
|
126
92
|
{
|
127
|
-
|
93
|
+
// TODO add implementation
|
128
94
|
}
|
129
95
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
function policyMatchesBundle(
|
135
|
-
bytes memory, // policyData
|
136
|
-
bytes memory // bundleFilter
|
96
|
+
|
97
|
+
function extend(
|
98
|
+
NftId bundleNftId,
|
99
|
+
Seconds lifetimeExtension
|
137
100
|
)
|
138
101
|
public
|
139
|
-
|
140
|
-
|
141
|
-
|
102
|
+
virtual
|
103
|
+
restricted()
|
104
|
+
onlyBundleOwner(bundleNftId)
|
142
105
|
{
|
143
|
-
|
106
|
+
// TODO add implementation
|
144
107
|
}
|
145
108
|
|
146
109
|
|
147
|
-
function
|
148
|
-
|
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);
|
149
117
|
}
|
150
118
|
|
151
|
-
|
152
|
-
|
119
|
+
|
120
|
+
function unlockBundle(NftId bundleNftId)
|
121
|
+
public
|
122
|
+
virtual
|
123
|
+
//restricted()
|
124
|
+
onlyBundleOwner(bundleNftId)
|
125
|
+
{
|
126
|
+
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
153
127
|
}
|
154
128
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
onlyOwner
|
162
|
-
override
|
129
|
+
|
130
|
+
function close(NftId bundleNftId)
|
131
|
+
public
|
132
|
+
virtual
|
133
|
+
//restricted()
|
134
|
+
onlyBundleOwner(bundleNftId)
|
163
135
|
{
|
164
|
-
|
136
|
+
_getPoolStorage()._bundleService.close(bundleNftId);
|
165
137
|
}
|
166
138
|
|
139
|
+
|
167
140
|
function setBundleFee(
|
168
141
|
NftId bundleNftId,
|
169
142
|
Fee memory fee
|
170
143
|
)
|
171
|
-
|
172
|
-
|
173
|
-
|
144
|
+
public
|
145
|
+
virtual
|
146
|
+
restricted()
|
147
|
+
onlyBundleOwner(bundleNftId)
|
174
148
|
{
|
175
|
-
_bundleService.
|
149
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
176
150
|
}
|
177
151
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
152
|
+
|
153
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
154
|
+
public
|
155
|
+
virtual
|
156
|
+
restricted()
|
157
|
+
onlyOwner()
|
184
158
|
{
|
185
|
-
|
159
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
186
160
|
}
|
187
161
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
162
|
+
|
163
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
164
|
+
public
|
165
|
+
virtual
|
166
|
+
restricted()
|
167
|
+
onlyOwner()
|
194
168
|
{
|
195
|
-
|
169
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
196
170
|
}
|
197
171
|
|
198
|
-
|
199
|
-
|
200
|
-
|
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);
|
201
184
|
}
|
202
185
|
|
203
|
-
// from IRegisterable
|
204
186
|
|
205
|
-
|
206
|
-
|
207
|
-
|
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
|
+
)
|
208
195
|
public
|
209
|
-
|
210
|
-
|
211
|
-
returns (IRegistry.ObjectInfo memory, bytes memory)
|
196
|
+
virtual
|
197
|
+
restricted()
|
212
198
|
{
|
213
|
-
(
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
_initialStakingFee,
|
226
|
-
_initialPerformanceFee,
|
227
|
-
false,
|
228
|
-
_isConfirmingApplication,
|
229
|
-
_wallet
|
230
|
-
)
|
231
|
-
)
|
232
|
-
);
|
199
|
+
if(!applicationMatchesBundle(
|
200
|
+
applicationNftId,
|
201
|
+
applicationData,
|
202
|
+
bundleNftId,
|
203
|
+
bundleFilter,
|
204
|
+
collateralizationAmount)
|
205
|
+
)
|
206
|
+
{
|
207
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
208
|
+
}
|
209
|
+
|
210
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
233
211
|
}
|
234
212
|
|
235
|
-
// Internals
|
236
213
|
|
237
|
-
|
238
|
-
|
239
|
-
|
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,
|
240
221
|
bytes memory bundleFilter,
|
241
222
|
uint256 collateralizationAmount
|
242
223
|
)
|
243
|
-
|
224
|
+
public
|
225
|
+
view
|
226
|
+
virtual override
|
227
|
+
returns (bool isMatching)
|
244
228
|
{
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
);
|
229
|
+
return true;
|
230
|
+
}
|
231
|
+
|
249
232
|
|
250
|
-
|
233
|
+
function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
|
234
|
+
poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
|
251
235
|
}
|
252
236
|
|
237
|
+
// Internals
|
238
|
+
|
253
239
|
function _createBundle(
|
254
240
|
address bundleOwner,
|
255
241
|
Fee memory fee,
|
256
242
|
uint256 amount,
|
257
|
-
|
258
|
-
bytes
|
243
|
+
Seconds lifetime,
|
244
|
+
bytes memory filter
|
259
245
|
)
|
260
246
|
internal
|
261
247
|
returns(NftId bundleNftId)
|
262
248
|
{
|
263
|
-
bundleNftId = _bundleService.
|
249
|
+
bundleNftId = _getPoolStorage()._bundleService.create(
|
264
250
|
bundleOwner,
|
265
251
|
fee,
|
266
252
|
amount,
|
267
253
|
lifetime,
|
268
|
-
filter
|
269
|
-
|
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
|
+
}
|
270
298
|
}
|
271
299
|
}
|