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.
Files changed (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +263 -0
  3. package/dist/aio/client.d.ts +93 -0
  4. package/dist/aio/client.d.ts.map +1 -0
  5. package/dist/aio/client.js +283 -0
  6. package/dist/aio/client.js.map +1 -0
  7. package/dist/aio/index.d.ts +20 -0
  8. package/dist/aio/index.d.ts.map +1 -0
  9. package/dist/aio/index.js +19 -0
  10. package/dist/aio/index.js.map +1 -0
  11. package/dist/aio/modules/fees.d.ts +19 -0
  12. package/dist/aio/modules/fees.d.ts.map +1 -0
  13. package/dist/aio/modules/fees.js +47 -0
  14. package/dist/aio/modules/fees.js.map +1 -0
  15. package/dist/aio/modules/liquidity.d.ts +47 -0
  16. package/dist/aio/modules/liquidity.d.ts.map +1 -0
  17. package/dist/aio/modules/liquidity.js +115 -0
  18. package/dist/aio/modules/liquidity.js.map +1 -0
  19. package/dist/aio/modules/prices.d.ts +18 -0
  20. package/dist/aio/modules/prices.d.ts.map +1 -0
  21. package/dist/aio/modules/prices.js +48 -0
  22. package/dist/aio/modules/prices.js.map +1 -0
  23. package/dist/aio/modules/swap.d.ts +50 -0
  24. package/dist/aio/modules/swap.d.ts.map +1 -0
  25. package/dist/aio/modules/swap.js +267 -0
  26. package/dist/aio/modules/swap.js.map +1 -0
  27. package/dist/aio/modules/wallet.d.ts +13 -0
  28. package/dist/aio/modules/wallet.d.ts.map +1 -0
  29. package/dist/aio/modules/wallet.js +27 -0
  30. package/dist/aio/modules/wallet.js.map +1 -0
  31. package/dist/aio/token.d.ts +19 -0
  32. package/dist/aio/token.d.ts.map +1 -0
  33. package/dist/aio/token.js +50 -0
  34. package/dist/aio/token.js.map +1 -0
  35. package/dist/client.d.ts +142 -0
  36. package/dist/client.d.ts.map +1 -0
  37. package/dist/client.js +452 -0
  38. package/dist/client.js.map +1 -0
  39. package/dist/constants.d.ts +36 -0
  40. package/dist/constants.d.ts.map +1 -0
  41. package/dist/constants.js +39 -0
  42. package/dist/constants.js.map +1 -0
  43. package/dist/data/deployment.json +1 -0
  44. package/dist/deployment.d.ts +44 -0
  45. package/dist/deployment.d.ts.map +1 -0
  46. package/dist/deployment.js +118 -0
  47. package/dist/deployment.js.map +1 -0
  48. package/dist/errors.d.ts +57 -0
  49. package/dist/errors.d.ts.map +1 -0
  50. package/dist/errors.js +197 -0
  51. package/dist/errors.js.map +1 -0
  52. package/dist/index.d.ts +48 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +47 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/modules/fees.d.ts +32 -0
  57. package/dist/modules/fees.d.ts.map +1 -0
  58. package/dist/modules/fees.js +64 -0
  59. package/dist/modules/fees.js.map +1 -0
  60. package/dist/modules/liquidity.d.ts +134 -0
  61. package/dist/modules/liquidity.d.ts.map +1 -0
  62. package/dist/modules/liquidity.js +277 -0
  63. package/dist/modules/liquidity.js.map +1 -0
  64. package/dist/modules/prices.d.ts +47 -0
  65. package/dist/modules/prices.d.ts.map +1 -0
  66. package/dist/modules/prices.js +85 -0
  67. package/dist/modules/prices.js.map +1 -0
  68. package/dist/modules/swap.d.ts +102 -0
  69. package/dist/modules/swap.d.ts.map +1 -0
  70. package/dist/modules/swap.js +400 -0
  71. package/dist/modules/swap.js.map +1 -0
  72. package/dist/modules/wallet.d.ts +16 -0
  73. package/dist/modules/wallet.d.ts.map +1 -0
  74. package/dist/modules/wallet.js +30 -0
  75. package/dist/modules/wallet.js.map +1 -0
  76. package/dist/permit2.d.ts +97 -0
  77. package/dist/permit2.d.ts.map +1 -0
  78. package/dist/permit2.js +130 -0
  79. package/dist/permit2.js.map +1 -0
  80. package/dist/previews.d.ts +57 -0
  81. package/dist/previews.d.ts.map +1 -0
  82. package/dist/previews.js +69 -0
  83. package/dist/previews.js.map +1 -0
  84. package/dist/safety.d.ts +80 -0
  85. package/dist/safety.d.ts.map +1 -0
  86. package/dist/safety.js +133 -0
  87. package/dist/safety.js.map +1 -0
  88. package/dist/token.d.ts +215 -0
  89. package/dist/token.d.ts.map +1 -0
  90. package/dist/token.js +239 -0
  91. package/dist/token.js.map +1 -0
  92. package/dist/types.d.ts +229 -0
  93. package/dist/types.d.ts.map +1 -0
  94. package/dist/types.js +462 -0
  95. package/dist/types.js.map +1 -0
  96. package/dist/util.d.ts +13 -0
  97. package/dist/util.d.ts.map +1 -0
  98. package/dist/util.js +22 -0
  99. package/dist/util.js.map +1 -0
  100. package/package.json +48 -0
  101. package/src/aio/client.ts +329 -0
  102. package/src/aio/index.ts +20 -0
  103. package/src/aio/modules/fees.ts +60 -0
  104. package/src/aio/modules/liquidity.ts +181 -0
  105. package/src/aio/modules/prices.ts +57 -0
  106. package/src/aio/modules/swap.ts +347 -0
  107. package/src/aio/modules/wallet.ts +34 -0
  108. package/src/aio/token.ts +59 -0
  109. package/src/client.ts +526 -0
  110. package/src/constants.ts +43 -0
  111. package/src/data/deployment.json +1 -0
  112. package/src/deployment.ts +132 -0
  113. package/src/errors.ts +215 -0
  114. package/src/index.ts +90 -0
  115. package/src/modules/fees.ts +78 -0
  116. package/src/modules/liquidity.ts +446 -0
  117. package/src/modules/prices.ts +97 -0
  118. package/src/modules/swap.ts +502 -0
  119. package/src/modules/wallet.ts +37 -0
  120. package/src/permit2.ts +169 -0
  121. package/src/previews.ts +95 -0
  122. package/src/safety.ts +152 -0
  123. package/src/token.ts +254 -0
  124. package/src/types.ts +438 -0
  125. package/src/util.ts +20 -0
@@ -0,0 +1,229 @@
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
+ /** DEX generation used for a swap hop (matches contract `version` uint8). */
13
+ export declare enum PoolVersion {
14
+ V2 = 2,
15
+ V3 = 3,
16
+ V4 = 4
17
+ }
18
+ /**
19
+ * Lock asset kind as stored by the LiquidityController.
20
+ *
21
+ * Values match the on-chain constants
22
+ * (`LOCK_KIND_V3_NFT=1`, `LOCK_KIND_V2_LP=2`, `LOCK_KIND_V4_NFT=3`).
23
+ */
24
+ export declare enum LockKind {
25
+ V3_POSITION = 1,
26
+ V2_LP = 2,
27
+ V4_POSITION = 3
28
+ }
29
+ type Raw = readonly any[];
30
+ /** One hop of a hybrid route (can itself be multi-token within a version). */
31
+ export declare class SwapStep {
32
+ readonly version: number;
33
+ readonly path: string[];
34
+ readonly dexPath: number[];
35
+ readonly pools: string[];
36
+ readonly baseToken: string;
37
+ readonly estimatedAmountOut: bigint;
38
+ constructor(version: number, path: string[], dexPath: number[], pools: string[], baseToken: string, estimatedAmountOut: bigint);
39
+ static fromRaw(r: Raw): SwapStep;
40
+ get isEmpty(): boolean;
41
+ /** ABI-encodable tuple for this step. */
42
+ toTuple(): [number, string[], number[], string[], string, bigint];
43
+ }
44
+ /**
45
+ * Result of `getBestSwapPath` — up to three cross-version steps.
46
+ *
47
+ * This is exactly the struct `executeHybridSwap` consumes, so it round-trips:
48
+ * quote -> {@link toTuple} -> execute.
49
+ */
50
+ export declare class SwapPath {
51
+ readonly firstStep: SwapStep;
52
+ readonly secondStep: SwapStep;
53
+ readonly thirdStep: SwapStep;
54
+ readonly stepCount: number;
55
+ constructor(firstStep: SwapStep, secondStep: SwapStep, thirdStep: SwapStep, stepCount: number);
56
+ static fromRaw(r: Raw): SwapPath;
57
+ /** ABI-encodable tuple for `executeHybridSwap(swapData, …)`. */
58
+ toTuple(): [ReturnType<SwapStep["toTuple"]>, ReturnType<SwapStep["toTuple"]>, ReturnType<SwapStep["toTuple"]>, number];
59
+ get activeSteps(): SwapStep[];
60
+ /** Quoted output = the last active step's estimate. */
61
+ get estimatedAmountOut(): bigint;
62
+ /** Every pool this route would route through (across all active steps). */
63
+ get poolAddresses(): string[];
64
+ /**
65
+ * Return a list of route-integrity violations (empty == sound route).
66
+ *
67
+ * Guards against funds entering the wrong pool: verifies the path starts at
68
+ * `tokenIn`, ends at `tokenOut` and that every hop chains into the next
69
+ * (`step[i]` last token == `step[i+1]` first token). Native sentinels are
70
+ * resolved to `wnative` before comparing.
71
+ */
72
+ checkIntegrity(tokenIn: string, tokenOut: string, wnative?: string | null): string[];
73
+ }
74
+ /** Honeypot / transfer-tax probe from `getTokenInfos`. */
75
+ export declare class TokenInfo {
76
+ readonly buyEstimate: bigint;
77
+ readonly buyResult: bigint;
78
+ readonly sellEstimate: bigint;
79
+ readonly sellResult: bigint;
80
+ readonly buySuccess: boolean;
81
+ readonly approveSuccess: boolean;
82
+ readonly sellSuccess: boolean;
83
+ constructor(buyEstimate: bigint, buyResult: bigint, sellEstimate: bigint, sellResult: bigint, buySuccess: boolean, approveSuccess: boolean, sellSuccess: boolean);
84
+ static fromRaw(r: Raw): TokenInfo;
85
+ /** True if the sell leg failed while the buy succeeded. */
86
+ get isHoneypot(): boolean;
87
+ get buyTaxBps(): number;
88
+ get sellTaxBps(): number;
89
+ }
90
+ /** A USD/WETH price (1e18-scaled) plus the base token it was priced via. */
91
+ export declare class PriceResult {
92
+ readonly price: bigint;
93
+ readonly viaToken: string;
94
+ constructor(price: bigint, viaToken: string);
95
+ static fromRaw(r: Raw): PriceResult;
96
+ get asFloat(): number;
97
+ }
98
+ /** One entry of `getWalletBalance` — balance + live USD valuation. */
99
+ export declare class WalletBalance {
100
+ readonly token: string;
101
+ readonly balance: bigint;
102
+ readonly usdPrice18: bigint;
103
+ readonly usdValue: bigint;
104
+ readonly decimals: number;
105
+ readonly ok: boolean;
106
+ constructor(token: string, balance: bigint, usdPrice18: bigint, usdValue: bigint, decimals: number, ok: boolean);
107
+ static fromRaw(r: Raw): WalletBalance;
108
+ get balanceFloat(): number;
109
+ get usdValueFloat(): number;
110
+ }
111
+ export declare class V2Position {
112
+ readonly pair: string;
113
+ readonly token0: string;
114
+ readonly token1: string;
115
+ readonly lpBalance: bigint;
116
+ readonly reserve0: bigint;
117
+ readonly reserve1: bigint;
118
+ readonly totalSupply: bigint;
119
+ readonly share0: bigint;
120
+ readonly share1: bigint;
121
+ readonly locked: boolean;
122
+ readonly unlockTime: bigint;
123
+ constructor(pair: string, token0: string, token1: string, lpBalance: bigint, reserve0: bigint, reserve1: bigint, totalSupply: bigint, share0: bigint, share1: bigint, locked: boolean, unlockTime: bigint);
124
+ static fromRaw(r: Raw): V2Position;
125
+ }
126
+ export declare class V3Position {
127
+ readonly positionManager: string;
128
+ readonly tokenId: bigint;
129
+ readonly token0: string;
130
+ readonly token1: string;
131
+ readonly fee: number;
132
+ readonly tickLower: number;
133
+ readonly tickUpper: number;
134
+ readonly liquidity: bigint;
135
+ readonly tokensOwed0: bigint;
136
+ readonly tokensOwed1: bigint;
137
+ readonly locked: boolean;
138
+ readonly unlockTime: bigint;
139
+ constructor(positionManager: string, tokenId: bigint, token0: string, token1: string, fee: number, tickLower: number, tickUpper: number, liquidity: bigint, tokensOwed0: bigint, tokensOwed1: bigint, locked: boolean, unlockTime: bigint);
140
+ static fromRaw(r: Raw): V3Position;
141
+ }
142
+ export declare class V4Position {
143
+ readonly positionManager: string;
144
+ readonly tokenId: bigint;
145
+ readonly poolId: string;
146
+ readonly currency0: string;
147
+ readonly currency1: string;
148
+ readonly fee: number;
149
+ readonly tickSpacing: number;
150
+ readonly hooks: string;
151
+ readonly tickLower: number;
152
+ readonly tickUpper: number;
153
+ readonly liquidity: bigint;
154
+ readonly locked: boolean;
155
+ readonly unlockTime: bigint;
156
+ constructor(positionManager: string, tokenId: bigint, poolId: string, currency0: string, currency1: string, fee: number, tickSpacing: number, hooks: string, tickLower: number, tickUpper: number, liquidity: bigint, locked: boolean, unlockTime: bigint);
157
+ static fromRaw(r: Raw): V4Position;
158
+ }
159
+ export declare class V2PoolState {
160
+ readonly pair: string;
161
+ readonly token0: string;
162
+ readonly token1: string;
163
+ readonly reserve0: bigint;
164
+ readonly reserve1: bigint;
165
+ constructor(pair: string, token0: string, token1: string, reserve0: bigint, reserve1: bigint);
166
+ static fromRaw(r: Raw): V2PoolState;
167
+ }
168
+ export declare class V3PoolState {
169
+ readonly pool: string;
170
+ readonly token0: string;
171
+ readonly token1: string;
172
+ readonly fee: number;
173
+ readonly tick: number;
174
+ readonly sqrtPriceX96: bigint;
175
+ readonly liquidity: bigint;
176
+ readonly tickSpacing: number;
177
+ constructor(pool: string, token0: string, token1: string, fee: number, tick: number, sqrtPriceX96: bigint, liquidity: bigint, tickSpacing: number);
178
+ static fromRaw(r: Raw): V3PoolState;
179
+ }
180
+ export declare class V4PoolState {
181
+ readonly poolId: string;
182
+ readonly currency0: string;
183
+ readonly currency1: string;
184
+ readonly fee: number;
185
+ readonly tickSpacing: number;
186
+ readonly hooks: string;
187
+ readonly sqrtPriceX96: bigint;
188
+ readonly tick: number;
189
+ readonly protocolFee: number;
190
+ readonly lpFee: number;
191
+ readonly liquidity: bigint;
192
+ constructor(poolId: string, currency0: string, currency1: string, fee: number, tickSpacing: number, hooks: string, sqrtPriceX96: bigint, tick: number, protocolFee: number, lpFee: number, liquidity: bigint);
193
+ static fromRaw(r: Raw): V4PoolState;
194
+ }
195
+ /** A time-lock entry from `getLocks`. */
196
+ export declare class Lock {
197
+ readonly kind: number;
198
+ readonly asset: string;
199
+ readonly tokenIdOrAmount: bigint;
200
+ readonly lockTime: bigint;
201
+ readonly unlockTime: bigint;
202
+ readonly owner: string;
203
+ readonly tokenA: string;
204
+ readonly tokenB: string;
205
+ readonly nonce: bigint;
206
+ constructor(kind: number, asset: string, tokenIdOrAmount: bigint, lockTime: bigint, unlockTime: bigint, owner: string, tokenA: string, tokenB: string, nonce: bigint);
207
+ static fromRaw(r: Raw): Lock;
208
+ get kindName(): string;
209
+ }
210
+ /** Uncollected fees of a V3/V4 position from `getClaimableFees`. */
211
+ export declare class ClaimableFees {
212
+ readonly token0: string;
213
+ readonly amount0: bigint;
214
+ readonly token1: string;
215
+ readonly amount1: bigint;
216
+ constructor(token0: string, amount0: bigint, token1: string, amount1: bigint);
217
+ static fromRaw(r: Raw): ClaimableFees;
218
+ }
219
+ /** Paged referral-fee balances from `getReferralFeeTokens`. */
220
+ export declare class ReferralFeeTokens {
221
+ readonly tokens: string[];
222
+ readonly amounts: bigint[];
223
+ readonly maxIndex: number;
224
+ constructor(tokens: string[], amounts: bigint[], maxIndex: number);
225
+ static fromRaw(r: Raw): ReferralFeeTokens;
226
+ asDict(): Record<string, bigint>;
227
+ }
228
+ export {};
229
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}