1package position23import (4 ufmt "gno.land/p/nt/ufmt/v0"5)67const (8 errNoPermission = "[GNOSWAP-POSITION-001] caller has no permission"9 errSlippage = "[GNOSWAP-POSITION-002] slippage failed"10 errInvalidTokenPath = "[GNOSWAP-POSITION-003] invalid token address"11 errInvalidInput = "[GNOSWAP-POSITION-004] invalid input data"12 errDataNotFound = "[GNOSWAP-POSITION-005] requested data not found"13 errExpired = "[GNOSWAP-POSITION-006] transaction expired"14 errInvalidLiquidity = "[GNOSWAP-POSITION-007] invalid liquidity"15 errNotClear = "[GNOSWAP-POSITION-008] position is not clear"16 errZeroLiquidity = "[GNOSWAP-POSITION-009] zero liquidity"17 errPositionExist = "[GNOSWAP-POSITION-010] position with same positionId already exists"18 errInvalidAddress = "[GNOSWAP-POSITION-011] invalid address"19 errPositionDoesNotExist = "[GNOSWAP-POSITION-012] position does not exist"20 errUnderflow = "[GNOSWAP-POSITION-013] underflow"21 errOverflow = "[GNOSWAP-POSITION-014] overflow"22 errCannotMintToStaker = "[GNOSWAP-POSITION-015] cannot mint to staker"23 errSpoofedRealm = "[GNOSWAP-POSITION-016] rlm does not match the current crossing frame"24)2526// newErrorWithDetail appends additional context or details to an existing error message.27func newErrorWithDetail(message string, detail string) string {28 return ufmt.Errorf("%s || %s", message, detail).Error()29}3031// makeErrorWithDetails creates an error with additional context.32func makeErrorWithDetails(message string, details string) error {33 return ufmt.Errorf("%s || %s", message, details)34}35NewPositionV1(positionStore interface {GetPosition func(uint64) (gno.land/r/gnoswap/position.Position, bool); GetPositionNextID func() uint64; GetPositions func() *gno.land/p/nt/bptree/v0.BPTree; HasPosition func(uint64) bool; HasPositionNextIDStoreKey func() bool; HasPositionsStoreKey func() bool; RemovePosition func(int, .uverse.realm, uint64) .uverse.error; SetPosition func(int, .uverse.realm, uint64, gno.land/r/gnoswap/position.Position) .uverse.error; SetPositionNextID func(int, .uverse.realm, uint64) .uverse.error; SetPositions func(int, .uverse.realm, *gno.land/p/nt/bptree/v0.BPTree) .uverse.error}, accessor interface {Approve func(int, .uverse.realm, .uverse.address, gno.land/p/nt/grc721/v0.TokenID) .uverse.error; Burn func(int, .uverse.realm, gno.land/p/nt/grc721/v0.TokenID); Exists func(gno.land/p/nt/grc721/v0.TokenID) bool; Mint func(int, .uverse.realm, .uverse.address, gno.land/p/nt/grc721/v0.TokenID) gno.land/p/nt/grc721/v0.TokenID; OwnerOf func(gno.land/p/nt/grc721/v0.TokenID) (.uverse.address, .uverse.error); TotalSupply func() int64}) interface {CollectFee func(int, .uverse.realm, uint64) (uint64, string, string, string, string, string); DecreaseLiquidity func(int, .uverse.realm, uint64, string, string, string, int64) (uint64, string, string, string, string, string, string); GetPositionFeeGrowthInside0LastX128 func(uint64) (string, .uverse.error); GetPositionFeeGrowthInside1LastX128 func(uint64) (string, .uverse.error); GetPositionFeeGrowthInsideLastX128 func(uint64) (string, string, .uverse.error); GetPositionLiquidity func(uint64) (string, .uverse.error); GetPositionOperator func(uint64) (.uverse.address, .uverse.error); GetPositionOwner func(uint64) (.uverse.address, .uverse.error); GetPositionPoolKey func(uint64) (string, .uverse.error); GetPositionTickLower func(uint64) (int32, .uverse.error); GetPositionTickUpper func(uint64) (int32, .uverse.error); GetPositionTicks func(uint64) (int32, int32, .uverse.error); GetPositionTokenBalances func(uint64) (int64, int64, .uverse.error); GetPositionTokensOwed func(uint64) (int64, int64, .uverse.error); GetPositionTokensOwed0 func(uint64) (int64, .uverse.error); GetPositionTokensOwed1 func(uint64) (int64, .uverse.error); GetPositions func() *gno.land/p/nt/bptree/rotree/v0.ReadOnlyTree; GetUnclaimedFee func(uint64) (*gno.land/p/gnoswap/uint256/v1.Uint, *gno.land/p/gnoswap/uint256/v1.Uint, .uverse.error); IncreaseLiquidity func(int, .uverse.realm, uint64, string, string, string, string, int64) (uint64, string, string, string, string); IsBurned func(uint64) (bool, .uverse.error); IsInRange func(uint64) (bool, .uverse.error); Mint func(int, .uverse.realm, string, string, uint32, int32, int32, string, string, string, string, int64, .uverse.address, string) (uint64, string, string, string); Render func(string) string; Reposition func(int, .uverse.realm, uint64, int32, int32, string, string, string, string, int64) (uint64, string, int32, int32, string, string); SetPositionOperator func(int, .uverse.realm, uint64, .uverse.address)}
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
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.