four-flap-meme-sdk 2.2.2 → 2.2.3

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 (472) hide show
  1. package/README.en.md +41 -6
  2. package/README.md +31 -0
  3. package/README.zh-CN.md +41 -6
  4. package/dist/__tests__/subpath-exports.test.d.ts +1 -0
  5. package/dist/__tests__/subpath-exports.test.js +64 -0
  6. package/dist/abis/common.d.ts +85 -0
  7. package/dist/abis/common.js +264 -0
  8. package/dist/abis/contracts/TaxToken.json +969 -0
  9. package/dist/abis/contracts/TokenManager2.json +136 -0
  10. package/dist/abis/contracts/index.d.ts +5 -0
  11. package/dist/abis/contracts/index.js +5 -0
  12. package/dist/abis/flap/index.d.ts +3 -0
  13. package/dist/abis/flap/index.js +3 -0
  14. package/dist/abis/flap/portal-events.d.ts +6 -0
  15. package/dist/abis/flap/portal-events.js +17 -0
  16. package/dist/abis/flap/portal.d.ts +6 -0
  17. package/dist/abis/flap/portal.js +37 -0
  18. package/dist/abis/flap/vault.d.ts +171 -0
  19. package/dist/abis/flap/vault.js +91 -0
  20. package/dist/abis/index.d.ts +8 -0
  21. package/dist/abis/index.js +11 -0
  22. package/dist/bundle-core/__tests__/config-helpers.test.d.ts +1 -0
  23. package/dist/bundle-core/__tests__/config-helpers.test.js +28 -0
  24. package/dist/bundle-core/__tests__/facade-parity.test.d.ts +1 -0
  25. package/dist/bundle-core/__tests__/facade-parity.test.js +33 -0
  26. package/dist/bundle-core/__tests__/sign-context-helpers.test.d.ts +1 -0
  27. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +60 -0
  28. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +1 -0
  29. package/dist/bundle-core/__tests__/sign-fixture.test.js +220 -0
  30. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +10 -0
  31. package/dist/bundle-core/__tests__/sign-fixtures.js +16 -0
  32. package/dist/bundle-core/config-helpers.d.ts +36 -0
  33. package/dist/bundle-core/config-helpers.js +57 -0
  34. package/dist/bundle-core/errors.d.ts +50 -0
  35. package/dist/bundle-core/errors.js +35 -0
  36. package/dist/bundle-core/four-meme/approve-tokenmanager.d.ts +7 -0
  37. package/dist/bundle-core/four-meme/approve-tokenmanager.js +99 -0
  38. package/dist/bundle-core/four-meme/core-helpers.d.ts +8 -0
  39. package/dist/bundle-core/four-meme/core-helpers.js +40 -0
  40. package/dist/bundle-core/four-meme/core.d.ts +4 -0
  41. package/dist/bundle-core/four-meme/core.js +515 -0
  42. package/dist/bundle-core/four-meme/pancake-proxy.d.ts +28 -0
  43. package/dist/bundle-core/four-meme/pancake-proxy.js +679 -0
  44. package/dist/bundle-core/four-meme/private.d.ts +27 -0
  45. package/dist/bundle-core/four-meme/private.js +465 -0
  46. package/dist/bundle-core/four-meme/sign-context-helpers.d.ts +2 -0
  47. package/dist/bundle-core/four-meme/sign-context-helpers.js +2 -0
  48. package/dist/bundle-core/four-meme/swap-buy-first.d.ts +8 -0
  49. package/dist/bundle-core/four-meme/swap-buy-first.js +493 -0
  50. package/dist/bundle-core/four-meme/swap-hop-helpers.d.ts +6 -0
  51. package/dist/bundle-core/four-meme/swap-hop-helpers.js +63 -0
  52. package/dist/bundle-core/four-meme/swap-internal.d.ts +3 -0
  53. package/dist/bundle-core/four-meme/swap-internal.js +18 -0
  54. package/dist/bundle-core/four-meme/swap-sign-helpers.d.ts +27 -0
  55. package/dist/bundle-core/four-meme/swap-sign-helpers.js +105 -0
  56. package/dist/bundle-core/four-meme/swap.d.ts +17 -0
  57. package/dist/bundle-core/four-meme/swap.js +505 -0
  58. package/dist/bundle-core/four-meme/types/buy-first.d.ts +50 -0
  59. package/dist/bundle-core/four-meme/types/buy-first.js +1 -0
  60. package/dist/bundle-core/four-meme/types/core-flow.d.ts +63 -0
  61. package/dist/bundle-core/four-meme/types/core-flow.js +1 -0
  62. package/dist/bundle-core/four-meme/types/index.d.ts +600 -0
  63. package/dist/bundle-core/four-meme/types/index.js +1 -0
  64. package/dist/bundle-core/four-meme/types/swap-internal.d.ts +19 -0
  65. package/dist/bundle-core/four-meme/types/swap-internal.js +1 -0
  66. package/dist/bundle-core/four-meme/types.d.ts +1 -0
  67. package/dist/bundle-core/four-meme/types.js +1 -0
  68. package/dist/bundle-core/four-meme/utils-disperse.d.ts +7 -0
  69. package/dist/bundle-core/four-meme/utils-disperse.js +396 -0
  70. package/dist/bundle-core/four-meme/utils-pairwise.d.ts +8 -0
  71. package/dist/bundle-core/four-meme/utils-pairwise.js +328 -0
  72. package/dist/bundle-core/four-meme/utils-sweep.d.ts +8 -0
  73. package/dist/bundle-core/four-meme/utils-sweep.js +744 -0
  74. package/dist/bundle-core/index.d.ts +8 -0
  75. package/dist/bundle-core/index.js +8 -0
  76. package/dist/bundle-core/internal.d.ts +21 -0
  77. package/dist/bundle-core/internal.js +182 -0
  78. package/dist/bundle-core/sign-context-helpers.d.ts +25 -0
  79. package/dist/bundle-core/sign-context-helpers.js +67 -0
  80. package/dist/bundle-core/submit.d.ts +293 -0
  81. package/dist/bundle-core/submit.js +727 -0
  82. package/dist/bundle-core/types/index.d.ts +8 -0
  83. package/dist/bundle-core/types/index.js +1 -0
  84. package/dist/bundle-core/types.d.ts +1 -0
  85. package/dist/bundle-core/types.js +1 -0
  86. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -26
  87. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -113
  88. package/dist/chains/bsc/four/config.d.ts +5 -67
  89. package/dist/chains/bsc/four/config.js +2 -114
  90. package/dist/chains/bsc/four/core.d.ts +1 -4
  91. package/dist/chains/bsc/four/core.js +1 -592
  92. package/dist/chains/bsc/four/index.d.ts +6 -6
  93. package/dist/chains/bsc/four/index.js +6 -6
  94. package/dist/chains/bsc/four/internal.d.ts +2 -46
  95. package/dist/chains/bsc/four/internal.js +2 -239
  96. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -28
  97. package/dist/chains/bsc/four/pancake-proxy.js +1 -687
  98. package/dist/chains/bsc/four/private.d.ts +1 -27
  99. package/dist/chains/bsc/four/private.js +1 -477
  100. package/dist/chains/bsc/four/submit.d.ts +2 -315
  101. package/dist/chains/bsc/four/submit.js +2 -752
  102. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -55
  103. package/dist/chains/bsc/four/swap-buy-first.js +2 -507
  104. package/dist/chains/bsc/four/swap-internal.d.ts +1 -3
  105. package/dist/chains/bsc/four/swap-internal.js +1 -18
  106. package/dist/chains/bsc/four/swap.d.ts +2 -144
  107. package/dist/chains/bsc/four/swap.js +2 -766
  108. package/dist/chains/bsc/four/types.d.ts +1 -476
  109. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -0
  110. package/dist/chains/bsc/four/utils-disperse.js +1 -0
  111. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -0
  112. package/dist/chains/bsc/four/utils-pairwise.js +1 -0
  113. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -0
  114. package/dist/chains/bsc/four/utils-sweep.js +1 -0
  115. package/dist/chains/bsc/four/utils.d.ts +5 -18
  116. package/dist/chains/bsc/four/utils.js +5 -1552
  117. package/dist/chains/bsc/iro.d.ts +5 -0
  118. package/dist/chains/bsc/iro.js +4 -0
  119. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +159 -0
  120. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +117 -0
  121. package/dist/chains/bsc/pancake/bundle-buy-first.d.ts +1 -91
  122. package/dist/chains/bsc/pancake/bundle-buy-first.js +97 -212
  123. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +241 -0
  124. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +565 -0
  125. package/dist/chains/bsc/pancake/bundle-swap.d.ts +1 -79
  126. package/dist/chains/bsc/pancake/bundle-swap.js +114 -726
  127. package/dist/chains/bsc/pancake/index.d.ts +4 -2
  128. package/dist/chains/bsc/pancake/index.js +1 -3
  129. package/dist/chains/bsc/platforms/iro/factory.d.ts +2 -2
  130. package/dist/chains/bsc/platforms/iro/factory.js +3 -1
  131. package/dist/chains/bsc/platforms/iro/index.d.ts +5 -5
  132. package/dist/chains/bsc/platforms/iro/index.js +3 -3
  133. package/dist/chains/bsc/platforms/iro/pool.js +31 -10
  134. package/dist/chains/bsc/platforms/iro/token.js +4 -1
  135. package/dist/chains/eni/batch-router/bundle-approve.js +4 -3
  136. package/dist/chains/eni/batch-router/transfer.js +55 -25
  137. package/dist/chains/eni/batch-router/utils.js +32 -6
  138. package/dist/chains/eni/bundler/sign.js +5 -6
  139. package/dist/chains/eni/bundler/submit.js +1 -4
  140. package/dist/chains/eni/constants.js +1 -1
  141. package/dist/chains/eni/flat-aliases.d.ts +10 -0
  142. package/dist/chains/eni/flat-aliases.js +8 -0
  143. package/dist/chains/eni/index.d.ts +2 -1
  144. package/dist/chains/eni/index.js +1 -0
  145. package/dist/chains/eni/platforms/daoaas/create.js +2 -2
  146. package/dist/chains/eni/platforms/daoaas/index.d.ts +3 -3
  147. package/dist/chains/eni/platforms/daoaas/index.js +3 -3
  148. package/dist/chains/eni/platforms/daoaas/meta.js +9 -6
  149. package/dist/chains/eni/platforms/daoaas/portal-direct.js +28 -44
  150. package/dist/chains/eni/platforms/daoaas/portal.js +10 -6
  151. package/dist/chains/eni/platforms/dswap/liquidity.js +58 -26
  152. package/dist/chains/eni/platforms/fair-launch/index.d.ts +2 -2
  153. package/dist/chains/eni/platforms/fair-launch/index.js +1 -1
  154. package/dist/chains/eni/platforms/fair-launch/launcher.js +87 -46
  155. package/dist/chains/eni/platforms/fair-launch/pool.js +4 -1
  156. package/dist/chains/eni/platforms/fair-launch/presets.js +2 -2
  157. package/dist/chains/eni/platforms/iro/factory.d.ts +2 -2
  158. package/dist/chains/eni/platforms/iro/factory.js +3 -1
  159. package/dist/chains/eni/platforms/iro/index.d.ts +6 -6
  160. package/dist/chains/eni/platforms/iro/index.js +4 -4
  161. package/dist/chains/eni/platforms/iro/pool.js +90 -26
  162. package/dist/chains/eni/platforms/iro/token.js +107 -31
  163. package/dist/chains/eni/platforms/iro/whitelist.js +6 -18
  164. package/dist/chains/eni/submit.d.ts +43 -0
  165. package/dist/chains/eni/submit.js +286 -0
  166. package/dist/chains/index.d.ts +13 -0
  167. package/dist/chains/index.js +13 -0
  168. package/dist/chains/xlayer/eip7702/bundle-approve.d.ts +2 -26
  169. package/dist/chains/xlayer/eip7702/bundle-approve.js +11 -21
  170. package/dist/chains/xlayer/eip7702/bundle-buy.d.ts +2 -6
  171. package/dist/chains/xlayer/eip7702/bundle-buy.js +13 -51
  172. package/dist/chains/xlayer/eip7702/bundle-create.js +93 -59
  173. package/dist/chains/xlayer/eip7702/bundle-sell.d.ts +2 -6
  174. package/dist/chains/xlayer/eip7702/bundle-sell.js +29 -111
  175. package/dist/chains/xlayer/eip7702/bundle-swap.d.ts +3 -65
  176. package/dist/chains/xlayer/eip7702/bundle-swap.js +51 -245
  177. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -16
  178. package/dist/chains/xlayer/eip7702/constants.js +3 -21
  179. package/dist/chains/xlayer/eip7702/flat-aliases.d.ts +13 -0
  180. package/dist/chains/xlayer/eip7702/flat-aliases.js +10 -0
  181. package/dist/chains/xlayer/eip7702/index.d.ts +28 -46
  182. package/dist/chains/xlayer/eip7702/index.js +28 -81
  183. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.d.ts +79 -0
  184. package/dist/chains/xlayer/eip7702/multi-hop-transfer-helpers.js +1 -0
  185. package/dist/chains/xlayer/eip7702/multi-hop-transfer.d.ts +2 -203
  186. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +63 -307
  187. package/dist/chains/xlayer/eip7702/transfer-context-helpers.d.ts +26 -0
  188. package/dist/chains/xlayer/eip7702/transfer-context-helpers.js +57 -0
  189. package/dist/chains/xlayer/eip7702/types.d.ts +88 -0
  190. package/dist/chains/xlayer/eip7702/utils.d.ts +0 -3
  191. package/dist/chains/xlayer/eip7702/utils.js +23 -28
  192. package/dist/chains/xlayer/eip7702/volume-helpers.d.ts +148 -0
  193. package/dist/chains/xlayer/eip7702/volume-helpers.js +48 -0
  194. package/dist/chains/xlayer/eip7702/volume.d.ts +6 -184
  195. package/dist/chains/xlayer/eip7702/volume.js +89 -164
  196. package/dist/chains/xlayer/eoa/constants.js +1 -1
  197. package/dist/chains/xlayer/eoa/dex-helpers.js +5 -5
  198. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +126 -0
  199. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +228 -0
  200. package/dist/chains/xlayer/eoa/eoa-bundle-swap.d.ts +1 -95
  201. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +66 -299
  202. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  203. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +18 -23
  204. package/dist/chains/xlayer/eoa/index.d.ts +10 -6
  205. package/dist/chains/xlayer/eoa/index.js +8 -23
  206. package/dist/chains/xlayer/eoa/portal-ops.js +7 -2
  207. package/dist/chains/xlayer/eoa/router-manager.js +3 -3
  208. package/dist/chains/xlayer/eoa/types.d.ts +2 -2
  209. package/dist/chains/xlayer/eoa/types.js +1 -3
  210. package/dist/chains/xlayer/index.d.ts +3 -2
  211. package/dist/chains/xlayer/index.js +4 -7
  212. package/dist/contracts/helper3.d.ts +20 -5
  213. package/dist/contracts/helper3.js +56 -20
  214. package/dist/contracts/tm-bundle-helpers.d.ts +88 -0
  215. package/dist/contracts/tm-bundle-helpers.js +72 -0
  216. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +1 -26
  217. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +1 -113
  218. package/dist/contracts/tm-bundle-merkle/config.d.ts +5 -67
  219. package/dist/contracts/tm-bundle-merkle/config.js +2 -114
  220. package/dist/contracts/tm-bundle-merkle/core.d.ts +1 -4
  221. package/dist/contracts/tm-bundle-merkle/core.js +1 -591
  222. package/dist/contracts/tm-bundle-merkle/index.d.ts +5 -5
  223. package/dist/contracts/tm-bundle-merkle/index.js +5 -5
  224. package/dist/contracts/tm-bundle-merkle/internal.d.ts +2 -46
  225. package/dist/contracts/tm-bundle-merkle/internal.js +2 -238
  226. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +1 -28
  227. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +1 -686
  228. package/dist/contracts/tm-bundle-merkle/private.d.ts +1 -27
  229. package/dist/contracts/tm-bundle-merkle/private.js +1 -476
  230. package/dist/contracts/tm-bundle-merkle/submit.d.ts +3 -314
  231. package/dist/contracts/tm-bundle-merkle/submit.js +3 -928
  232. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +2 -55
  233. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +2 -506
  234. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +1 -3
  235. package/dist/contracts/tm-bundle-merkle/swap-internal.js +1 -18
  236. package/dist/contracts/tm-bundle-merkle/swap.d.ts +2 -144
  237. package/dist/contracts/tm-bundle-merkle/swap.js +2 -764
  238. package/dist/contracts/tm-bundle-merkle/types.d.ts +1 -476
  239. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +1 -0
  240. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +1 -0
  241. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +1 -0
  242. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +1 -0
  243. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +1 -0
  244. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +1 -0
  245. package/dist/contracts/tm-bundle-merkle/utils.d.ts +6 -18
  246. package/dist/contracts/tm-bundle-merkle/utils.js +6 -1501
  247. package/dist/contracts/tm-bundle.d.ts +3 -51
  248. package/dist/contracts/tm-bundle.js +108 -177
  249. package/dist/contracts/tm.d.ts +3 -2
  250. package/dist/contracts/tm.js +37 -32
  251. package/dist/contracts/tm1.js +9 -4
  252. package/dist/contracts/tm2.js +9 -4
  253. package/dist/dex/direct-router-helpers.d.ts +264 -0
  254. package/dist/dex/direct-router-helpers.js +539 -0
  255. package/dist/dex/direct-router.d.ts +3 -125
  256. package/dist/dex/direct-router.js +237 -666
  257. package/dist/dex/types.d.ts +81 -0
  258. package/dist/dex/types.js +1 -0
  259. package/dist/exports/root-bundle-and-tooling.d.ts +27 -0
  260. package/dist/exports/root-bundle-and-tooling.js +30 -0
  261. package/dist/exports/root-eni-and-bsc-iro.d.ts +26 -0
  262. package/dist/exports/root-eni-and-bsc-iro.js +66 -0
  263. package/dist/exports/root-foundations.d.ts +35 -0
  264. package/dist/exports/root-foundations.js +70 -0
  265. package/dist/exports/root-swap-dex-and-xlayer.d.ts +30 -0
  266. package/dist/exports/root-swap-dex-and-xlayer.js +78 -0
  267. package/dist/flap/index.d.ts +10 -0
  268. package/dist/flap/index.js +8 -0
  269. package/dist/flows/create.d.ts +2 -1
  270. package/dist/flows/create.js +6 -6
  271. package/dist/flows/index.d.ts +1 -0
  272. package/dist/flows/index.js +1 -0
  273. package/dist/index.d.ts +20 -85
  274. package/dist/index.js +20 -215
  275. package/dist/merkle/index.d.ts +12 -0
  276. package/dist/merkle/index.js +11 -0
  277. package/dist/shared/abis/common.d.ts +2 -83
  278. package/dist/shared/abis/common.js +2 -252
  279. package/dist/shared/abis/index.d.ts +5 -6
  280. package/dist/shared/abis/index.js +5 -7
  281. package/dist/shared/clients/blockrazor.js +39 -25
  282. package/dist/shared/clients/club48.d.ts +2 -2
  283. package/dist/shared/clients/club48.js +34 -29
  284. package/dist/shared/clients/emitservice.js +2 -0
  285. package/dist/shared/clients/four.d.ts +21 -6
  286. package/dist/shared/clients/four.js +29 -24
  287. package/dist/shared/clients/index.d.ts +8 -0
  288. package/dist/shared/clients/index.js +8 -0
  289. package/dist/shared/clients/merkle.js +27 -34
  290. package/dist/shared/constants/addresses.d.ts +1 -1
  291. package/dist/shared/constants/addresses.js +11 -2
  292. package/dist/shared/constants/chains.d.ts +1 -1
  293. package/dist/shared/constants/chains.js +1 -1
  294. package/dist/shared/constants/gas.d.ts +1 -1
  295. package/dist/shared/constants/gas.js +2 -6
  296. package/dist/shared/constants/index.d.ts +3 -0
  297. package/dist/shared/constants/index.js +1 -0
  298. package/dist/shared/constants/quote.d.ts +30 -0
  299. package/dist/shared/constants/quote.js +37 -0
  300. package/dist/shared/flap/abi.js +1 -1
  301. package/dist/shared/flap/constants.d.ts +1 -2
  302. package/dist/shared/flap/constants.js +2 -3
  303. package/dist/shared/flap/curve.js +3 -0
  304. package/dist/shared/flap/errors.d.ts +1 -4
  305. package/dist/shared/flap/errors.js +20 -1
  306. package/dist/shared/flap/index.d.ts +5 -4
  307. package/dist/shared/flap/index.js +5 -4
  308. package/dist/shared/flap/meta.d.ts +22 -18
  309. package/dist/shared/flap/meta.js +12 -17
  310. package/dist/shared/flap/permit.js +5 -2
  311. package/dist/shared/flap/pinata.d.ts +22 -6
  312. package/dist/shared/flap/pinata.js +21 -26
  313. package/dist/shared/flap/portal-bundle-merkle/config.d.ts +3 -72
  314. package/dist/shared/flap/portal-bundle-merkle/config.js +4 -124
  315. package/dist/shared/flap/portal-bundle-merkle/core-helpers.d.ts +32 -0
  316. package/dist/shared/flap/portal-bundle-merkle/core-helpers.js +83 -0
  317. package/dist/shared/flap/portal-bundle-merkle/core.d.ts +0 -4
  318. package/dist/shared/flap/portal-bundle-merkle/core.js +86 -278
  319. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.d.ts +7 -2
  320. package/dist/shared/flap/portal-bundle-merkle/create-to-dex.js +101 -206
  321. package/dist/shared/flap/portal-bundle-merkle/curve-to-dex.js +100 -92
  322. package/dist/shared/flap/portal-bundle-merkle/index.d.ts +11 -7
  323. package/dist/shared/flap/portal-bundle-merkle/index.js +4 -7
  324. package/dist/shared/flap/portal-bundle-merkle/pancake-proxy.js +71 -68
  325. package/dist/shared/flap/portal-bundle-merkle/private.js +61 -114
  326. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +125 -0
  327. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first-helpers.js +113 -0
  328. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.d.ts +1 -64
  329. package/dist/shared/flap/portal-bundle-merkle/swap-buy-first.js +66 -247
  330. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.d.ts +149 -0
  331. package/dist/shared/flap/portal-bundle-merkle/swap-helpers.js +259 -0
  332. package/dist/shared/flap/portal-bundle-merkle/swap.d.ts +2 -71
  333. package/dist/shared/flap/portal-bundle-merkle/swap.js +103 -410
  334. package/dist/shared/flap/portal-bundle-merkle/types.d.ts +83 -9
  335. package/dist/shared/flap/portal-bundle-merkle/utils.d.ts +1 -80
  336. package/dist/shared/flap/portal-bundle-merkle/utils.js +145 -265
  337. package/dist/shared/flap/portal-bundle.js +55 -56
  338. package/dist/shared/flap/portal-create-token.d.ts +77 -0
  339. package/dist/shared/flap/portal-create-token.js +214 -0
  340. package/dist/shared/flap/portal.d.ts +14 -3
  341. package/dist/shared/flap/portal.js +50 -25
  342. package/dist/shared/flap/vanity.d.ts +1 -5
  343. package/dist/shared/flap/vanity.js +6 -17
  344. package/dist/shared/flap/vault.d.ts +17 -124
  345. package/dist/shared/flap/vault.js +67 -148
  346. package/dist/shared/foundation/dex/v3-path.d.ts +6 -0
  347. package/dist/shared/foundation/dex/v3-path.js +35 -0
  348. package/dist/shared/foundation/gas/bundle-gas.d.ts +49 -0
  349. package/dist/shared/foundation/gas/bundle-gas.js +93 -0
  350. package/dist/shared/foundation/gas/profit-hop.d.ts +20 -0
  351. package/dist/shared/foundation/gas/profit-hop.js +72 -0
  352. package/dist/shared/foundation/index.d.ts +13 -0
  353. package/dist/shared/foundation/index.js +12 -0
  354. package/dist/shared/foundation/nonce/nonce-manager.d.ts +17 -0
  355. package/dist/shared/foundation/nonce/nonce-manager.js +183 -0
  356. package/dist/shared/foundation/normalize-unknown.d.ts +9 -0
  357. package/dist/shared/foundation/normalize-unknown.js +29 -0
  358. package/dist/shared/foundation/sdk-logger.d.ts +13 -0
  359. package/dist/shared/foundation/sdk-logger.js +12 -0
  360. package/dist/shared/foundation/tx/build-request.d.ts +17 -0
  361. package/dist/shared/foundation/tx/build-request.js +25 -0
  362. package/dist/shared/foundation/tx/sign-batch.d.ts +5 -0
  363. package/dist/shared/foundation/tx/sign-batch.js +26 -0
  364. package/dist/shared/foundation/tx/wallet-sign-patch.d.ts +1 -0
  365. package/dist/shared/foundation/tx/wallet-sign-patch.js +18 -0
  366. package/dist/shared/foundation/types/airdrop-sweep.d.ts +79 -0
  367. package/dist/shared/foundation/types/airdrop-sweep.js +1 -0
  368. package/dist/shared/foundation/types/erc20.d.ts +65 -0
  369. package/dist/shared/foundation/types/erc20.js +1 -0
  370. package/dist/shared/foundation/types/holders-maker.d.ts +64 -0
  371. package/dist/shared/foundation/types/holders-maker.js +1 -0
  372. package/dist/shared/foundation/types/index.d.ts +7 -0
  373. package/dist/shared/foundation/types/index.js +1 -0
  374. package/dist/shared/foundation/types/lp-inspect.d.ts +102 -0
  375. package/dist/shared/foundation/types/lp-inspect.js +1 -0
  376. package/dist/shared/foundation/types/multicall.d.ts +5 -0
  377. package/dist/shared/foundation/types/multicall.js +1 -0
  378. package/dist/shared/foundation/types/private-sale.d.ts +35 -0
  379. package/dist/shared/foundation/types/private-sale.js +1 -0
  380. package/dist/shared/foundation/types/quote-helpers.d.ts +17 -0
  381. package/dist/shared/foundation/types/quote-helpers.js +1 -0
  382. package/dist/shared/four/tax-token.d.ts +1 -1
  383. package/dist/shared/four/tax-token.js +27 -7
  384. package/dist/shared/index.d.ts +6 -0
  385. package/dist/shared/index.js +4 -0
  386. package/dist/types/errors.d.ts +27 -0
  387. package/dist/types/errors.js +34 -0
  388. package/dist/utils/airdrop-sweep.d.ts +4 -76
  389. package/dist/utils/airdrop-sweep.js +42 -55
  390. package/dist/utils/bundle-helpers.d.ts +9 -243
  391. package/dist/utils/bundle-helpers.js +10 -584
  392. package/dist/utils/constants.d.ts +5 -61
  393. package/dist/utils/constants.js +5 -80
  394. package/dist/utils/contract-factory.d.ts +2 -4
  395. package/dist/utils/contract-factory.js +25 -18
  396. package/dist/utils/erc20.d.ts +7 -89
  397. package/dist/utils/erc20.js +94 -125
  398. package/dist/utils/errors.d.ts +12 -1
  399. package/dist/utils/errors.js +60 -1
  400. package/dist/utils/holders-maker/addresses.d.ts +12 -0
  401. package/dist/utils/holders-maker/addresses.js +15 -0
  402. package/dist/utils/holders-maker/buy-tx.d.ts +44 -0
  403. package/dist/utils/holders-maker/buy-tx.js +278 -0
  404. package/dist/utils/holders-maker/constants.d.ts +6 -0
  405. package/dist/utils/holders-maker/constants.js +7 -0
  406. package/dist/utils/holders-maker/disperse.d.ts +18 -0
  407. package/dist/utils/holders-maker/disperse.js +90 -0
  408. package/dist/utils/holders-maker/routing.d.ts +4 -0
  409. package/dist/utils/holders-maker/routing.js +45 -0
  410. package/dist/utils/holders-maker/transfer-tx.d.ts +4 -0
  411. package/dist/utils/holders-maker/transfer-tx.js +67 -0
  412. package/dist/utils/holders-maker-helpers.d.ts +9 -0
  413. package/dist/utils/holders-maker-helpers.js +9 -0
  414. package/dist/utils/holders-maker.d.ts +2 -138
  415. package/dist/utils/holders-maker.js +26 -661
  416. package/dist/utils/hop-chains.d.ts +35 -0
  417. package/dist/utils/hop-chains.js +215 -0
  418. package/dist/utils/lp-inspect-helpers.d.ts +9 -0
  419. package/dist/utils/lp-inspect-helpers.js +109 -0
  420. package/dist/utils/lp-inspect.d.ts +2 -112
  421. package/dist/utils/lp-inspect.js +73 -223
  422. package/dist/utils/mpcExclusive.d.ts +2 -5
  423. package/dist/utils/mpcExclusive.js +4 -3
  424. package/dist/utils/private-sale.d.ts +2 -58
  425. package/dist/utils/private-sale.js +4 -15
  426. package/dist/utils/provider-factory.d.ts +4 -0
  427. package/dist/utils/provider-factory.js +10 -0
  428. package/dist/utils/quote-helpers.d.ts +4 -45
  429. package/dist/utils/quote-helpers.js +17 -74
  430. package/dist/utils/stealth-transfer.d.ts +2 -28
  431. package/dist/utils/stealth-transfer.js +31 -15
  432. package/dist/utils/swap-helpers.d.ts +2 -15
  433. package/dist/utils/swap-helpers.js +6 -11
  434. package/dist/utils/types/airdrop-sweep.d.ts +1 -0
  435. package/dist/utils/types/airdrop-sweep.js +1 -0
  436. package/dist/utils/types/contract-factory.d.ts +1 -0
  437. package/dist/utils/types/contract-factory.js +1 -0
  438. package/dist/utils/types/erc20.d.ts +1 -0
  439. package/dist/utils/types/erc20.js +1 -0
  440. package/dist/utils/types/errors.d.ts +1 -0
  441. package/dist/utils/types/errors.js +1 -0
  442. package/dist/utils/types/holders-maker.d.ts +1 -0
  443. package/dist/utils/types/holders-maker.js +1 -0
  444. package/dist/utils/types/hop-chains.d.ts +8 -0
  445. package/dist/utils/types/hop-chains.js +1 -0
  446. package/dist/utils/types/index.d.ts +13 -0
  447. package/dist/utils/types/index.js +1 -0
  448. package/dist/utils/types/lp-inspect.d.ts +1 -0
  449. package/dist/utils/types/lp-inspect.js +1 -0
  450. package/dist/utils/types/mpc-exclusive.d.ts +5 -0
  451. package/dist/utils/types/mpc-exclusive.js +1 -0
  452. package/dist/utils/types/private-sale.d.ts +1 -0
  453. package/dist/utils/types/private-sale.js +1 -0
  454. package/dist/utils/types/quote-helpers.d.ts +1 -0
  455. package/dist/utils/types/quote-helpers.js +1 -0
  456. package/dist/utils/types/stealth-transfer.d.ts +44 -0
  457. package/dist/utils/types/stealth-transfer.js +1 -0
  458. package/dist/utils/types/wallet.d.ts +25 -0
  459. package/dist/utils/types/wallet.js +1 -0
  460. package/dist/utils/wallet.d.ts +2 -25
  461. package/dist/utils/wallet.js +13 -10
  462. package/dist/vanity/index.d.ts +5 -0
  463. package/dist/vanity/index.js +5 -0
  464. package/package.json +160 -4
  465. package/src/abis/contracts/TaxToken.json +969 -0
  466. package/src/abis/contracts/TokenManager.json +836 -0
  467. package/src/abis/contracts/TokenManager2.json +136 -0
  468. package/src/abis/contracts/TokenManagerHelper3.json +993 -0
  469. package/dist/shared/abis/TaxToken.json +0 -105
  470. package/dist/shared/abis/TokenManager2.json +0 -60
  471. /package/dist/{shared/abis → abis/contracts}/TokenManager.json +0 -0
  472. /package/dist/{shared/abis → abis/contracts}/TokenManagerHelper3.json +0 -0
