@etherisc/gif-next 0.0.2-f4f92b3-338 → 0.0.2-f509abc-684
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 +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +270 -94
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +627 -157
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +122 -72
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +323 -102
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +325 -186
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +126 -144
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +552 -212
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +374 -166
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +801 -434
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -192
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +992 -782
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +441 -164
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +119 -221
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +371 -302
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -102
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +118 -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 +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 +306 -315
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +305 -93
- 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 +1212 -252
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +453 -85
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +155 -240
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +409 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +711 -139
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +60 -286
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -147
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -169
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +185 -391
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +311 -127
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +222 -204
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +310 -90
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +142 -221
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +302 -90
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +34 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +83 -174
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -15
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +193 -216
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -94
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +11 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -37
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -29
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +22 -169
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +113 -33
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +113 -164
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +125 -55
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +134 -221
- 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 +112 -83
- package/contracts/components/Distribution.sol +189 -53
- package/contracts/components/IComponent.sol +48 -17
- package/contracts/components/IDistributionComponent.sol +39 -15
- package/contracts/components/IPoolComponent.sol +84 -41
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +211 -153
- package/contracts/components/Product.sol +96 -61
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +7 -5
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +36 -10
- package/contracts/instance/IInstanceService.sol +36 -4
- package/contracts/instance/Instance.sol +101 -43
- package/contracts/instance/InstanceAccessManager.sol +383 -159
- package/contracts/instance/InstanceReader.sol +7 -10
- package/contracts/instance/InstanceService.sol +262 -129
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +6 -6
- 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 +82 -39
- 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 +376 -15
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +30 -12
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +86 -0
- package/contracts/instance/service/IPolicyService.sol +27 -49
- package/contracts/instance/service/IPoolService.sol +17 -2
- package/contracts/instance/service/PolicyService.sol +148 -283
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +130 -19
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +20 -11
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +5 -2
- package/contracts/registry/IRegistryService.sol +10 -8
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +43 -28
- package/contracts/registry/RegistryService.sol +69 -48
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +18 -28
- package/contracts/registry/TokenRegistry.sol +16 -12
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -85
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +7 -19
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +15 -17
- 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 +16 -9
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +1 -0
- package/contracts/types/Timestamp.sol +13 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
@@ -1,241 +1,299 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
4
|
+
import {Component} from "./Component.sol";
|
5
|
+
import {Fee, FeeLib} from "../types/Fee.sol";
|
6
6
|
import {IBundleService} from "../instance/service/IBundleService.sol";
|
7
|
-
import {
|
8
|
-
import {Fee} from "../types/Fee.sol";
|
9
|
-
import {UFixed} from "../types/UFixed.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 {
|
14
|
-
|
15
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
16
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
|
+
import {UFixed, UFixedLib} from "../types/UFixed.sol";
|
17
17
|
|
18
18
|
|
19
|
-
abstract contract Pool is
|
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
|
-
|
26
|
+
struct PoolStorage {
|
27
|
+
IPoolService _poolService;
|
28
|
+
IBundleService _bundleService;
|
29
|
+
}
|
24
30
|
|
25
|
-
Fee internal _initialPoolFee;
|
26
|
-
Fee internal _initialStakingFee;
|
27
|
-
Fee internal _initialPerformanceFee;
|
28
31
|
|
29
|
-
|
32
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
33
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
34
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
30
38
|
|
31
|
-
// may be used to interact with instance by derived contracts
|
32
|
-
IPoolService internal _poolService;
|
33
|
-
IBundleService private _bundleService;
|
34
39
|
|
35
40
|
modifier onlyPoolService() {
|
36
|
-
|
37
|
-
msg.sender
|
38
|
-
|
41
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
42
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
43
|
+
}
|
39
44
|
_;
|
40
45
|
}
|
41
46
|
|
42
|
-
|
47
|
+
|
48
|
+
function initializePool(
|
43
49
|
address registry,
|
44
50
|
NftId instanceNftId,
|
45
51
|
string memory name,
|
46
|
-
// TODO refactor into tokenNftId
|
47
52
|
address token,
|
48
|
-
bool
|
49
|
-
bool isConfirmingApplication,
|
50
|
-
UFixed collateralizationLevel,
|
51
|
-
Fee memory poolFee,
|
52
|
-
Fee memory stakingFee,
|
53
|
-
Fee memory performanceFee,
|
53
|
+
bool isInterceptingNftTransfers,
|
54
54
|
address initialOwner,
|
55
|
-
bytes memory data
|
56
|
-
)
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
_initialPoolFee = poolFee;
|
63
|
-
_initialStakingFee = stakingFee;
|
64
|
-
_initialPerformanceFee = performanceFee;
|
65
|
-
|
66
|
-
_tokenHandler = new TokenHandler(token);
|
55
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
56
|
+
)
|
57
|
+
public
|
58
|
+
virtual
|
59
|
+
onlyInitializing()
|
60
|
+
{
|
61
|
+
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
67
62
|
|
68
|
-
|
69
|
-
|
63
|
+
PoolStorage storage $ = _getPoolStorage();
|
64
|
+
$._poolService = getInstance().getPoolService();
|
65
|
+
$._bundleService = getInstance().getBundleService();
|
70
66
|
|
71
|
-
|
67
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
72
68
|
}
|
73
69
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
uint256
|
78
|
-
bytes memory filter
|
70
|
+
|
71
|
+
function stake(
|
72
|
+
NftId bundleNftId,
|
73
|
+
uint256 amount
|
79
74
|
)
|
80
|
-
|
81
|
-
virtual
|
82
|
-
|
75
|
+
public
|
76
|
+
virtual
|
77
|
+
restricted()
|
78
|
+
onlyBundleOwner(bundleNftId)
|
83
79
|
{
|
84
|
-
|
85
|
-
bundleNftId = _bundleService.createBundle(
|
86
|
-
owner,
|
87
|
-
fee,
|
88
|
-
initialAmount,
|
89
|
-
lifetime,
|
90
|
-
filter
|
91
|
-
);
|
92
|
-
|
93
|
-
// TODO add logging
|
80
|
+
// TODO add implementation
|
94
81
|
}
|
95
82
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
function underwrite(
|
101
|
-
NftId policyNftId,
|
102
|
-
bytes memory policyData,
|
103
|
-
bytes memory bundleFilter,
|
104
|
-
uint256 collateralizationAmount
|
83
|
+
|
84
|
+
function unstake(
|
85
|
+
NftId bundleNftId,
|
86
|
+
uint256 amount
|
105
87
|
)
|
106
|
-
|
107
|
-
|
108
|
-
|
88
|
+
public
|
89
|
+
virtual
|
90
|
+
restricted()
|
91
|
+
onlyBundleOwner(bundleNftId)
|
109
92
|
{
|
110
|
-
|
93
|
+
// TODO add implementation
|
111
94
|
}
|
112
95
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
function policyMatchesBundle(
|
118
|
-
bytes memory, // policyData
|
119
|
-
bytes memory // bundleFilter
|
96
|
+
|
97
|
+
function extend(
|
98
|
+
NftId bundleNftId,
|
99
|
+
Seconds lifetimeExtension
|
120
100
|
)
|
121
101
|
public
|
122
|
-
|
123
|
-
|
124
|
-
|
102
|
+
virtual
|
103
|
+
restricted()
|
104
|
+
onlyBundleOwner(bundleNftId)
|
125
105
|
{
|
126
|
-
|
106
|
+
// TODO add implementation
|
127
107
|
}
|
128
108
|
|
129
109
|
|
130
|
-
function
|
131
|
-
|
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);
|
132
117
|
}
|
133
118
|
|
134
|
-
|
135
|
-
|
119
|
+
|
120
|
+
function unlockBundle(NftId bundleNftId)
|
121
|
+
public
|
122
|
+
virtual
|
123
|
+
//restricted()
|
124
|
+
onlyBundleOwner(bundleNftId)
|
125
|
+
{
|
126
|
+
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
136
127
|
}
|
137
128
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
onlyOwner
|
145
|
-
override
|
129
|
+
|
130
|
+
function close(NftId bundleNftId)
|
131
|
+
public
|
132
|
+
virtual
|
133
|
+
//restricted()
|
134
|
+
onlyBundleOwner(bundleNftId)
|
146
135
|
{
|
147
|
-
|
136
|
+
_getPoolStorage()._bundleService.close(bundleNftId);
|
148
137
|
}
|
149
138
|
|
139
|
+
|
150
140
|
function setBundleFee(
|
151
141
|
NftId bundleNftId,
|
152
142
|
Fee memory fee
|
153
143
|
)
|
154
|
-
|
155
|
-
|
156
|
-
|
144
|
+
public
|
145
|
+
virtual
|
146
|
+
restricted()
|
147
|
+
onlyBundleOwner(bundleNftId)
|
157
148
|
{
|
158
|
-
_bundleService.
|
149
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
159
150
|
}
|
160
151
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
152
|
+
|
153
|
+
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
154
|
+
public
|
155
|
+
virtual
|
156
|
+
restricted()
|
157
|
+
onlyOwner()
|
167
158
|
{
|
168
|
-
|
159
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
169
160
|
}
|
170
161
|
|
171
|
-
|
172
|
-
|
162
|
+
|
163
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
164
|
+
public
|
165
|
+
virtual
|
166
|
+
restricted()
|
167
|
+
onlyOwner()
|
168
|
+
{
|
169
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
function setFees(
|
174
|
+
Fee memory poolFee,
|
175
|
+
Fee memory stakingFee,
|
176
|
+
Fee memory performanceFee
|
173
177
|
)
|
174
|
-
|
175
|
-
|
176
|
-
|
178
|
+
public
|
179
|
+
virtual
|
180
|
+
restricted()
|
181
|
+
onlyOwner()
|
177
182
|
{
|
178
|
-
|
183
|
+
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
179
184
|
}
|
180
185
|
|
181
|
-
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
182
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
183
|
-
setupInfo = reader.getPoolSetupInfo(getNftId());
|
184
186
|
|
185
|
-
|
186
|
-
|
187
|
-
|
187
|
+
/// @dev see {IPool.verifyApplication}
|
188
|
+
function verifyApplication(
|
189
|
+
NftId applicationNftId,
|
190
|
+
bytes memory applicationData,
|
191
|
+
NftId bundleNftId,
|
192
|
+
bytes memory bundleFilter,
|
193
|
+
uint256 collateralizationAmount
|
194
|
+
)
|
195
|
+
public
|
196
|
+
virtual
|
197
|
+
restricted()
|
198
|
+
{
|
199
|
+
if(!applicationMatchesBundle(
|
200
|
+
applicationNftId,
|
201
|
+
applicationData,
|
202
|
+
bundleNftId,
|
203
|
+
bundleFilter,
|
204
|
+
collateralizationAmount)
|
205
|
+
)
|
206
|
+
{
|
207
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
188
208
|
}
|
189
|
-
}
|
190
209
|
|
191
|
-
|
192
|
-
return ISetup.PoolSetupInfo(
|
193
|
-
getProductNftId(),
|
194
|
-
_tokenHandler,
|
195
|
-
_collateralizationLevel,
|
196
|
-
_initialPoolFee,
|
197
|
-
_initialStakingFee,
|
198
|
-
_initialPerformanceFee,
|
199
|
-
false,
|
200
|
-
_isConfirmingApplication,
|
201
|
-
getWallet()
|
202
|
-
);
|
210
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
203
211
|
}
|
204
212
|
|
205
|
-
// Internals
|
206
213
|
|
207
|
-
|
208
|
-
|
209
|
-
|
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,
|
210
221
|
bytes memory bundleFilter,
|
211
222
|
uint256 collateralizationAmount
|
212
223
|
)
|
213
|
-
|
224
|
+
public
|
225
|
+
view
|
226
|
+
virtual override
|
227
|
+
returns (bool isMatching)
|
214
228
|
{
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
);
|
229
|
+
return true;
|
230
|
+
}
|
231
|
+
|
219
232
|
|
220
|
-
|
233
|
+
function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
|
234
|
+
poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
|
221
235
|
}
|
222
236
|
|
237
|
+
// Internals
|
238
|
+
|
223
239
|
function _createBundle(
|
224
240
|
address bundleOwner,
|
225
241
|
Fee memory fee,
|
226
242
|
uint256 amount,
|
227
|
-
|
228
|
-
bytes
|
243
|
+
Seconds lifetime,
|
244
|
+
bytes memory filter
|
229
245
|
)
|
230
246
|
internal
|
231
247
|
returns(NftId bundleNftId)
|
232
248
|
{
|
233
|
-
bundleNftId = _bundleService.
|
249
|
+
bundleNftId = _getPoolStorage()._bundleService.create(
|
234
250
|
bundleOwner,
|
235
251
|
fee,
|
236
252
|
amount,
|
237
253
|
lifetime,
|
238
|
-
filter
|
239
|
-
|
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
|
+
}
|
240
298
|
}
|
241
299
|
}
|