@varla/sdk 1.11.4 → 1.13.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 (238) hide show
  1. package/AGENTS.md +82 -95
  2. package/CHANGELOG.md +359 -0
  3. package/README.md +227 -275
  4. package/dist/abi/full/OpinionCtfExecutionEngineAdapter.js +1 -0
  5. package/dist/abi/full/OpinionCtfExecutionEngineAdapter.js.map +1 -0
  6. package/dist/abi/full/OracleUpdaterRouter.d.ts +30 -9
  7. package/dist/abi/full/OracleUpdaterRouter.d.ts.map +1 -1
  8. package/dist/abi/full/OracleUpdaterRouter.js +37 -9
  9. package/dist/abi/full/OracleUpdaterRouter.js.map +1 -0
  10. package/dist/abi/full/PolymarketCtfAdapter.js +1 -0
  11. package/dist/abi/full/PolymarketCtfAdapter.js.map +1 -0
  12. package/dist/abi/full/VarlaAccessManager.js +1 -0
  13. package/dist/abi/full/VarlaAccessManager.js.map +1 -0
  14. package/dist/abi/full/VarlaConvertLiquidator.js +1 -0
  15. package/dist/abi/full/VarlaConvertLiquidator.js.map +1 -0
  16. package/dist/abi/full/VarlaCore.js +1 -0
  17. package/dist/abi/full/VarlaCore.js.map +1 -0
  18. package/dist/abi/full/VarlaInterestRateStrategy.js +1 -0
  19. package/dist/abi/full/VarlaInterestRateStrategy.js.map +1 -0
  20. package/dist/abi/full/VarlaLiquidator.d.ts +1 -1
  21. package/dist/abi/full/VarlaLiquidator.js +2 -1
  22. package/dist/abi/full/VarlaLiquidator.js.map +1 -0
  23. package/dist/abi/full/VarlaMergeLiquidator.js +1 -0
  24. package/dist/abi/full/VarlaMergeLiquidator.js.map +1 -0
  25. package/dist/abi/full/VarlaOracle.js +1 -0
  26. package/dist/abi/full/VarlaOracle.js.map +1 -0
  27. package/dist/abi/full/VarlaPool.js +1 -0
  28. package/dist/abi/full/VarlaPool.js.map +1 -0
  29. package/dist/abi/full/VarlaProxyAdmin.js +1 -0
  30. package/dist/abi/full/VarlaProxyAdmin.js.map +1 -0
  31. package/dist/abi/index.js +1 -0
  32. package/dist/abi/index.js.map +1 -0
  33. package/dist/abi/subsets/VarlaOracle.registry.js +1 -0
  34. package/dist/abi/subsets/VarlaOracle.registry.js.map +1 -0
  35. package/dist/abi.js +1 -0
  36. package/dist/abi.js.map +1 -0
  37. package/dist/actions/admin.js +1 -0
  38. package/dist/actions/admin.js.map +1 -0
  39. package/dist/actions/core.js +1 -0
  40. package/dist/actions/core.js.map +1 -0
  41. package/dist/actions/erc1155.js +1 -0
  42. package/dist/actions/erc1155.js.map +1 -0
  43. package/dist/actions/erc20.js +1 -0
  44. package/dist/actions/erc20.js.map +1 -0
  45. package/dist/actions/index.d.ts +7 -7
  46. package/dist/actions/index.d.ts.map +1 -1
  47. package/dist/actions/index.js +8 -7
  48. package/dist/actions/index.js.map +1 -0
  49. package/dist/actions/liquidator.js +1 -0
  50. package/dist/actions/liquidator.js.map +1 -0
  51. package/dist/actions/oracle.d.ts +1 -2
  52. package/dist/actions/oracle.d.ts.map +1 -1
  53. package/dist/actions/oracle.js +1 -0
  54. package/dist/actions/oracle.js.map +1 -0
  55. package/dist/actions/oracleUpdaterRouter.d.ts +8 -1
  56. package/dist/actions/oracleUpdaterRouter.d.ts.map +1 -1
  57. package/dist/actions/oracleUpdaterRouter.js +14 -1
  58. package/dist/actions/oracleUpdaterRouter.js.map +1 -0
  59. package/dist/actions/pool.js +1 -0
  60. package/dist/actions/pool.js.map +1 -0
  61. package/dist/actions/rbac.js +1 -0
  62. package/dist/actions/rbac.js.map +1 -0
  63. package/dist/actions/tx.js +1 -0
  64. package/dist/actions/tx.js.map +1 -0
  65. package/dist/actions/utils.js +1 -0
  66. package/dist/actions/utils.js.map +1 -0
  67. package/dist/addresses/bsc.js +1 -0
  68. package/dist/addresses/bsc.js.map +1 -0
  69. package/dist/addresses/index.js +1 -0
  70. package/dist/addresses/index.js.map +1 -0
  71. package/dist/addresses/polygon.js +1 -0
  72. package/dist/addresses/polygon.js.map +1 -0
  73. package/dist/addresses.js +1 -0
  74. package/dist/addresses.js.map +1 -0
  75. package/dist/batch.js +1 -0
  76. package/dist/batch.js.map +1 -0
  77. package/dist/contracts.d.ts +1 -2
  78. package/dist/contracts.d.ts.map +1 -1
  79. package/dist/contracts.js +2 -2
  80. package/dist/contracts.js.map +1 -0
  81. package/dist/errors.d.ts +87 -0
  82. package/dist/errors.d.ts.map +1 -0
  83. package/dist/errors.js +240 -0
  84. package/dist/errors.js.map +1 -0
  85. package/dist/events/decode.js +1 -0
  86. package/dist/events/decode.js.map +1 -0
  87. package/dist/events/defs.js +1 -0
  88. package/dist/events/defs.js.map +1 -0
  89. package/dist/events/index.d.ts +3 -3
  90. package/dist/events/index.d.ts.map +1 -1
  91. package/dist/events/index.js +4 -3
  92. package/dist/events/index.js.map +1 -0
  93. package/dist/events/logs.js +1 -0
  94. package/dist/events/logs.js.map +1 -0
  95. package/dist/events/oracleRegistrySync.js +1 -0
  96. package/dist/events/oracleRegistrySync.js.map +1 -0
  97. package/dist/events/recent.d.ts +1 -1
  98. package/dist/events/recent.d.ts.map +1 -1
  99. package/dist/events/recent.js +2 -1
  100. package/dist/events/recent.js.map +1 -0
  101. package/dist/format.js +1 -0
  102. package/dist/format.js.map +1 -0
  103. package/dist/generated.d.ts +31 -10
  104. package/dist/generated.d.ts.map +1 -1
  105. package/dist/generated.js +1 -0
  106. package/dist/generated.js.map +1 -0
  107. package/dist/index.d.ts +6 -5
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +12 -9
  110. package/dist/index.js.map +1 -0
  111. package/dist/leverage/deleverageExecute.d.ts +36 -0
  112. package/dist/leverage/deleverageExecute.d.ts.map +1 -0
  113. package/dist/leverage/deleverageExecute.js +53 -0
  114. package/dist/leverage/deleverageExecute.js.map +1 -0
  115. package/dist/leverage/execute.d.ts +62 -0
  116. package/dist/leverage/execute.d.ts.map +1 -0
  117. package/dist/leverage/execute.js +84 -0
  118. package/dist/leverage/execute.js.map +1 -0
  119. package/dist/leverage/index.d.ts +32 -0
  120. package/dist/leverage/index.d.ts.map +1 -0
  121. package/dist/leverage/index.js +12 -0
  122. package/dist/leverage/index.js.map +1 -0
  123. package/dist/leverage/math.d.ts +119 -0
  124. package/dist/leverage/math.d.ts.map +1 -0
  125. package/dist/leverage/math.js +304 -0
  126. package/dist/leverage/math.js.map +1 -0
  127. package/dist/leverage/plan.d.ts +143 -0
  128. package/dist/leverage/plan.d.ts.map +1 -0
  129. package/dist/leverage/plan.js +204 -0
  130. package/dist/leverage/plan.js.map +1 -0
  131. package/dist/leverage/preflight.d.ts +27 -0
  132. package/dist/leverage/preflight.d.ts.map +1 -0
  133. package/dist/leverage/preflight.js +34 -0
  134. package/dist/leverage/preflight.js.map +1 -0
  135. package/dist/leverage/types.d.ts +157 -0
  136. package/dist/leverage/types.d.ts.map +1 -0
  137. package/dist/leverage/types.js +43 -0
  138. package/dist/leverage/types.js.map +1 -0
  139. package/dist/meta.d.ts +42 -0
  140. package/dist/meta.d.ts.map +1 -0
  141. package/dist/meta.js +47 -0
  142. package/dist/meta.js.map +1 -0
  143. package/dist/types.js +1 -0
  144. package/dist/types.js.map +1 -0
  145. package/dist/views/accessManager.js +1 -0
  146. package/dist/views/accessManager.js.map +1 -0
  147. package/dist/views/adapters.js +1 -0
  148. package/dist/views/adapters.js.map +1 -0
  149. package/dist/views/admin.d.ts.map +1 -1
  150. package/dist/views/admin.js +1 -0
  151. package/dist/views/admin.js.map +1 -0
  152. package/dist/views/core.d.ts.map +1 -1
  153. package/dist/views/core.js +1 -0
  154. package/dist/views/core.js.map +1 -0
  155. package/dist/views/index.d.ts +5 -5
  156. package/dist/views/index.d.ts.map +1 -1
  157. package/dist/views/index.js +6 -5
  158. package/dist/views/index.js.map +1 -0
  159. package/dist/views/lenders.js +1 -0
  160. package/dist/views/lenders.js.map +1 -0
  161. package/dist/views/liquidators.js +1 -0
  162. package/dist/views/liquidators.js.map +1 -0
  163. package/dist/views/oracle.js +1 -0
  164. package/dist/views/oracle.js.map +1 -0
  165. package/dist/views/pool.js +1 -0
  166. package/dist/views/pool.js.map +1 -0
  167. package/dist/views/system.d.ts.map +1 -1
  168. package/dist/views/system.js +1 -0
  169. package/dist/views/system.js.map +1 -0
  170. package/package.json +18 -5
  171. package/src/abi/README.md +17 -0
  172. package/src/abi/full/OpinionCtfExecutionEngineAdapter.ts +320 -0
  173. package/src/abi/full/OracleUpdaterRouter.ts +528 -0
  174. package/src/abi/full/PolymarketCtfAdapter.ts +312 -0
  175. package/src/abi/full/VarlaAccessManager.ts +1171 -0
  176. package/src/abi/full/VarlaConvertLiquidator.ts +834 -0
  177. package/src/abi/full/VarlaCore.ts +2277 -0
  178. package/src/abi/full/VarlaInterestRateStrategy.ts +442 -0
  179. package/src/abi/full/VarlaLiquidator.ts +914 -0
  180. package/src/abi/full/VarlaMergeLiquidator.ts +797 -0
  181. package/src/abi/full/VarlaOracle.ts +1825 -0
  182. package/src/abi/full/VarlaPool.ts +1637 -0
  183. package/src/abi/full/VarlaProxyAdmin.ts +301 -0
  184. package/src/abi/index.ts +17 -0
  185. package/src/abi/subsets/VarlaOracle.registry.ts +784 -0
  186. package/src/abi.ts +2 -0
  187. package/src/actions/admin.ts +357 -0
  188. package/src/actions/core.ts +68 -0
  189. package/src/actions/erc1155.ts +22 -0
  190. package/src/actions/erc20.ts +22 -0
  191. package/src/actions/index.ts +13 -0
  192. package/src/actions/liquidator.ts +76 -0
  193. package/src/actions/oracle.ts +618 -0
  194. package/src/actions/oracleUpdaterRouter.ts +233 -0
  195. package/src/actions/pool.ts +76 -0
  196. package/src/actions/rbac.ts +72 -0
  197. package/src/actions/tx.ts +16 -0
  198. package/src/actions/utils.ts +15 -0
  199. package/src/addresses/README.md +17 -0
  200. package/src/addresses/bsc.json +16 -0
  201. package/src/addresses/bsc.ts +15 -0
  202. package/src/addresses/index.ts +6 -0
  203. package/src/addresses/polygon.json +16 -0
  204. package/src/addresses/polygon.ts +15 -0
  205. package/src/addresses.ts +2 -0
  206. package/src/batch.ts +55 -0
  207. package/src/contracts.ts +232 -0
  208. package/src/errors.ts +305 -0
  209. package/src/events/decode.ts +37 -0
  210. package/src/events/defs.ts +70 -0
  211. package/src/events/index.ts +7 -0
  212. package/src/events/logs.ts +42 -0
  213. package/src/events/oracleRegistrySync.ts +206 -0
  214. package/src/events/recent.ts +39 -0
  215. package/src/format.ts +121 -0
  216. package/src/generated.ts +27 -0
  217. package/src/index.ts +18 -0
  218. package/src/leverage/deleverageExecute.ts +111 -0
  219. package/src/leverage/execute.ts +172 -0
  220. package/src/leverage/index.ts +88 -0
  221. package/src/leverage/math.ts +446 -0
  222. package/src/leverage/plan.ts +356 -0
  223. package/src/leverage/preflight.ts +63 -0
  224. package/src/leverage/types.ts +204 -0
  225. package/src/meta.ts +82 -0
  226. package/src/types.ts +25 -0
  227. package/src/views/accessManager.ts +286 -0
  228. package/src/views/adapters.ts +27 -0
  229. package/src/views/admin.ts +92 -0
  230. package/src/views/core.ts +1370 -0
  231. package/src/views/index.ts +11 -0
  232. package/src/views/lenders.ts +65 -0
  233. package/src/views/liquidators.ts +227 -0
  234. package/src/views/oracle.ts +739 -0
  235. package/src/views/pool.ts +277 -0
  236. package/src/views/system.ts +42 -0
  237. package/BACKEND.md +0 -405
  238. package/FRONTEND.md +0 -485