@@ -0,0 +1,183 @@
1
+ import '../tx/wallet-sign-patch.js';
2
+ import { CHAINS } from '../../constants/index.js';
3
+ function asBatchSendProvider(provider) {
4
+ return provider;
5
+ }
6
+ const GLOBAL_NONCE_TTL_MS = 60 * 1000;
7
+ const globalNonceCursorByChain = new Map();
8
+ function isFlakyNonceChain(chainId) {
9
+ return Number(chainId) === CHAINS.XLAYER.chainId;
10
+ }
11
+ function getCursorMap(chainId) {
12
+ let m = globalNonceCursorByChain.get(chainId);
13
+ if (!m) {
14
+ m = new Map();
15
+ globalNonceCursorByChain.set(chainId, m);
16
+ }
17
+ return m;
18
+ }
19
+ function getGlobalNextNonce(chainId, addrLower) {
20
+ const m = globalNonceCursorByChain.get(chainId);
21
+ if (!m)
22
+ return undefined;
23
+ const e = m.get(addrLower);
24
+ if (!e)
25
+ return undefined;
26
+ if (Date.now() - e.updatedAt > GLOBAL_NONCE_TTL_MS) {
27
+ m.delete(addrLower);
28
+ return undefined;
29
+ }
30
+ return e.nextNonce;
31
+ }
32
+ function setGlobalNextNonce(chainId, addrLower, nextNonce) {
33
+ const m = getCursorMap(chainId);
34
+ const cur = m.get(addrLower);
35
+ const next = Number(nextNonce);
36
+ if (!Number.isFinite(next) || next < 0)
37
+ return;
38
+ if (!cur || next > cur.nextNonce || Date.now() - cur.updatedAt > GLOBAL_NONCE_TTL_MS) {
39
+ m.set(addrLower, { nextNonce: next, updatedAt: Date.now() });
40
+ }
41
+ else {
42
+ cur.updatedAt = Date.now();
43
+ }
44
+ }
45
+ /**
46
+ * Nonce 管理器 — bundle 交易中管理多钱包 nonce
47
+ */
48
+ export class NonceManager {
49
+ provider;
50
+ tempNonceCache = new Map();
51
+ chainIdPromise;
52
+ constructor(provider) {
53
+ this.provider = provider;
54
+ }
55
+ async getChainId() {
56
+ if (!this.chainIdPromise) {
57
+ this.chainIdPromise = this.provider
58
+ .getNetwork()
59
+ .then((n) => Number(n.chainId))
60
+ .catch(() => 0);
61
+ }
62
+ return this.chainIdPromise;
63
+ }
64
+ async getNextNonce(wallet) {
65
+ const address = typeof wallet === 'string' ? wallet : wallet.address;
66
+ const key = address.toLowerCase();
67
+ const chainId = await this.getChainId();
68
+ const flaky = isFlakyNonceChain(chainId);
69
+ if (this.tempNonceCache.has(key)) {
70
+ const cachedNonce = this.tempNonceCache.get(key);
71
+ this.tempNonceCache.set(key, cachedNonce + 1);
72
+ if (flaky)
73
+ setGlobalNextNonce(chainId, key, cachedNonce + 1);
74
+ return cachedNonce;
75
+ }
76
+ const onchainNonce = await this.provider.getTransactionCount(address, 'pending');
77
+ let effectiveNonce = onchainNonce;
78
+ if (flaky) {
79
+ const globalNext = getGlobalNextNonce(chainId, key);
80
+ if (globalNext !== undefined) {
81
+ const delta = globalNext - onchainNonce;
82
+ if (delta > 0 && delta <= 10) {
83
+ effectiveNonce = globalNext;
84
+ }
85
+ }
86
+ setGlobalNextNonce(chainId, key, effectiveNonce + 1);
87
+ }
88
+ this.tempNonceCache.set(key, effectiveNonce + 1);
89
+ return effectiveNonce;
90
+ }
91
+ async getNextNonceBatch(wallet, count) {
92
+ const address = typeof wallet === 'string' ? wallet : wallet.address;
93
+ const key = address.toLowerCase();
94
+ const chainId = await this.getChainId();
95
+ const flaky = isFlakyNonceChain(chainId);
96
+ let startNonce;
97
+ if (this.tempNonceCache.has(key)) {
98
+ startNonce = this.tempNonceCache.get(key);
99
+ }
100
+ else {
101
+ startNonce = await this.provider.getTransactionCount(address, 'pending');
102
+ }
103
+ if (flaky) {
104
+ const globalNext = getGlobalNextNonce(chainId, key);
105
+ if (globalNext !== undefined) {
106
+ const delta = globalNext - startNonce;
107
+ if (delta > 0 && delta <= 10)
108
+ startNonce = globalNext;
109
+ }
110
+ }
111
+ this.tempNonceCache.set(key, startNonce + count);
112
+ if (flaky)
113
+ setGlobalNextNonce(chainId, key, startNonce + count);
114
+ return Array.from({ length: count }, (_, i) => startNonce + i);
115
+ }
116
+ clearTemp() {
117
+ this.tempNonceCache.clear();
118
+ }
119
+ getTempCachedNonce(address) {
120
+ return this.tempNonceCache.get(address.toLowerCase());
121
+ }
122
+ async getNextNoncesForWallets(wallets) {
123
+ const addresses = wallets.map((w) => (typeof w === 'string' ? w : w.address));
124
+ const keys = addresses.map((a) => a.toLowerCase());
125
+ const chainId = await this.getChainId();
126
+ const flaky = isFlakyNonceChain(chainId);
127
+ const needQuery = [];
128
+ const results = new Array(wallets.length);
129
+ for (let i = 0; i < keys.length; i++) {
130
+ const key = keys[i];
131
+ if (this.tempNonceCache.has(key)) {
132
+ const cachedNonce = this.tempNonceCache.get(key);
133
+ results[i] = cachedNonce;
134
+ this.tempNonceCache.set(key, cachedNonce + 1);
135
+ if (flaky)
136
+ setGlobalNextNonce(chainId, key, cachedNonce + 1);
137
+ }
138
+ else {
139
+ needQuery.push({ index: i, address: addresses[i] });
140
+ }
141
+ }
142
+ if (needQuery.length > 0) {
143
+ let queryResults;
144
+ try {
145
+ const batchRequests = needQuery.map(({ address }, idx) => ({
146
+ method: 'eth_getTransactionCount',
147
+ params: [address, 'pending'],
148
+ id: idx + 1,
149
+ jsonrpc: '2.0',
150
+ }));
151
+ const rawResults = await asBatchSendProvider(this.provider)._send(batchRequests);
152
+ queryResults = rawResults.map((r) => {
153
+ if (r.result) {
154
+ return parseInt(r.result, 16);
155
+ }
156
+ return 0;
157
+ });
158
+ }
159
+ catch {
160
+ const queryPromises = needQuery.map(({ address }) => this.provider.getTransactionCount(address, 'pending'));
161
+ queryResults = await Promise.all(queryPromises);
162
+ }
163
+ for (let i = 0; i < needQuery.length; i++) {
164
+ const { index, address } = needQuery[i];
165
+ const key = address.toLowerCase();
166
+ const onchainNonce = queryResults[i];
167
+ let effectiveNonce = onchainNonce;
168
+ if (flaky) {
169
+ const globalNext = getGlobalNextNonce(chainId, key);
170
+ if (globalNext !== undefined) {
171
+ const delta = globalNext - onchainNonce;
172
+ if (delta > 0 && delta <= 10)
173
+ effectiveNonce = globalNext;
174
+ }
175
+ setGlobalNextNonce(chainId, key, effectiveNonce + 1);
176
+ }
177
+ results[index] = effectiveNonce;
178
+ this.tempNonceCache.set(key, effectiveNonce + 1);
179
+ }
180
+ }
181
+ return results;
182
+ }
183
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * SDK 统一的 unknown / Error 收口(审计:catch 宜用 unknown + normalize)
3
+ */
4
+ export interface NormalizedErrorShape {
5
+ message: string;
6
+ cause?: unknown;
7
+ }
8
+ export declare function getErrorMessageFromUnknown(error: unknown): string;
9
+ export declare function normalizeUnknownError(error: unknown): NormalizedErrorShape;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * SDK 统一的 unknown / Error 收口(审计:catch 宜用 unknown + normalize)
3
+ */
4
+ export function getErrorMessageFromUnknown(error) {
5
+ if (error instanceof Error)
6
+ return error.message;
7
+ if (typeof error === 'string')
8
+ return error;
9
+ if (error !== null && typeof error === 'object') {
10
+ const o = error;
11
+ const m = o.message;
12
+ if (typeof m === 'string')
13
+ return m;
14
+ const reason = o.reason;
15
+ if (typeof reason === 'string')
16
+ return reason;
17
+ }
18
+ try {
19
+ return String(error);
20
+ }
21
+ catch {
22
+ return 'Unknown error';
23
+ }
24
+ }
25
+ export function normalizeUnknownError(error) {
26
+ const message = getErrorMessageFromUnknown(error);
27
+ const cause = error instanceof Error && error.cause !== undefined ? error.cause : error instanceof Error ? undefined : error;
28
+ return { message, ...(cause !== undefined ? { cause } : {}) };
29
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SDK 可选日志门面(默认静默);业务侧可传入以替代 console.*
3
+ */
4
+ export interface SdkLogger {
5
+ debug?: (msg: string, ...args: unknown[]) => void;
6
+ info?: (msg: string, ...args: unknown[]) => void;
7
+ warn?: (msg: string, ...args: unknown[]) => void;
8
+ error?: (msg: string, ...args: unknown[]) => void;
9
+ }
10
+ /** 不输出日志(库的推荐默认)。 */
11
+ export declare const noopSdkLogger: SdkLogger;
12
+ /** 直接使用 console(仅调试/过渡期)。 */
13
+ export declare const consoleSdkLogger: SdkLogger;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * SDK 可选日志门面(默认静默);业务侧可传入以替代 console.*
3
+ */
4
+ /** 不输出日志(库的推荐默认)。 */
5
+ export const noopSdkLogger = {};
6
+ /** 直接使用 console(仅调试/过渡期)。 */
7
+ export const consoleSdkLogger = {
8
+ debug: (msg, ...args) => console.debug(msg, ...args),
9
+ info: (msg, ...args) => console.info(msg, ...args),
10
+ warn: (msg, ...args) => console.warn(msg, ...args),
11
+ error: (msg, ...args) => console.error(msg, ...args),
12
+ };
@@ -0,0 +1,17 @@
1
+ import type { TransactionLike, TransactionRequest } from 'ethers';
2
+ /** 构建签名用 TransactionRequest 的公共参数 */
3
+ export type BuildTxRequestParams = {
4
+ from: string;
5
+ nonce: number;
6
+ gasLimit: bigint;
7
+ gasPrice: bigint;
8
+ priorityFee: bigint;
9
+ chainId: number;
10
+ txType: number;
11
+ value?: bigint;
12
+ };
13
+ /**
14
+ * 将 populateTransaction 结果与 gas/nonce 字段合并为可签名交易。
15
+ * type 0 (Legacy) 使用 gasPrice;type 2 (EIP-1559) 使用 maxFeePerGas + maxPriorityFeePerGas。
16
+ */
17
+ export declare function buildTransactionRequest(unsigned: TransactionLike, { from, nonce, gasLimit, gasPrice, priorityFee, chainId, txType, value }: BuildTxRequestParams): TransactionRequest;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 将 populateTransaction 结果与 gas/nonce 字段合并为可签名交易。
3
+ * type 0 (Legacy) 使用 gasPrice;type 2 (EIP-1559) 使用 maxFeePerGas + maxPriorityFeePerGas。
4
+ */
5
+ export function buildTransactionRequest(unsigned, { from, nonce, gasLimit, gasPrice, priorityFee, chainId, txType, value }) {
6
+ const tx = {
7
+ ...unsigned,
8
+ from,
9
+ nonce,
10
+ gasLimit,
11
+ chainId,
12
+ type: txType,
13
+ };
14
+ if (value !== undefined) {
15
+ tx.value = value;
16
+ }
17
+ if (txType === 2) {
18
+ tx.maxFeePerGas = gasPrice;
19
+ tx.maxPriorityFeePerGas = priorityFee;
20
+ }
21
+ else {
22
+ tx.gasPrice = gasPrice;
23
+ }
24
+ return tx;
25
+ }
@@ -0,0 +1,5 @@
1
+ import { JsonRpcProvider, Wallet, type TransactionRequest } from 'ethers';
2
+ export declare function getChainId(provider: JsonRpcProvider, configChainId?: number): Promise<number>;
3
+ export declare function signTransactionsBatch(wallet: Wallet, transactions: TransactionRequest[]): Promise<string[]>;
4
+ export declare function signTransactionsBatchMultiWallet(wallets: Wallet[], transactions: TransactionRequest[]): Promise<string[]>;
5
+ export declare function validateSignedTransactions(signedTxs: string[]): boolean;
@@ -0,0 +1,26 @@
1
+ export async function getChainId(provider, configChainId) {
2
+ if (configChainId !== undefined)
3
+ return configChainId;
4
+ const network = await provider.getNetwork();
5
+ return Number(network.chainId);
6
+ }
7
+ export async function signTransactionsBatch(wallet, transactions) {
8
+ return Promise.all(transactions.map((tx) => wallet.signTransaction(tx)));
9
+ }
10
+ export async function signTransactionsBatchMultiWallet(wallets, transactions) {
11
+ if (wallets.length !== transactions.length) {
12
+ throw new Error(`Wallet count (${wallets.length}) must match transaction count (${transactions.length})`);
13
+ }
14
+ return Promise.all(transactions.map((tx, i) => wallets[i].signTransaction(tx)));
15
+ }
16
+ export function validateSignedTransactions(signedTxs) {
17
+ if (!signedTxs || signedTxs.length === 0) {
18
+ return false;
19
+ }
20
+ for (const tx of signedTxs) {
21
+ if (typeof tx !== 'string' || !tx.startsWith('0x')) {
22
+ return false;
23
+ }
24
+ }
25
+ return true;
26
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * EIP-1559 兼容:当 txType=2 但传了 gasPrice 时,自动转换为 maxFeePerGas
3
+ * 模块加载时 patch Wallet.prototype.signTransaction(全局一次)
4
+ */
5
+ import { Wallet } from 'ethers';
6
+ const _origWalletSign = Wallet.prototype.signTransaction;
7
+ Wallet.prototype.signTransaction = async function (tx) {
8
+ const signable = tx;
9
+ if (signable.type === 2 && signable.gasPrice != null && signable.maxFeePerGas == null) {
10
+ const { gasPrice: gp, ...rest } = signable;
11
+ return _origWalletSign.call(this, {
12
+ ...rest,
13
+ maxFeePerGas: gp,
14
+ maxPriorityFeePerGas: rest.maxPriorityFeePerGas ?? 0n,
15
+ });
16
+ }
17
+ return _origWalletSign.call(this, tx);
18
+ };
@@ -0,0 +1,79 @@
1
+ /**
2
+ * 空投分散 / 归集(airdrop-sweep)— 类型定义
3
+ */
4
+ import type { SoulPointSignatureMode, VNormalizationMode } from '../../clients/club48.js';
5
+ export type BundleSubmitResult = {
6
+ bundleUuid: string;
7
+ signedTxs: string[];
8
+ };
9
+ export type SignedTransactionsResult = {
10
+ signedTransactions: string[];
11
+ };
12
+ export type AirdropDisperseParams = {
13
+ rpcUrl: string;
14
+ chainId: number;
15
+ fromPrivateKey: string;
16
+ recipients: string[];
17
+ amount?: string;
18
+ amounts?: string[];
19
+ tokenAddress?: string;
20
+ bundleEndpoint?: string;
21
+ gasPriceGwei?: string;
22
+ transferGasLimit?: bigint;
23
+ nativeGasLimit?: bigint;
24
+ blockOffset?: number;
25
+ spMode?: SoulPointSignatureMode;
26
+ spPrivateKey?: string;
27
+ spVMode?: VNormalizationMode;
28
+ };
29
+ export type AirdropDisperseSignParams = {
30
+ rpcUrl: string;
31
+ chainId: number;
32
+ fromPrivateKey: string;
33
+ recipients: string[];
34
+ amount?: string;
35
+ amounts?: string[];
36
+ tokenAddress?: string;
37
+ gasPriceGwei?: string;
38
+ transferGasLimit?: bigint;
39
+ nativeGasLimit?: bigint;
40
+ };
41
+ export type AirdropSweepParams = {
42
+ rpcUrl: string;
43
+ chainId: number;
44
+ sourcePrivateKeys: string[];
45
+ target: string;
46
+ ratioPct?: number;
47
+ amount?: string;
48
+ tokenAddress?: string;
49
+ bundleEndpoint?: string;
50
+ gasPriceGwei?: string;
51
+ transferGasLimit?: bigint;
52
+ nativeGasLimit?: bigint;
53
+ blockOffset?: number;
54
+ skipIfInsufficient?: boolean;
55
+ spMode?: SoulPointSignatureMode;
56
+ spPrivateKey?: string;
57
+ spVMode?: VNormalizationMode;
58
+ };
59
+ export type AirdropSweepSignParams = {
60
+ rpcUrl: string;
61
+ chainId: number;
62
+ sourcePrivateKeys: string[];
63
+ target: string;
64
+ ratioPct?: number;
65
+ amount?: string;
66
+ tokenAddress?: string;
67
+ gasPriceGwei?: string;
68
+ transferGasLimit?: bigint;
69
+ nativeGasLimit?: bigint;
70
+ skipIfInsufficient?: boolean;
71
+ };
72
+ /** @deprecated 使用 `AirdropDisperseParams` */
73
+ export type DisperseParams = AirdropDisperseParams;
74
+ /** @deprecated 使用 `AirdropDisperseSignParams` */
75
+ export type DisperseSignParams = AirdropDisperseSignParams;
76
+ /** @deprecated 使用 `AirdropSweepParams` */
77
+ export type SweepParams = AirdropSweepParams;
78
+ /** @deprecated 使用 `AirdropSweepSignParams` */
79
+ export type SweepSignParams = AirdropSweepSignParams;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,65 @@
1
+ import type { ContractTransactionReceipt } from 'ethers';
2
+ import type { NonceManager } from '../nonce/nonce-manager.js';
3
+ export type EnsureAllowanceResult = {
4
+ /** 是否已经授权 */
5
+ alreadyApproved: boolean;
6
+ /** 当前授权额度 */
7
+ currentAllowance: bigint;
8
+ /** 需要的授权额度 */
9
+ requiredAllowance: bigint;
10
+ /** 授权交易回执(如果发送了新交易) */
11
+ txReceipt?: ContractTransactionReceipt | null;
12
+ };
13
+ export type EnsureAllowanceBatchItemResult = EnsureAllowanceResult & {
14
+ owner: string;
15
+ };
16
+ export type ApproveTokenBatchParams = {
17
+ chain: 'BSC' | 'BASE' | 'XLAYER' | 'MORPH' | 'MONAD';
18
+ platform: 'flap' | 'four' | 'pancake-v2' | 'pancake-v3';
19
+ rpcUrl: string;
20
+ privateKeys: string[];
21
+ tokenAddress: string;
22
+ amounts: (bigint | 'max')[];
23
+ signOnly?: boolean;
24
+ gasPriceGwei?: number;
25
+ gasLimit?: number;
26
+ chainId?: number;
27
+ skipValidation?: boolean;
28
+ };
29
+ export type ApproveTokenBatchRawParams = {
30
+ rpcUrl: string;
31
+ privateKeys: string[];
32
+ tokenAddress: string;
33
+ spenderAddress: string;
34
+ amounts: (bigint | 'max')[];
35
+ signOnly?: boolean;
36
+ gasPriceGwei?: number;
37
+ gasLimit?: number;
38
+ chainId?: number;
39
+ nonceManager?: NonceManager;
40
+ skipValidation?: boolean;
41
+ };
42
+ export type ApproveTokenBatchResult = {
43
+ success: boolean;
44
+ approvedCount: number;
45
+ results: Array<{
46
+ owner: string;
47
+ alreadyApproved: boolean;
48
+ currentAllowance: bigint;
49
+ requiredAllowance: bigint;
50
+ txHash?: string;
51
+ error?: string;
52
+ }>;
53
+ };
54
+ export type ApproveTokenBatchSignResult = {
55
+ signedTransactions: string[];
56
+ results: Array<{
57
+ owner: string;
58
+ alreadyApproved: boolean;
59
+ currentAllowance: bigint;
60
+ requiredAllowance: bigint;
61
+ signedTx?: string;
62
+ }>;
63
+ needApproveCount: number;
64
+ alreadyApprovedCount: number;
65
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ /**
2
+ * 刷持有人 - 类型定义
3
+ */
4
+ import type { GeneratedWallet } from '../../../utils/wallet.js';
5
+ export type HoldersMakerChain = 'BSC' | 'MONAD' | 'XLAYER' | 'ENI';
6
+ export type HoldersMakerTradeType = 'four' | 'flap' | 'v2' | 'v3' | 'daoaas';
7
+ export type BaseTokenType = 'native' | 'usdt' | 'usdc';
8
+ export type HoldersMakerConfig = {
9
+ rpcUrl: string;
10
+ chain?: HoldersMakerChain;
11
+ chainId?: number;
12
+ tradeType?: HoldersMakerTradeType;
13
+ gasLimit?: number;
14
+ gasPriceGwei?: number;
15
+ bribeAmount?: number;
16
+ txType?: 0 | 2;
17
+ maxWalletsPerBatch?: number;
18
+ fourApiUrl?: string;
19
+ disperseHopCount?: number;
20
+ v2Path?: string[];
21
+ v3TokenIn?: string;
22
+ v3Fee?: number;
23
+ v3LpAddresses?: string[];
24
+ v3Tokens?: string[];
25
+ v2RouterAddress?: string;
26
+ };
27
+ export type HoldersMakerParams = {
28
+ payerPrivateKey: string;
29
+ holdersCount: number;
30
+ buyAmountPerHolder: string;
31
+ tokenAddress: string;
32
+ baseToken?: BaseTokenType;
33
+ baseTokenAddress?: string;
34
+ baseTokenDecimals?: number;
35
+ config: HoldersMakerConfig;
36
+ };
37
+ export type TransactionLayer = {
38
+ name: string;
39
+ startIndex: number;
40
+ endIndex: number;
41
+ count: number;
42
+ };
43
+ export type BatchResult = {
44
+ batchIndex: number;
45
+ success: boolean;
46
+ signedTransactions?: string[];
47
+ txHashes?: string[];
48
+ error?: string;
49
+ walletCount: number;
50
+ transactionLayers?: TransactionLayer[];
51
+ disperseHopCount?: number;
52
+ };
53
+ export type HoldersMakerResult = {
54
+ success: boolean;
55
+ newWallets: GeneratedWallet[];
56
+ disperseHopWallets?: GeneratedWallet[];
57
+ profitHopWallets?: GeneratedWallet[];
58
+ signedTransactions: string[][];
59
+ batchResults: BatchResult[];
60
+ successBatchCount: number;
61
+ totalBatchCount: number;
62
+ error?: string;
63
+ disperseHopCount?: number;
64
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ export type { Aggregate3CallResult } from './multicall.js';
2
+ export type { EnsureAllowanceResult, EnsureAllowanceBatchItemResult, ApproveTokenBatchParams, ApproveTokenBatchRawParams, ApproveTokenBatchResult, ApproveTokenBatchSignResult, } from './erc20.js';
3
+ export type { HoldersMakerChain, HoldersMakerTradeType, BaseTokenType, HoldersMakerConfig, HoldersMakerParams, TransactionLayer, BatchResult, HoldersMakerResult, } from './holders-maker.js';
4
+ export type { DexConfig, ChainDexConfig, PoolPairInfo, V3PoolInfo, DexPoolInfo, BestPoolInfo, LPPlatform, LPInfo, InspectOptions, } from './lp-inspect.js';
5
+ export type { BundleSubmitResult, SignedTransactionsResult, AirdropDisperseParams, AirdropDisperseSignParams, AirdropSweepParams, AirdropSweepSignParams, DisperseParams, DisperseSignParams, SweepParams, SweepSignParams, } from './airdrop-sweep.js';
6
+ export type { PrivateSaleSignConfig, PrivateSaleTransferParams, BatchPrivateSaleParams, PrivateSaleResult, } from './private-sale.js';
7
+ export type { SupportedChain, QuoteParams, QuoteResult } from './quote-helpers.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,102 @@
1
+ /**
2
+ * LP 查询 - 类型定义
3
+ */
4
+ import type { FlapChain } from '../../flap/portal.js';
5
+ export interface DexConfig {
6
+ name: string;
7
+ v2Factory?: string;
8
+ v3Factory?: string;
9
+ v2Router?: string;
10
+ v3Router?: string;
11
+ quoterV2?: string;
12
+ enabled: boolean;
13
+ }
14
+ export interface ChainDexConfig {
15
+ wrappedNative: string;
16
+ wrappedNativeSymbol: string;
17
+ stableCoins: Array<{
18
+ address: string;
19
+ symbol: string;
20
+ decimals: number;
21
+ }>;
22
+ dexes: Record<string, DexConfig>;
23
+ }
24
+ export interface PoolPairInfo {
25
+ quoteToken: string;
26
+ quoteSymbol: string;
27
+ quoteDecimals: number;
28
+ pairAddress: string;
29
+ reserveToken: string;
30
+ reserveQuote: string;
31
+ reserveQuoteRaw?: bigint;
32
+ reserveTokenRaw?: bigint;
33
+ poolRatio?: string;
34
+ }
35
+ export interface V3PoolInfo extends PoolPairInfo {
36
+ fee: number;
37
+ }
38
+ export interface DexPoolInfo {
39
+ dexName: string;
40
+ dexKey: string;
41
+ v2Pairs: PoolPairInfo[];
42
+ v3Pools: V3PoolInfo[];
43
+ }
44
+ export interface BestPoolInfo {
45
+ dex: string;
46
+ dexKey: string;
47
+ version: 'v2' | 'v3';
48
+ fee?: number;
49
+ quoteToken: string;
50
+ quoteSymbol: string;
51
+ quoteDecimals: number;
52
+ pairAddress: string;
53
+ liquidity: string;
54
+ liquidityRaw: bigint;
55
+ reserveToken?: string;
56
+ reserveTokenRaw?: bigint;
57
+ poolRatio?: string;
58
+ }
59
+ export type LPPlatform = 'FOUR' | 'FLAP' | 'DAOAAS' | 'PANCAKESWAP_V2' | 'PANCAKESWAP_V3' | 'UNISWAP_V2' | 'UNISWAP_V3' | 'IROSWAP_V2' | 'MULTI_DEX' | 'UNKNOWN';
60
+ export interface LPInfo {
61
+ platform: LPPlatform;
62
+ decimals?: number;
63
+ totalSupply?: string;
64
+ totalSupplyRaw?: bigint;
65
+ taxRate?: number;
66
+ four?: {
67
+ helper: string;
68
+ reserveNative?: string;
69
+ offerTokens?: string;
70
+ lastPrice?: string;
71
+ };
72
+ flap?: {
73
+ quoteToken?: string;
74
+ quoteSymbol?: string;
75
+ quoteDecimals?: number;
76
+ reserveNative?: string;
77
+ circulatingSupply?: string;
78
+ price?: string;
79
+ taxRate?: number;
80
+ };
81
+ daoaas?: {
82
+ quoteToken?: string;
83
+ quoteSymbol?: string;
84
+ quoteDecimals?: number;
85
+ reserveNative?: string;
86
+ circulatingSupply?: string;
87
+ price?: string;
88
+ status?: number;
89
+ };
90
+ allPools: DexPoolInfo[];
91
+ bestPools: BestPoolInfo[];
92
+ }
93
+ export interface InspectOptions {
94
+ chain: 'BSC' | 'MONAD' | 'XLAYER' | 'ENI';
95
+ rpcUrl: string;
96
+ flapChain?: FlapChain;
97
+ v3FeeTiers?: number[];
98
+ customDexConfig?: Partial<ChainDexConfig>;
99
+ multicall3?: string;
100
+ debug?: boolean;
101
+ formatBalances?: boolean;
102
+ }