@w3lib/evm-batch-call 0.5.0 → 0.6.0

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 (63) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +79 -2
  3. package/dist/liquidity/common.d.ts +72 -0
  4. package/dist/liquidity/common.d.ts.map +1 -0
  5. package/dist/liquidity/common.js +271 -0
  6. package/dist/liquidity/common.js.map +1 -0
  7. package/dist/liquidity/concentrated.d.ts +19 -0
  8. package/dist/liquidity/concentrated.d.ts.map +1 -0
  9. package/dist/liquidity/concentrated.js +106 -0
  10. package/dist/liquidity/concentrated.js.map +1 -0
  11. package/dist/liquidity/index.d.ts +42 -0
  12. package/dist/liquidity/index.d.ts.map +1 -0
  13. package/dist/liquidity/index.js +143 -0
  14. package/dist/liquidity/index.js.map +1 -0
  15. package/dist/liquidity/types.d.ts +182 -0
  16. package/dist/liquidity/types.d.ts.map +1 -0
  17. package/dist/liquidity/types.js +2 -0
  18. package/dist/liquidity/types.js.map +1 -0
  19. package/dist/liquidity/v2.d.ts +5 -0
  20. package/dist/liquidity/v2.d.ts.map +1 -0
  21. package/dist/liquidity/v2.js +342 -0
  22. package/dist/liquidity/v2.js.map +1 -0
  23. package/dist/liquidity/v3.d.ts +6 -0
  24. package/dist/liquidity/v3.d.ts.map +1 -0
  25. package/dist/liquidity/v3.js +310 -0
  26. package/dist/liquidity/v3.js.map +1 -0
  27. package/dist/liquidity/v4.d.ts +5 -0
  28. package/dist/liquidity/v4.d.ts.map +1 -0
  29. package/dist/liquidity/v4.js +279 -0
  30. package/dist/liquidity/v4.js.map +1 -0
  31. package/dist/lp.d.ts +8 -1
  32. package/dist/lp.d.ts.map +1 -1
  33. package/dist/lp.js +29 -18
  34. package/dist/lp.js.map +1 -1
  35. package/dist/lpMath.d.ts +55 -0
  36. package/dist/lpMath.d.ts.map +1 -1
  37. package/dist/lpMath.js +209 -0
  38. package/dist/lpMath.js.map +1 -1
  39. package/dist/subpaths/liquidity.d.ts +24 -0
  40. package/dist/subpaths/liquidity.d.ts.map +1 -0
  41. package/dist/subpaths/liquidity.js +21 -0
  42. package/dist/subpaths/liquidity.js.map +1 -0
  43. package/dist/subpaths/lp.d.ts +1 -1
  44. package/dist/subpaths/lp.d.ts.map +1 -1
  45. package/dist/subpaths/lp.js +1 -1
  46. package/dist/subpaths/lp.js.map +1 -1
  47. package/dist/write/tron.d.ts +2 -0
  48. package/dist/write/tron.d.ts.map +1 -1
  49. package/dist/write/tron.js +4 -0
  50. package/dist/write/tron.js.map +1 -1
  51. package/package.json +20 -12
  52. package/src/liquidity/common.ts +314 -0
  53. package/src/liquidity/concentrated.ts +121 -0
  54. package/src/liquidity/index.ts +171 -0
  55. package/src/liquidity/types.ts +194 -0
  56. package/src/liquidity/v2.ts +371 -0
  57. package/src/liquidity/v3.ts +382 -0
  58. package/src/liquidity/v4.ts +348 -0
  59. package/src/lp.ts +36 -18
  60. package/src/lpMath.ts +223 -0
  61. package/src/subpaths/liquidity.ts +52 -0
  62. package/src/subpaths/lp.ts +20 -1
  63. package/src/write/tron.ts +5 -0
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 添加 / 移除流动性(子路径 `@w3lib/evm-batch-call/liquidity`):V2(Router)、V3(仓位 NFT)、Uniswap V4(PositionManager + Permit2),
3
+ * 包括 Tron 上的 SunSwap V2 / V3。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * - build*:只读取、不签名,返回预计的数量和要按顺序发送的交易(授权在前),可以当作报价,也可以交给钱包自己发送
6
+ * - addLiquidity / removeLiquidity / collectFees:构建后用私钥 / ethers Signer / 浏览器钱包签名发送(同 /write 的 batchCall)
7
+ *
8
+ * ```ts
9
+ * import { getLpPositions } from '@w3lib/evm-batch-call/lp'
10
+ * import { addLiquidity, buildAddLiquidity, removeLiquidity } from '@w3lib/evm-batch-call/liquidity'
11
+ *
12
+ * const plan = await buildAddLiquidity(multi, owner, { protocol: 'pancakeswap-v3', tokenA: WBNB, tokenB: USDT, fee: 500, priceLower: 550, priceUpper: 650, amountAFormatted: '1' })
13
+ * await addLiquidity(multi, privateKey, { protocol: 'pancakeswap-v2', tokenA: NATIVE_TOKEN, tokenB: USDT, amountAFormatted: '0.1' })
14
+ * const [position] = await getLpPositions(owner, { chainId: 56 })
15
+ * await removeLiquidity(multi, privateKey, { position, percent: 50 })
16
+ * ```
17
+ */
18
+ export {
19
+ addLiquidity,
20
+ buildAddLiquidity,
21
+ buildCollectFees,
22
+ buildRemoveLiquidity,
23
+ collectFees,
24
+ removeLiquidity,
25
+ } from '../liquidity/index.js'
26
+ export { PERMIT2_ADDRESS } from '../liquidity/common.js'
27
+ export type {
28
+ AddLiquidityParams,
29
+ CollectFeesParams,
30
+ IncreaseLiquidityParams,
31
+ LiquidityOptions,
32
+ LiquidityPlan,
33
+ LiquidityResult,
34
+ LiquiditySendOptions,
35
+ LiquidityTx,
36
+ LiquidityTxResult,
37
+ NewPositionParams,
38
+ PositionRef,
39
+ RemoveLiquidityParams,
40
+ } from '../liquidity/types.js'
41
+ export {
42
+ getLiquidityForAmounts,
43
+ getMaxAmounts,
44
+ getMinAmounts,
45
+ getMintAmounts,
46
+ getTickAtSqrtRatio,
47
+ nearestUsableTick,
48
+ priceToSqrtPriceX96,
49
+ priceToTick,
50
+ } from '../lpMath.js'
51
+ export type { LpPosition, LpProtocol, LpToken } from '../lp.js'
52
+ export type { SignerInput, WriteResult, WriteStatus } from '../subpaths/write.js'
@@ -35,7 +35,26 @@ export {
35
35
  type V4ScanOptions,
36
36
  type V4ScanProgress,
37
37
  } from '../lpV4.js'