@@ -0,0 +1,204 @@
1
+ // Note: explicit .js extension is required for Node ESM resolution.
2
+ import { readLtvForPosition } from "../views/core.js";
3
+ import { planDeleverage, planLeverageLoop, } from "./math.js";
4
+ /**
5
+ * RPC-aware planner that additionally caps planned debt using:
6
+ * - pool.maxBorrow() (liquidity + borrow cap)
7
+ * - user max borrow headroom (collateral-based)
8
+ * - core.MIN_BORROW() (dust / protocol min)
9
+ */
10
+ export async function planLeverageFromChainPrecise(params) {
11
+ const [base, poolMaxBorrow, minBorrow, userSnap] = await Promise.all([
12
+ planLeverageFromChain(params),
13
+ params.pool ? params.pool.read.maxBorrow() : Promise.resolve(undefined),
14
+ params.minStepBorrowFromCore && params.coreMinBorrowRead
15
+ ? params.coreMinBorrowRead.MIN_BORROW()
16
+ : Promise.resolve(undefined),
17
+ params.capByUserMaxBorrow
18
+ ? params.core.read.getAccountSummary([params.user])
19
+ : Promise.resolve(undefined),
20
+ ]);
21
+ let maxTotalDebt = params.maxTotalDebt;
22
+ if (poolMaxBorrow !== undefined) {
23
+ maxTotalDebt =
24
+ maxTotalDebt === undefined
25
+ ? poolMaxBorrow
26
+ : poolMaxBorrow < maxTotalDebt
27
+ ? poolMaxBorrow
28
+ : maxTotalDebt;
29
+ }
30
+ if (params.capByUserMaxBorrow && userSnap !== undefined) {
31
+ const r = userSnap;
32
+ const maxBorrow = r.maxBorrow ?? r[4];
33
+ if (typeof maxBorrow !== "bigint") {
34
+ throw new Error("Unexpected getAccountSummary() return shape (maxBorrow)");
35
+ }
36
+ maxTotalDebt =
37
+ maxTotalDebt === undefined ? maxBorrow : maxBorrow < maxTotalDebt ? maxBorrow : maxTotalDebt;
38
+ }
39
+ const minStepBorrow = minBorrow !== undefined
40
+ ? params.minStepBorrow !== undefined
41
+ ? params.minStepBorrow > minBorrow
42
+ ? params.minStepBorrow
43
+ : minBorrow
44
+ : minBorrow
45
+ : params.minStepBorrow;
46
+ // Re-run pure planner with caps (base already did oracle+ltv reads).
47
+ return planLeverageLoop({
48
+ initialCapital: base.params.initialCapital,
49
+ tokenPriceE8: base.params.tokenPriceE8,
50
+ ltvWad: base.params.ltvWad,
51
+ targetLeverageWad: base.params.targetLeverageWad,
52
+ maxIterations: base.params.maxIterations,
53
+ minStepBorrow,
54
+ maxTotalDebt,
55
+ });
56
+ }
57
+ /**
58
+ * Plan a leverage loop by reading on-chain state first.
59
+ *
60
+ * 1. Reads the effective LTV for the position
61
+ * 2. Reads the oracle price
62
+ * 3. Delegates to `planLeverageLoop()` (pure math)
63
+ */
64
+ export async function planLeverageFromChain(params) {
65
+ const [{ ltvWad }, tokenPriceE8, depAllowed, validCollateral] = await Promise.all([
66
+ readLtvForPosition({ core: params.core, positionId: params.positionId }),
67
+ (async () => {
68
+ // Prefer non-reverting reads when possible.
69
+ if (params.oracle.read.getPositionSnapshot) {
70
+ const raw = await params.oracle.read.getPositionSnapshot([params.positionId]);
71
+ const r = raw;
72
+ const ok = r.priceOk ?? r[0];
73
+ const priceE8 = r.priceE8 ?? r[1];
74
+ if (typeof ok !== "boolean" || typeof priceE8 !== "bigint") {
75
+ throw new Error("Unexpected getPositionSnapshot() return shape");
76
+ }
77
+ if (!ok)
78
+ throw new Error("Oracle price unavailable");
79
+ return priceE8;
80
+ }
81
+ if (params.oracle.read.tryGetPrice) {
82
+ const raw = await params.oracle.read.tryGetPrice([params.positionId]);
83
+ const r = raw;
84
+ const ok = r.ok ?? r[0];
85
+ const price = r.price ?? r[1];
86
+ if (typeof ok !== "boolean" || typeof price !== "bigint") {
87
+ throw new Error("Unexpected tryGetPrice() return shape");
88
+ }
89
+ if (!ok)
90
+ throw new Error("Oracle price unavailable");
91
+ return price;
92
+ }
93
+ if (!params.oracle.read.getPrice) {
94
+ throw new Error("Oracle contract is missing price read method");
95
+ }
96
+ return params.oracle.read.getPrice([params.positionId]);
97
+ })(),
98
+ params.requireDepositAllowed && params.oracle.read.isDepositAllowed
99
+ ? params.oracle.read.isDepositAllowed([params.positionId])
100
+ : Promise.resolve(undefined),
101
+ params.requireValidCollateral && params.oracle.read.isValidCollateral
102
+ ? params.oracle.read.isValidCollateral([params.positionId])
103
+ : Promise.resolve(undefined),
104
+ ]);
105
+ if (params.requireDepositAllowed) {
106
+ if (depAllowed === undefined) {
107
+ throw new Error("Oracle contract is missing isDepositAllowed() read method");
108
+ }
109
+ if (!depAllowed) {
110
+ throw new Error("Deposit not allowed for this position (early-closure window or resolved)");
111
+ }
112
+ }
113
+ if (params.requireValidCollateral) {
114
+ if (validCollateral === undefined) {
115
+ throw new Error("Oracle contract is missing isValidCollateral() read method");
116
+ }
117
+ if (!validCollateral) {
118
+ throw new Error("Position is not valid collateral for deposit");
119
+ }
120
+ }
121
+ const loopParams = {
122
+ initialCapital: params.initialCapital,
123
+ tokenPriceE8,
124
+ ltvWad,
125
+ targetLeverageWad: params.targetLeverageWad,
126
+ maxIterations: params.maxIterations,
127
+ minStepBorrow: params.minStepBorrow,
128
+ maxTotalDebt: params.maxTotalDebt,
129
+ };
130
+ return planLeverageLoop(loopParams);
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // resolveLeveragePositionId
134
+ // ---------------------------------------------------------------------------
135
+ /**
136
+ * Convenience helper to pick the correct positionId for a leverage direction.
137
+ *
138
+ * Semantics:
139
+ * - direction="long" => returns the provided positionId
140
+ * - direction="short" => returns oracle.getOppositePositionId(positionId)
141
+ */
142
+ export async function resolveLeveragePositionId(params) {
143
+ if (params.direction === "long")
144
+ return params.positionId;
145
+ if (!params.oracle.read.getOppositePositionId) {
146
+ throw new Error("Oracle contract is missing getOppositePositionId() read method");
147
+ }
148
+ return params.oracle.read.getOppositePositionId([params.positionId]);
149
+ }
150
+ /**
151
+ * Plan a deleverage (unwind) loop by reading on-chain state first.
152
+ *
153
+ * 1. Reads deposited token balance and current debt
154
+ * 2. Reads the effective LTV and oracle price
155
+ * 3. Delegates to `planDeleverage()` (pure math)
156
+ */
157
+ export async function planDeleverageFromChain(params) {
158
+ const [{ ltvWad }, tokenPriceE8, depositedTokens, currentDebt] = await Promise.all([
159
+ readLtvForPosition({ core: params.core, positionId: params.positionId }),
160
+ (async () => {
161
+ if (params.oracle.read.getPositionSnapshot) {
162
+ const raw = await params.oracle.read.getPositionSnapshot([params.positionId]);
163
+ const r = raw;
164
+ const ok = r.priceOk ?? r[0];
165
+ const priceE8 = r.priceE8 ?? r[1];
166
+ if (typeof ok !== "boolean" || typeof priceE8 !== "bigint") {
167
+ throw new Error("Unexpected getPositionSnapshot() return shape");
168
+ }
169
+ if (!ok)
170
+ throw new Error("Oracle price unavailable");
171
+ return priceE8;
172
+ }
173
+ if (params.oracle.read.tryGetPrice) {
174
+ const raw = await params.oracle.read.tryGetPrice([params.positionId]);
175
+ const r = raw;
176
+ const ok = r.ok ?? r[0];
177
+ const price = r.price ?? r[1];
178
+ if (typeof ok !== "boolean" || typeof price !== "bigint") {
179
+ throw new Error("Unexpected tryGetPrice() return shape");
180
+ }
181
+ if (!ok)
182
+ throw new Error("Oracle price unavailable");
183
+ return price;
184
+ }
185
+ if (!params.oracle.read.getPrice) {
186
+ throw new Error("Oracle contract is missing price read method");
187
+ }
188
+ return params.oracle.read.getPrice([params.positionId]);
189
+ })(),
190
+ params.core.read.positionBalances([params.user, params.positionId]),
191
+ params.core.read.getDebt([params.user]),
192
+ ]);
193
+ const deleverageParams = {
194
+ depositedTokens,
195
+ currentDebt,
196
+ tokenPriceE8,
197
+ ltvWad,
198
+ targetDebtReduction: params.targetDebtReduction,
199
+ maxIterations: params.maxIterations,
200
+ minStepSell: params.minStepSell,
201
+ };
202
+ return planDeleverage(deleverageParams);
203
+ }
204
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/leverage/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Leverage module preflight helpers.
3
+ *
4
+ * These helpers are intentionally small and “plumbing-only”.
5
+ * They provide standardized ways to:
6
+ * - check approvals required for leverage/deleverage loops
7
+ * - build simulate-first approval txs
8
+ */
9
+ import type { Address, PublicClient } from "viem";
10
+ import type { SimulatedTx } from "../actions/oracle.js";
11
+ export type ReadErc1155IsApprovedForAllParams = {
12
+ publicClient: Pick<PublicClient, "readContract">;
13
+ tokenAddress: Address;
14
+ owner: Address;
15
+ operator: Address;
16
+ };
17
+ export declare function readErc1155IsApprovedForAll(params: ReadErc1155IsApprovedForAllParams): Promise<boolean>;
18
+ export declare function prepareApprovePositionsTokenIfNeeded(params: {
19
+ publicClient: Pick<PublicClient, "simulateContract" | "readContract">;
20
+ positionsTokenAddress: Address;
21
+ owner: Address;
22
+ operator: Address;
23
+ }): Promise<{
24
+ needed: boolean;
25
+ tx?: SimulatedTx;
26
+ }>;
27
+ //# sourceMappingURL=preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/leverage/preflight.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACjD,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,oCAAoC,CAAC,MAAM,EAAE;IACjE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,GAAG,cAAc,CAAC,CAAC;IACtE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,CAkBjD"}
@@ -0,0 +1,34 @@
1
+ // Note: explicit .js extension is required for Node ESM resolution.
2
+ import { erc1155Abi } from "viem";
3
+ import { prepareErc1155SetApprovalForAll } from "../actions/erc1155.js";
4
+ export async function readErc1155IsApprovedForAll(params) {
5
+ const approved = await params.publicClient.readContract({
6
+ address: params.tokenAddress,
7
+ abi: erc1155Abi,
8
+ functionName: "isApprovedForAll",
9
+ args: [params.owner, params.operator],
10
+ });
11
+ if (typeof approved !== "boolean") {
12
+ throw new Error("Unexpected isApprovedForAll return type");
13
+ }
14
+ return approved;
15
+ }
16
+ export async function prepareApprovePositionsTokenIfNeeded(params) {
17
+ const approved = await readErc1155IsApprovedForAll({
18
+ publicClient: params.publicClient,
19
+ tokenAddress: params.positionsTokenAddress,
20
+ owner: params.owner,
21
+ operator: params.operator,
22
+ });
23
+ if (approved)
24
+ return { needed: false };
25
+ const tx = await prepareErc1155SetApprovalForAll({
26
+ publicClient: params.publicClient,
27
+ tokenAddress: params.positionsTokenAddress,
28
+ account: params.owner,
29
+ operator: params.operator,
30
+ approved: true,
31
+ });
32
+ return { needed: true, tx };
33
+ }
34
+ //# sourceMappingURL=preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/leverage/preflight.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAYpE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAUxE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAyC;IAEzC,MAAM,QAAQ,GAAG,MAAO,MAAM,CAAC,YAAoB,CAAC,YAAY,CAAC;QAC/D,OAAO,EAAE,MAAM,CAAC,YAAY;QAC5B,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,kBAAkB;QAChC,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;KACtC,CAAC,CAAC;IACH,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CAAC,MAK1D;IACC,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC;QACjD,YAAY,EAAE,MAAM,CAAC,YAAmB;QACxC,YAAY,EAAE,MAAM,CAAC,qBAAqB;QAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,IAAI,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEvC,MAAM,EAAE,GAAG,MAAM,+BAA+B,CAAC;QAC/C,YAAY,EAAE,MAAM,CAAC,YAAmB;QACxC,YAAY,EAAE,MAAM,CAAC,qBAAqB;QAC1C,OAAO,EAAE,MAAM,CAAC,KAAK;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,157 @@
1
+ import type { Hash } from "viem";
2
+ /** WAD precision (1e18). */
3
+ export declare const WAD = 1000000000000000000n;
4
+ /** Oracle price precision (1e8 = $1.00). */
5
+ export declare const PRICE_E8 = 100000000n;
6
+ /** Default maximum loop iterations (safety cap). */
7
+ export declare const DEFAULT_MAX_ITERATIONS = 10;
8
+ /**
9
+ * Default minimum step size, expressed in the collateral token's base units.
10
+ *
11
+ * NOTE:
12
+ * - This is intentionally conservative and primarily exists as a safety/DoS cap
13
+ * to prevent extremely long plans due to diminishing returns.
14
+ * - Consumers SHOULD override this using on-chain `core.MIN_BORROW()` and/or by
15
+ * computing a USD-denominated threshold using token decimals.
16
+ */
17
+ export declare const DEFAULT_MIN_STEP_COLLATERAL = 1000000n;
18
+ /** Compute 10^n as bigint. */
19
+ export declare function pow10(n: number): bigint;
20
+ /**
21
+ * Returns a collateral base-unit amount corresponding to a whole-dollar amount.
22
+ *
23
+ * Example:
24
+ * - decimals=6, dollars=1 => 1_000_000
25
+ * - decimals=18, dollars=1 => 1_000_000_000_000_000_000
26
+ */
27
+ export declare function collateralForDollars(params: {
28
+ decimals: number;
29
+ dollars: bigint;
30
+ }): bigint;
31
+ /** Direction of the leveraged position. */
32
+ export type LeverageDirection = "long" | "short";
33
+ /**
34
+ * A single step in a leverage loop.
35
+ *
36
+ * Steps alternate between off-chain token acquisition ("buy") and on-chain
37
+ * Varla operations ("deposit" / "borrow").
38
+ *
39
+ * The first step is always "buy" (user buys tokens with their initial capital),
40
+ * followed by deposit → borrow → buy → deposit → borrow → ... until the
41
+ * target leverage is reached or iterations are exhausted.
42
+ */
43
+ export type LeverageStep = {
44
+ kind: "buy";
45
+ /** Collateral amount to spend on the CLOB (collateral base units). */
46
+ collateralAmount: bigint;
47
+ /** Expected token amount at the given price (before slippage). */
48
+ expectedTokens: bigint;
49
+ /** Iteration index (0 = initial buy, 1 = first re-buy, etc.). */
50
+ iteration: number;
51
+ } | {
52
+ kind: "deposit";
53
+ /** Token amount to deposit into VarlaCore. */
54
+ amount: bigint;
55
+ /** Iteration index. */
56
+ iteration: number;
57
+ } | {
58
+ kind: "borrow";
59
+ /** Collateral amount to borrow from VarlaPool. */
60
+ collateralAmount: bigint;
61
+ /** Iteration index. */
62
+ iteration: number;
63
+ };
64
+ /**
65
+ * Summary statistics for a planned leverage loop.
66
+ */
67
+ export type LeverageSummary = {
68
+ /** Total outcome tokens held after all iterations. */
69
+ totalTokens: bigint;
70
+ /** Total collateral-token debt owed to VarlaPool (base units). */
71
+ totalDebt: bigint;
72
+ /** Net equity = totalTokens * price - totalDebt (collateral base units). */
73
+ netEquity: bigint;
74
+ /** Effective leverage as WAD (e.g. 3e18 = 3.0×). */
75
+ effectiveLeverageWad: bigint;
76
+ /** Estimated liquidation price (8 decimals). HF = 1.0 at this price. */
77
+ estimatedLiquidationPriceE8: bigint;
78
+ /** Number of loop iterations performed. */
79
+ iterations: number;
80
+ /** Maximum theoretical leverage = 1 / (1 - LTV) as WAD. */
81
+ maxLeverageWad: bigint;
82
+ };
83
+ /**
84
+ * Complete leverage plan returned by the planner.
85
+ */
86
+ export type LeveragePlan = {
87
+ /** Ordered steps to execute. */
88
+ steps: LeverageStep[];
89
+ /** Summary statistics. */
90
+ summary: LeverageSummary;
91
+ /** Input parameters used to generate this plan. */
92
+ params: {
93
+ initialCapital: bigint;
94
+ tokenPriceE8: bigint;
95
+ ltvWad: bigint;
96
+ targetLeverageWad: bigint | undefined;
97
+ maxIterations: number;
98
+ minStepBorrow: bigint;
99
+ };
100
+ };
101
+ export type DeleverageStep = {
102
+ kind: "sell";
103
+ /** Token amount to sell on CLOB. */
104
+ tokenAmount: bigint;
105
+ /** Expected collateral proceeds at current price (before slippage). */
106
+ expectedCollateral: bigint;
107
+ iteration: number;
108
+ } | {
109
+ kind: "repay";
110
+ /** Collateral amount to repay. */
111
+ collateralAmount: bigint;
112
+ iteration: number;
113
+ } | {
114
+ kind: "withdraw";
115
+ /** Token amount to withdraw from VarlaCore. */
116
+ amount: bigint;
117
+ iteration: number;
118
+ };
119
+ export type DeleveragePlan = {
120
+ steps: DeleverageStep[];
121
+ summary: {
122
+ tokensToSell: bigint;
123
+ totalRepayment: bigint;
124
+ tokensRemaining: bigint;
125
+ collateralRemaining: bigint;
126
+ iterations: number;
127
+ };
128
+ };
129
+ /**
130
+ * Result of an off-chain token buy, returned by the consumer's callback.
131
+ */
132
+ export type BuyResult = {
133
+ /** Actual tokens received (may differ from `expectedTokens` due to slippage). */
134
+ actualTokens: bigint;
135
+ };
136
+ /**
137
+ * Result of an off-chain token sell, returned by the consumer's callback.
138
+ */
139
+ export type SellResult = {
140
+ /** Actual collateral received (may differ from `expectedCollateral` due to slippage). */
141
+ actualCollateral: bigint;
142
+ };
143
+ export type LeverageStepResult = {
144
+ step: LeverageStep;
145
+ hash?: Hash;
146
+ buyResult?: BuyResult;
147
+ };
148
+ /**
149
+ * Progress callback during leverage execution.
150
+ */
151
+ export type OnLeverageProgress = (info: {
152
+ completed: number;
153
+ total: number;
154
+ step: LeverageStep;
155
+ result: LeverageStepResult;
156
+ }) => void;
157
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/leverage/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ // Note: explicit .js extension is required for Node ESM resolution.
2
+ // ---------------------------------------------------------------------------
3
+ // Constants
4
+ // ---------------------------------------------------------------------------
5
+ /** WAD precision (1e18). */
6
+ export const WAD = 1000000000000000000n;
7
+ /** Oracle price precision (1e8 = $1.00). */
8
+ export const PRICE_E8 = 100000000n;
9
+ /** Default maximum loop iterations (safety cap). */
10
+ export const DEFAULT_MAX_ITERATIONS = 10;
11
+ /**
12
+ * Default minimum step size, expressed in the collateral token's base units.
13
+ *
14
+ * NOTE:
15
+ * - This is intentionally conservative and primarily exists as a safety/DoS cap
16
+ * to prevent extremely long plans due to diminishing returns.
17
+ * - Consumers SHOULD override this using on-chain `core.MIN_BORROW()` and/or by
18
+ * computing a USD-denominated threshold using token decimals.
19
+ */
20
+ export const DEFAULT_MIN_STEP_COLLATERAL = 1000000n;
21
+ // ---------------------------------------------------------------------------
22
+ // Amount / units helpers
23
+ // ---------------------------------------------------------------------------
24
+ /** Compute 10^n as bigint. */
25
+ export function pow10(n) {
26
+ if (!Number.isInteger(n) || n < 0)
27
+ throw new Error(`pow10: invalid n=${n}`);
28
+ let out = 1n;
29
+ for (let i = 0; i < n; i++)
30
+ out *= 10n;
31
+ return out;
32
+ }
33
+ /**
34
+ * Returns a collateral base-unit amount corresponding to a whole-dollar amount.
35
+ *
36
+ * Example:
37
+ * - decimals=6, dollars=1 => 1_000_000
38
+ * - decimals=18, dollars=1 => 1_000_000_000_000_000_000
39
+ */
40
+ export function collateralForDollars(params) {
41
+ return params.dollars * pow10(params.decimals);
42
+ }
43
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/leverage/types.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAIpE,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,4BAA4B;AAC5B,MAAM,CAAC,MAAM,GAAG,GAAG,oBAA0B,CAAC;AAE9C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAY,CAAC;AAErC,oDAAoD;AACpD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAU,CAAC;AAEtD,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,8BAA8B;AAC9B,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,GAAG,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA6C;IAChF,OAAO,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC"}
package/dist/meta.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Chain/platform metadata.
3
+ *
4
+ * The SDK intentionally treats the protocol as "collateral-token generic".
5
+ * However, many apps want to display chain-specific stablecoin symbols and
6
+ * choose sensible defaults without extra RPC calls.
7
+ */
8
+ import type { Address } from "viem";
9
+ /** All chains the protocol is deployed on. */
10
+ export declare const SUPPORTED_CHAINS: readonly ["polygon", "bsc"];
11
+ export type VarlaChainKey = (typeof SUPPORTED_CHAINS)[number];
12
+ /** Type guard: returns `true` if `value` is a known chain key. */
13
+ export declare function isSupportedChain(value: string): value is VarlaChainKey;
14
+ /**
15
+ * Assert that `value` is a supported chain key, throwing a descriptive
16
+ * error otherwise. Useful at configuration/startup boundaries.
17
+ */
18
+ export declare function assertSupportedChain(value: string): asserts value is VarlaChainKey;
19
+ export type StablecoinKind = "USDC" | "USDT";
20
+ export type CollateralMeta = {
21
+ kind: StablecoinKind;
22
+ symbol: string;
23
+ decimals: number;
24
+ /** Optional known address (may be omitted for future chains). */
25
+ address?: Address;
26
+ };
27
+ export type ChainMeta = {
28
+ chain: VarlaChainKey;
29
+ /** Platform/integration name shown to users. */
30
+ platform: "polymarket" | "opinion";
31
+ collateral: CollateralMeta;
32
+ };
33
+ /**
34
+ * Returns chain defaults for UI/backends.
35
+ *
36
+ * NOTE:
37
+ * - Addresses are best-effort and should not be treated as canonical.
38
+ * - For authoritative on-chain state, read `core.collateralToken()` and
39
+ * ERC20 metadata at runtime.
40
+ */
41
+ export declare function getChainMeta(chain: VarlaChainKey): ChainMeta;
42
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,6BAA8B,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAMlF;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,cAAc,CAAC;CAC5B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAsB5D"}
package/dist/meta.js ADDED
@@ -0,0 +1,47 @@
1
+ // Note: explicit .js extension is required for Node ESM resolution.
2
+ /** All chains the protocol is deployed on. */
3
+ export const SUPPORTED_CHAINS = ["polygon", "bsc"];
4
+ /** Type guard: returns `true` if `value` is a known chain key. */
5
+ export function isSupportedChain(value) {
6
+ return SUPPORTED_CHAINS.includes(value);
7
+ }
8
+ /**
9
+ * Assert that `value` is a supported chain key, throwing a descriptive
10
+ * error otherwise. Useful at configuration/startup boundaries.
11
+ */
12
+ export function assertSupportedChain(value) {
13
+ if (!isSupportedChain(value)) {
14
+ throw new Error(`Unsupported chain "${value}". Expected one of: ${SUPPORTED_CHAINS.join(", ")}`);
15
+ }
16
+ }
17
+ /**
18
+ * Returns chain defaults for UI/backends.
19
+ *
20
+ * NOTE:
21
+ * - Addresses are best-effort and should not be treated as canonical.
22
+ * - For authoritative on-chain state, read `core.collateralToken()` and
23
+ * ERC20 metadata at runtime.
24
+ */
25
+ export function getChainMeta(chain) {
26
+ if (chain === "polygon") {
27
+ return {
28
+ chain,
29
+ platform: "polymarket",
30
+ collateral: {
31
+ kind: "USDC",
32
+ symbol: "USDC",
33
+ decimals: 6,
34
+ },
35
+ };
36
+ }
37
+ return {
38
+ chain,
39
+ platform: "opinion",
40
+ collateral: {
41
+ kind: "USDT",
42
+ symbol: "USDT",
43
+ decimals: 18,
44
+ },
45
+ };
46
+ }
47
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAYpE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,KAAK,CAAU,CAAC;AAI5D,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,uBAAuB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;AACH,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,KAAK;YACL,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;AACJ,CAAC"}
package/dist/types.js CHANGED
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -183,3 +183,4 @@ export async function readManyTargetConfigs(params) {
183
183
  }
184
184
  return out;
185
185
  }
186
+ //# sourceMappingURL=accessManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessManager.js","sourceRoot":"","sources":["../../src/views/accessManager.ts"],"names":[],"mappings":"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"}
@@ -10,3 +10,4 @@ export async function readAdapterInfo(params) {
10
10
  ]);
11
11
  return { collateral, positions };
12
12
  }
13
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/views/adapters.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAgBpE;;GAEG;AACH,+JAA+J;AAC/J,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAgC;IACpE,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE;QAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;KAChC,CAAC,CAAC;IACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC"}