sally-defi-ts-sdk 0.3.2
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/LICENSE +21 -0
- package/README.md +263 -0
- package/dist/aio/client.d.ts +93 -0
- package/dist/aio/client.d.ts.map +1 -0
- package/dist/aio/client.js +283 -0
- package/dist/aio/client.js.map +1 -0
- package/dist/aio/index.d.ts +20 -0
- package/dist/aio/index.d.ts.map +1 -0
- package/dist/aio/index.js +19 -0
- package/dist/aio/index.js.map +1 -0
- package/dist/aio/modules/fees.d.ts +19 -0
- package/dist/aio/modules/fees.d.ts.map +1 -0
- package/dist/aio/modules/fees.js +47 -0
- package/dist/aio/modules/fees.js.map +1 -0
- package/dist/aio/modules/liquidity.d.ts +47 -0
- package/dist/aio/modules/liquidity.d.ts.map +1 -0
- package/dist/aio/modules/liquidity.js +115 -0
- package/dist/aio/modules/liquidity.js.map +1 -0
- package/dist/aio/modules/prices.d.ts +18 -0
- package/dist/aio/modules/prices.d.ts.map +1 -0
- package/dist/aio/modules/prices.js +48 -0
- package/dist/aio/modules/prices.js.map +1 -0
- package/dist/aio/modules/swap.d.ts +50 -0
- package/dist/aio/modules/swap.d.ts.map +1 -0
- package/dist/aio/modules/swap.js +267 -0
- package/dist/aio/modules/swap.js.map +1 -0
- package/dist/aio/modules/wallet.d.ts +13 -0
- package/dist/aio/modules/wallet.d.ts.map +1 -0
- package/dist/aio/modules/wallet.js +27 -0
- package/dist/aio/modules/wallet.js.map +1 -0
- package/dist/aio/token.d.ts +19 -0
- package/dist/aio/token.d.ts.map +1 -0
- package/dist/aio/token.js +50 -0
- package/dist/aio/token.js.map +1 -0
- package/dist/client.d.ts +142 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +452 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +36 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +39 -0
- package/dist/constants.js.map +1 -0
- package/dist/data/deployment.json +1 -0
- package/dist/deployment.d.ts +44 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +118 -0
- package/dist/deployment.js.map +1 -0
- package/dist/errors.d.ts +57 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +197 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/fees.d.ts +32 -0
- package/dist/modules/fees.d.ts.map +1 -0
- package/dist/modules/fees.js +64 -0
- package/dist/modules/fees.js.map +1 -0
- package/dist/modules/liquidity.d.ts +134 -0
- package/dist/modules/liquidity.d.ts.map +1 -0
- package/dist/modules/liquidity.js +277 -0
- package/dist/modules/liquidity.js.map +1 -0
- package/dist/modules/prices.d.ts +47 -0
- package/dist/modules/prices.d.ts.map +1 -0
- package/dist/modules/prices.js +85 -0
- package/dist/modules/prices.js.map +1 -0
- package/dist/modules/swap.d.ts +102 -0
- package/dist/modules/swap.d.ts.map +1 -0
- package/dist/modules/swap.js +400 -0
- package/dist/modules/swap.js.map +1 -0
- package/dist/modules/wallet.d.ts +16 -0
- package/dist/modules/wallet.d.ts.map +1 -0
- package/dist/modules/wallet.js +30 -0
- package/dist/modules/wallet.js.map +1 -0
- package/dist/permit2.d.ts +97 -0
- package/dist/permit2.d.ts.map +1 -0
- package/dist/permit2.js +130 -0
- package/dist/permit2.js.map +1 -0
- package/dist/previews.d.ts +57 -0
- package/dist/previews.d.ts.map +1 -0
- package/dist/previews.js +69 -0
- package/dist/previews.js.map +1 -0
- package/dist/safety.d.ts +80 -0
- package/dist/safety.d.ts.map +1 -0
- package/dist/safety.js +133 -0
- package/dist/safety.js.map +1 -0
- package/dist/token.d.ts +215 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +239 -0
- package/dist/token.js.map +1 -0
- package/dist/types.d.ts +229 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +462 -0
- package/dist/types.js.map +1 -0
- package/dist/util.d.ts +13 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +22 -0
- package/dist/util.js.map +1 -0
- package/package.json +48 -0
- package/src/aio/client.ts +329 -0
- package/src/aio/index.ts +20 -0
- package/src/aio/modules/fees.ts +60 -0
- package/src/aio/modules/liquidity.ts +181 -0
- package/src/aio/modules/prices.ts +57 -0
- package/src/aio/modules/swap.ts +347 -0
- package/src/aio/modules/wallet.ts +34 -0
- package/src/aio/token.ts +59 -0
- package/src/client.ts +526 -0
- package/src/constants.ts +43 -0
- package/src/data/deployment.json +1 -0
- package/src/deployment.ts +132 -0
- package/src/errors.ts +215 -0
- package/src/index.ts +90 -0
- package/src/modules/fees.ts +78 -0
- package/src/modules/liquidity.ts +446 -0
- package/src/modules/prices.ts +97 -0
- package/src/modules/swap.ts +502 -0
- package/src/modules/wallet.ts +37 -0
- package/src/permit2.ts +169 -0
- package/src/previews.ts +95 -0
- package/src/safety.ts +152 -0
- package/src/token.ts +254 -0
- package/src/types.ts +438 -0
- package/src/util.ts +20 -0
package/dist/types.js
ADDED
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed result objects for every Sally tuple/struct return.
|
|
3
|
+
*
|
|
4
|
+
* ethers decodes Solidity structs into positional `Result` arrays. These classes
|
|
5
|
+
* give each field a name, so callers get `pos.liquidity` instead of `pos[7]` —
|
|
6
|
+
* and AI/agent callers get a stable, documented schema. Every class has a
|
|
7
|
+
* `fromRaw` constructor that maps the ABI component order to named fields.
|
|
8
|
+
*
|
|
9
|
+
* Amounts are kept as raw `bigint` (wei / token base units). Use
|
|
10
|
+
* {@link TokenAmount} or the `prices` helpers to humanize.
|
|
11
|
+
*/
|
|
12
|
+
import { pyRound } from "./util.js";
|
|
13
|
+
// --------------------------------------------------------------------------- //
|
|
14
|
+
// Enums
|
|
15
|
+
// --------------------------------------------------------------------------- //
|
|
16
|
+
/** DEX generation used for a swap hop (matches contract `version` uint8). */
|
|
17
|
+
export var PoolVersion;
|
|
18
|
+
(function (PoolVersion) {
|
|
19
|
+
PoolVersion[PoolVersion["V2"] = 2] = "V2";
|
|
20
|
+
PoolVersion[PoolVersion["V3"] = 3] = "V3";
|
|
21
|
+
PoolVersion[PoolVersion["V4"] = 4] = "V4";
|
|
22
|
+
})(PoolVersion || (PoolVersion = {}));
|
|
23
|
+
/**
|
|
24
|
+
* Lock asset kind as stored by the LiquidityController.
|
|
25
|
+
*
|
|
26
|
+
* Values match the on-chain constants
|
|
27
|
+
* (`LOCK_KIND_V3_NFT=1`, `LOCK_KIND_V2_LP=2`, `LOCK_KIND_V4_NFT=3`).
|
|
28
|
+
*/
|
|
29
|
+
export var LockKind;
|
|
30
|
+
(function (LockKind) {
|
|
31
|
+
LockKind[LockKind["V3_POSITION"] = 1] = "V3_POSITION";
|
|
32
|
+
LockKind[LockKind["V2_LP"] = 2] = "V2_LP";
|
|
33
|
+
LockKind[LockKind["V4_POSITION"] = 3] = "V4_POSITION";
|
|
34
|
+
})(LockKind || (LockKind = {}));
|
|
35
|
+
const NATIVE_SENTINELS = new Set([
|
|
36
|
+
"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
37
|
+
"0x0000000000000000000000000000000000000000",
|
|
38
|
+
]);
|
|
39
|
+
// --------------------------------------------------------------------------- //
|
|
40
|
+
// Swap routing
|
|
41
|
+
// --------------------------------------------------------------------------- //
|
|
42
|
+
/** One hop of a hybrid route (can itself be multi-token within a version). */
|
|
43
|
+
export class SwapStep {
|
|
44
|
+
version;
|
|
45
|
+
path;
|
|
46
|
+
dexPath;
|
|
47
|
+
pools;
|
|
48
|
+
baseToken;
|
|
49
|
+
estimatedAmountOut;
|
|
50
|
+
constructor(version, path, dexPath, pools, baseToken, estimatedAmountOut) {
|
|
51
|
+
this.version = version;
|
|
52
|
+
this.path = path;
|
|
53
|
+
this.dexPath = dexPath;
|
|
54
|
+
this.pools = pools;
|
|
55
|
+
this.baseToken = baseToken;
|
|
56
|
+
this.estimatedAmountOut = estimatedAmountOut;
|
|
57
|
+
}
|
|
58
|
+
static fromRaw(r) {
|
|
59
|
+
return new SwapStep(Number(r[0]), [...r[1]].map((a) => String(a)), [...r[2]].map((x) => Number(x)), [...r[3]].map((a) => String(a)), String(r[4]), BigInt(r[5]));
|
|
60
|
+
}
|
|
61
|
+
get isEmpty() {
|
|
62
|
+
return this.version === 0 && this.path.length === 0;
|
|
63
|
+
}
|
|
64
|
+
/** ABI-encodable tuple for this step. */
|
|
65
|
+
toTuple() {
|
|
66
|
+
return [this.version, this.path, this.dexPath, this.pools, this.baseToken, this.estimatedAmountOut];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Result of `getBestSwapPath` — up to three cross-version steps.
|
|
71
|
+
*
|
|
72
|
+
* This is exactly the struct `executeHybridSwap` consumes, so it round-trips:
|
|
73
|
+
* quote -> {@link toTuple} -> execute.
|
|
74
|
+
*/
|
|
75
|
+
export class SwapPath {
|
|
76
|
+
firstStep;
|
|
77
|
+
secondStep;
|
|
78
|
+
thirdStep;
|
|
79
|
+
stepCount;
|
|
80
|
+
constructor(firstStep, secondStep, thirdStep, stepCount) {
|
|
81
|
+
this.firstStep = firstStep;
|
|
82
|
+
this.secondStep = secondStep;
|
|
83
|
+
this.thirdStep = thirdStep;
|
|
84
|
+
this.stepCount = stepCount;
|
|
85
|
+
}
|
|
86
|
+
static fromRaw(r) {
|
|
87
|
+
return new SwapPath(SwapStep.fromRaw(r[0]), SwapStep.fromRaw(r[1]), SwapStep.fromRaw(r[2]), Number(r[3]));
|
|
88
|
+
}
|
|
89
|
+
/** ABI-encodable tuple for `executeHybridSwap(swapData, …)`. */
|
|
90
|
+
toTuple() {
|
|
91
|
+
return [this.firstStep.toTuple(), this.secondStep.toTuple(), this.thirdStep.toTuple(), this.stepCount];
|
|
92
|
+
}
|
|
93
|
+
get activeSteps() {
|
|
94
|
+
return [this.firstStep, this.secondStep, this.thirdStep].slice(0, this.stepCount);
|
|
95
|
+
}
|
|
96
|
+
/** Quoted output = the last active step's estimate. */
|
|
97
|
+
get estimatedAmountOut() {
|
|
98
|
+
const steps = this.activeSteps;
|
|
99
|
+
return steps.length ? steps[steps.length - 1].estimatedAmountOut : 0n;
|
|
100
|
+
}
|
|
101
|
+
/** Every pool this route would route through (across all active steps). */
|
|
102
|
+
get poolAddresses() {
|
|
103
|
+
const out = [];
|
|
104
|
+
for (const st of this.activeSteps)
|
|
105
|
+
out.push(...st.pools);
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Return a list of route-integrity violations (empty == sound route).
|
|
110
|
+
*
|
|
111
|
+
* Guards against funds entering the wrong pool: verifies the path starts at
|
|
112
|
+
* `tokenIn`, ends at `tokenOut` and that every hop chains into the next
|
|
113
|
+
* (`step[i]` last token == `step[i+1]` first token). Native sentinels are
|
|
114
|
+
* resolved to `wnative` before comparing.
|
|
115
|
+
*/
|
|
116
|
+
checkIntegrity(tokenIn, tokenOut, wnative) {
|
|
117
|
+
const norm = (a) => {
|
|
118
|
+
a = a.toLowerCase();
|
|
119
|
+
if (wnative && NATIVE_SENTINELS.has(a))
|
|
120
|
+
return wnative.toLowerCase();
|
|
121
|
+
return a;
|
|
122
|
+
};
|
|
123
|
+
const problems = [];
|
|
124
|
+
const steps = this.activeSteps;
|
|
125
|
+
if (steps.length === 0)
|
|
126
|
+
return ["empty route (step_count == 0)"];
|
|
127
|
+
// Chain over the steps that actually carry a token path. Anchoring the
|
|
128
|
+
// start/end and hop-continuity checks to this list (instead of raw steps)
|
|
129
|
+
// means an empty intermediate/edge step can't silently drop a link.
|
|
130
|
+
const chain = steps.filter((s) => s.path.length > 0);
|
|
131
|
+
if (chain.length === 0)
|
|
132
|
+
return ["route has no token path"];
|
|
133
|
+
if (norm(chain[0].path[0]) !== norm(tokenIn)) {
|
|
134
|
+
problems.push(`path start ${chain[0].path[0]} != token_in ${tokenIn}`);
|
|
135
|
+
}
|
|
136
|
+
const last = chain[chain.length - 1];
|
|
137
|
+
if (norm(last.path[last.path.length - 1]) !== norm(tokenOut)) {
|
|
138
|
+
problems.push(`path end ${last.path[last.path.length - 1]} != token_out ${tokenOut}`);
|
|
139
|
+
}
|
|
140
|
+
for (let i = 0; i < chain.length - 1; i++) {
|
|
141
|
+
const a = chain[i].path[chain[i].path.length - 1];
|
|
142
|
+
const b = chain[i + 1].path[0];
|
|
143
|
+
if (norm(a) !== norm(b)) {
|
|
144
|
+
problems.push(`hop ${i}->${i + 1} broken: ${a} != ${b}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return problems;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// --------------------------------------------------------------------------- //
|
|
151
|
+
// Token safety / pricing
|
|
152
|
+
// --------------------------------------------------------------------------- //
|
|
153
|
+
/** Honeypot / transfer-tax probe from `getTokenInfos`. */
|
|
154
|
+
export class TokenInfo {
|
|
155
|
+
buyEstimate;
|
|
156
|
+
buyResult;
|
|
157
|
+
sellEstimate;
|
|
158
|
+
sellResult;
|
|
159
|
+
buySuccess;
|
|
160
|
+
approveSuccess;
|
|
161
|
+
sellSuccess;
|
|
162
|
+
constructor(buyEstimate, buyResult, sellEstimate, sellResult, buySuccess, approveSuccess, sellSuccess) {
|
|
163
|
+
this.buyEstimate = buyEstimate;
|
|
164
|
+
this.buyResult = buyResult;
|
|
165
|
+
this.sellEstimate = sellEstimate;
|
|
166
|
+
this.sellResult = sellResult;
|
|
167
|
+
this.buySuccess = buySuccess;
|
|
168
|
+
this.approveSuccess = approveSuccess;
|
|
169
|
+
this.sellSuccess = sellSuccess;
|
|
170
|
+
}
|
|
171
|
+
static fromRaw(r) {
|
|
172
|
+
return new TokenInfo(BigInt(r[0]), BigInt(r[1]), BigInt(r[2]), BigInt(r[3]), Boolean(r[4]), Boolean(r[5]), Boolean(r[6]));
|
|
173
|
+
}
|
|
174
|
+
/** True if the sell leg failed while the buy succeeded. */
|
|
175
|
+
get isHoneypot() {
|
|
176
|
+
return this.buySuccess && !this.sellSuccess;
|
|
177
|
+
}
|
|
178
|
+
get buyTaxBps() {
|
|
179
|
+
if (this.buyEstimate === 0n)
|
|
180
|
+
return 0;
|
|
181
|
+
return Math.max(0, pyRound((1 - Number(this.buyResult) / Number(this.buyEstimate)) * 10_000));
|
|
182
|
+
}
|
|
183
|
+
get sellTaxBps() {
|
|
184
|
+
if (this.sellEstimate === 0n)
|
|
185
|
+
return 0;
|
|
186
|
+
return Math.max(0, pyRound((1 - Number(this.sellResult) / Number(this.sellEstimate)) * 10_000));
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/** A USD/WETH price (1e18-scaled) plus the base token it was priced via. */
|
|
190
|
+
export class PriceResult {
|
|
191
|
+
price;
|
|
192
|
+
viaToken;
|
|
193
|
+
constructor(price, viaToken) {
|
|
194
|
+
this.price = price;
|
|
195
|
+
this.viaToken = viaToken;
|
|
196
|
+
}
|
|
197
|
+
static fromRaw(r) {
|
|
198
|
+
return new PriceResult(BigInt(r[0]), String(r[1]));
|
|
199
|
+
}
|
|
200
|
+
get asFloat() {
|
|
201
|
+
return Number(this.price) / 1e18;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/** One entry of `getWalletBalance` — balance + live USD valuation. */
|
|
205
|
+
export class WalletBalance {
|
|
206
|
+
token;
|
|
207
|
+
balance;
|
|
208
|
+
usdPrice18;
|
|
209
|
+
usdValue;
|
|
210
|
+
decimals;
|
|
211
|
+
ok;
|
|
212
|
+
constructor(token, balance, usdPrice18, usdValue, decimals, ok) {
|
|
213
|
+
this.token = token;
|
|
214
|
+
this.balance = balance;
|
|
215
|
+
this.usdPrice18 = usdPrice18;
|
|
216
|
+
this.usdValue = usdValue;
|
|
217
|
+
this.decimals = decimals;
|
|
218
|
+
this.ok = ok;
|
|
219
|
+
}
|
|
220
|
+
static fromRaw(r) {
|
|
221
|
+
return new WalletBalance(String(r[0]), BigInt(r[1]), BigInt(r[2]), BigInt(r[3]), Number(r[4]), Boolean(r[5]));
|
|
222
|
+
}
|
|
223
|
+
get balanceFloat() {
|
|
224
|
+
return Number(this.balance) / 10 ** this.decimals;
|
|
225
|
+
}
|
|
226
|
+
get usdValueFloat() {
|
|
227
|
+
return Number(this.usdValue) / 1e18;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// --------------------------------------------------------------------------- //
|
|
231
|
+
// Liquidity positions
|
|
232
|
+
// --------------------------------------------------------------------------- //
|
|
233
|
+
export class V2Position {
|
|
234
|
+
pair;
|
|
235
|
+
token0;
|
|
236
|
+
token1;
|
|
237
|
+
lpBalance;
|
|
238
|
+
reserve0;
|
|
239
|
+
reserve1;
|
|
240
|
+
totalSupply;
|
|
241
|
+
share0;
|
|
242
|
+
share1;
|
|
243
|
+
locked;
|
|
244
|
+
unlockTime;
|
|
245
|
+
constructor(pair, token0, token1, lpBalance, reserve0, reserve1, totalSupply, share0, share1, locked, unlockTime) {
|
|
246
|
+
this.pair = pair;
|
|
247
|
+
this.token0 = token0;
|
|
248
|
+
this.token1 = token1;
|
|
249
|
+
this.lpBalance = lpBalance;
|
|
250
|
+
this.reserve0 = reserve0;
|
|
251
|
+
this.reserve1 = reserve1;
|
|
252
|
+
this.totalSupply = totalSupply;
|
|
253
|
+
this.share0 = share0;
|
|
254
|
+
this.share1 = share1;
|
|
255
|
+
this.locked = locked;
|
|
256
|
+
this.unlockTime = unlockTime;
|
|
257
|
+
}
|
|
258
|
+
static fromRaw(r) {
|
|
259
|
+
return new V2Position(String(r[0]), String(r[1]), String(r[2]), BigInt(r[3]), BigInt(r[4]), BigInt(r[5]), BigInt(r[6]), BigInt(r[7]), BigInt(r[8]), Boolean(r[9]), BigInt(r[10]));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
export class V3Position {
|
|
263
|
+
positionManager;
|
|
264
|
+
tokenId;
|
|
265
|
+
token0;
|
|
266
|
+
token1;
|
|
267
|
+
fee;
|
|
268
|
+
tickLower;
|
|
269
|
+
tickUpper;
|
|
270
|
+
liquidity;
|
|
271
|
+
tokensOwed0;
|
|
272
|
+
tokensOwed1;
|
|
273
|
+
locked;
|
|
274
|
+
unlockTime;
|
|
275
|
+
constructor(positionManager, tokenId, token0, token1, fee, tickLower, tickUpper, liquidity, tokensOwed0, tokensOwed1, locked, unlockTime) {
|
|
276
|
+
this.positionManager = positionManager;
|
|
277
|
+
this.tokenId = tokenId;
|
|
278
|
+
this.token0 = token0;
|
|
279
|
+
this.token1 = token1;
|
|
280
|
+
this.fee = fee;
|
|
281
|
+
this.tickLower = tickLower;
|
|
282
|
+
this.tickUpper = tickUpper;
|
|
283
|
+
this.liquidity = liquidity;
|
|
284
|
+
this.tokensOwed0 = tokensOwed0;
|
|
285
|
+
this.tokensOwed1 = tokensOwed1;
|
|
286
|
+
this.locked = locked;
|
|
287
|
+
this.unlockTime = unlockTime;
|
|
288
|
+
}
|
|
289
|
+
static fromRaw(r) {
|
|
290
|
+
return new V3Position(String(r[0]), BigInt(r[1]), String(r[2]), String(r[3]), Number(r[4]), Number(r[5]), Number(r[6]), BigInt(r[7]), BigInt(r[8]), BigInt(r[9]), Boolean(r[10]), BigInt(r[11]));
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
export class V4Position {
|
|
294
|
+
positionManager;
|
|
295
|
+
tokenId;
|
|
296
|
+
poolId;
|
|
297
|
+
currency0;
|
|
298
|
+
currency1;
|
|
299
|
+
fee;
|
|
300
|
+
tickSpacing;
|
|
301
|
+
hooks;
|
|
302
|
+
tickLower;
|
|
303
|
+
tickUpper;
|
|
304
|
+
liquidity;
|
|
305
|
+
locked;
|
|
306
|
+
unlockTime;
|
|
307
|
+
constructor(positionManager, tokenId, poolId, currency0, currency1, fee, tickSpacing, hooks, tickLower, tickUpper, liquidity, locked, unlockTime) {
|
|
308
|
+
this.positionManager = positionManager;
|
|
309
|
+
this.tokenId = tokenId;
|
|
310
|
+
this.poolId = poolId;
|
|
311
|
+
this.currency0 = currency0;
|
|
312
|
+
this.currency1 = currency1;
|
|
313
|
+
this.fee = fee;
|
|
314
|
+
this.tickSpacing = tickSpacing;
|
|
315
|
+
this.hooks = hooks;
|
|
316
|
+
this.tickLower = tickLower;
|
|
317
|
+
this.tickUpper = tickUpper;
|
|
318
|
+
this.liquidity = liquidity;
|
|
319
|
+
this.locked = locked;
|
|
320
|
+
this.unlockTime = unlockTime;
|
|
321
|
+
}
|
|
322
|
+
static fromRaw(r) {
|
|
323
|
+
return new V4Position(String(r[0]), BigInt(r[1]), String(r[2]), String(r[3]), String(r[4]), Number(r[5]), Number(r[6]), String(r[7]), Number(r[8]), Number(r[9]), BigInt(r[10]), Boolean(r[11]), BigInt(r[12]));
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
export class V2PoolState {
|
|
327
|
+
pair;
|
|
328
|
+
token0;
|
|
329
|
+
token1;
|
|
330
|
+
reserve0;
|
|
331
|
+
reserve1;
|
|
332
|
+
constructor(pair, token0, token1, reserve0, reserve1) {
|
|
333
|
+
this.pair = pair;
|
|
334
|
+
this.token0 = token0;
|
|
335
|
+
this.token1 = token1;
|
|
336
|
+
this.reserve0 = reserve0;
|
|
337
|
+
this.reserve1 = reserve1;
|
|
338
|
+
}
|
|
339
|
+
static fromRaw(r) {
|
|
340
|
+
return new V2PoolState(String(r[0]), String(r[1]), String(r[2]), BigInt(r[3]), BigInt(r[4]));
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
export class V3PoolState {
|
|
344
|
+
pool;
|
|
345
|
+
token0;
|
|
346
|
+
token1;
|
|
347
|
+
fee;
|
|
348
|
+
tick;
|
|
349
|
+
sqrtPriceX96;
|
|
350
|
+
liquidity;
|
|
351
|
+
tickSpacing;
|
|
352
|
+
constructor(pool, token0, token1, fee, tick, sqrtPriceX96, liquidity, tickSpacing) {
|
|
353
|
+
this.pool = pool;
|
|
354
|
+
this.token0 = token0;
|
|
355
|
+
this.token1 = token1;
|
|
356
|
+
this.fee = fee;
|
|
357
|
+
this.tick = tick;
|
|
358
|
+
this.sqrtPriceX96 = sqrtPriceX96;
|
|
359
|
+
this.liquidity = liquidity;
|
|
360
|
+
this.tickSpacing = tickSpacing;
|
|
361
|
+
}
|
|
362
|
+
static fromRaw(r) {
|
|
363
|
+
return new V3PoolState(String(r[0]), String(r[1]), String(r[2]), Number(r[3]), Number(r[4]), BigInt(r[5]), BigInt(r[6]), Number(r[7]));
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
export class V4PoolState {
|
|
367
|
+
poolId;
|
|
368
|
+
currency0;
|
|
369
|
+
currency1;
|
|
370
|
+
fee;
|
|
371
|
+
tickSpacing;
|
|
372
|
+
hooks;
|
|
373
|
+
sqrtPriceX96;
|
|
374
|
+
tick;
|
|
375
|
+
protocolFee;
|
|
376
|
+
lpFee;
|
|
377
|
+
liquidity;
|
|
378
|
+
constructor(poolId, currency0, currency1, fee, tickSpacing, hooks, sqrtPriceX96, tick, protocolFee, lpFee, liquidity) {
|
|
379
|
+
this.poolId = poolId;
|
|
380
|
+
this.currency0 = currency0;
|
|
381
|
+
this.currency1 = currency1;
|
|
382
|
+
this.fee = fee;
|
|
383
|
+
this.tickSpacing = tickSpacing;
|
|
384
|
+
this.hooks = hooks;
|
|
385
|
+
this.sqrtPriceX96 = sqrtPriceX96;
|
|
386
|
+
this.tick = tick;
|
|
387
|
+
this.protocolFee = protocolFee;
|
|
388
|
+
this.lpFee = lpFee;
|
|
389
|
+
this.liquidity = liquidity;
|
|
390
|
+
}
|
|
391
|
+
static fromRaw(r) {
|
|
392
|
+
return new V4PoolState(String(r[0]), String(r[1]), String(r[2]), Number(r[3]), Number(r[4]), String(r[5]), BigInt(r[6]), Number(r[7]), Number(r[8]), Number(r[9]), BigInt(r[10]));
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/** A time-lock entry from `getLocks`. */
|
|
396
|
+
export class Lock {
|
|
397
|
+
kind;
|
|
398
|
+
asset;
|
|
399
|
+
tokenIdOrAmount;
|
|
400
|
+
lockTime;
|
|
401
|
+
unlockTime;
|
|
402
|
+
owner;
|
|
403
|
+
tokenA;
|
|
404
|
+
tokenB;
|
|
405
|
+
nonce;
|
|
406
|
+
constructor(kind, asset, tokenIdOrAmount, lockTime, unlockTime, owner, tokenA, tokenB, nonce) {
|
|
407
|
+
this.kind = kind;
|
|
408
|
+
this.asset = asset;
|
|
409
|
+
this.tokenIdOrAmount = tokenIdOrAmount;
|
|
410
|
+
this.lockTime = lockTime;
|
|
411
|
+
this.unlockTime = unlockTime;
|
|
412
|
+
this.owner = owner;
|
|
413
|
+
this.tokenA = tokenA;
|
|
414
|
+
this.tokenB = tokenB;
|
|
415
|
+
this.nonce = nonce;
|
|
416
|
+
}
|
|
417
|
+
static fromRaw(r) {
|
|
418
|
+
return new Lock(Number(r[0]), String(r[1]), BigInt(r[2]), BigInt(r[3]), BigInt(r[4]), String(r[5]), String(r[6]), String(r[7]), BigInt(r[8]));
|
|
419
|
+
}
|
|
420
|
+
get kindName() {
|
|
421
|
+
const name = LockKind[this.kind];
|
|
422
|
+
return name !== undefined ? name : `UNKNOWN(${this.kind})`;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/** Uncollected fees of a V3/V4 position from `getClaimableFees`. */
|
|
426
|
+
export class ClaimableFees {
|
|
427
|
+
token0;
|
|
428
|
+
amount0;
|
|
429
|
+
token1;
|
|
430
|
+
amount1;
|
|
431
|
+
constructor(token0, amount0, token1, amount1) {
|
|
432
|
+
this.token0 = token0;
|
|
433
|
+
this.amount0 = amount0;
|
|
434
|
+
this.token1 = token1;
|
|
435
|
+
this.amount1 = amount1;
|
|
436
|
+
}
|
|
437
|
+
static fromRaw(r) {
|
|
438
|
+
return new ClaimableFees(String(r[0]), BigInt(r[1]), String(r[2]), BigInt(r[3]));
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
/** Paged referral-fee balances from `getReferralFeeTokens`. */
|
|
442
|
+
export class ReferralFeeTokens {
|
|
443
|
+
tokens;
|
|
444
|
+
amounts;
|
|
445
|
+
maxIndex;
|
|
446
|
+
constructor(tokens, amounts, maxIndex) {
|
|
447
|
+
this.tokens = tokens;
|
|
448
|
+
this.amounts = amounts;
|
|
449
|
+
this.maxIndex = maxIndex;
|
|
450
|
+
}
|
|
451
|
+
static fromRaw(r) {
|
|
452
|
+
return new ReferralFeeTokens([...r[0]].map((a) => String(a)), [...r[1]].map((x) => BigInt(x)), Number(r[2]));
|
|
453
|
+
}
|
|
454
|
+
asDict() {
|
|
455
|
+
const out = {};
|
|
456
|
+
for (let i = 0; i < this.tokens.length && i < this.amounts.length; i++) {
|
|
457
|
+
out[this.tokens[i]] = this.amounts[i];
|
|
458
|
+
}
|
|
459
|
+
return out;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small numeric helpers that match Python semantics exactly, so this SDK is a
|
|
3
|
+
* faithful 1:1 port (and not subtly off by a unit at .5 boundaries).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Round half-to-even ("banker's rounding"), matching Python's built-in `round()`.
|
|
7
|
+
*
|
|
8
|
+
* JS `Math.round` rounds half **up** (0.5 -> 1, 2.5 -> 3), while Python rounds
|
|
9
|
+
* half to the nearest **even** integer (0.5 -> 0, 2.5 -> 2). The SDK's tax-bps
|
|
10
|
+
* and price-impact-bps math goes through Python `round()`, so we reproduce it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function pyRound(x: number): number;
|
|
13
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAOzC"}
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small numeric helpers that match Python semantics exactly, so this SDK is a
|
|
3
|
+
* faithful 1:1 port (and not subtly off by a unit at .5 boundaries).
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Round half-to-even ("banker's rounding"), matching Python's built-in `round()`.
|
|
7
|
+
*
|
|
8
|
+
* JS `Math.round` rounds half **up** (0.5 -> 1, 2.5 -> 3), while Python rounds
|
|
9
|
+
* half to the nearest **even** integer (0.5 -> 0, 2.5 -> 2). The SDK's tax-bps
|
|
10
|
+
* and price-impact-bps math goes through Python `round()`, so we reproduce it.
|
|
11
|
+
*/
|
|
12
|
+
export function pyRound(x) {
|
|
13
|
+
const floor = Math.floor(x);
|
|
14
|
+
const diff = x - floor;
|
|
15
|
+
if (diff < 0.5)
|
|
16
|
+
return floor;
|
|
17
|
+
if (diff > 0.5)
|
|
18
|
+
return floor + 1;
|
|
19
|
+
// Exactly .5 -> pick the even neighbour.
|
|
20
|
+
return floor % 2 === 0 ? floor : floor + 1;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,IAAI,IAAI,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,IAAI,GAAG,GAAG;QAAE,OAAO,KAAK,GAAG,CAAC,CAAC;IACjC,yCAAyC;IACzC,OAAO,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sally-defi-ts-sdk",
|
|
3
|
+
"version": "0.3.2",
|
|
4
|
+
"description": "Fully on-chain TypeScript SDK for the Sally DeFi CrossHybrid protocol (Base + BSC) — swaps, pricing, liquidity. No API, no subgraph, no backend.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"defi", "ethereum", "base", "bsc", "ethers", "uniswap", "swap",
|
|
7
|
+
"liquidity", "sally", "onchain", "decentralized", "trustless", "no-api"
|
|
8
|
+
],
|
|
9
|
+
"author": "Sally.tools <support@sally.tools>",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"homepage": "https://sally.tools",
|
|
12
|
+
"repository": "https://github.com/SallyTools/sally-defi-ts-sdk",
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"module": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./aio": {
|
|
23
|
+
"types": "./dist/aio/index.d.ts",
|
|
24
|
+
"import": "./dist/aio/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"files": ["dist", "src"],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc -p tsconfig.json && npm run copy:data",
|
|
30
|
+
"copy:data": "node -e \"require('fs').mkdirSync('dist/data',{recursive:true});require('fs').copyFileSync('src/data/deployment.json','dist/data/deployment.json')\"",
|
|
31
|
+
"prepublishOnly": "npm run build",
|
|
32
|
+
"pretest": "npm run build",
|
|
33
|
+
"test": "vitest run",
|
|
34
|
+
"test:watch": "vitest",
|
|
35
|
+
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"ethers": "^6.13.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"typescript": "^5.5.0",
|
|
42
|
+
"vitest": "^2.0.0",
|
|
43
|
+
"@types/node": "^20.0.0"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=18"
|
|
47
|
+
}
|
|
48
|
+
}
|