@etherisc/gif-next 0.0.2-aa8d0c4-506 → 0.0.2-aaa8646-641
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 +71 -15
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +842 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +902 -227
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +605 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +801 -36
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +864 -49
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +682 -9
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +849 -346
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +626 -234
- 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 +462 -554
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +342 -168
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +458 -3052
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +609 -178
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +262 -247
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +480 -346
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +294 -113
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2663 -0
- 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} +298 -169
- 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 +71 -45
- 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 +902 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +649 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1326 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1072 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1033 -199
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +396 -75
- 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} +235 -200
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +714 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +585 -160
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +969 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +544 -145
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → instance/service/IPricingService.sol/IPricingService.json} +248 -172
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -391
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1575 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +906 -245
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +348 -87
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +988 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +689 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +872 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
- 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 +227 -224
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +232 -219
- 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 +241 -330
- 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 +233 -312
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +295 -150
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -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 +86 -172
- 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 +191 -163
- 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 +210 -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/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -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 +179 -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 +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 +209 -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 +38 -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 +253 -0
- package/contracts/components/Distribution.sol +201 -83
- package/contracts/components/IComponent.sol +76 -0
- package/contracts/components/IDistributionComponent.sol +43 -18
- package/contracts/components/IPoolComponent.sol +88 -37
- package/contracts/components/IProductComponent.sol +10 -5
- package/contracts/components/Pool.sol +219 -164
- package/contracts/components/Product.sol +252 -175
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/Cloneable.sol +51 -0
- package/contracts/instance/IInstance.sol +62 -21
- package/contracts/instance/IInstanceService.sol +58 -8
- package/contracts/instance/Instance.sol +155 -361
- package/contracts/instance/InstanceAccessManager.sol +429 -176
- package/contracts/instance/InstanceAuthorizationsLib.sol +300 -0
- package/contracts/instance/InstanceReader.sol +51 -37
- package/contracts/instance/InstanceService.sol +252 -125
- package/contracts/instance/InstanceServiceManager.sol +11 -13
- package/contracts/instance/InstanceStore.sol +208 -0
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +148 -0
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +23 -6
- package/contracts/instance/module/IAccess.sol +36 -20
- 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 +41 -9
- package/contracts/instance/module/ISetup.sol +9 -20
- package/contracts/instance/service/ApplicationService.sol +185 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +440 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ClaimService.sol +239 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +287 -44
- package/contracts/instance/service/DistributionServiceManager.sol +11 -13
- package/contracts/instance/service/IApplicationService.sol +61 -0
- package/contracts/instance/service/IBundleService.sol +102 -0
- package/contracts/instance/service/IClaimService.sol +92 -0
- package/contracts/instance/service/IDistributionService.sol +73 -0
- package/contracts/instance/service/IPolicyService.sol +142 -0
- package/contracts/instance/service/IPoolService.sol +82 -17
- package/contracts/instance/service/IPricingService.sol +36 -0
- package/contracts/instance/service/IProductService.sol +6 -73
- package/contracts/instance/service/PolicyService.sol +579 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +251 -118
- package/contracts/instance/service/PoolServiceManager.sol +11 -13
- package/contracts/instance/service/PricingService.sol +275 -0
- package/contracts/instance/service/PricingServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +210 -0
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +9 -1
- package/contracts/registry/IRegistry.sol +40 -33
- package/contracts/registry/IRegistryService.sol +48 -13
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +234 -256
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +118 -231
- package/contracts/registry/RegistryServiceManager.sol +21 -39
- package/contracts/registry/ReleaseManager.sol +324 -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 +5 -4
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +67 -83
- 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 +42 -24
- 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/Amount.sol +70 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +75 -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/NftIdSet.sol +26 -24
- package/contracts/types/ObjectType.sol +15 -6
- package/contracts/types/PayoutId.sol +82 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +26 -18
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +7 -2
- package/contracts/types/Timestamp.sol +18 -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 -60
- 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,247 +1,302 @@
|
|
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 {Amount, AmountLib} from "../types/Amount.sol";
|
5
|
+
import {Component} from "./Component.sol";
|
6
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
7
|
+
import {IBundleService} from "../instance/service/IBundleService.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 {BUNDLE, 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 {
|
14
|
-
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
16
|
-
|
17
|
-
// import {IPool} from "../instance/module/pool/IPoolModule.sol";
|
18
|
-
import {ITreasury} from "../instance/module/ITreasury.sol";
|
19
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
20
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
|
+
import {UFixed, UFixedLib} from "../types/UFixed.sol";
|
21
17
|
|
22
|
-
|
23
|
-
|
18
|
+
abstract contract Pool is
|
19
|
+
Component,
|
20
|
+
IPoolComponent
|
21
|
+
{
|
22
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
23
|
+
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
UFixed internal _collateralizationLevel;
|
25
|
+
struct PoolStorage {
|
26
|
+
IPoolService _poolService;
|
27
|
+
IBundleService _bundleService;
|
28
|
+
}
|
30
29
|
|
31
|
-
Fee internal _initialPoolFee;
|
32
|
-
Fee internal _initialStakingFee;
|
33
|
-
Fee internal _initialPerformanceFee;
|
34
30
|
|
35
|
-
|
36
|
-
|
31
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
32
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
33
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
34
|
+
}
|
35
|
+
_;
|
36
|
+
}
|
37
37
|
|
38
|
-
// only relevant to protect callback functions for "active" pools
|
39
|
-
IProductService private _productService;
|
40
38
|
|
41
39
|
modifier onlyPoolService() {
|
42
|
-
|
43
|
-
msg.sender
|
44
|
-
|
40
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
41
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
42
|
+
}
|
45
43
|
_;
|
46
44
|
}
|
47
45
|
|
48
|
-
modifier onlyProductService() {
|
49
|
-
require(
|
50
|
-
msg.sender == address(_productService),
|
51
|
-
"ERROR:POL-002:NOT_PRODUCT_SERVICE");
|
52
|
-
_;
|
53
|
-
}
|
54
46
|
|
55
|
-
|
47
|
+
function initializePool(
|
56
48
|
address registry,
|
57
49
|
NftId instanceNftId,
|
58
|
-
|
50
|
+
string memory name,
|
59
51
|
address token,
|
60
|
-
bool
|
61
|
-
|
62
|
-
|
63
|
-
Fee memory poolFee,
|
64
|
-
Fee memory stakingFee,
|
65
|
-
Fee memory performanceFee,
|
66
|
-
address initialOwner
|
52
|
+
bool isInterceptingNftTransfers,
|
53
|
+
address initialOwner,
|
54
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
67
55
|
)
|
68
|
-
|
56
|
+
public
|
57
|
+
virtual
|
58
|
+
onlyInitializing()
|
69
59
|
{
|
70
|
-
|
71
|
-
// TODO add validation
|
72
|
-
_collateralizationLevel = collateralizationLevel;
|
73
|
-
_initialPoolFee = poolFee;
|
74
|
-
_initialStakingFee = stakingFee;
|
75
|
-
_initialPerformanceFee = performanceFee;
|
60
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
76
61
|
|
77
|
-
|
78
|
-
|
79
|
-
|
62
|
+
PoolStorage storage $ = _getPoolStorage();
|
63
|
+
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
64
|
+
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
80
65
|
|
81
|
-
|
66
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
82
67
|
}
|
83
68
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
uint256
|
88
|
-
bytes memory filter
|
69
|
+
|
70
|
+
function stake(
|
71
|
+
NftId bundleNftId,
|
72
|
+
uint256 amount
|
89
73
|
)
|
90
|
-
|
91
|
-
virtual
|
92
|
-
|
74
|
+
public
|
75
|
+
virtual
|
76
|
+
restricted()
|
77
|
+
onlyBundleOwner(bundleNftId)
|
93
78
|
{
|
94
|
-
|
95
|
-
bundleNftId = _poolService.createBundle(
|
96
|
-
owner,
|
97
|
-
fee,
|
98
|
-
initialAmount,
|
99
|
-
lifetime,
|
100
|
-
filter
|
101
|
-
);
|
102
|
-
|
103
|
-
// TODO add logging
|
79
|
+
// TODO add implementation
|
104
80
|
}
|
105
81
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
function underwrite(
|
111
|
-
NftId policyNftId,
|
112
|
-
bytes memory policyData,
|
113
|
-
bytes memory bundleFilter,
|
114
|
-
uint256 collateralizationAmount
|
82
|
+
|
83
|
+
function unstake(
|
84
|
+
NftId bundleNftId,
|
85
|
+
uint256 amount
|
115
86
|
)
|
116
|
-
|
117
|
-
|
118
|
-
|
87
|
+
public
|
88
|
+
virtual
|
89
|
+
restricted()
|
90
|
+
onlyBundleOwner(bundleNftId)
|
119
91
|
{
|
120
|
-
|
92
|
+
// TODO add implementation
|
121
93
|
}
|
122
94
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
function policyMatchesBundle(
|
128
|
-
bytes memory, // policyData
|
129
|
-
bytes memory // bundleFilter
|
95
|
+
|
96
|
+
function extend(
|
97
|
+
NftId bundleNftId,
|
98
|
+
Seconds lifetimeExtension
|
130
99
|
)
|
131
100
|
public
|
132
|
-
|
133
|
-
|
134
|
-
|
101
|
+
virtual
|
102
|
+
restricted()
|
103
|
+
onlyBundleOwner(bundleNftId)
|
135
104
|
{
|
136
|
-
|
105
|
+
// TODO add implementation
|
137
106
|
}
|
138
107
|
|
139
108
|
|
140
|
-
function
|
141
|
-
|
109
|
+
function lockBundle(NftId bundleNftId)
|
110
|
+
public
|
111
|
+
virtual
|
112
|
+
//restricted() // TODO consider adding this back
|
113
|
+
onlyBundleOwner(bundleNftId)
|
114
|
+
{
|
115
|
+
_getPoolStorage()._bundleService.lock(bundleNftId);
|
142
116
|
}
|
143
117
|
|
144
|
-
|
145
|
-
|
118
|
+
|
119
|
+
function unlockBundle(NftId bundleNftId)
|
120
|
+
public
|
121
|
+
virtual
|
122
|
+
//restricted()
|
123
|
+
onlyBundleOwner(bundleNftId)
|
124
|
+
{
|
125
|
+
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
146
126
|
}
|
147
127
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
onlyOwner
|
155
|
-
override
|
128
|
+
|
129
|
+
function close(NftId bundleNftId)
|
130
|
+
public
|
131
|
+
virtual
|
132
|
+
//restricted()
|
133
|
+
onlyBundleOwner(bundleNftId)
|
156
134
|
{
|
157
|
-
_poolService.
|
135
|
+
_getPoolStorage()._poolService.closeBundle(bundleNftId);
|
158
136
|
}
|
159
137
|
|
138
|
+
|
160
139
|
function setBundleFee(
|
161
140
|
NftId bundleNftId,
|
162
141
|
Fee memory fee
|
163
142
|
)
|
164
|
-
|
165
|
-
|
166
|
-
|
143
|
+
public
|
144
|
+
virtual
|
145
|
+
restricted()
|
146
|
+
onlyBundleOwner(bundleNftId)
|
167
147
|
{
|
168
|
-
|
148
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
169
149
|
}
|
170
150
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
151
|
+
|
152
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
153
|
+
public
|
154
|
+
virtual
|
155
|
+
restricted()
|
156
|
+
onlyOwner()
|
157
|
+
{
|
158
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
163
|
+
public
|
164
|
+
virtual
|
165
|
+
restricted()
|
166
|
+
onlyOwner()
|
167
|
+
{
|
168
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
182
169
|
}
|
183
|
-
|
184
|
-
|
185
|
-
|
170
|
+
|
171
|
+
|
172
|
+
function setFees(
|
173
|
+
Fee memory poolFee,
|
174
|
+
Fee memory stakingFee,
|
175
|
+
Fee memory performanceFee
|
176
|
+
)
|
177
|
+
public
|
178
|
+
virtual
|
179
|
+
restricted()
|
180
|
+
onlyOwner()
|
181
|
+
{
|
182
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
186
183
|
}
|
187
184
|
|
188
|
-
// from IRegisterable
|
189
185
|
|
190
|
-
|
191
|
-
|
192
|
-
|
186
|
+
/// @dev see {IPool.verifyApplication}
|
187
|
+
function verifyApplication(
|
188
|
+
NftId applicationNftId,
|
189
|
+
bytes memory applicationData,
|
190
|
+
NftId bundleNftId,
|
191
|
+
bytes memory bundleFilter,
|
192
|
+
uint256 collateralizationAmount
|
193
|
+
)
|
193
194
|
public
|
194
|
-
|
195
|
-
|
196
|
-
returns (IRegistry.ObjectInfo memory, bytes memory)
|
195
|
+
virtual
|
196
|
+
restricted()
|
197
197
|
{
|
198
|
-
(
|
199
|
-
|
200
|
-
|
201
|
-
|
198
|
+
if(!applicationMatchesBundle(
|
199
|
+
applicationNftId,
|
200
|
+
applicationData,
|
201
|
+
bundleNftId,
|
202
|
+
bundleFilter,
|
203
|
+
collateralizationAmount)
|
204
|
+
)
|
205
|
+
{
|
206
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
207
|
+
}
|
202
208
|
|
203
|
-
|
204
|
-
info,
|
205
|
-
abi.encode(
|
206
|
-
getInitialSetupInfo()
|
207
|
-
)
|
208
|
-
);
|
209
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
209
210
|
}
|
210
211
|
|
211
|
-
// Internals
|
212
212
|
|
213
|
-
|
214
|
-
|
215
|
-
|
213
|
+
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
214
|
+
/// Override this function to implement any custom application verification
|
215
|
+
/// Default implementation always returns true
|
216
|
+
function applicationMatchesBundle(
|
217
|
+
NftId applicationNftId,
|
218
|
+
bytes memory applicationData,
|
219
|
+
NftId bundleNftId,
|
216
220
|
bytes memory bundleFilter,
|
217
221
|
uint256 collateralizationAmount
|
218
222
|
)
|
219
|
-
|
223
|
+
public
|
224
|
+
view
|
225
|
+
virtual override
|
226
|
+
returns (bool isMatching)
|
220
227
|
{
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
);
|
228
|
+
return true;
|
229
|
+
}
|
230
|
+
|
225
231
|
|
226
|
-
|
232
|
+
function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
|
233
|
+
poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
|
227
234
|
}
|
228
235
|
|
236
|
+
// Internals
|
237
|
+
|
229
238
|
function _createBundle(
|
230
239
|
address bundleOwner,
|
231
240
|
Fee memory fee,
|
232
|
-
|
233
|
-
|
234
|
-
bytes
|
241
|
+
Amount amount,
|
242
|
+
Seconds lifetime,
|
243
|
+
bytes memory filter
|
235
244
|
)
|
236
245
|
internal
|
237
246
|
returns(NftId bundleNftId)
|
238
247
|
{
|
239
|
-
bundleNftId = _poolService.createBundle(
|
248
|
+
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
240
249
|
bundleOwner,
|
241
250
|
fee,
|
242
251
|
amount,
|
243
252
|
lifetime,
|
244
|
-
filter
|
245
|
-
|
253
|
+
filter);
|
254
|
+
|
255
|
+
// TODO add logging
|
256
|
+
}
|
257
|
+
|
258
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
259
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
260
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
261
|
+
}
|
262
|
+
|
263
|
+
/// @dev defines initial pool specification
|
264
|
+
/// overwrite this function according to your use case
|
265
|
+
function _getInitialInfo()
|
266
|
+
internal
|
267
|
+
view
|
268
|
+
virtual override
|
269
|
+
returns (IComponents.ComponentInfo memory info)
|
270
|
+
{
|
271
|
+
return IComponents.ComponentInfo(
|
272
|
+
getName(),
|
273
|
+
getToken(),
|
274
|
+
TokenHandler(address(0)), // will be created by GIF service during registration
|
275
|
+
address(this), // contract is its own wallet
|
276
|
+
AmountLib.zero(), // balance amount
|
277
|
+
AmountLib.zero(), // fee amount
|
278
|
+
abi.encode(
|
279
|
+
IComponents.PoolInfo(
|
280
|
+
NftIdLib.zero(), // will be set when GIF registers the related product
|
281
|
+
PUBLIC_ROLE(), // bundleOwnerRole
|
282
|
+
type(uint256).max, // maxCapitalAmount,
|
283
|
+
0, // initial balance amount
|
284
|
+
0, // initial fee amount
|
285
|
+
isNftInterceptor(), // isInterceptingBundleTransfers
|
286
|
+
false, // isExternallyManaged,
|
287
|
+
false, // isVerifyingApplications,
|
288
|
+
UFixedLib.toUFixed(1), // collateralizationLevel,
|
289
|
+
UFixedLib.toUFixed(1), // retentionLevel,
|
290
|
+
FeeLib.zeroFee(), // initialPoolFee,
|
291
|
+
FeeLib.zeroFee(), // initialStakingFee,
|
292
|
+
FeeLib.zeroFee() // initialPerformanceFee,
|
293
|
+
)));
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
298
|
+
assembly {
|
299
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
300
|
+
}
|
246
301
|
}
|
247
302
|
}
|