@etherisc/gif-next 0.0.2-ec436bf-674 → 0.0.2-ed1536c-164
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +969 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -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 +454 -554
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +356 -176
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +458 -3052
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +612 -181
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +504 -322
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +524 -352
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +331 -108
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
- 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 +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
- 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/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -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} +294 -361
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +701 -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} +257 -288
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +989 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +140 -86
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -195
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +434 -194
- 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 +429 -261
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +322 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +499 -338
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +320 -140
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1151 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -109
- 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 +890 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +196 -216
- 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 +625 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +699 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +84 -178
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -53
- 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 +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +185 -165
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- 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/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +884 -0
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2002 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +748 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1207 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1690 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -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/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- 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/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- 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/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -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/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -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/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- 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/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +54 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +62 -24
- package/contracts/instance/IInstanceService.sol +66 -13
- package/contracts/instance/Instance.sol +151 -366
- package/contracts/instance/InstanceAccessManager.sol +432 -177
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +143 -83
- package/contracts/instance/InstanceService.sol +309 -124
- package/contracts/instance/InstanceServiceManager.sol +12 -24
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/ObjectManager.sol +82 -0
- package/contracts/instance/module/IAccess.sol +37 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +14 -0
- package/contracts/registry/IRegistry.sol +76 -45
- package/contracts/registry/IRegistryService.sol +51 -16
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +358 -269
- package/contracts/registry/RegistryAccessManager.sol +196 -0
- package/contracts/registry/RegistryService.sol +126 -259
- package/contracts/registry/RegistryServiceManager.sol +34 -42
- package/contracts/registry/ReleaseManager.sol +563 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +300 -57
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +7 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +65 -83
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +45 -23
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +152 -0
- package/contracts/staking/IStakingManager.sol +15 -0
- package/contracts/staking/IStakingService.sol +162 -0
- package/contracts/staking/IStakingStore.sol +130 -0
- package/contracts/staking/StakeManagerLib.sol +156 -0
- package/contracts/staking/Staking.sol +502 -0
- package/contracts/staking/StakingManager.sol +65 -0
- package/contracts/staking/StakingReader.sol +147 -0
- package/contracts/staking/StakingService.sol +375 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +329 -0
- package/contracts/staking/TargetManagerLib.sol +179 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -2
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +71 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -775
- 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/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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -448
- 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 -446
- 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 -855
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- 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 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- 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 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- 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/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.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/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/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- 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/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.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/contracts/components/BaseComponent.sol +0 -91
- package/contracts/components/Distribution.sol +0 -160
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -243
- package/contracts/components/Product.sol +0 -297
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -118
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -44
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -87
- package/contracts/instance/service/DistributionServiceManager.sol +0 -53
- 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 -193
- package/contracts/instance/service/PoolServiceManager.sol +0 -53
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -89
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -3,83 +3,39 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
|
7
|
-
import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
|
8
|
-
import {Version, VersionPart, VersionLib} from "../types/Version.sol";
|
9
|
-
|
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
|
-
TimestampLib.blockTimestamp(),
|
142
|
-
blockNumber()
|
143
|
-
);
|
144
|
-
|
145
|
-
emit LogVersionableInitialized(thisVersion, implementation, activatedBy);
|
146
|
-
}
|
147
59
|
}
|
@@ -0,0 +1,152 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {IComponent} from "../shared/IComponent.sol";
|
6
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
|
+
import {StakingReader} from "./StakingReader.sol";
|
12
|
+
import {StakingStore} from "./StakingStore.sol";
|
13
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
|
+
|
16
|
+
interface IStaking is
|
17
|
+
IComponent,
|
18
|
+
IVersionable
|
19
|
+
{
|
20
|
+
|
21
|
+
// target parameters
|
22
|
+
event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
|
23
|
+
event LogStakingRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
24
|
+
|
25
|
+
// modifiers
|
26
|
+
error ErrorStakingNotStake(NftId stakeNftId);
|
27
|
+
error ErrorStakingNotTarget(NftId targetNftId);
|
28
|
+
|
29
|
+
error ErrorStakingNotStakingOwner();
|
30
|
+
error ErrorStakingNotNftOwner(NftId nftId);
|
31
|
+
|
32
|
+
// check dip balance and allowance
|
33
|
+
error ErrorStakingDipBalanceInsufficient(address owner, uint256 amount, uint256 dipBalance);
|
34
|
+
error ErrorStakingDipAllowanceInsufficient(address owner, address tokenHandler, uint256 amount, uint256 dipAllowance);
|
35
|
+
|
36
|
+
error ErrorStakingStakingReaderStakingMismatch(address stakingByStakingReader);
|
37
|
+
error ErrorStakingTargetAlreadyRegistered(NftId targetNftId);
|
38
|
+
error ErrorStakingTargetNftIdZero();
|
39
|
+
error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
|
40
|
+
error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
|
41
|
+
error ErrorStakingLockingPeriodZero(NftId targetNftId);
|
42
|
+
error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
|
43
|
+
error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
|
44
|
+
error ErrorStakingTargetNotFound(NftId targetNftId);
|
45
|
+
error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
|
46
|
+
|
47
|
+
error ErrorStakingTargetNotActive(NftId targetNftId);
|
48
|
+
error ErrorStakingStakeAmountZero(NftId targetNftId);
|
49
|
+
|
50
|
+
// info for individual stake
|
51
|
+
struct StakeInfo {
|
52
|
+
Timestamp lockedUntil;
|
53
|
+
}
|
54
|
+
|
55
|
+
struct TargetInfo {
|
56
|
+
ObjectType objectType;
|
57
|
+
uint256 chainId;
|
58
|
+
Seconds lockingPeriod;
|
59
|
+
UFixed rewardRate;
|
60
|
+
}
|
61
|
+
|
62
|
+
// rate management
|
63
|
+
function setStakingRate(uint256 chainId, address token, UFixed stakingRate) external;
|
64
|
+
|
65
|
+
|
66
|
+
// target management
|
67
|
+
|
68
|
+
function registerTarget(
|
69
|
+
NftId targetNftId,
|
70
|
+
ObjectType expectedObjectType,
|
71
|
+
uint256 chainId,
|
72
|
+
Seconds initialLockingPeriod,
|
73
|
+
UFixed initialRewardRate
|
74
|
+
) external;
|
75
|
+
|
76
|
+
/// @dev set the stake locking period to the specified duration.
|
77
|
+
function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
|
78
|
+
|
79
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
|
80
|
+
function refillRewardReserves(NftId targetNftId, Amount dipAmount) external;
|
81
|
+
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external;
|
82
|
+
|
83
|
+
function increaseTvl(NftId targetNftId, address token, Amount amount) external;
|
84
|
+
function decreaseTvl(NftId targetNftId, address token, Amount amount) external;
|
85
|
+
|
86
|
+
function updateRemoteTvl(NftId targetNftId, address token, Amount amount) external;
|
87
|
+
|
88
|
+
// staking functions
|
89
|
+
|
90
|
+
/// @dev register a new stake info object
|
91
|
+
/// permissioned: only staking service may call this function.
|
92
|
+
function registerStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
|
93
|
+
|
94
|
+
/// @dev increase the staked dip by dipAmount for the specified stake
|
95
|
+
function stake(NftId stakeNftId, Amount dipAmount) external;
|
96
|
+
|
97
|
+
/// @dev restakes the dips to a new target.
|
98
|
+
/// the sum of the staked dips and the accumulated rewards will be restaked.
|
99
|
+
/// permissioned: only staking service may call this function.
|
100
|
+
function restake(NftId stakeNftId) external;
|
101
|
+
|
102
|
+
/// @dev retuns the specified amount of dips to the holder of the specified stake nft.
|
103
|
+
/// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
|
104
|
+
/// permissioned: only staking service may call this function.
|
105
|
+
function unstake(NftId stakeNftId)
|
106
|
+
external
|
107
|
+
returns (
|
108
|
+
Amount unstakedAmount,
|
109
|
+
Amount rewardsClaimedAmount
|
110
|
+
);
|
111
|
+
|
112
|
+
/// @dev update stake rewards for current time.
|
113
|
+
/// may be called before an announement of a decrease of a reward rate reduction.
|
114
|
+
/// calling this functions ensures that reward balance is updated using the current (higher) reward rate.
|
115
|
+
/// unpermissioned.
|
116
|
+
function updateRewards(NftId stakeNftId) external;
|
117
|
+
|
118
|
+
/// @dev transfers all rewards accumulated so far to the holder of the specified stake nft.
|
119
|
+
/// permissioned: only staking service may call this function.
|
120
|
+
function claimRewards(NftId stakeNftId)
|
121
|
+
external
|
122
|
+
returns (
|
123
|
+
Amount rewardsClaimedAmount
|
124
|
+
);
|
125
|
+
|
126
|
+
//--- helper functions --------------------------------------------------//
|
127
|
+
|
128
|
+
/// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
129
|
+
function collectDipAmount(address from, Amount dipAmount) external;
|
130
|
+
|
131
|
+
/// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
132
|
+
function transferDipAmount(address to, Amount dipAmount) external;
|
133
|
+
|
134
|
+
//--- view and pure functions -------------------------------------------//
|
135
|
+
|
136
|
+
function getStakingStore() external view returns (StakingStore stakingStore);
|
137
|
+
function getStakingReader() external view returns (StakingReader reader);
|
138
|
+
|
139
|
+
// function getStakeInfo(NftId stakeNftId) external view returns (StakeInfo memory stakeInfo);
|
140
|
+
// function getTargetInfo(NftId targetNftId) external view returns (TargetInfo memory targetInfo);
|
141
|
+
|
142
|
+
function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount);
|
143
|
+
function getStakedAmount(NftId targetNftId) external view returns (Amount stakeAmount);
|
144
|
+
|
145
|
+
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate);
|
146
|
+
|
147
|
+
function calculateRewardIncrementAmount(
|
148
|
+
NftId targetNftId,
|
149
|
+
Timestamp rewardsLastUpdatedAt
|
150
|
+
) external view returns (Amount rewardIncrementAmount);
|
151
|
+
|
152
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
interface IStakingManager {
|
5
|
+
|
6
|
+
/// @dev initializes staking manager with authority of registry access manager.
|
7
|
+
function initialize(
|
8
|
+
address authority
|
9
|
+
)
|
10
|
+
external;
|
11
|
+
|
12
|
+
|
13
|
+
function getStakingAddress() external view returns (address staking);
|
14
|
+
|
15
|
+
}
|
@@ -0,0 +1,162 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {IStaking} from "./IStaking.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
11
|
+
import {Seconds} from "../type/Seconds.sol";
|
12
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
13
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
|
+
|
16
|
+
|
17
|
+
interface IStakingService is IService
|
18
|
+
{
|
19
|
+
|
20
|
+
event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
|
21
|
+
event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
|
22
|
+
event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
|
23
|
+
event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
24
|
+
|
25
|
+
event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
|
26
|
+
event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount);
|
27
|
+
event LogStakingServiceRewardsUpdated(NftId stakeNftId);
|
28
|
+
|
29
|
+
// modifiers
|
30
|
+
error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
|
31
|
+
error ErrorStakingServiceNotStaking(address stakingAddress);
|
32
|
+
error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
|
33
|
+
|
34
|
+
// create
|
35
|
+
error ErrorStakingServiceZeroTargetNftId();
|
36
|
+
error ErrorStakingServiceNotTargetNftId(NftId targetNftId);
|
37
|
+
error ErrorStakingServiceNotActiveTargetNftId(NftId targetNftId);
|
38
|
+
error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
|
39
|
+
error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
|
40
|
+
|
41
|
+
/// @dev creates/registers an on-chain instance staking target.
|
42
|
+
/// function granted to instance service
|
43
|
+
function createInstanceTarget(
|
44
|
+
NftId targetNftId,
|
45
|
+
Seconds initialLockingPeriod,
|
46
|
+
UFixed initialRewardRate
|
47
|
+
) external;
|
48
|
+
|
49
|
+
/// @dev set the stake locking period to the specified duration.
|
50
|
+
/// permissioned: only the owner of the specified target may set the locking period
|
51
|
+
function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
|
52
|
+
|
53
|
+
/// @dev set the reward rate to the specified value
|
54
|
+
/// permissioned: only the owner of the specified target may set the locking period
|
55
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
|
56
|
+
|
57
|
+
/// @dev create a new stake with amount DIP to the specified target
|
58
|
+
/// returns the id of the newly minted stake nft
|
59
|
+
/// permissionless function
|
60
|
+
function create(
|
61
|
+
NftId targetNftId,
|
62
|
+
Amount amount
|
63
|
+
)
|
64
|
+
external
|
65
|
+
returns (
|
66
|
+
NftId stakeNftId
|
67
|
+
);
|
68
|
+
|
69
|
+
|
70
|
+
/// @dev increase an existing stake by amount DIP
|
71
|
+
/// updates the staking reward amount
|
72
|
+
/// function restricted to the current stake owner
|
73
|
+
function stake(
|
74
|
+
NftId stakeNftId,
|
75
|
+
Amount amount
|
76
|
+
)
|
77
|
+
external;
|
78
|
+
|
79
|
+
|
80
|
+
/// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
|
81
|
+
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
82
|
+
/// function restricted to the current stake owner
|
83
|
+
function restake(
|
84
|
+
NftId stakeNftId
|
85
|
+
)
|
86
|
+
external;
|
87
|
+
|
88
|
+
|
89
|
+
/// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
|
90
|
+
/// all related stakes and all accumulated reward DIP are transferred to the current stake holder
|
91
|
+
/// function restricted to the current stake owner
|
92
|
+
function restakeToNewTarget(
|
93
|
+
NftId stakeNftId,
|
94
|
+
NftId newTargetNftId
|
95
|
+
)
|
96
|
+
external
|
97
|
+
returns (
|
98
|
+
NftId newStakeNftId
|
99
|
+
);
|
100
|
+
|
101
|
+
|
102
|
+
/// @dev decrease an existing stake by amount DIP
|
103
|
+
/// updates the staking reward amount
|
104
|
+
/// function restricted to the current stake owner
|
105
|
+
function unstake(
|
106
|
+
NftId stakeNftId,
|
107
|
+
Amount amount
|
108
|
+
)
|
109
|
+
external;
|
110
|
+
|
111
|
+
/// @dev updates the reward balance of the stake using the current reward rate.
|
112
|
+
function updateRewards(
|
113
|
+
NftId stakeNftId
|
114
|
+
)
|
115
|
+
external;
|
116
|
+
|
117
|
+
|
118
|
+
/// @dev increases the total value locked amount for the specified target by the provided token amount.
|
119
|
+
/// function is called when a new policy is collateralized
|
120
|
+
/// function restricted to the pool service
|
121
|
+
function increaseTotalValueLocked(
|
122
|
+
NftId targetNftId,
|
123
|
+
address token,
|
124
|
+
Amount amount
|
125
|
+
)
|
126
|
+
external
|
127
|
+
returns (Amount totalValueLocked);
|
128
|
+
|
129
|
+
|
130
|
+
/// @dev decreases the total value locked amount for the specified target by the provided token amount.
|
131
|
+
/// function is called when a new policy is closed or payouts are executed
|
132
|
+
/// function restricted to the pool service
|
133
|
+
function decreaseTotalValueLocked(
|
134
|
+
NftId targetNftId,
|
135
|
+
address token,
|
136
|
+
Amount amount
|
137
|
+
)
|
138
|
+
external
|
139
|
+
returns (Amount totalValueLocked);
|
140
|
+
|
141
|
+
|
142
|
+
/// @dev sets total value locked data for a target contract on a different chain.
|
143
|
+
/// this is done via CCIP (cross chain communication)
|
144
|
+
function setTotalValueLocked(
|
145
|
+
NftId targetNftId,
|
146
|
+
address token,
|
147
|
+
Amount amount
|
148
|
+
)
|
149
|
+
external;
|
150
|
+
|
151
|
+
function getDipToken()
|
152
|
+
external
|
153
|
+
returns (IERC20Metadata dip);
|
154
|
+
|
155
|
+
function getTokenHandler()
|
156
|
+
external
|
157
|
+
returns (TokenHandler tokenHandler);
|
158
|
+
|
159
|
+
function getStaking()
|
160
|
+
external
|
161
|
+
returns (IStaking staking);
|
162
|
+
}
|
@@ -0,0 +1,130 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
|
+
|
6
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
+
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
8
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
9
|
+
import {Component} from "../shared/Component.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
|
+
import {IStaking} from "./IStaking.sol";
|
13
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
14
|
+
import {Key32} from "../type/Key32.sol";
|
15
|
+
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
16
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
17
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
18
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
+
import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
20
|
+
import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
|
21
|
+
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
22
|
+
import {StakingReader} from "./StakingReader.sol";
|
23
|
+
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
24
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
25
|
+
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
26
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
27
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
+
import {Versionable} from "../shared/Versionable.sol";
|
29
|
+
|
30
|
+
|
31
|
+
interface IStakingStore {
|
32
|
+
|
33
|
+
// event LogStakingStoreStakesIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
34
|
+
// event LogStakingStoreStakesDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
35
|
+
|
36
|
+
// event LogStakingStoreRewardsIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
37
|
+
// event LogStakingStoreRewardsDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
38
|
+
|
39
|
+
// event LogStakingStoreRewardsRestaked(NftId nftId, Amount amount, Amount rewardAmount, Amount rewardIncrementAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
40
|
+
|
41
|
+
// // creating and updating of balance
|
42
|
+
// error ErrorStakingStoreBalanceAlreadyInitialized(NftId nftId);
|
43
|
+
// error ErrorStakingStoreBalanceNotInitialized(NftId nftId);
|
44
|
+
|
45
|
+
//--- target specific functions ------------------------------------//
|
46
|
+
|
47
|
+
function createTarget(
|
48
|
+
NftId targetNftId,
|
49
|
+
IStaking.TargetInfo memory targetInfo
|
50
|
+
)
|
51
|
+
external;
|
52
|
+
|
53
|
+
|
54
|
+
function updateTarget(
|
55
|
+
NftId targetNftId,
|
56
|
+
IStaking.TargetInfo memory targetInfo
|
57
|
+
)
|
58
|
+
external;
|
59
|
+
|
60
|
+
//--- stake specific functions -------------------------------------//
|
61
|
+
|
62
|
+
function create(
|
63
|
+
NftId stakeNftId,
|
64
|
+
IStaking.StakeInfo memory stakeInfo,
|
65
|
+
Amount stakeAmount
|
66
|
+
)
|
67
|
+
external;
|
68
|
+
|
69
|
+
function update(
|
70
|
+
NftId stakeNftId,
|
71
|
+
IStaking.StakeInfo memory stakeInfo
|
72
|
+
)
|
73
|
+
external;
|
74
|
+
|
75
|
+
//--- general functions --------------------------------------------//
|
76
|
+
|
77
|
+
|
78
|
+
function increaseBalance(NftId nftId, Amount amount, Amount rewardIncrementAmount)
|
79
|
+
external;
|
80
|
+
|
81
|
+
|
82
|
+
function restakeRewards(
|
83
|
+
NftId nftId,
|
84
|
+
Amount rewardIncrementAmount
|
85
|
+
)
|
86
|
+
external;
|
87
|
+
|
88
|
+
|
89
|
+
function updateRewards(
|
90
|
+
NftId nftId,
|
91
|
+
Amount rewardIncrementAmount
|
92
|
+
)
|
93
|
+
external;
|
94
|
+
|
95
|
+
|
96
|
+
function claimUpTo(
|
97
|
+
NftId nftId,
|
98
|
+
Amount maxRewardAmount
|
99
|
+
)
|
100
|
+
external
|
101
|
+
returns (Amount rewardsClaimedAmount);
|
102
|
+
|
103
|
+
|
104
|
+
function unstakeUpTo(
|
105
|
+
NftId nftId,
|
106
|
+
Amount maxUnstakeAmount,
|
107
|
+
Amount maxClaimAmount
|
108
|
+
)
|
109
|
+
external
|
110
|
+
returns (
|
111
|
+
Amount unstakedAmount,
|
112
|
+
Amount claimedAmount
|
113
|
+
);
|
114
|
+
|
115
|
+
//--- view functions -----------------------------------------------//
|
116
|
+
|
117
|
+
function getTargetManager() external view returns (NftIdSetManager targetManager);
|
118
|
+
|
119
|
+
function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount);
|
120
|
+
function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount);
|
121
|
+
function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt);
|
122
|
+
|
123
|
+
function getBalanceAndLastUpdatedAt(NftId nftId)
|
124
|
+
external
|
125
|
+
view
|
126
|
+
returns (
|
127
|
+
Amount stakeBalance,
|
128
|
+
Timestamp lastUpdatedAt
|
129
|
+
);
|
130
|
+
}
|