@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8e4a894-109
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 +178 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +334 -1853
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +480 -2122
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
- 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 +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1569 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2837 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +190 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +76 -158
- 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 +120 -249
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +371 -310
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +743 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +651 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +291 -265
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +227 -174
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +250 -65
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +373 -183
- 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 +233 -210
- 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 +503 -214
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
- 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 +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +485 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +631 -0
- 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/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +636 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +64 -56
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +59 -8
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +141 -158
- 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 +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +344 -85
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +191 -12
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +231 -199
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
- 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/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
- package/contracts/distribution/Distribution.sol +285 -0
- package/contracts/distribution/DistributionService.sol +348 -0
- package/contracts/distribution/DistributionServiceManager.sol +51 -0
- package/contracts/distribution/IDistributionComponent.sol +71 -0
- package/contracts/distribution/IDistributionService.sol +87 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +67 -44
- package/contracts/instance/IInstanceService.sol +73 -0
- package/contracts/instance/Instance.sol +213 -69
- package/contracts/instance/InstanceAccessManager.sol +541 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +368 -0
- package/contracts/instance/InstanceService.sol +308 -0
- package/contracts/instance/InstanceServiceManager.sol +54 -0
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/IKeyValueStore.sol +22 -19
- package/contracts/instance/base/ILifecycle.sol +4 -4
- package/contracts/instance/base/KeyValueStore.sol +61 -54
- package/contracts/instance/base/Lifecycle.sol +28 -8
- package/contracts/instance/base/ObjectManager.sol +82 -0
- package/contracts/instance/module/IAccess.sol +54 -0
- package/contracts/instance/module/IBundle.sol +23 -0
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +77 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/instance/module/ISetup.sol +33 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/pool/BundleService.sol +382 -0
- package/contracts/pool/BundleServiceManager.sol +51 -0
- package/contracts/pool/IBundleService.sol +118 -0
- package/contracts/pool/IPoolComponent.sol +114 -0
- package/contracts/pool/IPoolService.sol +114 -0
- package/contracts/pool/Pool.sol +302 -0
- package/contracts/pool/PoolService.sol +403 -0
- package/contracts/pool/PoolServiceManager.sol +51 -0
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/product/ApplicationServiceManager.sol +35 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +35 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +90 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/product/IProductComponent.sol +41 -0
- package/contracts/product/IProductService.sol +40 -0
- package/contracts/product/PolicyService.sol +376 -0
- package/contracts/product/PolicyServiceManager.sol +54 -0
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/product/Product.sol +375 -0
- package/contracts/product/ProductService.sol +210 -0
- package/contracts/product/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +49 -26
- package/contracts/registry/IRegistry.sol +60 -34
- package/contracts/registry/IRegistryService.sol +53 -16
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +286 -324
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +170 -268
- package/contracts/registry/RegistryServiceManager.sol +60 -0
- package/contracts/registry/ReleaseManager.sol +324 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +271 -0
- package/contracts/shared/ComponentService.sol +150 -0
- package/contracts/shared/ERC165.sol +15 -9
- package/contracts/shared/IComponent.sol +90 -0
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +5 -12
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +18 -0
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/NftOwnable.sol +118 -0
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +112 -58
- package/contracts/shared/Registerable.sol +33 -75
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +72 -0
- package/contracts/shared/TokenHandler.sol +35 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
- package/contracts/shared/Versionable.sol +5 -93
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakeingServiceManager.sol +37 -0
- package/contracts/staking/StakingService.sol +166 -0
- package/contracts/type/Amount.sol +109 -0
- package/contracts/{types → type}/Blocknumber.sol +1 -0
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/{types → type}/Fee.sol +19 -10
- package/contracts/{types → type}/Key32.sol +8 -3
- package/contracts/{types → type}/NftId.sol +8 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/{types → type}/ObjectType.sol +45 -14
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +89 -0
- package/contracts/type/RoleId.sol +97 -0
- package/contracts/type/Seconds.sol +54 -0
- package/contracts/{types → type}/StateId.sol +12 -3
- package/contracts/{types → type}/Timestamp.sol +22 -13
- package/contracts/{types → type}/UFixed.sol +129 -12
- package/contracts/{types → type}/Version.sol +5 -1
- package/package.json +6 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -502
- 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/IB.sol/IB.json +0 -50
- 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/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -393
- 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/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -79
- package/contracts/components/Distribution.sol +0 -155
- package/contracts/components/IBaseComponent.sol +0 -19
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -65
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -246
- package/contracts/components/Product.sol +0 -299
- 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/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/InstanceBase.sol +0 -89
- package/contracts/instance/base/ModuleBase.sol +0 -57
- package/contracts/instance/base/ServiceBase.sol +0 -43
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -134
- package/contracts/instance/module/bundle/IBundle.sol +0 -53
- package/contracts/instance/module/component/ComponentModule.sol +0 -71
- package/contracts/instance/module/component/IComponent.sol +0 -28
- package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
- package/contracts/instance/module/distribution/IDistribution.sol +0 -10
- package/contracts/instance/module/policy/IPolicy.sol +0 -63
- package/contracts/instance/module/policy/PolicyModule.sol +0 -91
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -95
- package/contracts/instance/module/risk/IRisk.sol +0 -26
- package/contracts/instance/module/risk/RiskModule.sol +0 -62
- package/contracts/instance/module/treasury/ITreasury.sol +0 -84
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
- package/contracts/instance/service/ComponentOwnerService.sol +0 -272
- package/contracts/instance/service/DistributionService.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/instance/service/PoolService.sol +0 -149
- package/contracts/instance/service/ProductService.sol +0 -509
- package/contracts/registry/IChainNft.sol +0 -22
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/registry/RegistryInstaller.sol +0 -100
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/test/TestDistribution.sol +0 -22
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestPool.sol +0 -27
- package/contracts/test/TestProduct.sol +0 -74
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -26
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/ReferralId.sol +0 -48
- package/contracts/types/RoleId.sol +0 -38
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
+
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
7
|
+
|
8
|
+
contract RegistryLinked is
|
9
|
+
Initializable,
|
10
|
+
IRegistryLinked
|
11
|
+
{
|
12
|
+
|
13
|
+
IRegistry private _registry;
|
14
|
+
|
15
|
+
/// @dev initialization for upgradable contracts
|
16
|
+
// used in _initializeRegisterable
|
17
|
+
function initializeRegistryLinked(
|
18
|
+
address registryAddress
|
19
|
+
)
|
20
|
+
public
|
21
|
+
virtual
|
22
|
+
onlyInitializing()
|
23
|
+
{
|
24
|
+
if (registryAddress.code.length == 0) {
|
25
|
+
revert ErrorNotRegistry(registryAddress);
|
26
|
+
}
|
27
|
+
|
28
|
+
_registry = IRegistry(registryAddress);
|
29
|
+
|
30
|
+
try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
|
31
|
+
if (!isRegistry) {
|
32
|
+
revert ErrorNotRegistry(registryAddress);
|
33
|
+
}
|
34
|
+
} catch {
|
35
|
+
revert ErrorNotRegistry(registryAddress);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
function getRegistry() public view returns (IRegistry) {
|
41
|
+
return _registry;
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
+
|
7
|
+
import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
8
|
+
import {NftId, zeroNftId} from "../type/NftId.sol";
|
9
|
+
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
10
|
+
|
11
|
+
import {Versionable} from "./Versionable.sol";
|
12
|
+
import {IService} from "./IService.sol";
|
13
|
+
import {IVersionable} from "./IVersionable.sol";
|
14
|
+
import {Versionable} from "./Versionable.sol";
|
15
|
+
import {Registerable} from "./Registerable.sol";
|
16
|
+
|
17
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
18
|
+
|
19
|
+
|
20
|
+
/// @dev service base contract
|
21
|
+
abstract contract Service is
|
22
|
+
Registerable,
|
23
|
+
Versionable,
|
24
|
+
AccessManagedUpgradeable,
|
25
|
+
IService
|
26
|
+
{
|
27
|
+
|
28
|
+
uint8 private constant GIF_MAJOR_VERSION = 3;
|
29
|
+
|
30
|
+
// from Versionable
|
31
|
+
function getVersion()
|
32
|
+
public
|
33
|
+
pure
|
34
|
+
virtual override (IVersionable, Versionable)
|
35
|
+
returns(Version)
|
36
|
+
{
|
37
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
38
|
+
}
|
39
|
+
|
40
|
+
function initializeService(
|
41
|
+
address registry,
|
42
|
+
address authority, // real authority for registry service adress(0) for other services
|
43
|
+
address initialOwner
|
44
|
+
)
|
45
|
+
public
|
46
|
+
virtual
|
47
|
+
onlyInitializing()
|
48
|
+
{
|
49
|
+
initializeRegisterable(
|
50
|
+
registry,
|
51
|
+
IRegistry(registry).getNftId(),
|
52
|
+
SERVICE(),
|
53
|
+
false, // is interceptor
|
54
|
+
initialOwner,
|
55
|
+
""); // data
|
56
|
+
|
57
|
+
// externally provided authority
|
58
|
+
if(authority != address(0)) {
|
59
|
+
__AccessManaged_init(authority);
|
60
|
+
} else {
|
61
|
+
address registryServiceAddress = getRegistry().getServiceAddress(
|
62
|
+
REGISTRY(),
|
63
|
+
VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
64
|
+
|
65
|
+
// copy authority from already registered registry services
|
66
|
+
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
67
|
+
}
|
68
|
+
|
69
|
+
registerInterface(type(IAccessManaged).interfaceId);
|
70
|
+
registerInterface(type(IService).interfaceId);
|
71
|
+
}
|
72
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
6
|
+
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
|
9
|
+
/// @dev token specific transfer helper
|
10
|
+
/// relies internally on oz SafeERC20.safeTransferFrom
|
11
|
+
contract TokenHandler {
|
12
|
+
IERC20Metadata private _token;
|
13
|
+
|
14
|
+
constructor(address token) {
|
15
|
+
_token = IERC20Metadata(token);
|
16
|
+
}
|
17
|
+
|
18
|
+
function transfer(
|
19
|
+
address from,
|
20
|
+
address to,
|
21
|
+
Amount amount
|
22
|
+
)
|
23
|
+
external
|
24
|
+
{
|
25
|
+
SafeERC20.safeTransferFrom(_token, from, to, amount.toInt());
|
26
|
+
}
|
27
|
+
|
28
|
+
function getToken()
|
29
|
+
external
|
30
|
+
view
|
31
|
+
returns (IERC20Metadata)
|
32
|
+
{
|
33
|
+
return _token;
|
34
|
+
}
|
35
|
+
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {ProxyAdmin} from "@
|
5
|
-
import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@
|
4
|
+
import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
|
5
|
+
import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
6
6
|
|
7
7
|
import {IVersionable} from "./IVersionable.sol";
|
8
8
|
|
@@ -1,85 +1,41 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Initializable} from "@
|
5
|
-
|
6
|
-
import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
|
7
|
-
import {Timestamp, blockTimestamp} from "../types/Timestamp.sol";
|
8
|
-
import {Version, VersionPart, VersionLib} from "../types/Version.sol";
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
9
5
|
|
10
6
|
import {IVersionable} from "./IVersionable.sol";
|
11
|
-
|
7
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
12
8
|
|
13
9
|
|
14
10
|
abstract contract Versionable is
|
15
11
|
Initializable,
|
16
12
|
IVersionable
|
17
13
|
{
|
18
|
-
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Versionable.sol")) - 1)) & ~bytes32(uint256(0xff))
|
19
|
-
bytes32 private constant VERSIONABLE_LOCATION_V1 = 0x4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900;
|
20
|
-
|
21
|
-
|
22
|
-
/// @custom:storage-location erc7201:gif-next.contracts.shared.Versionable.sol
|
23
|
-
struct VersionableStorage {
|
24
|
-
mapping(Version version => VersionInfo info) _versionHistory;
|
25
|
-
Version [] _versions;
|
26
|
-
Version _v1;
|
27
|
-
}
|
28
|
-
|
29
|
-
|
30
14
|
constructor() {
|
31
15
|
_disableInitializers();
|
32
16
|
}
|
33
|
-
|
34
|
-
function
|
35
|
-
address implementation,
|
17
|
+
|
18
|
+
function initializeVersionable(
|
36
19
|
address activatedBy,
|
37
20
|
bytes memory data
|
38
21
|
)
|
39
22
|
public
|
40
23
|
initializer
|
41
24
|
{
|
42
|
-
_updateVersionHistory(implementation, activatedBy);
|
43
25
|
_initialize(activatedBy, data);
|
44
26
|
}
|
45
27
|
|
46
|
-
|
47
|
-
function upgrade(
|
48
|
-
address implementation,
|
49
|
-
address activatedBy,
|
28
|
+
function upgradeVersionable(
|
50
29
|
bytes memory data
|
51
30
|
)
|
52
31
|
external
|
53
32
|
reinitializer(VersionLib.toUint64(getVersion()))
|
54
33
|
{
|
55
|
-
_updateVersionHistory(implementation, activatedBy);
|
56
34
|
_upgrade(data);
|
57
35
|
}
|
58
36
|
|
59
|
-
function isInitialized(Version _version) public override view returns(bool) {
|
60
|
-
return _getVersionableStorage()._versionHistory[_version].activatedIn.toInt() > 0;
|
61
|
-
}
|
62
|
-
|
63
37
|
function getVersion() public pure virtual returns(Version);
|
64
38
|
|
65
|
-
function getVersionCount() public view override returns(uint256) {
|
66
|
-
return _getVersionableStorage()._versions.length;
|
67
|
-
}
|
68
|
-
|
69
|
-
function getVersion(uint256 idx) public view override returns(Version) {
|
70
|
-
return _getVersionableStorage()._versions[idx];
|
71
|
-
}
|
72
|
-
|
73
|
-
function getVersionInfo(Version _version) public override view returns(VersionInfo memory) {
|
74
|
-
return _getVersionableStorage()._versionHistory[_version];
|
75
|
-
}
|
76
|
-
|
77
|
-
function getInitializedVersion() public view returns(uint64) {
|
78
|
-
return _getInitializedVersion();
|
79
|
-
}
|
80
|
-
|
81
|
-
|
82
|
-
|
83
39
|
// IMPORTANT each version must implement this function
|
84
40
|
// each implementation MUST use onlyInitialising modifier
|
85
41
|
// each implementation MUST call intializers of all base contracts...
|
@@ -91,7 +47,6 @@ abstract contract Versionable is
|
|
91
47
|
revert();
|
92
48
|
}
|
93
49
|
|
94
|
-
|
95
50
|
// IMPORTANT each version except version "1" must implement this function
|
96
51
|
// each implementation MUST use onlyInitialising modifier
|
97
52
|
function _upgrade(bytes memory data)
|
@@ -101,47 +56,4 @@ abstract contract Versionable is
|
|
101
56
|
{
|
102
57
|
revert();
|
103
58
|
}
|
104
|
-
|
105
|
-
function _getVersionableStorage() private pure returns (VersionableStorage storage $) {
|
106
|
-
assembly {
|
107
|
-
$.slot := VERSIONABLE_LOCATION_V1
|
108
|
-
}
|
109
|
-
}
|
110
|
-
|
111
|
-
// can only be called once per contract
|
112
|
-
// needs to be called inside the proxy upgrade tx
|
113
|
-
// TODO run reinitializer(version().toUint64()) modifier after "version()" is checked,
|
114
|
-
function _updateVersionHistory(
|
115
|
-
address implementation,
|
116
|
-
address activatedBy
|
117
|
-
)
|
118
|
-
private
|
119
|
-
onlyInitializing
|
120
|
-
{
|
121
|
-
VersionableStorage storage $ = _getVersionableStorage();
|
122
|
-
|
123
|
-
uint64 version = _getInitializedVersion();
|
124
|
-
|
125
|
-
Version thisVersion = getVersion();
|
126
|
-
|
127
|
-
if(version == 1) {
|
128
|
-
// thisVersion is alias to version "1"
|
129
|
-
$._v1 = thisVersion;
|
130
|
-
}
|
131
|
-
else {
|
132
|
-
require(thisVersion > $._v1, "INVALID VERSION");
|
133
|
-
}
|
134
|
-
|
135
|
-
// update version history
|
136
|
-
$._versions.push(thisVersion);
|
137
|
-
$._versionHistory[thisVersion] = VersionInfo(
|
138
|
-
thisVersion,
|
139
|
-
implementation,
|
140
|
-
activatedBy,
|
141
|
-
blockTimestamp(),
|
142
|
-
blockNumber()
|
143
|
-
);
|
144
|
-
|
145
|
-
emit LogVersionableInitialized(thisVersion, implementation, activatedBy);
|
146
|
-
}
|
147
59
|
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {IService} from "../shared/IService.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {Seconds} from "../type/Seconds.sol";
|
8
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
9
|
+
|
10
|
+
|
11
|
+
interface IStakingService is IService
|
12
|
+
{
|
13
|
+
/// @dev create a new stake with amount DIP to the specified target
|
14
|
+
/// returns the id of the newly minted stake nft
|
15
|
+
/// permissionless function
|
16
|
+
function create(
|
17
|
+
NftId targetNftId,
|
18
|
+
Amount amount
|
19
|
+
)
|
20
|
+
external
|
21
|
+
returns (
|
22
|
+
NftId stakeNftId
|
23
|
+
);
|
24
|
+
|
25
|
+
/// @dev increase an existing stake by amount DIP
|
26
|
+
/// updates the staking reward amount
|
27
|
+
/// function restricted to the current stake owner
|
28
|
+
function stake(
|
29
|
+
NftId stakeNftId,
|
30
|
+
Amount amount
|
31
|
+
)
|
32
|
+
external;
|
33
|
+
|
34
|
+
/// @dev decrease an existing stake by amount DIP
|
35
|
+
/// updates the staking reward amount
|
36
|
+
/// function restricted to the current stake owner
|
37
|
+
function unstake(
|
38
|
+
NftId stakeNftId,
|
39
|
+
Amount amount
|
40
|
+
)
|
41
|
+
external;
|
42
|
+
|
43
|
+
/// @dev closes the specified stake
|
44
|
+
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
45
|
+
/// function restricted to the current stake owner
|
46
|
+
function close(
|
47
|
+
NftId stakeNftId
|
48
|
+
)
|
49
|
+
external;
|
50
|
+
|
51
|
+
/// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
|
52
|
+
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
53
|
+
/// function restricted to the current stake owner
|
54
|
+
function reStake(
|
55
|
+
NftId stakeNftId,
|
56
|
+
NftId newTargetNftId
|
57
|
+
)
|
58
|
+
external
|
59
|
+
returns (
|
60
|
+
NftId newStakeNftId,
|
61
|
+
Timestamp unlockedAt
|
62
|
+
);
|
63
|
+
|
64
|
+
/// @dev increases the total value locked amount for the specified target by the provided token amount.
|
65
|
+
/// function is called when a new policy is collateralized
|
66
|
+
/// function restricted to the pool service
|
67
|
+
function increaseTotalValueLocked(
|
68
|
+
NftId targetNftId,
|
69
|
+
address token,
|
70
|
+
Amount amount
|
71
|
+
)
|
72
|
+
external
|
73
|
+
returns (Amount totalValueLocked);
|
74
|
+
|
75
|
+
|
76
|
+
/// @dev decreases the total value locked amount for the specified target by the provided token amount.
|
77
|
+
/// function is called when a new policy is closed or payouts are executed
|
78
|
+
/// function restricted to the pool service
|
79
|
+
function decreaseTotalValueLocked(
|
80
|
+
NftId targetNftId,
|
81
|
+
address token,
|
82
|
+
Amount amount
|
83
|
+
)
|
84
|
+
external
|
85
|
+
returns (Amount totalValueLocked);
|
86
|
+
|
87
|
+
/// @dev sends total value locked data to the global staking contract.
|
88
|
+
/// this is done via CCIP (cross chain communication)
|
89
|
+
function sendTotalValueLockedData(
|
90
|
+
NftId targetNftId,
|
91
|
+
address token
|
92
|
+
)
|
93
|
+
external;
|
94
|
+
|
95
|
+
/// @dev receives total value locked data from a staking contract on a different chain.
|
96
|
+
/// this is done via CCIP (cross chain communication)
|
97
|
+
function receiveTotalValueLockedData(
|
98
|
+
NftId targetNftId,
|
99
|
+
address token
|
100
|
+
)
|
101
|
+
external;
|
102
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../shared/ProxyManager.sol";
|
6
|
+
import {StakingService} from "./StakingService.sol";
|
7
|
+
|
8
|
+
contract StakingServiceManager is
|
9
|
+
ProxyManager
|
10
|
+
{
|
11
|
+
|
12
|
+
StakingService private _stakingService;
|
13
|
+
|
14
|
+
/// @dev initializes proxy manager with service implementation
|
15
|
+
constructor(
|
16
|
+
address registryAddress
|
17
|
+
)
|
18
|
+
ProxyManager(registryAddress)
|
19
|
+
{
|
20
|
+
StakingService svc = new StakingService();
|
21
|
+
bytes memory data = abi.encode(registryAddress, address(this));
|
22
|
+
IVersionable versionable = deploy(
|
23
|
+
address(svc),
|
24
|
+
data);
|
25
|
+
|
26
|
+
_stakingService = StakingService(address(versionable));
|
27
|
+
}
|
28
|
+
|
29
|
+
//--- view functions ----------------------------------------------------//
|
30
|
+
function getStakingService()
|
31
|
+
external
|
32
|
+
view
|
33
|
+
returns (StakingService)
|
34
|
+
{
|
35
|
+
return _stakingService;
|
36
|
+
}
|
37
|
+
}
|
@@ -0,0 +1,166 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
6
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
7
|
+
import {IStakingService} from "./IStakingService.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {ObjectType, POOL, STAKE} from "../type/ObjectType.sol";
|
10
|
+
import {Service} from "../shared/Service.sol";
|
11
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
12
|
+
|
13
|
+
|
14
|
+
contract StakingService is
|
15
|
+
Service,
|
16
|
+
IStakingService
|
17
|
+
{
|
18
|
+
// TODO decide and implement string spec for location calculation
|
19
|
+
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.StakingService.sol")) - 1)) & ~bytes32(uint256(0xff));
|
20
|
+
bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
|
21
|
+
|
22
|
+
struct StakingServiceStorage {
|
23
|
+
IPoolService _poolService;
|
24
|
+
}
|
25
|
+
|
26
|
+
function getDomain() public pure override returns(ObjectType) {
|
27
|
+
return STAKE();
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
function create(
|
32
|
+
NftId targetNftId,
|
33
|
+
Amount amount
|
34
|
+
)
|
35
|
+
external
|
36
|
+
virtual
|
37
|
+
returns (
|
38
|
+
NftId stakeNftId
|
39
|
+
)
|
40
|
+
{
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
function stake(
|
46
|
+
NftId stakeNftId,
|
47
|
+
Amount amount
|
48
|
+
)
|
49
|
+
external
|
50
|
+
virtual
|
51
|
+
{
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
function unstake(
|
57
|
+
NftId stakeNftId,
|
58
|
+
Amount amount
|
59
|
+
)
|
60
|
+
external
|
61
|
+
virtual
|
62
|
+
{
|
63
|
+
|
64
|
+
}
|
65
|
+
|
66
|
+
function close(
|
67
|
+
NftId stakeNftId
|
68
|
+
)
|
69
|
+
external
|
70
|
+
virtual
|
71
|
+
{
|
72
|
+
|
73
|
+
}
|
74
|
+
|
75
|
+
function reStake(
|
76
|
+
NftId stakeNftId,
|
77
|
+
NftId newTargetNftId
|
78
|
+
)
|
79
|
+
external
|
80
|
+
virtual
|
81
|
+
returns (
|
82
|
+
NftId newStakeNftId,
|
83
|
+
Timestamp unlockedAt
|
84
|
+
)
|
85
|
+
{
|
86
|
+
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
function increaseTotalValueLocked(
|
91
|
+
NftId targetNftId,
|
92
|
+
address token,
|
93
|
+
Amount amount
|
94
|
+
)
|
95
|
+
external
|
96
|
+
virtual
|
97
|
+
returns (Amount totalValueLocked)
|
98
|
+
{
|
99
|
+
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
function decreaseTotalValueLocked(
|
104
|
+
NftId targetNftId,
|
105
|
+
address token,
|
106
|
+
Amount amount
|
107
|
+
)
|
108
|
+
external
|
109
|
+
virtual
|
110
|
+
returns (Amount totalValueLocked)
|
111
|
+
{
|
112
|
+
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
function sendTotalValueLockedData(
|
117
|
+
NftId targetNftId,
|
118
|
+
address token
|
119
|
+
)
|
120
|
+
external
|
121
|
+
virtual
|
122
|
+
{
|
123
|
+
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
function receiveTotalValueLockedData(
|
128
|
+
NftId targetNftId,
|
129
|
+
address token
|
130
|
+
)
|
131
|
+
external
|
132
|
+
virtual
|
133
|
+
{
|
134
|
+
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
function _initialize(
|
139
|
+
address owner,
|
140
|
+
bytes memory data
|
141
|
+
)
|
142
|
+
internal
|
143
|
+
virtual override
|
144
|
+
initializer()
|
145
|
+
{
|
146
|
+
// TODO check this, might no longer be the way, refactor if necessary
|
147
|
+
address registryAddress;
|
148
|
+
(registryAddress,) = abi.decode(data, (address, address));
|
149
|
+
|
150
|
+
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
151
|
+
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
152
|
+
|
153
|
+
initializeService(registryAddress, address(0), owner);
|
154
|
+
registerInterface(type(IStakingService).interfaceId);
|
155
|
+
}
|
156
|
+
|
157
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
158
|
+
return getRegistry().getServiceAddress(domain, getVersion().toMajorPart());
|
159
|
+
}
|
160
|
+
|
161
|
+
function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
|
162
|
+
assembly {
|
163
|
+
$.slot := STAKING_SERVICE_LOCATION_V1
|
164
|
+
}
|
165
|
+
}
|
166
|
+
}
|