PathrockNetwork Gno Explorer
HomeBlocksTransactionsRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/r/gnoswap/staker

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
staker
Namespace
gnoswap
Files
17 (README)(gnomod.toml)
Exported functions
102
Module
gno.land/r/gnoswap/staker
gno
0.9

Files (17)

  • README.mdmarkdown
  • gnomod.tomltoml
  • accessor.gnogno
  • counter.gnogno
  • deposit.gnogno
  • doc.gnogno
  • getter_utils.gnogno
  • getter.gnogno
  • pool.gnogno
  • proxy.gnogno
  • render.gnogno
  • state.gnogno
  • store.gnogno
  • tree.gnogno
  • types.gnogno
  • unstaked_position.gnogno
  • upgrade.gnogno
  • types.gnogno
    1package staker23import (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

    Functions

    • 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.

    Rendered

    RenderedRawgnoweb ↗
    9type IStaker interface {
    10 IStakerManager
    11 IStakerGetter
    12 Render(path string) string
    13}
    14
    15type 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
    253type 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
    911type 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.