types.gno
2.49 Kb ยท 102 lines
1package position
2
3import (
4 u256 "gno.land/p/gnoswap/uint256"
5 "gno.land/p/nt/avl"
6)
7
8type IPosition interface {
9 IPositionManager
10 IPositionGetter
11}
12
13type IPositionManager interface {
14 Mint(
15 token0 string,
16 token1 string,
17 fee uint32,
18 tickLower int32,
19 tickUpper int32,
20 amount0Desired string,
21 amount1Desired string,
22 amount0Min string,
23 amount1Min string,
24 deadline int64,
25 mintTo address,
26 caller address,
27 referrer string,
28 ) (uint64, string, string, string)
29
30 IncreaseLiquidity(
31 positionId uint64,
32 amount0DesiredStr string,
33 amount1DesiredStr string,
34 amount0MinStr string,
35 amount1MinStr string,
36 deadline int64,
37 ) (uint64, string, string, string, string)
38
39 DecreaseLiquidity(
40 positionId uint64,
41 liquidityStr string,
42 amount0MinStr string,
43 amount1MinStr string,
44 deadline int64,
45 unwrapResult bool,
46 ) (uint64, string, string, string, string, string, string)
47
48 Reposition(
49 positionId uint64,
50 tickLower int32,
51 tickUpper int32,
52 amount0DesiredStr string,
53 amount1DesiredStr string,
54 amount0MinStr string,
55 amount1MinStr string,
56 deadline int64,
57 ) (uint64, string, int32, int32, string, string)
58
59 CollectFee(
60 positionId uint64,
61 unwrapResult bool,
62 ) (uint64, string, string, string, string, string)
63
64 SetPositionOperator(
65 positionId uint64,
66 operator address,
67 )
68}
69
70type IPositionGetter interface {
71 GetPositionCount() int
72 GetPositionIDs(offset, count int) []uint64
73 GetPosition(positionId uint64) (Position, bool)
74 IsBurned(positionId uint64) bool
75 IsInRange(positionId uint64) bool
76 GetPositionOperator(positionId uint64) address
77 GetPositionPoolKey(positionId uint64) string
78 GetPositionTickLower(positionId uint64) int32
79 GetPositionTickUpper(positionId uint64) int32
80 GetPositionLiquidity(positionId uint64) *u256.Uint
81 GetPositionFeeGrowthInside0LastX128(positionId uint64) *u256.Uint
82 GetPositionFeeGrowthInside1LastX128(positionId uint64) *u256.Uint
83 GetPositionTokensOwed0(positionId uint64) *u256.Uint
84 GetPositionTokensOwed1(positionId uint64) *u256.Uint
85 GetUnclaimedFee(positionId uint64) (*u256.Uint, *u256.Uint)
86 GetPositionOwner(positionId uint64) address
87}
88
89type IPositionStore interface {
90 HasPositionsStoreKey() bool
91 GetPositions() *avl.Tree
92 SetPositions(positions *avl.Tree) error
93
94 HasPositionNextIDStoreKey() bool
95 GetPositionNextID() uint64
96 SetPositionNextID(nextID uint64) error
97
98 HasPosition(positionId uint64) bool
99 GetPosition(positionId uint64) (Position, bool)
100 SetPosition(positionId uint64, position Position) error
101 RemovePosition(positionId uint64) error
102}