Kind Realm (renderable)
Name staker
Namespace gnoswap
Exported functions 102
Module gno.land/r/gnoswap/staker
gno 0.9 types.gno gno
⧉
1 package staker 2 3 import ( 4 u256 "gno.land/p/gnoswap/uint256/v1" 5 rotree "gno.land/p/nt/bptree/rotree/v0" 6 bptree "gno.land/p/nt/bptree/v0" 7 ) 8 AddToken (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, tokenPath string)
CancelExternalIncentive (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, targetPoolPath string, incentiveId string)
ChangePoolTier (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, poolPath string, tier uint64)
CollectableEmissionReward (positionId uint64) (int64, interface {Error func() string})
CollectableExternalIncentiveReward (positionId uint64, incentiveId string) (int64, interface {Error func() string})
CollectEmissionReward (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, positionId uint64) (int64, int64)
CollectExternalIncentivePenalty (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, targetPoolPath string, incentiveId string, refundAddress string) int64
CollectExternalIncentiveReward (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, positionId uint64, incentiveId string) (int64, int64)
CollectReward (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, positionId uint64) (string, string, map[string]int64, map[string]int64)
CreateExternalIncentive (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, targetPoolPath string, rewardToken string, rewardAmount int64, startTimestamp int64, endTimestamp int64)
DefaultAllowedTokens () []string
DefaultWarmupTemplate () []gno.land/r/gnoswap/staker.Warmup
EndExternalIncentive (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, targetPoolPath string, incentiveId string, refundAddress string)
GetAllowedTokens () []string
GetCreatedHeightOfIncentive (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetDeniedRewardTokens () []string
GetDeposit (lpTokenId uint64) (*gno.land/r/gnoswap/staker.Deposit, interface {Error func() string})
GetDepositCollectedExternalReward (lpTokenId uint64, incentiveId string) (int64, interface {Error func() string})
GetDepositCollectedInternalReward (lpTokenId uint64) (int64, interface {Error func() string})
GetDepositExternalIncentiveIdList (lpTokenId uint64) ([]string, interface {Error func() string})
GetDepositExternalRewardLastCollectTimestamp (lpTokenId uint64, incentiveId string) (int64, interface {Error func() string})
GetDepositGnsAmount () int64
GetDepositInternalRewardLastCollectTimestamp (lpTokenId uint64) (int64, interface {Error func() string})
GetDepositLiquidity (lpTokenId uint64) (*gno.land/p/gnoswap/uint256/v1.Uint, interface {Error func() string})
GetDepositLiquidityAsString (lpTokenId uint64) (string, interface {Error func() string})
GetDepositOwner (lpTokenId uint64) (string, interface {Error func() string})
GetDepositStakeTime (lpTokenId uint64) (int64, interface {Error func() string})
GetDepositTargetPoolPath (lpTokenId uint64) (string, interface {Error func() string})
GetDepositTickLower (lpTokenId uint64) (int32, interface {Error func() string})
GetDepositTickUpper (lpTokenId uint64) (int32, interface {Error func() string})
GetDepositWarmUp (lpTokenId uint64) ([]gno.land/r/gnoswap/staker.Warmup, interface {Error func() string})
GetExternalIncentiveByPoolPath (poolPath string) ([]gno.land/r/gnoswap/staker.ExternalIncentive, interface {Error func() string})
GetImplementationPackagePath () string
GetIncentiveAccumulatedPenaltyAmount (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveCreatedTimestamp (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveCreator (poolPath string, incentiveId string) (string, interface {Error func() string})
GetIncentiveDepositGnsAmount (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveDistributedRewardAmount (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveEndTimestamp (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveRefunded (poolPath string, incentiveId string) (bool, interface {Error func() string})
GetIncentiveRemainingRewardAmount (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveRewardAmount (poolPath string, incentiveId string) (*gno.land/p/gnoswap/uint256/v1.Uint, interface {Error func() string})
GetIncentiveRewardAmountAsString (poolPath string, incentiveId string) (string, interface {Error func() string})
GetIncentiveRewardPerSecondX128 (poolPath string, incentiveId string) (*gno.land/p/gnoswap/uint256/v1.Uint, interface {Error func() string})
GetIncentiveRewardToken (poolPath string, incentiveId string) (string, interface {Error func() string})
GetIncentiveStartTimestamp (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetIncentiveTotalRewardAmount (poolPath string, incentiveId string) (int64, interface {Error func() string})
GetMinimumRewardAmount () int64
GetMinimumRewardAmountForToken (tokenPath string) int64
GetPendingProtocolFees () map[string]int64
GetPool (poolPath string) (*gno.land/r/gnoswap/staker.Pool, interface {Error func() string})
GetPoolGlobalRewardRatioAccumulations (poolPath string) *gno.land/p/nt/bptree/rotree/v0.ReadOnlyTree
GetPoolHistoricalTicks (poolPath string) *gno.land/p/nt/bptree/rotree/v0.ReadOnlyTree
GetPoolIncentives (poolPath string) *gno.land/p/nt/bptree/rotree/v0.ReadOnlyTree
GetPoolReward (tier uint64) (int64, interface {Error func() string})
GetPoolRewardCaches (poolPath string) *gno.land/p/nt/bptree/rotree/v0.ReadOnlyTree
GetPoolsByTier (tier uint64) ([]string, interface {Error func() string})
GetPoolStakedLiquidity (poolPath string) (string, interface {Error func() string})
GetPoolTier (poolPath string) uint64
GetPoolTierCount (tier uint64) uint64
GetPoolTierRatio (poolPath string) (uint64, interface {Error func() string})
GetSpecificTokenMinimumRewardAmount (tokenPath string) (int64, bool)
GetTargetPoolPathByIncentiveId (poolPath string, incentiveId string) (string, interface {Error func() string})
GetTotalEmissionSent () int64
GetUncollectedIncentiveCount (incentiveId string) int64
GetUnstakedPositionExitTime (positionId uint64) (int64, interface {Error func() string})
GetUnstakedPositionPendingIncentives (positionId uint64) ([]string, interface {Error func() string})
GetUnstakingFee () uint64
GetWarmupTemplate () []gno.land/r/gnoswap/staker.Warmup
HasUnstakedPosition (positionId uint64) bool
IsIncentiveActive (poolPath string, incentiveId string) (bool, interface {Error func() string})
IsStaked (positionId uint64) bool
NewBPTreeN (fanout int) *gno.land/p/nt/bptree/v0.BPTree
NewCounter () *gno.land/r/gnoswap/staker.Counter
NewDeposit (owner string, targetPoolPath string, liquidity *gno.land/p/gnoswap/uint256/v1.Uint, currentTime int64, tickLower int32, tickUpper int32, warmups []gno.land/r/gnoswap/staker.Warmup) *gno.land/r/gnoswap/staker.Deposit
NewExternalIncentive (incentiveId string, targetPoolPath string, rewardToken string, rewardAmount int64, startTimestamp int64, endTimestamp int64, creator string, depositGnsAmount int64, createdHeight int64, currentTime int64) *gno.land/r/gnoswap/staker.ExternalIncentive
NewIncentives (targetPoolPath string) *gno.land/r/gnoswap/staker.Incentives
NewPool (poolPath string, currentTime int64) *gno.land/r/gnoswap/staker.Pool
NewStakerStore (kvStore interface {AddAuthorizedCaller func(int, .uverse.realm, .uverse.address, gno.land/p/gnoswap/store/v1.Permission) .uverse.error; Delete func(int, .uverse.realm, string) .uverse.error; Get func(string) (interface {}, .uverse.error); GetAddress func(string) (.uverse.address, .uverse.error); GetAllKeys func() ([]string, .uverse.error); GetAuthorizedCallers func() (map[.uverse.address]gno.land/p/gnoswap/store/v1.Permission, .uverse.error); GetBPTree func(string) (*gno.land/p/nt/bptree/v0.BPTree, .uverse.error); GetBool func(string) (bool, .uverse.error); GetDomainAddress func() .uverse.address; GetInt64 func(string) (int64, .uverse.error); GetString func(string) (string, .uverse.error); GetUint64 func(string) (uint64, .uverse.error); Has func(string) bool; IsWriteAuthorized func(.uverse.address) bool; RemoveAuthorizedCaller func(int, .uverse.realm, .uverse.address) .uverse.error; Set func(int, .uverse.realm, string, interface {}) .uverse.error; UpdateAuthorizedCaller func(int, .uverse.realm, .uverse.address, gno.land/p/gnoswap/store/v1.Permission) .uverse.error}) interface {AddAllowedToken func(int, .uverse.realm, string) .uverse.error; AddDeniedRewardToken func(int, .uverse.realm, string) .uverse.error; GetAllowedTokens func() []string; GetCurrentSwapBatch func() *gno.land/r/gnoswap/staker.SwapBatchProcessor; GetDeniedRewardTokens func() []string; GetDepositGnsAmount func() int64; GetDeposits func() *gno.land/p/nt/bptree/v0.BPTree; GetExternalIncentives func() *gno.land/p/nt/bptree/v0.BPTree; GetIncentiveCounter func() *gno.land/r/gnoswap/staker.Counter; GetMinimumRewardAmount func() int64; GetPendingProtocolFee func(string) int64; GetPendingProtocolFees func() map[string]int64; GetPoolTierCounts func() [4]uint64; GetPoolTierCurrentEmission func() int64; GetPoolTierGetEmission func() func() (int64, .uverse.error); GetPoolTierGetHalvingBlocksInRange func() func(int64, int64) ([]int64, []int64, .uverse.error); GetPoolTierLastRewardCacheTimestamp func() int64; GetPoolTierMemberships func() *gno.land/p/nt/bptree/v0.BPTree; GetPoolTierRatio func() gno.land/r/gnoswap/staker.TierRatio; GetPools func() *gno.land/p/nt/bptree/v0.BPTree; GetTokenSpecificMinimumRewards func() map[string]int64; GetTotalEmissionSent func() int64; GetUncollectedIncentiveCounts func() *gno.land/p/nt/bptree/v0.BPTree; GetUnstakedPositions func() *gno.land/p/nt/bptree/v0.BPTree; GetUnstakingFee func() uint64; GetWarmupTemplate func() []gno.land/r/gnoswap/staker.Warmup; HasAllowedTokensStoreKey func() bool; HasCurrentSwapBatchStoreKey func() bool; HasDeniedRewardTokensStoreKey func() bool; HasDepositGnsAmountStoreKey func() bool; HasDepositsStoreKey func() bool; HasExternalIncentivesStoreKey func() bool; HasIncentiveCounterStoreKey func() bool; HasMinimumRewardAmountStoreKey func() bool; HasPendingProtocolFeesStoreKey func() bool; HasPoolTierCountsStoreKey func() bool; HasPoolTierCurrentEmissionStoreKey func() bool; HasPoolTierGetEmissionStoreKey func() bool; HasPoolTierGetHalvingBlocksInRangeStoreKey func() bool; HasPoolTierLastRewardCacheTimestampStoreKey func() bool; HasPoolTierMembershipsStoreKey func() bool; HasPoolTierRatioStoreKey func() bool; HasPoolsStoreKey func() bool; HasTokenSpecificMinimumRewardsStoreKey func() bool; HasTotalEmissionSentStoreKey func() bool; HasUncollectedIncentiveCountsStoreKey func() bool; HasUnstakedPositionsStoreKey func() bool; HasUnstakingFeeStoreKey func() bool; HasWarmupTemplateStoreKey func() bool; NextIncentiveID func(.uverse.address, int64) string; RemoveAllowedToken func(int, .uverse.realm, string) .uverse.error; RemoveDeniedRewardToken func(int, .uverse.realm, string) .uverse.error; RemovePendingProtocolFee func(int, .uverse.realm, string) .uverse.error; RemoveTokenSpecificMinimumRewardItem func(int, .uverse.realm, string) .uverse.error; SetAllowedTokens func(int, .uverse.realm, []string) .uverse.error; SetCurrentSwapBatch func(int, .uverse.realm, *gno.land/r/gnoswap/staker.SwapBatchProcessor) .uverse.error; SetDepositGnsAmount func(int, .uverse.realm, int64) .uverse.error; SetDeposits func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error; SetExternalIncentives func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error; SetIncentiveCounter func(int, .uverse.realm, *gno.land/r/gnoswap/staker.Counter) .uverse.error; SetMinimumRewardAmount func(int, .uverse.realm, int64) .uverse.error; SetPendingProtocolFee func(int, .uverse.realm, string, int64) .uverse.error; SetPendingProtocolFees func(int, .uverse.realm, map[string]int64) .uverse.error; SetPoolTierCounts func(int, .uverse.realm, [4]uint64) .uverse.error; SetPoolTierCurrentEmission func(int, .uverse.realm, int64) .uverse.error; SetPoolTierGetEmission func(int, .uverse.realm, func() (int64, .uverse.error)) .uverse.error; SetPoolTierGetHalvingBlocksInRange func(int, .uverse.realm, func(int64, int64) ([]int64, []int64, .uverse.error)) .uverse.error; SetPoolTierLastRewardCacheTimestamp func(int, .uverse.realm, int64) .uverse.error; SetPoolTierMemberships func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error; SetPoolTierRatio func(int, .uverse.realm, gno.land/r/gnoswap/staker.TierRatio) .uverse.error; SetPools func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error; SetTokenSpecificMinimumRewardItem func(int, .uverse.realm, string, int64) .uverse.error; SetTokenSpecificMinimumRewards func(int, .uverse.realm, map[string]int64) .uverse.error; SetTotalEmissionSent func(int, .uverse.realm, int64) .uverse.error; SetUncollectedIncentiveCounts func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error; SetUnstakedPositions func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error; SetUnstakingFee func(int, .uverse.realm, uint64) .uverse.error; SetWarmupTemplate func(int, .uverse.realm, []gno.land/r/gnoswap/staker.Warmup) .uverse.error}
NewSwapBatchProcessor (poolPath string, pool *gno.land/r/gnoswap/staker.Pool, timestamp int64) *gno.land/r/gnoswap/staker.SwapBatchProcessor
NewSwapTickCross (tickID int32, zeroForOne bool, delta *gno.land/p/gnoswap/int256/v1.Int) *gno.land/r/gnoswap/staker.SwapTickCross
NewTick (tickId int32) *gno.land/r/gnoswap/staker.Tick
NewTicks () struct{tree *gno.land/p/nt/bptree/v0.BPTree}
NewTierRatio (tier1 uint64, tier2 uint64, tier3 uint64) struct{Tier1 uint64; Tier2 uint64; Tier3 uint64}
NewUintTree () *gno.land/r/gnoswap/staker.UintTree
NewUintTreeN (fanout int) *gno.land/r/gnoswap/staker.UintTree
NewUnstakedPosition (deposit *gno.land/r/gnoswap/staker.Deposit, exitTime int64, exitTick int32, lowerTick *gno.land/r/gnoswap/staker.Tick, upperTick *gno.land/r/gnoswap/staker.Tick, lowerOutsideAcc string, upperOutsideAcc string, tier uint64, tierRatio uint64, tierCount uint64, unstakingFee uint64, pendingIncentiveIds []string) *gno.land/r/gnoswap/staker.UnstakedPosition
NewWarmup (timeDuration int64, nextWarmupTime int64, warmupRatio uint64) struct{TimeDuration int64; NextWarmupTime int64; WarmupRatio uint64}
RegisterInitializer (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, initializer func(int, .uverse.realm, gno.land/r/gnoswap/staker.IStakerStore, gno.land/r/gnoswap/staker.PoolAccessor, gno.land/r/gnoswap/staker.EmissionAccessor, gno.land/r/gnoswap/staker.NFTAccessor) gno.land/r/gnoswap/staker.IStaker)
RemovePoolTier (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, poolPath string)
RemoveToken (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, tokenPath string)
Render (path string) string
SetDeniedRewardToken (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, tokenPath string, denied bool)
SetDepositGnsAmount (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, amount int64)
SetMinimumRewardAmount (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, amount int64)
SetPoolTier (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, poolPath string, tier uint64)
SetTokenMinimumRewardAmount (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, paramsStr string)
SetUnStakingFee (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, fee uint64)
SetWarmUp (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, pct int64, timeDuration int64)
StakeToken (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, positionId uint64, referrer string) string
UnStakeToken (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, positionId uint64) string
UpgradeImpl (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, packagePath string)
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
9 type IStaker interface {
10 IStakerManager
11 IStakerGetter
12 Render(path string ) string
13 }
14
15 type IStakerManager interface {
16 // StakeToken stakes an LP position NFT, transfers custody to the staker, and
17 // starts internal GNS and eligible external reward accounting.
18 //
19 // Parameters:
20 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
21 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
22 // - positionId: LP position NFT identifier whose liquidity will be staked.
23 // - referrer: Optional referral address or identifier supplied for referral tracking.
24 //
25 // Returns:
26 // - poolPath: Canonical token0:token1:fee path of the pool containing the staked position.
27 //
28 StakeToken(_ int , rlm realm, positionId uint64 , referrer string ) string
29
30 // UnStakeToken records the position's exit checkpoint, removes it from active
31 // staking, and returns the NFT to its owner.
32 //
33 // Parameters:
34 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
35 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
36 // - positionId: LP position NFT identifier to remove from staking.
37 //
38 // Returns:
39 // - poolPath: Canonical pool path from the position's active deposit.
40 //
41 UnStakeToken(_ int , rlm realm, positionId uint64 ) string
42
43 // CollectReward settles both GNS emission and all currently payable external
44 // incentive rewards for a live deposit or an unstaked exit checkpoint.
45 //
46 // Parameters:
47 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
48 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
49 // - positionId: LP position NFT identifier, or an identifier with an exit checkpoint.
50 //
51 // Returns:
52 // - internalRewardToUser: Decimal string for the GNS amount transferred to the position owner.
53 // - internalRewardPenalty: Decimal string for the GNS warm-up penalty sent to the community pool.
54 // - externalRewards: Map keyed by reward-token path containing gross external reward amounts before the staking fee.
55 // - externalPenalties: Map keyed by reward-token path containing warm-up penalties retained by each incentive.
56 //
57 CollectReward(_ int , rlm realm, positionId uint64 ) ( string , string , map [ string ] int64 , map [ string ] int64 )
58
59 // CollectEmissionReward settles only the internal GNS emission for a live
60 // deposit or an unstaked exit checkpoint.
61 //
62 // Parameters:
63 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
64 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
65 // - positionId: LP position NFT identifier, or an identifier with an exit checkpoint.
66 //
67 // Returns:
68 // - rewardToUser: GNS amount transferred to the position owner.
69 // - rewardPenalty: GNS warm-up penalty transferred to the community pool.
70 //
71 CollectEmissionReward(_ int , rlm realm, positionId uint64 ) ( int64 , int64 )
72
73 // CollectExternalIncentiveReward settles one external incentive for a live
74 // deposit or an unstaked exit checkpoint.
75 //
76 // Parameters:
77 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
78 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
79 // - positionId: LP position NFT identifier, or an identifier with an exit checkpoint.
80 // - incentiveId: External incentive identifier to settle for the position.
81 //
82 // Returns:
83 // - rewardAmount: Gross reward-token amount calculated for the incentive before the staking fee.
84 // - penaltyAmount: Warm-up penalty amount retained by the incentive rather than sent to the owner.
85 //
86 CollectExternalIncentiveReward(_ int , rlm realm, positionId uint64 , incentiveId string ) ( int64 , int64 )
87
88 // SetPoolTier assigns an internal GNS-emission tier to an existing pool.
89 //
90 // Parameters:
91 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
92 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
93 // - poolPath: Canonical pool path whose emission tier is being assigned.
94 // - tier: Pool tier index in [0, AllTierCount); zero removes the pool from the internal emission target.
95 //
96 SetPoolTier(_ int , rlm realm, poolPath string , tier uint64 )
97
98 // ChangePoolTier changes the internal GNS-emission tier of an existing pool.
99 //
100 // Parameters:
101 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
102 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
103 // - poolPath: Canonical pool path whose emission tier is being changed.
104 // - tier: Replacement pool tier index in [0, AllTierCount); zero removes the pool from the internal emission target.
105 //
106 ChangePoolTier(_ int , rlm realm, poolPath string , tier uint64 )
107
108 // RemovePoolTier removes a pool from the internal GNS-emission tier system.
109 //
110 // Parameters:
111 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
112 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
113 // - poolPath: Canonical pool path to remove from tier membership.
114 //
115 RemovePoolTier(_ int , rlm realm, poolPath string )
116
117 // CreateExternalIncentive funds and registers an external reward program for a
118 // target pool over the requested Unix-time interval.
119 //
120 // Parameters:
121 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
122 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
123 // - targetPoolPath: Canonical pool path whose positions may earn the incentive.
124 // - rewardToken: Registered token path used to pay the external reward.
125 // - rewardAmount: Total reward-token amount deposited for the incentive.
126 // - startTimestamp: Inclusive Unix-second timestamp at which rewards begin accruing.
127 // - endTimestamp: Unix-second timestamp at which the reward interval ends.
128 //
129 CreateExternalIncentive(
130 _ int ,
131 rlm realm,
132 targetPoolPath string ,
133 rewardToken string ,
134 rewardAmount int64 ,
135 startTimestamp int64 ,
136 endTimestamp int64 ,
137 )
138
139 // EndExternalIncentive finalizes an ended external incentive and refunds its
140 // remaining reward tokens and deposited GNS to the requested address.
141 //
142 // Parameters:
143 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
144 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
145 // - targetPoolPath: Canonical pool path containing the incentive.
146 // - incentiveId: Unique external incentive identifier to finalize.
147 // - refundAddress: Address receiving refundable reward tokens and the GNS deposit.
148 //
149 EndExternalIncentive(_ int , rlm realm, targetPoolPath, incentiveId string , refundAddress address)
150
151 // CancelExternalIncentive removes an external incentive before it starts and
152 // refunds the available funded amounts to its creator.
153 //
154 // Parameters:
155 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
156 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
157 // - targetPoolPath: Canonical pool path containing the incentive.
158 // - incentiveId: Unique external incentive identifier to cancel.
159 //
160 CancelExternalIncentive(_ int , rlm realm, targetPoolPath, incentiveId string )
161
162 // CollectExternalIncentivePenalty transfers accumulated warm-up penalties
163 // from an ended external incentive to the requested address.
164 //
165 // Parameters:
166 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
167 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
168 // - targetPoolPath: Canonical pool path containing the incentive.
169 // - incentiveId: Ended external incentive identifier whose penalties are collected.
170 // - refundAddress: Address receiving the collected reward-token penalty.
171 //
172 // Returns:
173 // - penaltyAmount: Amount actually transferred, capped by the staker's available balance and zero when no penalty is accrued.
174 //
175 CollectExternalIncentivePenalty(_ int , rlm realm, targetPoolPath, incentiveId string , refundAddress address) int64
176
177 // AddToken adds a registered non-default token path to the external-incentive allowlist.
178 //
179 // Parameters:
180 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
181 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
182 // - tokenPath: Registered token contract path to allow for new external incentives.
183 //
184 AddToken(_ int , rlm realm, tokenPath string )
185
186 // RemoveToken removes a non-default token path from the external-incentive allowlist.
187 //
188 // Parameters:
189 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
190 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
191 // - tokenPath: Allowed token contract path to remove from future incentive creation.
192 //
193 RemoveToken(_ int , rlm realm, tokenPath string )
194
195 // SetDeniedRewardToken sets or clears the operational deny flag for a reward token.
196 // The flag prevents new incentives while leaving already-created incentives collectible.
197 //
198 // Parameters:
199 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
200 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
201 // - tokenPath: Reward-token contract path whose deny flag is being changed.
202 // - denied: true to deny new incentives for the token, or false to remove the denial.
203 //
204 SetDeniedRewardToken(_ int , rlm realm, tokenPath string , denied bool )
205
206 // SetWarmUp changes the duration associated with one of the fixed warm-up ratios.
207 //
208 // Parameters:
209 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
210 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
211 // - pct: Warm-up completion ratio selector; supported values are 30, 50, 70, and 100.
212 // - timeDuration: Warm-up duration in seconds for the selected ratio; finite tiers are bounded by 365 days.
213 //
214 SetWarmUp(_ int , rlm realm, pct, timeDuration int64 )
215
216 // SetDepositGnsAmount updates the GNS deposit required when creating an external incentive.
217 //
218 // Parameters:
219 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
220 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
221 // - amount: Nonnegative GNS amount required as each external-incentive deposit.
222 //
223 SetDepositGnsAmount(_ int , rlm realm, amount int64 )
224
225 // SetMinimumRewardAmount updates the default minimum reward amount for external incentives.
226 //
227 // Parameters:
228 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
229 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
230 // - amount: Nonnegative reward-token amount used when no token-specific minimum exists.
231 //
232 SetMinimumRewardAmount(_ int , rlm realm, amount int64 )
233
234 // SetTokenMinimumRewardAmount sets or removes a token-specific external-incentive minimum.
235 //
236 // Parameters:
237 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
238 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
239 // - paramsStr: Colon-delimited tokenPath:amount string; amount 0 removes that token's override.
240 //
241 SetTokenMinimumRewardAmount(_ int , rlm realm, paramsStr string )
242
243 // SetUnStakingFee updates the fee charged against collected staking rewards.
244 //
245 // Parameters:
246 // - _: Leading integer discriminator for implementation forwarding; proxy methods pass 0.
247 // - rlm: Current realm context forwarded unchanged by the staker proxy (0, cur, ...).
248 // - fee: Unstaking fee rate in basis points, where 10,000 basis points represents 100%.
249 //
250 SetUnStakingFee(_ int , rlm realm, fee uint64 )
251 }
252
253 type IStakerGetter interface {
254 // GetPool returns the registered pool for a canonical pool path.
255 //
256 // Parameters:
257 // - poolPath: Canonical token0:token1:fee path identifying the pool.
258 //
259 // Returns:
260 // - pool: Pointer to the registered pool; nil when lookup fails.
261 // - err: Nil on success, or an error when the pool is absent or cannot be decoded.
262 //
263 GetPool(poolPath string ) (*Pool, error )
264
265 // GetPoolRewardCaches exposes a read-only tree of a pool's reward-cache snapshots,
266 // keyed by encoded block timestamps.
267 //
268 // Parameters:
269 // - poolPath: Canonical pool path whose reward cache is requested.
270 //
271 // Returns:
272 // - rewardCaches: Read-only reward-cache tree, or nil when the pool does not exist.
273 //
274 GetPoolRewardCaches(poolPath string ) *rotree.ReadOnlyTree
275
276 // GetPoolIncentives exposes a read-only tree of a pool's external incentives,
277 // keyed by incentive identifier.
278 //
279 // Parameters:
280 // - poolPath: Canonical pool path whose incentives are requested.
281 //
282 // Returns:
283 // - incentives: Read-only external-incentive tree, or nil when the pool does not exist.
284 //
285 GetPoolIncentives(poolPath string ) *rotree.ReadOnlyTree
286
287 // GetPoolGlobalRewardRatioAccumulations exposes a read-only tree of global
288 // reward-ratio snapshots keyed by encoded block timestamps.
289 //
290 // Parameters:
291 // - poolPath: Canonical pool path whose global accumulations are requested.
292 //
293 // Returns:
294 // - accumulations: Read-only global reward-ratio tree, or nil when the pool does not exist.
295 //
296 GetPoolGlobalRewardRatioAccumulations(poolPath string ) *rotree.ReadOnlyTree
297
298 // GetPoolHistoricalTicks exposes a read-only tree of historical pool ticks
299 // keyed by encoded block timestamps.
300 //
301 // Parameters:
302 // - poolPath: Canonical pool path whose historical ticks are requested.
303 //
304 // Returns:
305 // - historicalTicks: Read-only historical-tick tree, or nil when the pool does not exist.
306 //
307 GetPoolHistoricalTicks(poolPath string ) *rotree.ReadOnlyTree
308
309 // GetDeposit returns the staker deposit associated with an LP position NFT.
310 //
311 // Parameters:
312 // - lpTokenId: LP position NFT identifier used as the deposit key.
313 //
314 // Returns:
315 // - deposit: Stored deposit for the position; nil when lookup fails.
316 // - err: Nil on success, or an error when no deposit exists for the identifier.
317 //
318 GetDeposit(lpTokenId uint64 ) (*Deposit, error )
319
320 // CollectableEmissionReward calculates the currently claimable internal GNS
321 // emission without mutating the position.
322 //
323 // Parameters:
324 // - positionId: LP position identifier for a live deposit or exit checkpoint.
325 //
326 // Returns:
327 // - reward: Claimable internal GNS amount at the current chain time and height.
328 // - err: Nil on success, or an error when the position is neither staked nor checkpointed or calculation fails.
329 //
330 CollectableEmissionReward(positionId uint64 ) ( int64 , error )
331
332 // CollectableExternalIncentiveReward calculates the currently claimable amount
333 // for one external incentive without mutating the position.
334 //
335 // Parameters:
336 // - positionId: LP position identifier for a live deposit or exit checkpoint.
337 // - incentiveId: External incentive identifier whose reward is queried.
338 //
339 // Returns:
340 // - reward: Claimable gross reward-token amount, or zero when that incentive contributes no reward.
341 // - err: Nil on success, or an error when the position or reward calculation is invalid.
342 //
343 CollectableExternalIncentiveReward(positionId uint64 , incentiveId string ) ( int64 , error )
344
345 // GetCreatedHeightOfIncentive returns the chain height recorded when an incentive was created.
346 //
347 // Parameters:
348 // - poolPath: Pool path containing the incentive.
349 // - incentiveId: External incentive identifier to inspect.
350 //
351 // Returns:
352 // - createdHeight: Chain height persisted at incentive creation.
353 // - err: Nil on success, or an error when the pool or incentive does not exist.
354 //
355 GetCreatedHeightOfIncentive(poolPath string , incentiveId string ) ( int64 , error )
356
357 // GetIncentiveCreatedTimestamp returns the Unix-second creation time of an incentive.
358 //
359 // Parameters:
360 // - poolPath: Pool path containing the incentive.
361 // - incentiveId: External incentive identifier to inspect.
362 //
363 // Returns:
364 // - createdTimestamp: Unix-second timestamp recorded at creation.
365 // - err: Nil on success, or an error when the pool or incentive does not exist.
366 //
367 GetIncentiveCreatedTimestamp(poolPath string , incentiveId string ) ( int64 , error )
368
369 // GetIncentiveTotalRewardAmount returns the amount originally funded for an incentive.
370 //
371 // Parameters:
372 // - poolPath: Pool path containing the incentive.
373 // - incentiveId: External incentive identifier to inspect.
374 //
375 // Returns:
376 // - totalRewardAmount: Original reward-token amount funded at creation.
377 // - err: Nil on success, or an error when the pool or incentive does not exist.
378 //
379 GetIncentiveTotalRewardAmount(poolPath string , incentiveId string ) ( int64 , error )
380
381 // GetIncentiveDistributedRewardAmount returns the reward amount already
382 // distributed to positions or refunded when the incentive ended.
383 //
384 // Parameters:
385 // - poolPath: Pool path containing the incentive.
386 // - incentiveId: External incentive identifier to inspect.
387 //
388 // Returns:
389 // - distributedRewardAmount: Cumulative distributed or refunded reward-token amount.
390 // - err: Nil on success, or an error when the pool or incentive does not exist.
391 //
392 GetIncentiveDistributedRewardAmount(poolPath string , incentiveId string ) ( int64 , error )
393
394 // GetIncentiveRemainingRewardAmount returns the current undistributed reward balance.
395 //
396 // Parameters:
397 // - poolPath: Pool path containing the incentive.
398 // - incentiveId: External incentive identifier to inspect.
399 //
400 // Returns:
401 // - remainingRewardAmount: Reward-token amount still held for future distribution or refund.
402 // - err: Nil on success, or an error when the pool or incentive does not exist.
403 //
404 GetIncentiveRemainingRewardAmount(poolPath string , incentiveId string ) ( int64 , error )
405
406 // GetIncentiveAccumulatedPenaltyAmount returns warm-up penalties accumulated
407 // from collections for an incentive.
408 //
409 // Parameters:
410 // - poolPath: Pool path containing the incentive.
411 // - incentiveId: External incentive identifier to inspect.
412 //
413 // Returns:
414 // - penaltyAmount: Reward-token penalty amount accumulated for later collection.
415 // - err: Nil on success, or an error when the pool or incentive does not exist.
416 //
417 GetIncentiveAccumulatedPenaltyAmount(poolPath string , incentiveId string ) ( int64 , error )
418
419 // GetIncentiveDepositGnsAmount returns the GNS deposit locked by an incentive.
420 //
421 // Parameters:
422 // - poolPath: Pool path containing the incentive.
423 // - incentiveId: External incentive identifier to inspect.
424 //
425 // Returns:
426 // - depositGnsAmount: GNS amount deposited as the incentive's collateral.
427 // - err: Nil on success, or an error when the pool or incentive does not exist.
428 //
429 GetIncentiveDepositGnsAmount(poolPath string , incentiveId string ) ( int64 , error )
430
431 // GetIncentiveRefunded reports whether the incentive has been finalized and refunded.
432 //
433 // Parameters:
434 // - poolPath: Pool path containing the incentive.
435 // - incentiveId: External incentive identifier to inspect.
436 //
437 // Returns:
438 // - refunded: True after EndExternalIncentive has marked the incentive refunded; false otherwise.
439 // - err: Nil on success, or an error when the pool or incentive does not exist.
440 //
441 GetIncentiveRefunded(poolPath string , incentiveId string ) ( bool , error )
442
443 // IsIncentiveActive reports whether an unrefunded incentive is within its
444 // inclusive start/end Unix-second interval at the current time.
445 //
446 // Parameters:
447 // - poolPath: Pool path containing the incentive.
448 // - incentiveId: External incentive identifier to inspect.
449 //
450 // Returns:
451 // - active: True only when the current time is between the incentive bounds and it is not refunded.
452 // - err: Nil on success, or an error when the pool or incentive does not exist.
453 //
454 IsIncentiveActive(poolPath string , incentiveId string ) ( bool , error )
455
456 // GetDepositExternalRewardLastCollectTimestamp returns the last collection
457 // timestamp for one deposit/incentive pair.
458 //
459 // Parameters:
460 // - lpTokenId: LP position NFT identifier owning the external reward cursor.
461 // - incentiveId: External incentive identifier whose cursor is requested.
462 //
463 // Returns:
464 // - timestamp: Unix-second cursor, falling back to stake time when the incentive has never been collected.
465 // - err: Nil on success, or an error when the deposit does not exist.
466 //
467 GetDepositExternalRewardLastCollectTimestamp(lpTokenId uint64 , incentiveId string ) ( int64 , error )
468
469 // GetDepositGnsAmount returns the configured GNS deposit required per external incentive.
470 //
471 // Returns:
472 // - amount: Current required GNS deposit in token units.
473 //
474 GetDepositGnsAmount() int64
475
476 // GetDepositInternalRewardLastCollectTimestamp returns the stored internal
477 // reward collection cursor for a deposit.
478 //
479 // Parameters:
480 // - lpTokenId: LP position NFT identifier owning the internal reward cursor.
481 //
482 // Returns:
483 // - timestamp: Unix-second cursor, which is zero before the first internal collection.
484 // - err: Nil on success, or an error when the deposit does not exist.
485 //
486 GetDepositInternalRewardLastCollectTimestamp(lpTokenId uint64 ) ( int64 , error )
487
488 // GetDepositCollectedInternalReward returns cumulative internal reward recorded for a deposit.
489 //
490 // Parameters:
491 // - lpTokenId: LP position NFT identifier whose collection total is requested.
492 //
493 // Returns:
494 // - amount: Cumulative GNS amount recorded as collected for the deposit.
495 // - err: Nil on success, or an error when the deposit does not exist.
496 //
497 GetDepositCollectedInternalReward(lpTokenId uint64 ) ( int64 , error )
498
499 // GetDepositCollectedExternalReward returns the cumulative amount recorded
500 // for one deposit/incentive pair.
501 //
502 // Parameters:
503 // - lpTokenId: LP position NFT identifier whose collection total is requested.
504 // - incentiveId: External incentive identifier for the collection total.
505 //
506 // Returns:
507 // - amount: Cumulative gross reward-token amount recorded for that incentive.
508 // - err: Nil on success, or an error when the deposit does not exist.
509 //
510 GetDepositCollectedExternalReward(lpTokenId uint64 , incentiveId string ) ( int64 , error )
511
512 // GetDepositLiquidity returns the full-precision liquidity assigned to a deposit.
513 //
514 // Parameters:
515 // - lpTokenId: LP position NFT identifier whose liquidity is requested.
516 //
517 // Returns:
518 // - liquidity: 256-bit liquidity value stored in the deposit.
519 // - err: Nil on success, or an error when the deposit does not exist.
520 //
521 GetDepositLiquidity(lpTokenId uint64 ) (*u256.Uint, error )
522
523 // GetDepositLiquidityAsString returns the decimal string form of a deposit's liquidity.
524 //
525 // Parameters:
526 // - lpTokenId: LP position NFT identifier whose liquidity is requested.
527 //
528 // Returns:
529 // - liquidity: Decimal representation of the stored 256-bit liquidity.
530 // - err: Nil on success, or an error when the deposit does not exist.
531 //
532 GetDepositLiquidityAsString(lpTokenId uint64 ) ( string , error )
533
534 // GetDepositOwner returns the address recorded as owner of a deposit.
535 //
536 // Parameters:
537 // - lpTokenId: LP position NFT identifier whose owner is requested.
538 //
539 // Returns:
540 // - owner: Address recorded when the position was staked.
541 // - err: Nil on success, or an error when the deposit does not exist.
542 //
543 GetDepositOwner(lpTokenId uint64 ) (address, error )
544
545 // GetDepositStakeTime returns the Unix-second timestamp when a position was staked.
546 //
547 // Parameters:
548 // - lpTokenId: LP position NFT identifier whose stake time is requested.
549 //
550 // Returns:
551 // - stakeTime: Unix-second timestamp stored in the deposit.
552 // - err: Nil on success, or an error when the deposit does not exist.
553 //
554 GetDepositStakeTime(lpTokenId uint64 ) ( int64 , error )
555
556 // GetDepositTargetPoolPath returns the pool path recorded for a deposit.
557 //
558 // Parameters:
559 // - lpTokenId: LP position NFT identifier whose target pool is requested.
560 //
561 // Returns:
562 // - poolPath: Canonical target pool path recorded in the deposit.
563 // - err: Nil on success, or an error when the deposit does not exist.
564 //
565 GetDepositTargetPoolPath(lpTokenId uint64 ) ( string , error )
566
567 // GetDepositTickLower returns the lower concentrated-liquidity tick of a deposit.
568 //
569 // Parameters:
570 // - lpTokenId: LP position NFT identifier whose lower tick is requested.
571 //
572 // Returns:
573 // - tickLower: Signed lower tick stored in the deposit.
574 // - err: Nil on success, or an error when the deposit does not exist.
575 //
576 GetDepositTickLower(lpTokenId uint64 ) ( int32 , error )
577
578 // GetDepositTickUpper returns the upper concentrated-liquidity tick of a deposit.
579 //
580 // Parameters:
581 // - lpTokenId: LP position NFT identifier whose upper tick is requested.
582 //
583 // Returns:
584 // - tickUpper: Signed upper tick stored in the deposit.
585 // - err: Nil on success, or an error when the deposit does not exist.
586 //
587 GetDepositTickUpper(lpTokenId uint64 ) ( int32 , error )
588
589 // GetDepositWarmUp returns the warm-up records currently attached to a deposit.
590 //
591 // Parameters:
592 // - lpTokenId: LP position NFT identifier whose warm-up records are requested.
593 //
594 // Returns:
595 // - warmups: Warm-up schedule entries stored for the deposit.
596 // - err: Nil on success, or an error when the deposit does not exist.
597 //
598 GetDepositWarmUp(lpTokenId uint64 ) ([]Warmup, error )
599
600 // GetDepositExternalIncentiveIdList returns external incentive identifiers
601 // currently tracked by a deposit.
602 //
603 // Parameters:
604 // - lpTokenId: LP position NFT identifier whose incentive index is requested.
605 //
606 // Returns:
607 // - incentiveIds: External incentive IDs attached to the deposit.
608 // - err: Nil on success, or an error when the deposit does not exist.
609 //
610 GetDepositExternalIncentiveIdList(lpTokenId uint64 ) ([] string , error )
611
612 // GetExternalIncentiveByPoolPath returns all stored external incentives targeting a pool.
613 //
614 // Parameters:
615 // - poolPath: Canonical pool path used to filter incentive records.
616 //
617 // Returns:
618 // - incentives: Matching external incentive records, possibly an empty slice.
619 // - err: Nil on success, or an error when a stored record has an invalid type.
620 //
621 GetExternalIncentiveByPoolPath(poolPath string ) ([]ExternalIncentive, error )
622
623 // GetIncentiveEndTimestamp returns the Unix-second end time of an incentive.
624 //
625 // Parameters:
626 // - poolPath: Pool path containing the incentive.
627 // - incentiveId: External incentive identifier to inspect.
628 //
629 // Returns:
630 // - endTimestamp: Inclusive Unix-second end bound recorded for the incentive.
631 // - err: Nil on success, or an error when the pool or incentive does not exist.
632 //
633 GetIncentiveEndTimestamp(poolPath string , incentiveId string ) ( int64 , error )
634
635 // GetIncentiveCreator returns the address that created and funded an incentive.
636 //
637 // Parameters:
638 // - poolPath: Pool path containing the incentive.
639 // - incentiveId: External incentive identifier to inspect.
640 //
641 // Returns:
642 // - creator: Address recorded as the incentive creator.
643 // - err: Nil on success, or an error when the pool or incentive does not exist.
644 //
645 GetIncentiveCreator(poolPath string , incentiveId string ) (address, error )
646
647 // GetIncentiveRewardAmount returns the remaining reward amount as a 256-bit unsigned value.
648 //
649 // Parameters:
650 // - poolPath: Pool path containing the incentive.
651 // - incentiveId: External incentive identifier to inspect.
652 //
653 // Returns:
654 // - rewardAmount: Remaining reward-token amount represented as a uint256 value.
655 // - err: Nil on success, or an error when the pool or incentive does not exist.
656 //
657 GetIncentiveRewardAmount(poolPath string , incentiveId string ) (*u256.Uint, error )
658
659 // GetIncentiveRewardAmountAsString returns the decimal string form of the remaining reward.
660 //
661 // Parameters:
662 // - poolPath: Pool path containing the incentive.
663 // - incentiveId: External incentive identifier to inspect.
664 //
665 // Returns:
666 // - rewardAmount: Decimal representation of the remaining reward-token amount.
667 // - err: Nil on success, or an error when the pool or incentive does not exist.
668 //
669 GetIncentiveRewardAmountAsString(poolPath string , incentiveId string ) ( string , error )
670
671 // GetIncentiveRewardPerSecondX128 returns the Q128-scaled reward rate of an incentive.
672 //
673 // Parameters:
674 // - poolPath: Pool path containing the incentive.
675 // - incentiveId: External incentive identifier to inspect.
676 //
677 // Returns:
678 // - rewardPerSecondX128: Reward-per-second rate scaled by 2^128 to preserve precision.
679 // - err: Nil on success, or an error when the pool or incentive does not exist.
680 //
681 GetIncentiveRewardPerSecondX128(poolPath string , incentiveId string ) (*u256.Uint, error )
682
683 // GetIncentiveRewardToken returns the token path used to pay an incentive.
684 //
685 // Parameters:
686 // - poolPath: Pool path containing the incentive.
687 // - incentiveId: External incentive identifier to inspect.
688 //
689 // Returns:
690 // - rewardToken: Registered reward-token contract path.
691 // - err: Nil on success, or an error when the pool or incentive does not exist.
692 //
693 GetIncentiveRewardToken(poolPath string , incentiveId string ) ( string , error )
694
695 // GetIncentiveStartTimestamp returns the Unix-second start time of an incentive.
696 //
697 // Parameters:
698 // - poolPath: Pool path containing the incentive.
699 // - incentiveId: External incentive identifier to inspect.
700 //
701 // Returns:
702 // - startTimestamp: Inclusive Unix-second start bound recorded for the incentive.
703 // - err: Nil on success, or an error when the pool or incentive does not exist.
704 //
705 GetIncentiveStartTimestamp(poolPath string , incentiveId string ) ( int64 , error )
706
707 // GetMinimumRewardAmount returns the default minimum reward amount for external incentives.
708 //
709 // Returns:
710 // - amount: Default minimum reward-token amount used when no token-specific override exists.
711 //
712 GetMinimumRewardAmount() int64
713
714 // GetMinimumRewardAmountForToken returns a token-specific minimum, falling
715 // back to the default minimum when no override is configured.
716 //
717 // Parameters:
718 // - tokenPath: Reward-token contract path whose minimum is requested.
719 //
720 // Returns:
721 // - amount: Token-specific minimum when configured, otherwise the default minimum.
722 //
723 GetMinimumRewardAmountForToken(tokenPath string ) int64
724
725 // GetPoolStakedLiquidity returns the current total staked liquidity as a decimal string.
726 //
727 // Parameters:
728 // - poolPath: Canonical pool path whose active staked liquidity is requested.
729 //
730 // Returns:
731 // - liquidity: Decimal string for current staked liquidity, or zero when the pool has no value.
732 // - err: Nil on success, or an error when the pool does not exist.
733 //
734 GetPoolStakedLiquidity(poolPath string ) ( string , error )
735
736 // GetPoolsByTier lists pool paths currently assigned to an internal emission tier.
737 //
738 // Parameters:
739 // - tier: Tier number used to filter pool membership; tier zero returns an empty list.
740 //
741 // Returns:
742 // - poolPaths: Pool paths assigned to the requested tier.
743 // - err: Nil on success, or an error when stored tier membership cannot be decoded.
744 //
745 GetPoolsByTier(tier uint64 ) ([] string , error )
746
747 // GetPoolReward returns the current per-second GNS reward for a tier.
748 //
749 // Parameters:
750 // - tier: Supported nonzero tier whose reward rate is requested.
751 //
752 // Returns:
753 // - reward: Current tier reward amount per second.
754 // - err: Nil on success, or an invalid-tier error for zero or unsupported tiers.
755 //
756 GetPoolReward(tier uint64 ) ( int64 , error )
757
758 // GetPoolTier returns the internal emission tier currently assigned to a pool.
759 //
760 // Parameters:
761 // - poolPath: Canonical pool path whose tier is requested.
762 //
763 // Returns:
764 // - tier: Assigned tier number; zero denotes no internal emission tier.
765 //
766 GetPoolTier(poolPath string ) uint64
767
768 // GetPoolTierCount returns the number of pools assigned to a tier.
769 //
770 // Parameters:
771 // - tier: Tier number whose membership count is requested; tier zero has count zero.
772 //
773 // Returns:
774 // - count: Current number of pools in the requested tier.
775 //
776 GetPoolTierCount(tier uint64 ) uint64
777
778 // GetPoolTierRatio returns the reward ratio configured for a pool's current tier.
779 //
780 // Parameters:
781 // - poolPath: Canonical pool path whose current tier ratio is requested.
782 //
783 // Returns:
784 // - ratio: Current reward ratio for the pool's assigned tier.
785 // - err: Nil on success, or an invalid-tier error when the tier has no ratio.
786 //
787 GetPoolTierRatio(poolPath string ) ( uint64 , error )
788
789 // GetSpecificTokenMinimumRewardAmount looks up only an explicitly configured
790 // token-specific minimum and does not apply the default fallback.
791 //
792 // Parameters:
793 // - tokenPath: Reward-token contract path whose override is requested.
794 //
795 // Returns:
796 // - amount: Configured token-specific minimum, or zero when absent.
797 // - found: True when an explicit override exists; false when the default should be used.
798 //
799 GetSpecificTokenMinimumRewardAmount(tokenPath string ) ( int64 , bool )
800
801 // GetTargetPoolPathByIncentiveId returns the pool path targeted by an incentive.
802 //
803 // Parameters:
804 // - poolPath: Pool path containing the incentive record.
805 // - incentiveId: External incentive identifier to inspect.
806 //
807 // Returns:
808 // - targetPoolPath: Pool path recorded as the incentive target.
809 // - err: Nil on success, or an error when the pool or incentive does not exist.
810 //
811 GetTargetPoolPathByIncentiveId(poolPath string , incentiveId string ) ( string , error )
812
813 // GetUnstakingFee returns the current reward fee rate in basis points.
814 //
815 // Returns:
816 // - fee: Current unstaking fee, where 10,000 basis points represents 100%.
817 //
818 GetUnstakingFee() uint64
819
820 // GetPendingProtocolFees returns pending protocol-fee amounts keyed by token path.
821 //
822 // Returns:
823 // - fees: Map from reward-token path to amount awaiting protocol-fee settlement.
824 //
825 GetPendingProtocolFees() map [ string ] int64
826
827 // HasUnstakedPosition reports whether an exit checkpoint with uncollected
828 // rewards exists for a position.
829 //
830 // Parameters:
831 // - positionId: LP position identifier whose exit checkpoint is queried.
832 //
833 // Returns:
834 // - exists: True when an uncollected exit checkpoint is present.
835 //
836 HasUnstakedPosition(positionId uint64 ) bool
837
838 // GetUnstakedPositionExitTime returns when an exit checkpoint stopped accruing rewards.
839 //
840 // Parameters:
841 // - positionId: LP position identifier whose checkpoint is requested.
842 //
843 // Returns:
844 // - exitTime: Unix-second timestamp at which the position was unstaked.
845 // - err: Nil on success, or an error when no uncollected checkpoint exists.
846 //
847 GetUnstakedPositionExitTime(positionId uint64 ) ( int64 , error )
848
849 // GetUnstakedPositionPendingIncentives returns external incentive IDs still
850 // owed by an exit checkpoint.
851 //
852 // Parameters:
853 // - positionId: LP position identifier whose checkpoint is requested.
854 //
855 // Returns:
856 // - incentiveIds: External incentive IDs pending collection for the checkpoint.
857 // - err: Nil on success, or an error when no uncollected checkpoint exists.
858 //
859 GetUnstakedPositionPendingIncentives(positionId uint64 ) ([] string , error )
860
861 // GetUncollectedIncentiveCount returns the number of exit checkpoints still
862 // carrying an uncollected claim for an incentive.
863 //
864 // Parameters:
865 // - incentiveId: External incentive identifier whose checkpoint count is requested.
866 //
867 // Returns:
868 // - count: Number of uncollected exit-position claims for the incentive.
869 //
870 GetUncollectedIncentiveCount(incentiveId string ) int64
871
872 // IsStaked reports whether a live deposit exists for a position.
873 //
874 // Parameters:
875 // - positionId: LP position identifier to query.
876 //
877 // Returns:
878 // - staked: True when the position is present in active deposits.
879 //
880 IsStaked(positionId uint64 ) bool
881
882 // GetTotalEmissionSent returns cumulative GNS emission sent or accounted for.
883 //
884 // Returns:
885 // - amount: Cumulative internal GNS emission amount recorded by the staker.
886 //
887 GetTotalEmissionSent() int64
888
889 // GetAllowedTokens returns token paths approved for new external incentives.
890 //
891 // Returns:
892 // - tokenPaths: Registered external-incentive token paths currently allowed.
893 //
894 GetAllowedTokens() [] string
895
896 // GetDeniedRewardTokens returns token paths denied for new external incentives.
897 //
898 // Returns:
899 // - tokenPaths: Reward-token paths on the operational deny list.
900 //
901 GetDeniedRewardTokens() [] string
902
903 // GetWarmupTemplate returns the current warm-up schedule used for new deposits.
904 //
905 // Returns:
906 // - warmups: Ordered warm-up entries defining reward-release ratios and durations.
907 //
908 GetWarmupTemplate() []Warmup
909 }
910
911 type IStakerStore interface {
912 // HasDepositGnsAmountStoreKey reports whether the configured GNS-deposit key exists.
913 //
914 // Returns:
915 // - exists: True when the depositGnsAmount key is present in persistent storage.
916 //
917 HasDepositGnsAmountStoreKey() bool
918
919 // GetDepositGnsAmount returns the stored GNS deposit required per external incentive.
920 //
921 // Returns:
922 // - amount: Persisted GNS amount in token units; storage read or type failures panic.
923 //
924 GetDepositGnsAmount() int64
925
926 // SetDepositGnsAmount persists the GNS deposit required per external incentive.
927 //
928 // Parameters:
929 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
930 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
931 // - amount: GNS amount in token units to persist.
932 //
933 // Returns:
934 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
935 //
936 SetDepositGnsAmount(_ int , rlm realm, amount int64 ) error
937
938 // HasMinimumRewardAmountStoreKey reports whether the default minimum-reward key exists.
939 //
940 // Returns:
941 // - exists: True when the minimumRewardAmount key is present in persistent storage.
942 //
943 HasMinimumRewardAmountStoreKey() bool
944
945 // GetMinimumRewardAmount returns the default minimum external-incentive reward.
946 //
947 // Returns:
948 // - amount: Persisted default reward-token minimum; storage read or type failures panic.
949 //
950 GetMinimumRewardAmount() int64
951
952 // SetMinimumRewardAmount persists the default minimum external-incentive reward.
953 //
954 // Parameters:
955 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
956 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
957 // - amount: Default minimum reward-token amount in token units.
958 //
959 // Returns:
960 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
961 //
962 SetMinimumRewardAmount(_ int , rlm realm, amount int64 ) error
963
964 // HasDepositsStoreKey reports whether the active-deposits tree key exists.
965 //
966 // Returns:
967 // - exists: True when the deposits key is present in persistent storage.
968 //
969 HasDepositsStoreKey() bool
970
971 // GetDeposits returns the persisted active position-deposit tree.
972 //
973 // Returns:
974 // - deposits: B+tree mapping LP position IDs to deposits; storage read or type failures panic.
975 //
976 GetDeposits() *bptree.BPTree
977
978 // SetDeposits persists the active position-deposit tree.
979 //
980 // Parameters:
981 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
982 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
983 // - deposits: B+tree containing active position deposits to persist.
984 //
985 // Returns:
986 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
987 //
988 SetDeposits(_ int , rlm realm, deposits *bptree.BPTree) error
989
990 // HasExternalIncentivesStoreKey reports whether the external-incentives tree key exists.
991 //
992 // Returns:
993 // - exists: True when the externalIncentives key is present in persistent storage.
994 //
995 HasExternalIncentivesStoreKey() bool
996
997 // GetExternalIncentives returns the persisted external-incentive tree.
998 //
999 // Returns:
1000 // - incentives: B+tree mapping incentive IDs to incentive records; storage read or type failures panic.
1001 //
1002 GetExternalIncentives() *bptree.BPTree
1003
1004 // SetExternalIncentives persists the external-incentive tree.
1005 //
1006 // Parameters:
1007 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1008 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1009 // - incentives: B+tree containing external-incentive records to persist.
1010 //
1011 // Returns:
1012 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1013 //
1014 SetExternalIncentives(_ int , rlm realm, incentives *bptree.BPTree) error
1015
1016 // HasTotalEmissionSentStoreKey reports whether the cumulative-emission key exists.
1017 //
1018 // Returns:
1019 // - exists: True when the totalEmissionSent key is present in persistent storage.
1020 //
1021 HasTotalEmissionSentStoreKey() bool
1022
1023 // GetTotalEmissionSent returns the persisted cumulative GNS emission amount.
1024 //
1025 // Returns:
1026 // - amount: Cumulative internal emission in GNS token units; storage read or type failures panic.
1027 //
1028 GetTotalEmissionSent() int64
1029
1030 // SetTotalEmissionSent persists the cumulative GNS emission amount.
1031 //
1032 // Parameters:
1033 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1034 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1035 // - amount: Cumulative GNS amount to persist.
1036 //
1037 // Returns:
1038 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1039 //
1040 SetTotalEmissionSent(_ int , rlm realm, amount int64 ) error
1041
1042 // HasAllowedTokensStoreKey reports whether the external-incentive allowlist key exists.
1043 //
1044 // Returns:
1045 // - exists: True when the allowedTokens key is present in persistent storage.
1046 //
1047 HasAllowedTokensStoreKey() bool
1048
1049 // GetAllowedTokens returns a copy of token paths allowed for new incentives.
1050 //
1051 // Returns:
1052 // - tokenPaths: Store-owned allowlist copied into a caller-safe slice.
1053 //
1054 GetAllowedTokens() [] string
1055
1056 // SetAllowedTokens replaces the external-incentive allowlist.
1057 //
1058 // Parameters:
1059 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1060 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1061 // - tokens: Token contract paths to persist as the new allowlist.
1062 //
1063 // Returns:
1064 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1065 //
1066 SetAllowedTokens(_ int , rlm realm, tokens [] string ) error
1067
1068 // AddAllowedToken adds a token path to the allowlist when it is not already present.
1069 //
1070 // Parameters:
1071 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1072 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1073 // - tokenPath: Token contract path to add to the allowlist.
1074 //
1075 // Returns:
1076 // - err: Nil when added or already present, ErrSpoofedRealm for a non-current realm, or the KV-store write error.
1077 //
1078 AddAllowedToken(_ int , rlm realm, tokenPath string ) error
1079
1080 // RemoveAllowedToken removes a token path from the allowlist when present.
1081 //
1082 // Parameters:
1083 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1084 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1085 // - tokenPath: Token contract path to remove from the allowlist.
1086 //
1087 // Returns:
1088 // - err: Nil when removed or absent, ErrSpoofedRealm for a non-current realm, or the KV-store write error.
1089 //
1090 RemoveAllowedToken(_ int , rlm realm, tokenPath string ) error
1091
1092 // HasDeniedRewardTokensStoreKey reports whether the external reward deny-list key exists.
1093 //
1094 // Returns:
1095 // - exists: True when the deniedRewardTokens key is present in persistent storage.
1096 //
1097 HasDeniedRewardTokensStoreKey() bool
1098
1099 // GetDeniedRewardTokens returns a copy of token paths denied for new incentives.
1100 //
1101 // Returns:
1102 // - tokenPaths: Store-owned deny list copied for callers; an uninitialized key yields an empty slice.
1103 //
1104 GetDeniedRewardTokens() [] string
1105
1106 // AddDeniedRewardToken adds a token path to the deny list when absent.
1107 //
1108 // Parameters:
1109 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1110 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1111 // - tokenPath: Reward-token contract path to deny for new incentives.
1112 //
1113 // Returns:
1114 // - err: Nil when added or already present, ErrSpoofedRealm for a non-current realm, or the KV-store write error.
1115 //
1116 AddDeniedRewardToken(_ int , rlm realm, tokenPath string ) error
1117
1118 // RemoveDeniedRewardToken removes a token path from the deny list when present.
1119 //
1120 // Parameters:
1121 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1122 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1123 // - tokenPath: Reward-token contract path to allow again for new incentives.
1124 //
1125 // Returns:
1126 // - err: Nil when removed or absent, ErrSpoofedRealm for a non-current realm, or the KV-store write error.
1127 //
1128 RemoveDeniedRewardToken(_ int , rlm realm, tokenPath string ) error
1129
1130 // HasIncentiveCounterStoreKey reports whether the incentive-counter key exists.
1131 //
1132 // Returns:
1133 // - exists: True when the incentiveCounter key is present in persistent storage.
1134 //
1135 HasIncentiveCounterStoreKey() bool
1136
1137 // GetIncentiveCounter returns the persisted counter used to allocate incentive IDs.
1138 //
1139 // Returns:
1140 // - counter: Incentive-ID counter object; storage read or type failures panic.
1141 //
1142 GetIncentiveCounter() *Counter
1143
1144 // SetIncentiveCounter persists the incentive-ID counter.
1145 //
1146 // Parameters:
1147 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1148 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1149 // - counter: Counter object whose next value will be used for incentive IDs.
1150 //
1151 // Returns:
1152 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1153 //
1154 SetIncentiveCounter(_ int , rlm realm, counter *Counter) error
1155
1156 // NextIncentiveID consumes the next counter value and formats a unique incentive ID.
1157 //
1158 // Parameters:
1159 // - creator: Address that is creating and funding the incentive.
1160 // - timestamp: Unix-second creation timestamp embedded in the identifier.
1161 //
1162 // Returns:
1163 // - incentiveId: Identifier combining creator, timestamp, and the incremented counter index.
1164 //
1165 NextIncentiveID(creator address, timestamp int64 ) string
1166
1167 // HasTokenSpecificMinimumRewardsStoreKey reports whether token-specific minimums exist.
1168 //
1169 // Returns:
1170 // - exists: True when the tokenSpecificMinimumRewards key is present in persistent storage.
1171 //
1172 HasTokenSpecificMinimumRewardsStoreKey() bool
1173
1174 // GetTokenSpecificMinimumRewards returns configured token-specific reward minimums.
1175 //
1176 // Returns:
1177 // - rewards: Map from token contract path to minimum reward amount; storage read or type failures panic.
1178 //
1179 GetTokenSpecificMinimumRewards() map [ string ] int64
1180
1181 // SetTokenSpecificMinimumRewards replaces all token-specific minimums.
1182 //
1183 // Parameters:
1184 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1185 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1186 // - rewards: Token-path-to-minimum-amount mapping to persist.
1187 //
1188 // Returns:
1189 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1190 //
1191 SetTokenSpecificMinimumRewards(_ int , rlm realm, rewards map [ string ] int64 ) error
1192
1193 // SetTokenSpecificMinimumRewardItem sets one token's minimum reward entry.
1194 //
1195 // Parameters:
1196 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1197 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1198 // - tokenPath: Token contract path whose override is being set.
1199 // - amount: Token-specific minimum reward amount in token units.
1200 //
1201 // Returns:
1202 // - err: Nil when the item is stored, ErrSpoofedRealm for a non-current realm, or the KV-store write error.
1203 //
1204 SetTokenSpecificMinimumRewardItem(_ int , rlm realm, tokenPath string , amount int64 ) error
1205
1206 // RemoveTokenSpecificMinimumRewardItem removes one token's minimum reward entry.
1207 //
1208 // Parameters:
1209 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1210 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1211 // - tokenPath: Token contract path whose override is being removed.
1212 //
1213 // Returns:
1214 // - err: Nil after rebuilding the mapping without the item, ErrSpoofedRealm for a non-current realm, or the KV-store write error.
1215 //
1216 RemoveTokenSpecificMinimumRewardItem(_ int , rlm realm, tokenPath string ) error
1217
1218 // HasUnstakingFeeStoreKey reports whether the unstaking-fee key exists.
1219 //
1220 // Returns:
1221 // - exists: True when the unstakingFee key is present in persistent storage.
1222 //
1223 HasUnstakingFeeStoreKey() bool
1224
1225 // GetUnstakingFee returns the stored reward fee rate in basis points.
1226 //
1227 // Returns:
1228 // - fee: Persisted fee rate, where 10,000 basis points represents 100%.
1229 //
1230 GetUnstakingFee() uint64
1231
1232 // SetUnstakingFee persists the reward fee rate.
1233 //
1234 // Parameters:
1235 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1236 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1237 // - fee: Fee rate in basis points.
1238 //
1239 // Returns:
1240 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1241 //
1242 SetUnstakingFee(_ int , rlm realm, fee uint64 ) error
1243
1244 // HasPendingProtocolFeesStoreKey reports whether pending protocol fees exist.
1245 //
1246 // Returns:
1247 // - exists: True when the pendingProtocolFees key is present in persistent storage.
1248 //
1249 HasPendingProtocolFeesStoreKey() bool
1250
1251 // GetPendingProtocolFees returns pending protocol-fee amounts by token path.
1252 //
1253 // Returns:
1254 // - fees: Token-path-to-amount map awaiting settlement; storage read or type failures panic.
1255 //
1256 GetPendingProtocolFees() map [ string ] int64
1257
1258 // SetPendingProtocolFees replaces all pending protocol-fee amounts.
1259 //
1260 // Parameters:
1261 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1262 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1263 // - fees: Token-path-to-amount map copied into realm-owned persistent storage.
1264 //
1265 // Returns:
1266 // - err: Nil when stored, ErrSpoofedRealm or write-permission error when unauthorized, or the KV-store write error.
1267 //
1268 SetPendingProtocolFees(_ int , rlm realm, fees map [ string ] int64 ) error
1269
1270 // GetPendingProtocolFee returns the pending amount for one token path.
1271 //
1272 // Parameters:
1273 // - tokenPath: Token contract path whose pending amount is requested.
1274 //
1275 // Returns:
1276 // - amount: Pending amount for the token, or zero when no entry exists.
1277 //
1278 GetPendingProtocolFee(tokenPath string ) int64
1279
1280 // SetPendingProtocolFee updates one token's pending protocol-fee amount.
1281 //
1282 // Parameters:
1283 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1284 // - rlm: Propagated current realm context; it must also be authorized for code-realm writes.
1285 // - tokenPath: Token contract path whose pending amount is updated.
1286 // - amount: Pending protocol-fee amount to record for the token.
1287 //
1288 // Returns:
1289 // - err: Nil when updated, ErrSpoofedRealm or write-permission error when unauthorized, or the KV-store write error.
1290 //
1291 SetPendingProtocolFee(_ int , rlm realm, tokenPath string , amount int64 ) error
1292
1293 // RemovePendingProtocolFee deletes one token's pending protocol-fee entry.
1294 //
1295 // Parameters:
1296 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1297 // - rlm: Propagated current realm context; it must also be authorized for code-realm writes.
1298 // - tokenPath: Token contract path whose pending entry is deleted.
1299 //
1300 // Returns:
1301 // - err: Nil when removed, ErrSpoofedRealm or write-permission error when unauthorized, or the KV-store write error.
1302 //
1303 RemovePendingProtocolFee(_ int , rlm realm, tokenPath string ) error
1304
1305 // HasUnstakedPositionsStoreKey reports whether the exit-checkpoint tree key exists.
1306 //
1307 // Returns:
1308 // - exists: True when the unstakedPositions key is present in persistent storage.
1309 //
1310 HasUnstakedPositionsStoreKey() bool
1311
1312 // GetUnstakedPositions returns the persisted exit-checkpoint tree.
1313 //
1314 // Returns:
1315 // - positions: B+tree mapping position IDs to unstaked checkpoints; storage read or type failures panic.
1316 //
1317 GetUnstakedPositions() *bptree.BPTree
1318
1319 // SetUnstakedPositions persists the exit-checkpoint tree.
1320 //
1321 // Parameters:
1322 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1323 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1324 // - positions: B+tree containing unstaked position checkpoints to persist.
1325 //
1326 // Returns:
1327 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1328 //
1329 SetUnstakedPositions(_ int , rlm realm, positions *bptree.BPTree) error
1330
1331 // HasUncollectedIncentiveCountsStoreKey reports whether the incentive-count tree key exists.
1332 //
1333 // Returns:
1334 // - exists: True when the uncollectedIncentiveCounts key is present in persistent storage.
1335 //
1336 HasUncollectedIncentiveCountsStoreKey() bool
1337
1338 // GetUncollectedIncentiveCounts returns the persisted count tree for exit claims.
1339 //
1340 // Returns:
1341 // - counts: B+tree mapping incentive IDs to uncollected checkpoint counts; storage read or type failures panic.
1342 //
1343 GetUncollectedIncentiveCounts() *bptree.BPTree
1344
1345 // SetUncollectedIncentiveCounts persists the exit-claim count tree.
1346 //
1347 // Parameters:
1348 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1349 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1350 // - counts: B+tree containing uncollected incentive counts to persist.
1351 //
1352 // Returns:
1353 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1354 //
1355 SetUncollectedIncentiveCounts(_ int , rlm realm, counts *bptree.BPTree) error
1356 // HasPoolsStoreKey reports whether the pool registry tree key exists.
1357 //
1358 // Returns:
1359 // - exists: True when the pools key is present in persistent storage.
1360 //
1361 HasPoolsStoreKey() bool
1362
1363 // GetPools returns the persisted pool registry tree.
1364 //
1365 // Returns:
1366 // - pools: B+tree mapping canonical pool paths to pool records; storage read or type failures panic.
1367 //
1368 GetPools() *bptree.BPTree
1369
1370 // SetPools persists the pool registry tree.
1371 //
1372 // Parameters:
1373 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1374 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1375 // - pools: B+tree containing pool records to persist.
1376 //
1377 // Returns:
1378 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1379 //
1380 SetPools(_ int , rlm realm, pools *bptree.BPTree) error
1381
1382 // HasPoolTierMembershipsStoreKey reports whether pool-to-tier membership data exists.
1383 //
1384 // Returns:
1385 // - exists: True when the poolTierMemberships key is present in persistent storage.
1386 //
1387 HasPoolTierMembershipsStoreKey() bool
1388
1389 // GetPoolTierMemberships returns the persisted pool-to-tier membership tree.
1390 //
1391 // Returns:
1392 // - memberships: B+tree mapping pool paths to tier numbers; storage read or type failures panic.
1393 //
1394 GetPoolTierMemberships() *bptree.BPTree
1395
1396 // SetPoolTierMemberships persists pool-to-tier membership data.
1397 //
1398 // Parameters:
1399 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1400 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1401 // - memberships: B+tree mapping pool paths to tier numbers.
1402 //
1403 // Returns:
1404 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1405 //
1406 SetPoolTierMemberships(_ int , rlm realm, memberships *bptree.BPTree) error
1407
1408 // HasPoolTierRatioStoreKey reports whether tier reward-ratio data exists.
1409 //
1410 // Returns:
1411 // - exists: True when the poolTierRatio key is present in persistent storage.
1412 //
1413 HasPoolTierRatioStoreKey() bool
1414
1415 // GetPoolTierRatio returns the persisted tier-to-ratio configuration.
1416 //
1417 // Returns:
1418 // - ratio: TierRatio configuration used to calculate pool emission shares; storage read or type failures panic.
1419 //
1420 GetPoolTierRatio() TierRatio
1421
1422 // SetPoolTierRatio persists tier reward-ratio configuration.
1423 //
1424 // Parameters:
1425 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1426 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1427 // - ratio: TierRatio configuration to persist.
1428 //
1429 // Returns:
1430 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1431 //
1432 SetPoolTierRatio(_ int , rlm realm, ratio TierRatio) error
1433
1434 // HasPoolTierCountsStoreKey reports whether tier membership counts exist.
1435 //
1436 // Returns:
1437 // - exists: True when the poolTierCounts key is present in persistent storage.
1438 //
1439 HasPoolTierCountsStoreKey() bool
1440
1441 // GetPoolTierCounts returns the fixed-size array of pool counts by tier.
1442 //
1443 // Returns:
1444 // - counts: Per-tier pool membership counts indexed by AllTierCount; storage read or type failures panic.
1445 //
1446 GetPoolTierCounts() [AllTierCount] uint64
1447
1448 // SetPoolTierCounts persists per-tier pool membership counts.
1449 //
1450 // Parameters:
1451 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1452 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1453 // - counts: Fixed-size per-tier pool membership counts to persist.
1454 //
1455 // Returns:
1456 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1457 //
1458 SetPoolTierCounts(_ int , rlm realm, counts [AllTierCount] uint64 ) error
1459
1460 // HasPoolTierLastRewardCacheTimestampStoreKey reports whether the reward-cache timestamp exists.
1461 //
1462 // Returns:
1463 // - exists: True when the poolTierLastRewardCacheTimestamp key is present in persistent storage.
1464 //
1465 HasPoolTierLastRewardCacheTimestampStoreKey() bool
1466
1467 // GetPoolTierLastRewardCacheTimestamp returns the last tier reward-cache timestamp.
1468 //
1469 // Returns:
1470 // - timestamp: Unix-second timestamp persisted after tier reward caching; read/type failures panic.
1471 //
1472 GetPoolTierLastRewardCacheTimestamp() int64
1473
1474 // SetPoolTierLastRewardCacheTimestamp persists the tier reward-cache timestamp.
1475 //
1476 // Parameters:
1477 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1478 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1479 // - timestamp: Unix-second timestamp to persist as the last cache boundary.
1480 //
1481 // Returns:
1482 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1483 //
1484 SetPoolTierLastRewardCacheTimestamp(_ int , rlm realm, timestamp int64 ) error
1485
1486 // HasPoolTierCurrentEmissionStoreKey reports whether the current tier-emission key exists.
1487 //
1488 // Returns:
1489 // - exists: True when the poolTierCurrentEmission key is present in persistent storage.
1490 //
1491 HasPoolTierCurrentEmissionStoreKey() bool
1492
1493 // GetPoolTierCurrentEmission returns the current GNS emission rate cached for tiers.
1494 //
1495 // Returns:
1496 // - emission: Current per-second emission amount; storage read or type failures panic.
1497 //
1498 GetPoolTierCurrentEmission() int64
1499
1500 // SetPoolTierCurrentEmission persists the current tier-emission rate.
1501 //
1502 // Parameters:
1503 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1504 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1505 // - emission: Current per-second GNS emission amount to persist.
1506 //
1507 // Returns:
1508 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1509 //
1510 SetPoolTierCurrentEmission(_ int , rlm realm, emission int64 ) error
1511
1512 // HasPoolTierGetEmissionStoreKey reports whether the emission-rate callback exists.
1513 //
1514 // Returns:
1515 // - exists: True when the poolTierGetEmission key is present in persistent storage.
1516 //
1517 HasPoolTierGetEmissionStoreKey() bool
1518
1519 // GetPoolTierGetEmission returns the callback used to query current emission.
1520 //
1521 // Returns:
1522 // - getEmission: Callback returning the current emission amount and an error; storage read or type failures panic.
1523 //
1524 GetPoolTierGetEmission() func () ( int64 , error )
1525
1526 // SetPoolTierGetEmission persists the callback used to query current emission.
1527 //
1528 // Parameters:
1529 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1530 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1531 // - fn: Callback that returns the current per-second emission amount, or an error when unavailable.
1532 //
1533 // Returns:
1534 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1535 //
1536 SetPoolTierGetEmission(_ int , rlm realm, fn func () ( int64 , error )) error
1537
1538 // HasPoolTierGetHalvingBlocksInRangeStoreKey reports whether the halving-range callback exists.
1539 //
1540 // Returns:
1541 // - exists: True when the poolTierGetHalvingBlocksInRange key is present in persistent storage.
1542 //
1543 HasPoolTierGetHalvingBlocksInRangeStoreKey() bool
1544
1545 // GetPoolTierGetHalvingBlocksInRange returns the callback used to query
1546 // halving timestamps and matching emission amounts for a time range.
1547 //
1548 // Returns:
1549 // - getHalvingBlocksInRange: Callback taking [start,end) timestamps and returning ascending halving timestamps, corresponding emissions, and an error; storage read or type failures panic.
1550 //
1551 GetPoolTierGetHalvingBlocksInRange() func (start, end int64 ) ([] int64 , [] int64 , error )
1552
1553 // SetPoolTierGetHalvingBlocksInRange persists the halving-range callback.
1554 //
1555 // Parameters:
1556 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1557 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1558 // - fn: Callback taking a [start,end) timestamp interval and returning matching halving timestamps, emission amounts, and an error.
1559 //
1560 // Returns:
1561 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1562 //
1563 SetPoolTierGetHalvingBlocksInRange(_ int , rlm realm, fn func (start, end int64 ) ([] int64 , [] int64 , error )) error
1564
1565 // HasWarmupTemplateStoreKey reports whether the warm-up template key exists.
1566 //
1567 // Returns:
1568 // - exists: True when the warmupTemplate key is present in persistent storage.
1569 //
1570 HasWarmupTemplateStoreKey() bool
1571
1572 // GetWarmupTemplate returns a copy of the warm-up schedule for new deposits.
1573 //
1574 // Returns:
1575 // - warmups: Caller-safe copy of ordered warm-up ratio and duration entries.
1576 //
1577 GetWarmupTemplate() []Warmup
1578
1579 // SetWarmupTemplate replaces the warm-up schedule for new deposits.
1580 //
1581 // Parameters:
1582 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1583 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1584 // - warmups: Ordered warm-up ratio and duration entries to persist.
1585 //
1586 // Returns:
1587 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1588 //
1589 SetWarmupTemplate(_ int , rlm realm, warmups []Warmup) error
1590
1591 // HasCurrentSwapBatchStoreKey reports whether the current swap-batch key exists.
1592 //
1593 // Returns:
1594 // - exists: True when the currentSwapBatch key is present in persistent storage.
1595 //
1596 HasCurrentSwapBatchStoreKey() bool
1597
1598 // GetCurrentSwapBatch returns the persisted swap-batch processor state.
1599 //
1600 // Returns:
1601 // - batch: Current SwapBatchProcessor pointer; storage read or type failures panic.
1602 //
1603 GetCurrentSwapBatch() *SwapBatchProcessor
1604
1605 // SetCurrentSwapBatch persists the current swap-batch processor state.
1606 //
1607 // Parameters:
1608 // - _: Leading integer discriminator for internal store forwarding; callers pass 0.
1609 // - rlm: Propagated current realm context; a non-current realm is rejected before writing.
1610 // - batch: SwapBatchProcessor state to persist for the current batch.
1611 //
1612 // Returns:
1613 // - err: Nil when stored, ErrSpoofedRealm for a non-current realm, or the underlying KV-store write error.
1614 //
1615 SetCurrentSwapBatch(_ int , rlm realm, batch *SwapBatchProcessor) error
1616 }
1617
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.