38
- export { MAX_TICK, MIN_TICK, getAmountsForLiquidity, getFeeGrowthInside, getFeesEarned, getSqrtRatioAtTick, sqrtPriceToPrice, tickToPrice } from '../lpMath.js'
38
+ export {
39
+ MAX_SQRT_RATIO,
40
+ MAX_TICK,
41
+ MIN_SQRT_RATIO,
42
+ MIN_TICK,
43
+ getAmountsForLiquidity,
44
+ getFeeGrowthInside,
45
+ getFeesEarned,
46
+ getLiquidityForAmounts,
47
+ getMaxAmounts,
48
+ getMinAmounts,
49
+ getMintAmounts,
50
+ getSqrtRatioAtTick,
51
+ getTickAtSqrtRatio,
52
+ nearestUsableTick,
53
+ priceToSqrtPriceX96,
54
+ priceToTick,
55
+ sqrtPriceToPrice,
56
+ tickToPrice,
57
+ } from '../lpMath.js'
39
58
  export { defillamaPrices, type PriceSource } from '../owner.js'
40
59
 
41
60
  export interface GetLpPositionsOptions extends LpPositionsOptions, ShortcutProviderOptions {}
package/src/write/tron.ts CHANGED
@@ -186,6 +186,11 @@ function resolveTronSigner(input: SignerInput, cache: Map<unknown, Promise<TronK
186
186
  return resolved
187
187
  }
188
188
 
189
+ /** 签名器的地址(T 地址),不发交易、不弹钱包 */
190
+ export async function tronSignerAddress(input: SignerInput): Promise<string> {
191
+ return (await resolveTronSigner(input, new Map())).address
192
+ }
193
+
189
194
  // ---- 交易编码(protobuf) ----
190
195
 
191
196
  function varint(value: bigint | number): number[] {