Search Apps Documentation Source Content File Folder Download Copy Actions Download

getter.gno

4.49 Kb · 137 lines
  1package position
  2
  3import (
  4	ufmt "gno.land/p/nt/ufmt/v0"
  5)
  6
  7// GetPositionCount returns the total number of positions.
  8func GetPositionCount() int {
  9	return getImplementation().GetPositionCount()
 10}
 11
 12// GetPositionIDs returns a paginated list of position IDs.
 13func GetPositionIDs(offset, count int) []uint64 {
 14	return cloneUint64Slice(getImplementation().GetPositionIDs(offset, count))
 15}
 16
 17// GetPosition returns the position data for a given position ID.
 18func GetPosition(positionId uint64) (Position, error) {
 19	position, ok := getImplementation().GetPosition(positionId)
 20	if !ok {
 21		return Position{}, ufmt.Errorf("position %d not found", positionId)
 22	}
 23
 24	return clonePosition(position), nil
 25}
 26
 27// IsBurned returns whether a position has been burned.
 28func IsBurned(positionId uint64) bool {
 29	return getImplementation().IsBurned(positionId)
 30}
 31
 32// IsInRange returns whether a position's ticks are within the current price range.
 33func IsInRange(positionId uint64) bool {
 34	return getImplementation().IsInRange(positionId)
 35}
 36
 37// GetPositionTokenBalances returns the token0 balance of a position.
 38func GetPositionTokenBalances(positionId uint64) (int64, int64) {
 39	balance0, balance1 := getImplementation().GetPositionTokenBalances(positionId)
 40	return balance0, balance1
 41}
 42
 43func GetPositionToken0Balance(positionId uint64) int64 {
 44	balance0, _ := GetPositionTokenBalances(positionId)
 45	return balance0
 46}
 47
 48func GetPositionToken1Balance(positionId uint64) int64 {
 49	_, balance1 := GetPositionTokenBalances(positionId)
 50	return balance1
 51}
 52
 53// GetPositionFeeGrowthInside0LastX128 returns the last recorded fee growth inside for token0.
 54func GetPositionFeeGrowthInside0LastX128(positionId uint64) string {
 55	return getImplementation().GetPositionFeeGrowthInside0LastX128(positionId)
 56}
 57
 58// GetPositionFeeGrowthInside1LastX128 returns the last recorded fee growth inside for token1.
 59func GetPositionFeeGrowthInside1LastX128(positionId uint64) string {
 60	return getImplementation().GetPositionFeeGrowthInside1LastX128(positionId)
 61}
 62
 63// GetPositionFeeGrowthInsideLastX128 returns the last recorded fee growth inside for both tokens.
 64func GetPositionFeeGrowthInsideLastX128(positionId uint64) (string, string) {
 65	position, err := GetPosition(positionId)
 66	if err != nil {
 67		return "0", "0"
 68	}
 69
 70	return position.FeeGrowthInside0LastX128(), position.FeeGrowthInside1LastX128()
 71}
 72
 73// GetPositionLiquidity returns the liquidity amount of a position.
 74func GetPositionLiquidity(positionId uint64) string {
 75	return getImplementation().GetPositionLiquidity(positionId)
 76}
 77
 78// GetPositionOperator returns the operator address of a position.
 79func GetPositionOperator(positionId uint64) address {
 80	return getImplementation().GetPositionOperator(positionId)
 81}
 82
 83// GetPositionPoolKey returns the pool key of a position.
 84func GetPositionPoolKey(positionId uint64) string {
 85	return getImplementation().GetPositionPoolKey(positionId)
 86}
 87
 88// GetPositionTickLower returns the lower tick of a position.
 89func GetPositionTickLower(positionId uint64) int32 {
 90	return getImplementation().GetPositionTickLower(positionId)
 91}
 92
 93// GetPositionTickUpper returns the upper tick of a position.
 94func GetPositionTickUpper(positionId uint64) int32 {
 95	return getImplementation().GetPositionTickUpper(positionId)
 96}
 97
 98// GetPositionTicks returns the lower and upper ticks of a position.
 99func GetPositionTicks(positionId uint64) (int32, int32) {
100	position, err := GetPosition(positionId)
101	if err != nil {
102		return 0, 0
103	}
104
105	return position.TickLower(), position.TickUpper()
106}
107
108// GetPositionTokensOwed0 returns the amount of token0 owed to a position.
109func GetPositionTokensOwed0(positionId uint64) int64 {
110	return getImplementation().GetPositionTokensOwed0(positionId)
111}
112
113// GetPositionTokensOwed1 returns the amount of token1 owed to a position.
114func GetPositionTokensOwed1(positionId uint64) int64 {
115	return getImplementation().GetPositionTokensOwed1(positionId)
116}
117
118// GetPositionTokensOwed returns the amount of tokens owed to a position.
119func GetPositionTokensOwed(positionId uint64) (int64, int64) {
120	position, err := GetPosition(positionId)
121	if err != nil {
122		return 0, 0
123	}
124
125	return position.TokensOwed0(), position.TokensOwed1()
126}
127
128// GetUnclaimedFee returns the unclaimed fees for both tokens of a position.
129func GetUnclaimedFee(positionId uint64) (string, string) {
130	fee0, fee1 := getImplementation().GetUnclaimedFee(positionId)
131	return fee0.ToString(), fee1.ToString()
132}
133
134// GetPositionOwner returns the owner address of a position NFT.
135func GetPositionOwner(positionId uint64) address {
136	return getImplementation().GetPositionOwner(positionId)
137}