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}