@moon-cx/sdk 0.0.0-stage → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +2 -2
- package/dist/adapters/sender.d.ts +88 -0
- package/dist/adapters/sender.d.ts.map +1 -0
- package/dist/adapters/sender.js +62 -0
- package/dist/adapters/sender.js.map +1 -0
- package/dist/adapters/tonclient.d.ts +13 -0
- package/dist/adapters/tonclient.d.ts.map +1 -0
- package/dist/adapters/tonclient.js +17 -0
- package/dist/adapters/tonclient.js.map +1 -0
- package/dist/api/index.d.ts +210 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +364 -0
- package/dist/api/index.js.map +1 -0
- package/dist/codec/bins.d.ts +26 -0
- package/dist/codec/bins.d.ts.map +1 -0
- package/dist/codec/bins.js +67 -0
- package/dist/codec/bins.js.map +1 -0
- package/dist/codec/clmm.d.ts +87 -0
- package/dist/codec/clmm.d.ts.map +1 -0
- package/dist/codec/clmm.js +119 -0
- package/dist/codec/clmm.js.map +1 -0
- package/dist/codec/cpmm.d.ts +112 -0
- package/dist/codec/cpmm.d.ts.map +1 -0
- package/dist/codec/cpmm.js +146 -0
- package/dist/codec/cpmm.js.map +1 -0
- package/dist/codec/jetton.d.ts +30 -0
- package/dist/codec/jetton.d.ts.map +1 -0
- package/dist/codec/jetton.js +37 -0
- package/dist/codec/jetton.js.map +1 -0
- package/dist/codec/mempad.d.ts +109 -0
- package/dist/codec/mempad.d.ts.map +1 -0
- package/dist/codec/mempad.js +162 -0
- package/dist/codec/mempad.js.map +1 -0
- package/dist/core/amount.d.ts +33 -0
- package/dist/core/amount.d.ts.map +1 -0
- package/dist/core/amount.js +81 -0
- package/dist/core/amount.js.map +1 -0
- package/dist/core/asset.d.ts +82 -0
- package/dist/core/asset.d.ts.map +1 -0
- package/dist/core/asset.js +143 -0
- package/dist/core/asset.js.map +1 -0
- package/dist/core/errors.d.ts +70 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +114 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/fee.d.ts +36 -0
- package/dist/core/fee.d.ts.map +1 -0
- package/dist/core/fee.js +40 -0
- package/dist/core/fee.js.map +1 -0
- package/dist/core/gas.d.ts +112 -0
- package/dist/core/gas.d.ts.map +1 -0
- package/dist/core/gas.js +265 -0
- package/dist/core/gas.js.map +1 -0
- package/dist/core/percent.d.ts +27 -0
- package/dist/core/percent.d.ts.map +1 -0
- package/dist/core/percent.js +71 -0
- package/dist/core/percent.js.map +1 -0
- package/dist/core/tx.d.ts +36 -0
- package/dist/core/tx.d.ts.map +1 -0
- package/dist/core/tx.js +17 -0
- package/dist/core/tx.js.map +1 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/jetton/index.d.ts +53 -0
- package/dist/jetton/index.d.ts.map +1 -0
- package/dist/jetton/index.js +90 -0
- package/dist/jetton/index.js.map +1 -0
- package/dist/math/clmm-swap.d.ts +80 -0
- package/dist/math/clmm-swap.d.ts.map +1 -0
- package/dist/math/clmm-swap.js +277 -0
- package/dist/math/clmm-swap.js.map +1 -0
- package/dist/math/clmm.d.ts +234 -0
- package/dist/math/clmm.d.ts.map +1 -0
- package/dist/math/clmm.js +270 -0
- package/dist/math/clmm.js.map +1 -0
- package/dist/math/cpmm.d.ts +170 -0
- package/dist/math/cpmm.d.ts.map +1 -0
- package/dist/math/cpmm.js +175 -0
- package/dist/math/cpmm.js.map +1 -0
- package/dist/math/integer.d.ts +10 -0
- package/dist/math/integer.d.ts.map +1 -0
- package/dist/math/integer.js +44 -0
- package/dist/math/integer.js.map +1 -0
- package/dist/math/q128.d.ts +45 -0
- package/dist/math/q128.d.ts.map +1 -0
- package/dist/math/q128.js +108 -0
- package/dist/math/q128.js.map +1 -0
- package/dist/moon.d.ts +245 -0
- package/dist/moon.d.ts.map +1 -0
- package/dist/moon.js +332 -0
- package/dist/moon.js.map +1 -0
- package/dist/ops/jetton-input.d.ts +3 -0
- package/dist/ops/jetton-input.d.ts.map +1 -0
- package/dist/ops/jetton-input.js +8 -0
- package/dist/ops/jetton-input.js.map +1 -0
- package/dist/ops/liquidity.d.ts +157 -0
- package/dist/ops/liquidity.d.ts.map +1 -0
- package/dist/ops/liquidity.js +413 -0
- package/dist/ops/liquidity.js.map +1 -0
- package/dist/ops/mempad.d.ts +143 -0
- package/dist/ops/mempad.d.ts.map +1 -0
- package/dist/ops/mempad.js +248 -0
- package/dist/ops/mempad.js.map +1 -0
- package/dist/ops/pool.d.ts +75 -0
- package/dist/ops/pool.d.ts.map +1 -0
- package/dist/ops/pool.js +129 -0
- package/dist/ops/pool.js.map +1 -0
- package/dist/ops/position.d.ts +47 -0
- package/dist/ops/position.d.ts.map +1 -0
- package/dist/ops/position.js +73 -0
- package/dist/ops/position.js.map +1 -0
- package/dist/ops/swap.d.ts +104 -0
- package/dist/ops/swap.d.ts.map +1 -0
- package/dist/ops/swap.js +248 -0
- package/dist/ops/swap.js.map +1 -0
- package/dist/pool/amounts.d.ts +36 -0
- package/dist/pool/amounts.d.ts.map +1 -0
- package/dist/pool/amounts.js +68 -0
- package/dist/pool/amounts.js.map +1 -0
- package/dist/pool/assets.d.ts +45 -0
- package/dist/pool/assets.d.ts.map +1 -0
- package/dist/pool/assets.js +57 -0
- package/dist/pool/assets.js.map +1 -0
- package/dist/pool/clmm.d.ts +309 -0
- package/dist/pool/clmm.d.ts.map +1 -0
- package/dist/pool/clmm.js +561 -0
- package/dist/pool/clmm.js.map +1 -0
- package/dist/pool/cpmm.d.ts +228 -0
- package/dist/pool/cpmm.d.ts.map +1 -0
- package/dist/pool/cpmm.js +332 -0
- package/dist/pool/cpmm.js.map +1 -0
- package/dist/protocol/generated.d.ts +2752 -0
- package/dist/protocol/generated.d.ts.map +1 -0
- package/dist/protocol/generated.js +3564 -0
- package/dist/protocol/generated.js.map +1 -0
- package/dist/protocol/index.d.ts +19 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +49 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/state/address.d.ts +121 -0
- package/dist/state/address.d.ts.map +1 -0
- package/dist/state/address.js +143 -0
- package/dist/state/address.js.map +1 -0
- package/dist/state/source.d.ts +26 -0
- package/dist/state/source.d.ts.map +1 -0
- package/dist/state/source.js +32 -0
- package/dist/state/source.js.map +1 -0
- package/dist/state/storage.d.ts +218 -0
- package/dist/state/storage.d.ts.map +1 -0
- package/dist/state/storage.js +273 -0
- package/dist/state/storage.js.map +1 -0
- package/package.json +74 -4
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { Address, type Cell } from '@ton/core';
|
|
2
|
+
/**
|
|
3
|
+
* On-chain state is read by parsing the raw data cell against its storage layout;
|
|
4
|
+
* the CPMM pool has no get-methods at all.
|
|
5
|
+
*/
|
|
6
|
+
/** Field order these parsers read. Checked by the drift test. */
|
|
7
|
+
export declare const STORAGE_LAYOUTS: {
|
|
8
|
+
readonly cpmm: {
|
|
9
|
+
readonly FactoryStorage: readonly ["admin", "poolCode", "lpAccCode", "lpPositionCode"];
|
|
10
|
+
readonly PoolStorage: readonly ["factory", "xWallet", "yWallet", "lpFee", "protocolFee", "lpTotal", "reserves", "lpAccCode", "lpPositionCode", "masters"];
|
|
11
|
+
readonly PoolReserves: readonly ["xReserve", "yReserve", "xFeesLp", "yFeesLp", "xFeesProtocol", "yFeesProtocol"];
|
|
12
|
+
readonly PoolMasters: readonly ["xMaster", "yMaster", "initiator"];
|
|
13
|
+
readonly LpPositionStorage: readonly ["pool", "user", "data", "frozen", "locked"];
|
|
14
|
+
readonly LpPositionContent: readonly ["lp", "xFeesLp", "yFeesLp"];
|
|
15
|
+
};
|
|
16
|
+
readonly clmm: {
|
|
17
|
+
readonly FactoryStorage: readonly ["admin", "lpFee", "protocolFee", "poolCode", "poolPayloadCode"];
|
|
18
|
+
readonly PoolStorage: readonly ["factory", "xMaster", "yMaster", "binStep", "lpFee", "protocolFee", "rangeCode", "lpAccCode", "lpPositionCode"];
|
|
19
|
+
readonly RangeState: readonly ["currentBin", "currentSqrtP", "xProtocolFees", "yProtocolFees"];
|
|
20
|
+
readonly LpPositionStorage: readonly ["range", "nftIndex", "user", "bins", "locked", "pending"];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/** `Bin { l: uint256, xFee: uint256, yFee: uint256 }` — 768 bits, no refs. */
|
|
24
|
+
export type Bin = {
|
|
25
|
+
l: bigint;
|
|
26
|
+
xFee: bigint;
|
|
27
|
+
yFee: bigint;
|
|
28
|
+
};
|
|
29
|
+
export type CpmmFactoryState = {
|
|
30
|
+
admin: Address;
|
|
31
|
+
/**
|
|
32
|
+
* `null` on the current factory layout, which does not store it.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Unused by the factory. Pool fees are set per pool at creation
|
|
35
|
+
* (`feeBps`); read `CpmmPoolState.lpFeeBps` instead.
|
|
36
|
+
*/
|
|
37
|
+
lpFeeBps: number | null;
|
|
38
|
+
/**
|
|
39
|
+
* `null` on the current factory layout, which does not store it.
|
|
40
|
+
*
|
|
41
|
+
* @deprecated Unused by the factory. Read `CpmmPoolState.protocolFeeBps` instead.
|
|
42
|
+
*/
|
|
43
|
+
protocolFeeBps: number | null;
|
|
44
|
+
poolCode: Cell;
|
|
45
|
+
lpAccountCode: Cell;
|
|
46
|
+
lpPositionCode: Cell;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* `FactoryStorage`, in either layout found on mainnet:
|
|
50
|
+
*
|
|
51
|
+
* - current: `admin, ^poolCode, ^lpAccCode, ^lpPositionCode`;
|
|
52
|
+
* - legacy: the same with `lpFee:uint8, protocolFee:uint8` after `admin`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseCpmmFactory(data: Cell): CpmmFactoryState;
|
|
55
|
+
export type CpmmPoolState = {
|
|
56
|
+
factory: Address;
|
|
57
|
+
/**
|
|
58
|
+
* Pool's own jetton wallet for the X side; `null` when X is native TON.
|
|
59
|
+
*
|
|
60
|
+
* Until the master answers, this holds the *master* address rather than the
|
|
61
|
+
* wallet — check `walletsResolved` before trusting it.
|
|
62
|
+
*/
|
|
63
|
+
xWallet: Address | null;
|
|
64
|
+
yWallet: Address;
|
|
65
|
+
/** Fee shares are stored against a divider of 10000. */
|
|
66
|
+
lpFeeBps: number;
|
|
67
|
+
protocolFeeBps: number;
|
|
68
|
+
lpTotal: bigint;
|
|
69
|
+
reserves: {
|
|
70
|
+
x: bigint;
|
|
71
|
+
y: bigint;
|
|
72
|
+
};
|
|
73
|
+
feesLp: {
|
|
74
|
+
x: bigint;
|
|
75
|
+
y: bigint;
|
|
76
|
+
};
|
|
77
|
+
feesProtocol: {
|
|
78
|
+
x: bigint;
|
|
79
|
+
y: bigint;
|
|
80
|
+
};
|
|
81
|
+
masters: {
|
|
82
|
+
x: Address | null;
|
|
83
|
+
y: Address;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Who opened the pool. Part of its address, so two wallets can hold separate
|
|
87
|
+
* pools on the same pair at the same fee.
|
|
88
|
+
*/
|
|
89
|
+
initiator: Address | null;
|
|
90
|
+
lpAccountCode: Cell;
|
|
91
|
+
lpPositionCode: Cell;
|
|
92
|
+
/**
|
|
93
|
+
* True once the pool has replaced the initial master addresses with its
|
|
94
|
+
* own jetton wallet addresses and is ready to trade.
|
|
95
|
+
*/
|
|
96
|
+
walletsResolved: boolean;
|
|
97
|
+
};
|
|
98
|
+
export declare function parseCpmmPool(data: Cell): CpmmPoolState;
|
|
99
|
+
export type CpmmPositionState = {
|
|
100
|
+
pool: Address;
|
|
101
|
+
user: Address;
|
|
102
|
+
lp: bigint;
|
|
103
|
+
/** Fee checkpoints, used to work out what is still owed. */
|
|
104
|
+
feeCheckpoint: {
|
|
105
|
+
x: bigint;
|
|
106
|
+
y: bigint;
|
|
107
|
+
};
|
|
108
|
+
frozen: boolean;
|
|
109
|
+
/** Once true, liquidity can never be withdrawn. Fees still can. */
|
|
110
|
+
locked: boolean;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* True when the position account holds only its init data (pool, user).
|
|
114
|
+
*
|
|
115
|
+
* Anyone can deploy a position address with an empty body. The LP position treats
|
|
116
|
+
* that state as "no position yet" (MsgDeployPosition), so the SDK must too rather
|
|
117
|
+
* than fail to parse it.
|
|
118
|
+
*/
|
|
119
|
+
export declare function cpmmPositionIsInitOnly(data: Cell): boolean;
|
|
120
|
+
export declare function parseCpmmPosition(data: Cell): CpmmPositionState;
|
|
121
|
+
export type ClmmFactoryState = {
|
|
122
|
+
admin: Address;
|
|
123
|
+
/** Fees new pools are created with, in basis points. */
|
|
124
|
+
lpFeeBps: number;
|
|
125
|
+
protocolFeeBps: number;
|
|
126
|
+
poolCode: Cell;
|
|
127
|
+
poolPayloadCode: Cell;
|
|
128
|
+
};
|
|
129
|
+
export declare function parseClmmFactory(data: Cell): ClmmFactoryState;
|
|
130
|
+
export type ClmmPoolState = {
|
|
131
|
+
factory: Address;
|
|
132
|
+
masters: {
|
|
133
|
+
x: Address | null;
|
|
134
|
+
y: Address;
|
|
135
|
+
};
|
|
136
|
+
/** Bin step in basis points: 25, 50, 100 or 200. */
|
|
137
|
+
binStep: number;
|
|
138
|
+
lpFeeBps: number;
|
|
139
|
+
protocolFeeBps: number;
|
|
140
|
+
rangeCode: Cell;
|
|
141
|
+
lpAccountCode: Cell;
|
|
142
|
+
lpPositionCode: Cell;
|
|
143
|
+
};
|
|
144
|
+
export declare function parseClmmPool(data: Cell): ClmmPoolState;
|
|
145
|
+
export type ClmmRangeState = {
|
|
146
|
+
pool: Address;
|
|
147
|
+
rangeNum: number;
|
|
148
|
+
xWallet: Address | null;
|
|
149
|
+
yWallet: Address;
|
|
150
|
+
binStep: number;
|
|
151
|
+
lpFeeBps: number;
|
|
152
|
+
protocolFeeBps: number;
|
|
153
|
+
/** Next index to be handed to a new position. */
|
|
154
|
+
positionIndex: bigint;
|
|
155
|
+
/** Current bin. Signed — a pool priced under 1 sits below zero. */
|
|
156
|
+
currentBin: number;
|
|
157
|
+
/** Current price as a Q128 square root. */
|
|
158
|
+
currentSqrtPrice: bigint;
|
|
159
|
+
protocolFees: {
|
|
160
|
+
x: bigint;
|
|
161
|
+
y: bigint;
|
|
162
|
+
};
|
|
163
|
+
bins: Map<bigint, Bin>;
|
|
164
|
+
lpAccountCode: Cell;
|
|
165
|
+
lpPositionCode: Cell;
|
|
166
|
+
};
|
|
167
|
+
export declare function parseClmmRange(data: Cell): ClmmRangeState;
|
|
168
|
+
export type ClmmPositionState = {
|
|
169
|
+
range: Address;
|
|
170
|
+
nftIndex: bigint;
|
|
171
|
+
user: Address;
|
|
172
|
+
bins: Map<bigint, Bin>;
|
|
173
|
+
/** Once true, liquidity can never be withdrawn. Fees still can. */
|
|
174
|
+
locked: boolean;
|
|
175
|
+
/** A withdrawal or fee collection is in flight; another must wait for its ACK or bounce. */
|
|
176
|
+
pending: boolean;
|
|
177
|
+
};
|
|
178
|
+
export declare function parseClmmPosition(data: Cell): ClmmPositionState;
|
|
179
|
+
export type MempadFactoryState = {
|
|
180
|
+
admin: Address;
|
|
181
|
+
/** How many launches this factory has deployed. */
|
|
182
|
+
launchCount: bigint;
|
|
183
|
+
/**
|
|
184
|
+
* Launch fee in nanograms, on top of the flat 0.2 GRAM. Stored state, so an upgrade
|
|
185
|
+
* can change it. The factory rejects a deploy below 0.2 GRAM + `launchFee` +
|
|
186
|
+
* `initialBuy` (`LOW_GAS`).
|
|
187
|
+
*/
|
|
188
|
+
launchFee: bigint;
|
|
189
|
+
cpmmFactory: Address;
|
|
190
|
+
protocolRecipient: Address;
|
|
191
|
+
curveCode: Cell;
|
|
192
|
+
/**
|
|
193
|
+
* Jetton wallet code handed to new launches.
|
|
194
|
+
*
|
|
195
|
+
* Do not use it to derive an existing holder's wallet: each launch stores its own
|
|
196
|
+
* copy at init, which may differ after an upgrade. Read the curve instead.
|
|
197
|
+
*/
|
|
198
|
+
jwCode: Cell;
|
|
199
|
+
};
|
|
200
|
+
/** Mempad factory `FactoryStorage`. */
|
|
201
|
+
export declare function parseMempadFactory(data: Cell): MempadFactoryState;
|
|
202
|
+
export type MempadCurveState = {
|
|
203
|
+
factory: Address;
|
|
204
|
+
creator: Address;
|
|
205
|
+
salt: bigint;
|
|
206
|
+
/** 1 trading, 2 graduating, 3 graduated. Anything else means the layout moved. */
|
|
207
|
+
state: number;
|
|
208
|
+
/** This launch's jetton wallet code, from which holder wallet addresses derive. */
|
|
209
|
+
jwCode: Cell;
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* `CurveStorage`.
|
|
213
|
+
*
|
|
214
|
+
* Reads only the fields needed to trade, so fields appended by an upgrade do not
|
|
215
|
+
* break parsing. `state` is validated: an unknown value means the layout moved.
|
|
216
|
+
*/
|
|
217
|
+
export declare function parseMempadCurve(data: Cell): MempadCurveState;
|
|
218
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/state/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { Address, Dictionary } from '@ton/core';
|
|
2
|
+
/**
|
|
3
|
+
* On-chain state is read by parsing the raw data cell against its storage layout;
|
|
4
|
+
* the CPMM pool has no get-methods at all.
|
|
5
|
+
*/
|
|
6
|
+
/** Field order these parsers read. Checked by the drift test. */
|
|
7
|
+
export const STORAGE_LAYOUTS = {
|
|
8
|
+
cpmm: {
|
|
9
|
+
// Current layout. parseCpmmFactory also reads
|
|
10
|
+
// the legacy layout with lpFee/protocolFee after admin; only this one is checked.
|
|
11
|
+
FactoryStorage: ['admin', 'poolCode', 'lpAccCode', 'lpPositionCode'],
|
|
12
|
+
PoolStorage: [
|
|
13
|
+
'factory',
|
|
14
|
+
'xWallet',
|
|
15
|
+
'yWallet',
|
|
16
|
+
'lpFee',
|
|
17
|
+
'protocolFee',
|
|
18
|
+
'lpTotal',
|
|
19
|
+
'reserves',
|
|
20
|
+
'lpAccCode',
|
|
21
|
+
'lpPositionCode',
|
|
22
|
+
'masters',
|
|
23
|
+
],
|
|
24
|
+
PoolReserves: ['xReserve', 'yReserve', 'xFeesLp', 'yFeesLp', 'xFeesProtocol', 'yFeesProtocol'],
|
|
25
|
+
PoolMasters: ['xMaster', 'yMaster', 'initiator'],
|
|
26
|
+
LpPositionStorage: ['pool', 'user', 'data', 'frozen', 'locked'],
|
|
27
|
+
LpPositionContent: ['lp', 'xFeesLp', 'yFeesLp'],
|
|
28
|
+
},
|
|
29
|
+
clmm: {
|
|
30
|
+
FactoryStorage: ['admin', 'lpFee', 'protocolFee', 'poolCode', 'poolPayloadCode'],
|
|
31
|
+
PoolStorage: [
|
|
32
|
+
'factory',
|
|
33
|
+
'xMaster',
|
|
34
|
+
'yMaster',
|
|
35
|
+
'binStep',
|
|
36
|
+
'lpFee',
|
|
37
|
+
'protocolFee',
|
|
38
|
+
'rangeCode',
|
|
39
|
+
'lpAccCode',
|
|
40
|
+
'lpPositionCode',
|
|
41
|
+
],
|
|
42
|
+
RangeState: ['currentBin', 'currentSqrtP', 'xProtocolFees', 'yProtocolFees'],
|
|
43
|
+
LpPositionStorage: ['range', 'nftIndex', 'user', 'bins', 'locked', 'pending'],
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
const BIN_KEY = Dictionary.Keys.BigInt(64);
|
|
47
|
+
const BIN_VALUE = {
|
|
48
|
+
serialize: () => {
|
|
49
|
+
throw new Error('bins are read-only here');
|
|
50
|
+
},
|
|
51
|
+
parse: (slice) => ({
|
|
52
|
+
l: slice.loadUintBig(256),
|
|
53
|
+
xFee: slice.loadUintBig(256),
|
|
54
|
+
yFee: slice.loadUintBig(256),
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* `FactoryStorage`, in either layout found on mainnet:
|
|
59
|
+
*
|
|
60
|
+
* - current: `admin, ^poolCode, ^lpAccCode, ^lpPositionCode`;
|
|
61
|
+
* - legacy: the same with `lpFee:uint8, protocolFee:uint8` after `admin`.
|
|
62
|
+
*/
|
|
63
|
+
export function parseCpmmFactory(data) {
|
|
64
|
+
const slice = data.beginParse();
|
|
65
|
+
const admin = slice.loadAddress();
|
|
66
|
+
// 16 bits after admin = legacy fee bytes, 0 = current. Anything else is refused:
|
|
67
|
+
// the refs that follow feed pool address derivation and cannot be guessed.
|
|
68
|
+
let lpFeeBps = null;
|
|
69
|
+
let protocolFeeBps = null;
|
|
70
|
+
if (slice.remainingBits === 16) {
|
|
71
|
+
lpFeeBps = slice.loadUint(8);
|
|
72
|
+
protocolFeeBps = slice.loadUint(8);
|
|
73
|
+
}
|
|
74
|
+
else if (slice.remainingBits !== 0) {
|
|
75
|
+
throw new Error(`CPMM factory: ${slice.remainingBits} bits after admin, expected 16 (before 05.10.2026) ` +
|
|
76
|
+
'or 0 — the storage layout has moved and nothing after this field can be trusted');
|
|
77
|
+
}
|
|
78
|
+
const poolCode = slice.loadRef();
|
|
79
|
+
const lpAccountCode = slice.loadRef();
|
|
80
|
+
const lpPositionCode = slice.loadRef();
|
|
81
|
+
slice.endParse();
|
|
82
|
+
return { admin, lpFeeBps, protocolFeeBps, poolCode, lpAccountCode, lpPositionCode };
|
|
83
|
+
}
|
|
84
|
+
export function parseCpmmPool(data) {
|
|
85
|
+
const slice = data.beginParse();
|
|
86
|
+
const factory = slice.loadAddress();
|
|
87
|
+
const xWallet = slice.loadMaybeAddress();
|
|
88
|
+
const yWallet = slice.loadAddress();
|
|
89
|
+
const lpFeeBps = slice.loadUint(8);
|
|
90
|
+
const protocolFeeBps = slice.loadUint(8);
|
|
91
|
+
const lpTotal = slice.loadCoins();
|
|
92
|
+
const reserves = slice.loadRef().beginParse();
|
|
93
|
+
const xReserve = reserves.loadCoins();
|
|
94
|
+
const yReserve = reserves.loadCoins();
|
|
95
|
+
const xFeesLp = reserves.loadUintBig(256);
|
|
96
|
+
const yFeesLp = reserves.loadUintBig(256);
|
|
97
|
+
const xFeesProtocol = reserves.loadCoins();
|
|
98
|
+
const yFeesProtocol = reserves.loadCoins();
|
|
99
|
+
const lpAccountCode = slice.loadRef();
|
|
100
|
+
const lpPositionCode = slice.loadRef();
|
|
101
|
+
const masters = slice.loadRef().beginParse();
|
|
102
|
+
const xMaster = masters.loadMaybeAddress();
|
|
103
|
+
const yMaster = masters.loadAddress();
|
|
104
|
+
// Older pools have no `initiator` in the masters cell; read it only if present.
|
|
105
|
+
const initiator = masters.remainingBits > 0 ? masters.loadAddress() : null;
|
|
106
|
+
// Until resolved, xWallet/yWallet hold the master addresses.
|
|
107
|
+
// Each side resolves in its own message, so both must be checked.
|
|
108
|
+
const xResolved = xMaster === null || (xWallet !== null && !xWallet.equals(xMaster));
|
|
109
|
+
const walletsResolved = !yWallet.equals(yMaster) && xResolved;
|
|
110
|
+
return {
|
|
111
|
+
factory,
|
|
112
|
+
xWallet,
|
|
113
|
+
yWallet,
|
|
114
|
+
lpFeeBps,
|
|
115
|
+
protocolFeeBps,
|
|
116
|
+
lpTotal,
|
|
117
|
+
reserves: { x: xReserve, y: yReserve },
|
|
118
|
+
feesLp: { x: xFeesLp, y: yFeesLp },
|
|
119
|
+
feesProtocol: { x: xFeesProtocol, y: yFeesProtocol },
|
|
120
|
+
masters: { x: xMaster, y: yMaster },
|
|
121
|
+
initiator,
|
|
122
|
+
lpAccountCode,
|
|
123
|
+
lpPositionCode,
|
|
124
|
+
walletsResolved,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* True when the position account holds only its init data (pool, user).
|
|
129
|
+
*
|
|
130
|
+
* Anyone can deploy a position address with an empty body. The LP position treats
|
|
131
|
+
* that state as "no position yet" (MsgDeployPosition), so the SDK must too rather
|
|
132
|
+
* than fail to parse it.
|
|
133
|
+
*/
|
|
134
|
+
export function cpmmPositionIsInitOnly(data) {
|
|
135
|
+
const slice = data.beginParse();
|
|
136
|
+
slice.loadAddress();
|
|
137
|
+
slice.loadAddress();
|
|
138
|
+
return slice.remainingBits === 0 && slice.remainingRefs === 0;
|
|
139
|
+
}
|
|
140
|
+
export function parseCpmmPosition(data) {
|
|
141
|
+
const slice = data.beginParse();
|
|
142
|
+
const pool = slice.loadAddress();
|
|
143
|
+
const user = slice.loadAddress();
|
|
144
|
+
const content = slice.loadRef().beginParse();
|
|
145
|
+
const lp = content.loadCoins();
|
|
146
|
+
const xFeesLp = content.loadUintBig(256);
|
|
147
|
+
const yFeesLp = content.loadUintBig(256);
|
|
148
|
+
return {
|
|
149
|
+
pool,
|
|
150
|
+
user,
|
|
151
|
+
lp,
|
|
152
|
+
feeCheckpoint: { x: xFeesLp, y: yFeesLp },
|
|
153
|
+
frozen: slice.loadBit(),
|
|
154
|
+
locked: slice.loadBit(),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export function parseClmmFactory(data) {
|
|
158
|
+
const slice = data.beginParse();
|
|
159
|
+
return {
|
|
160
|
+
admin: slice.loadAddress(),
|
|
161
|
+
lpFeeBps: slice.loadUint(8),
|
|
162
|
+
protocolFeeBps: slice.loadUint(8),
|
|
163
|
+
poolCode: slice.loadRef(),
|
|
164
|
+
poolPayloadCode: slice.loadRef(),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
export function parseClmmPool(data) {
|
|
168
|
+
const slice = data.beginParse();
|
|
169
|
+
const factory = slice.loadAddress();
|
|
170
|
+
const xMaster = slice.loadMaybeAddress();
|
|
171
|
+
const yMaster = slice.loadAddress();
|
|
172
|
+
return {
|
|
173
|
+
factory,
|
|
174
|
+
masters: { x: xMaster, y: yMaster },
|
|
175
|
+
binStep: slice.loadUint(16),
|
|
176
|
+
lpFeeBps: slice.loadUint(8),
|
|
177
|
+
protocolFeeBps: slice.loadUint(8),
|
|
178
|
+
rangeCode: slice.loadRef(),
|
|
179
|
+
lpAccountCode: slice.loadRef(),
|
|
180
|
+
lpPositionCode: slice.loadRef(),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
export function parseClmmRange(data) {
|
|
184
|
+
const slice = data.beginParse();
|
|
185
|
+
const pool = slice.loadAddress();
|
|
186
|
+
const rangeNum = slice.loadInt(16);
|
|
187
|
+
const xWallet = slice.loadMaybeAddress();
|
|
188
|
+
const yWallet = slice.loadAddress();
|
|
189
|
+
const binStep = slice.loadUint(16);
|
|
190
|
+
const lpFeeBps = slice.loadUint(8);
|
|
191
|
+
const protocolFeeBps = slice.loadUint(8);
|
|
192
|
+
const positionIndex = slice.loadUintBig(64);
|
|
193
|
+
const state = slice.loadRef().beginParse();
|
|
194
|
+
const currentBin = state.loadInt(64);
|
|
195
|
+
const currentSqrtPrice = state.loadUintBig(256);
|
|
196
|
+
const xProtocolFees = state.loadCoins();
|
|
197
|
+
const yProtocolFees = state.loadCoins();
|
|
198
|
+
const binsCell = slice.loadMaybeRef();
|
|
199
|
+
const bins = new Map();
|
|
200
|
+
if (binsCell !== null) {
|
|
201
|
+
for (const [key, value] of Dictionary.loadDirect(BIN_KEY, BIN_VALUE, binsCell)) {
|
|
202
|
+
bins.set(key, value);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
pool,
|
|
207
|
+
rangeNum,
|
|
208
|
+
xWallet,
|
|
209
|
+
yWallet,
|
|
210
|
+
binStep,
|
|
211
|
+
lpFeeBps,
|
|
212
|
+
protocolFeeBps,
|
|
213
|
+
positionIndex,
|
|
214
|
+
currentBin,
|
|
215
|
+
currentSqrtPrice,
|
|
216
|
+
protocolFees: { x: xProtocolFees, y: yProtocolFees },
|
|
217
|
+
bins,
|
|
218
|
+
lpAccountCode: slice.loadRef(),
|
|
219
|
+
lpPositionCode: slice.loadRef(),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
export function parseClmmPosition(data) {
|
|
223
|
+
const slice = data.beginParse();
|
|
224
|
+
const range = slice.loadAddress();
|
|
225
|
+
const nftIndex = slice.loadUintBig(64);
|
|
226
|
+
const user = slice.loadAddress();
|
|
227
|
+
const binsCell = slice.loadMaybeRef();
|
|
228
|
+
const bins = new Map();
|
|
229
|
+
if (binsCell !== null) {
|
|
230
|
+
for (const [key, value] of Dictionary.loadDirect(BIN_KEY, BIN_VALUE, binsCell)) {
|
|
231
|
+
bins.set(key, value);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return { range, nftIndex, user, bins, locked: slice.loadBit(), pending: slice.loadBit() };
|
|
235
|
+
}
|
|
236
|
+
/** Mempad factory `FactoryStorage`. */
|
|
237
|
+
export function parseMempadFactory(data) {
|
|
238
|
+
const slice = data.beginParse();
|
|
239
|
+
const admin = slice.loadAddress();
|
|
240
|
+
const launchCount = slice.loadUintBig(64);
|
|
241
|
+
const launchFee = slice.loadCoins();
|
|
242
|
+
const config = slice.loadRef().beginParse();
|
|
243
|
+
return {
|
|
244
|
+
admin,
|
|
245
|
+
launchCount,
|
|
246
|
+
launchFee,
|
|
247
|
+
cpmmFactory: config.loadAddress(),
|
|
248
|
+
protocolRecipient: config.loadAddress(),
|
|
249
|
+
curveCode: slice.loadRef(),
|
|
250
|
+
jwCode: slice.loadRef(),
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* `CurveStorage`.
|
|
255
|
+
*
|
|
256
|
+
* Reads only the fields needed to trade, so fields appended by an upgrade do not
|
|
257
|
+
* break parsing. `state` is validated: an unknown value means the layout moved.
|
|
258
|
+
*/
|
|
259
|
+
export function parseMempadCurve(data) {
|
|
260
|
+
const slice = data.beginParse();
|
|
261
|
+
const factory = slice.loadAddress();
|
|
262
|
+
const creator = slice.loadAddress();
|
|
263
|
+
const salt = slice.loadUintBig(64);
|
|
264
|
+
const state = slice.loadUint(2);
|
|
265
|
+
if (state < 1 || state > 3) {
|
|
266
|
+
throw new Error(`mempad curve: state is ${state}, expected 1..3 — the storage layout has moved ` +
|
|
267
|
+
'and nothing after this field can be trusted');
|
|
268
|
+
}
|
|
269
|
+
const params = slice.loadRef().beginParse();
|
|
270
|
+
params.loadRef(); // econ
|
|
271
|
+
return { factory, creator, salt, state, jwCode: params.loadRef() };
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/state/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,76 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moon-cx/sdk",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "SDK for the moon.cx DEX on TON: CPMM and CLMM pools, swaps, liquidity and positions",
|
|
5
|
+
"homepage": "https://moon.cx/docs#sdk",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=22.6"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md",
|
|
17
|
+
"CHANGELOG.md"
|
|
18
|
+
],
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"import": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./protocol": {
|
|
27
|
+
"types": "./dist/protocol/index.d.ts",
|
|
28
|
+
"import": "./dist/protocol/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./math": {
|
|
31
|
+
"types": "./dist/math/clmm.d.ts",
|
|
32
|
+
"import": "./dist/math/clmm.js"
|
|
33
|
+
},
|
|
34
|
+
"./adapters/tonclient": {
|
|
35
|
+
"types": "./dist/adapters/tonclient.d.ts",
|
|
36
|
+
"import": "./dist/adapters/tonclient.js"
|
|
37
|
+
},
|
|
38
|
+
"./adapters/sender": {
|
|
39
|
+
"types": "./dist/adapters/sender.d.ts",
|
|
40
|
+
"import": "./dist/adapters/sender.js"
|
|
41
|
+
},
|
|
42
|
+
"./api": {
|
|
43
|
+
"types": "./dist/api/index.d.ts",
|
|
44
|
+
"import": "./dist/api/index.js"
|
|
45
|
+
},
|
|
46
|
+
"./package.json": "./package.json"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"protocol:extract": "node scripts/extract-protocol.ts",
|
|
50
|
+
"test": "node --test \"test/**/*.test.ts\"",
|
|
51
|
+
"typecheck": "tsc --noEmit",
|
|
52
|
+
"build": "tsc -p tsconfig.build.json",
|
|
53
|
+
"prepack": "npm run build",
|
|
54
|
+
"test:dist": "npm run build && node --test \"test/dist.test.ts\""
|
|
55
|
+
},
|
|
56
|
+
"keywords": [
|
|
57
|
+
"ton",
|
|
58
|
+
"dex",
|
|
59
|
+
"mooncx",
|
|
60
|
+
"clmm",
|
|
61
|
+
"cpmm",
|
|
62
|
+
"defi"
|
|
63
|
+
],
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"@ton/core": ">=0.60.0"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@ton/core": "^0.62.1",
|
|
69
|
+
"@ton/ton": "^15.4.0",
|
|
70
|
+
"@types/node": "^22.10.0",
|
|
71
|
+
"typescript": "^5.8.0"
|
|
72
|
+
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"@ton-community/assets-sdk": "^0.0.5"
|
|
75
|
+
}
|
|
76
|
+
}
|