four-flap-meme-sdk 2.2.20 → 3.0.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 (442) hide show
  1. package/dist/abis/flap/portal-events.d.ts +1 -1
  2. package/dist/abis/flap/portal-events.js +1 -1
  3. package/dist/abis/flap/portal.d.ts +1 -1
  4. package/dist/abis/flap/portal.js +1 -1
  5. package/dist/abis/flap/vault.d.ts +1 -1
  6. package/dist/abis/flap/vault.js +1 -1
  7. package/dist/abis/index.d.ts +0 -2
  8. package/dist/abis/index.js +0 -2
  9. package/dist/{bundle-core → bundle}/config-helpers.d.ts +1 -1
  10. package/dist/{bundle-core → bundle}/config-helpers.js +1 -1
  11. package/dist/{bundle-core → bundle}/four-meme/approve-tokenmanager.js +3 -3
  12. package/dist/{bundle-core → bundle}/four-meme/core-helpers.d.ts +1 -1
  13. package/dist/{bundle-core → bundle}/four-meme/core-helpers.js +2 -2
  14. package/dist/{bundle-core → bundle}/four-meme/core.js +3 -3
  15. package/dist/{bundle-core → bundle}/four-meme/pancake-proxy.js +2 -2
  16. package/dist/{bundle-core → bundle}/four-meme/private.js +2 -2
  17. package/dist/{bundle-core → bundle}/four-meme/sign-context-helpers.d.ts +1 -1
  18. package/dist/{bundle-core → bundle}/four-meme/sign-context-helpers.js +1 -1
  19. package/dist/{bundle-core → bundle}/four-meme/swap-buy-first.js +3 -3
  20. package/dist/{bundle-core → bundle}/four-meme/swap-internal.js +1 -1
  21. package/dist/{bundle-core → bundle}/four-meme/swap-sign-helpers.js +2 -2
  22. package/dist/{bundle-core → bundle}/four-meme/types/index.d.ts +1 -1
  23. package/dist/{bundle-core → bundle}/four-meme/utils-disperse.js +1 -1
  24. package/dist/{bundle-core → bundle}/four-meme/utils-pairwise.js +1 -1
  25. package/dist/{bundle-core → bundle}/four-meme/utils-sweep.js +1 -1
  26. package/dist/{bundle-core → bundle}/internal.d.ts +1 -1
  27. package/dist/{bundle-core → bundle}/internal.js +2 -2
  28. package/dist/{bundle-core → bundle}/sign-context-helpers.js +1 -1
  29. package/dist/{bundle-core → bundle}/submit.js +4 -4
  30. package/dist/chains/bsc/constants.js +1 -1
  31. package/dist/chains/bsc/four/approve-tokenmanager.d.ts +1 -1
  32. package/dist/chains/bsc/four/approve-tokenmanager.js +1 -1
  33. package/dist/chains/bsc/four/config.d.ts +3 -3
  34. package/dist/chains/bsc/four/config.js +2 -2
  35. package/dist/chains/bsc/four/core.d.ts +1 -1
  36. package/dist/chains/bsc/four/core.js +1 -1
  37. package/dist/chains/bsc/four/internal.d.ts +2 -2
  38. package/dist/chains/bsc/four/internal.js +2 -2
  39. package/dist/chains/bsc/four/pancake-proxy.d.ts +1 -1
  40. package/dist/chains/bsc/four/pancake-proxy.js +1 -1
  41. package/dist/chains/bsc/four/private.d.ts +1 -1
  42. package/dist/chains/bsc/four/private.js +1 -1
  43. package/dist/chains/bsc/four/submit.d.ts +2 -2
  44. package/dist/chains/bsc/four/submit.js +2 -2
  45. package/dist/chains/bsc/four/swap-buy-first.d.ts +2 -2
  46. package/dist/chains/bsc/four/swap-buy-first.js +2 -2
  47. package/dist/chains/bsc/four/swap-internal.d.ts +1 -1
  48. package/dist/chains/bsc/four/swap-internal.js +1 -1
  49. package/dist/chains/bsc/four/swap.d.ts +2 -2
  50. package/dist/chains/bsc/four/swap.js +2 -2
  51. package/dist/chains/bsc/four/types.d.ts +1 -1
  52. package/dist/chains/bsc/four/utils-disperse.d.ts +1 -1
  53. package/dist/chains/bsc/four/utils-disperse.js +1 -1
  54. package/dist/chains/bsc/four/utils-pairwise.d.ts +1 -1
  55. package/dist/chains/bsc/four/utils-pairwise.js +1 -1
  56. package/dist/chains/bsc/four/utils-sweep.d.ts +1 -1
  57. package/dist/chains/bsc/four/utils-sweep.js +1 -1
  58. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +1 -1
  59. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +3 -3
  60. package/dist/chains/bsc/pancake/bundle-buy-first.js +4 -4
  61. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +1 -1
  62. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +5 -5
  63. package/dist/chains/bsc/pancake/bundle-swap.js +2 -2
  64. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  65. package/dist/chains/bsc/platforms/iro/token.js +1 -1
  66. package/dist/chains/eni/batch-router/transfer.js +2 -2
  67. package/dist/chains/eni/constants.js +1 -1
  68. package/dist/chains/eni/platforms/daoaas/create.js +1 -1
  69. package/dist/chains/eni/platforms/daoaas/portal-direct.js +1 -1
  70. package/dist/chains/eni/platforms/dswap/liquidity.js +1 -1
  71. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  72. package/dist/chains/eni/platforms/fair-launch/launcher.js +1 -1
  73. package/dist/chains/eni/platforms/fair-launch/pool.js +1 -1
  74. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  75. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  76. package/dist/chains/eni/platforms/iro/token.js +1 -1
  77. package/dist/chains/eni/submit.js +2 -2
  78. package/dist/chains/monad/constants.js +1 -1
  79. package/dist/chains/xlayer/constants.js +1 -1
  80. package/dist/chains/xlayer/eip7702/bundle-create.js +1 -1
  81. package/dist/chains/xlayer/eip7702/bundle-sell.js +1 -1
  82. package/dist/chains/xlayer/eip7702/bundle-swap.js +1 -1
  83. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -1
  84. package/dist/chains/xlayer/eip7702/constants.js +2 -2
  85. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +1 -1
  86. package/dist/chains/xlayer/eip7702/utils.js +1 -1
  87. package/dist/chains/xlayer/eip7702/volume.js +1 -1
  88. package/dist/chains/xlayer/eoa/constants.js +1 -1
  89. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  90. package/dist/chains/xlayer/eoa/dex-helpers.js +2 -2
  91. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +1 -1
  92. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +3 -3
  93. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +2 -2
  94. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  95. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +2 -2
  96. package/dist/chains/xlayer/eoa/router-manager.js +1 -1
  97. package/dist/{shared → core}/clients/blockrazor.js +1 -1
  98. package/dist/{shared → core}/clients/four.js +1 -1
  99. package/dist/{shared → core}/clients/merkle.js +1 -1
  100. package/dist/{shared → core}/constants/index.d.ts +2 -2
  101. package/dist/{shared → core}/constants/index.js +1 -1
  102. package/dist/{shared/foundation → core}/dex/v3-path.js +1 -1
  103. package/dist/{utils → core}/erc20.d.ts +2 -2
  104. package/dist/{utils → core}/erc20.js +3 -3
  105. package/dist/{shared/foundation → core}/gas/profit-hop.js +1 -1
  106. package/dist/core/index.d.ts +5 -0
  107. package/dist/core/index.js +5 -0
  108. package/dist/{shared/foundation → core}/nonce/nonce-manager.js +1 -1
  109. package/dist/{shared/foundation → core}/types/airdrop-sweep.d.ts +1 -1
  110. package/dist/{shared/foundation → core}/types/holders-maker.d.ts +1 -1
  111. package/dist/{shared/foundation → core}/types/lp-inspect.d.ts +1 -1
  112. package/dist/{shared/foundation → core}/types/private-sale.d.ts +1 -1
  113. package/dist/{utils/types/erc20.d.ts → core/types-erc20.d.ts} +1 -1
  114. package/dist/{dex → domains/dex}/direct-router-helpers.d.ts +1 -1
  115. package/dist/{dex → domains/dex}/direct-router-helpers.js +4 -4
  116. package/dist/{dex → domains/dex}/direct-router.js +6 -6
  117. package/dist/{dex → domains/dex}/types.d.ts +1 -1
  118. package/dist/{shared → domains}/flap/constants.d.ts +1 -1
  119. package/dist/{shared → domains}/flap/constants.js +1 -1
  120. package/dist/{shared → domains}/flap/errors.js +1 -1
  121. package/dist/{flap → domains/flap}/index.d.ts +5 -9
  122. package/dist/domains/flap/index.js +5 -0
  123. package/dist/{shared → domains}/flap/meta.js +2 -2
  124. package/dist/{shared → domains}/flap/permit.js +2 -2
  125. package/dist/{shared → domains}/flap/portal-bundle-merkle/config.d.ts +2 -2
  126. package/dist/{shared → domains}/flap/portal-bundle-merkle/config.js +4 -4
  127. package/dist/{shared → domains}/flap/portal-bundle-merkle/core-helpers.js +3 -3
  128. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +4 -4
  129. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +3 -3
  130. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +4 -4
  131. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +4 -4
  132. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +3 -3
  133. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-batch.js +2 -2
  134. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first-helpers.js +3 -3
  135. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +7 -7
  136. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-cross.js +1 -1
  137. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-helpers.js +3 -3
  138. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-planning.js +5 -5
  139. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-quick-batch.js +4 -4
  140. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-single.js +2 -2
  141. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +3 -3
  142. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  143. package/dist/{shared → domains}/flap/portal-bundle.js +3 -3
  144. package/dist/{shared → domains}/flap/portal-create-token.js +1 -1
  145. package/dist/{shared → domains}/flap/vault.js +1 -1
  146. package/dist/{flows → domains/flows}/create.js +2 -2
  147. package/dist/{contracts → domains/four/contracts}/helper3.js +2 -2
  148. package/dist/{contracts → domains/four/contracts}/tm-bundle-helpers.d.ts +4 -4
  149. package/dist/{contracts → domains/four/contracts}/tm-bundle-helpers.js +3 -3
  150. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +2 -2
  151. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +7 -7
  152. package/dist/{contracts → domains/four/contracts}/tm.d.ts +1 -1
  153. package/dist/{contracts → domains/four/contracts}/tm.js +4 -4
  154. package/dist/{contracts → domains/four/contracts}/tm1.js +2 -2
  155. package/dist/{contracts → domains/four/contracts}/tm2.js +2 -2
  156. package/dist/domains/four/index.d.ts +7 -0
  157. package/dist/domains/four/index.js +7 -0
  158. package/dist/{shared → domains}/four/tax-token.js +1 -1
  159. package/dist/{utils → domains/holders}/holders-maker-helpers.d.ts +7 -7
  160. package/dist/{utils → domains/holders}/holders-maker-helpers.js +7 -7
  161. package/dist/{utils → domains/holders}/holders-maker.d.ts +2 -2
  162. package/dist/{utils → domains/holders}/holders-maker.js +4 -4
  163. package/dist/domains/holders/index.d.ts +1 -0
  164. package/dist/domains/holders/index.js +1 -0
  165. package/dist/{utils/holders-maker → domains/holders/internal}/addresses.js +1 -1
  166. package/dist/{utils/holders-maker → domains/holders/internal}/buy-tx.d.ts +1 -1
  167. package/dist/{utils/holders-maker → domains/holders/internal}/buy-tx.js +4 -4
  168. package/dist/{utils/holders-maker → domains/holders/internal}/constants.js +1 -1
  169. package/dist/{utils/holders-maker → domains/holders/internal}/disperse.d.ts +4 -4
  170. package/dist/{utils/holders-maker → domains/holders/internal}/disperse.js +2 -2
  171. package/dist/{utils/holders-maker → domains/holders/internal}/routing.d.ts +1 -1
  172. package/dist/{utils/holders-maker → domains/holders/internal}/routing.js +1 -1
  173. package/dist/{utils/holders-maker → domains/holders/internal}/transfer-tx.js +2 -2
  174. package/dist/{utils/types/holders-maker.d.ts → domains/holders/types.d.ts} +1 -1
  175. package/dist/domains/lp-inspect/index.d.ts +1 -0
  176. package/dist/domains/lp-inspect/index.js +1 -0
  177. package/dist/{utils → domains/lp-inspect}/lp-inspect-helpers.d.ts +1 -1
  178. package/dist/{utils → domains/lp-inspect}/lp-inspect-helpers.js +1 -1
  179. package/dist/{utils → domains/lp-inspect}/lp-inspect.d.ts +2 -2
  180. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +6 -6
  181. package/dist/{utils/types/lp-inspect.d.ts → domains/lp-inspect/types.d.ts} +1 -1
  182. package/dist/{merkle → domains/merkle}/index.d.ts +7 -7
  183. package/dist/domains/merkle/index.js +11 -0
  184. package/dist/domains/private-sale/index.d.ts +1 -0
  185. package/dist/domains/private-sale/index.js +1 -0
  186. package/dist/{utils → domains/private-sale}/private-sale.d.ts +2 -2
  187. package/dist/{utils → domains/private-sale}/private-sale.js +2 -2
  188. package/dist/domains/private-sale/types.d.ts +1 -0
  189. package/dist/domains/quote/index.d.ts +1 -0
  190. package/dist/domains/quote/index.js +1 -0
  191. package/dist/{utils → domains/quote}/quote-helpers.d.ts +3 -3
  192. package/dist/{utils → domains/quote}/quote-helpers.js +2 -2
  193. package/dist/{utils/types/quote-helpers.d.ts → domains/quote/types.d.ts} +1 -1
  194. package/dist/domains/vanity/index.d.ts +5 -0
  195. package/dist/domains/vanity/index.js +5 -0
  196. package/dist/exports/root-bundle-and-tooling.d.ts +11 -11
  197. package/dist/exports/root-bundle-and-tooling.js +11 -11
  198. package/dist/exports/root-foundations.d.ts +21 -21
  199. package/dist/exports/root-foundations.js +21 -21
  200. package/dist/exports/root-swap-dex-and-xlayer.d.ts +10 -10
  201. package/dist/exports/root-swap-dex-and-xlayer.js +8 -8
  202. package/dist/index.d.ts +7 -10
  203. package/dist/index.js +7 -10
  204. package/dist/utils/airdrop-sweep.js +3 -3
  205. package/dist/utils/bundle-helpers.d.ts +7 -7
  206. package/dist/utils/bundle-helpers.js +7 -7
  207. package/dist/utils/constants.d.ts +2 -2
  208. package/dist/utils/constants.js +2 -2
  209. package/dist/utils/contract-factory.js +1 -1
  210. package/dist/utils/errors.d.ts +2 -2
  211. package/dist/utils/errors.js +3 -3
  212. package/dist/utils/hop-chains.d.ts +1 -1
  213. package/dist/utils/hop-chains.js +2 -2
  214. package/dist/utils/index.d.ts +5 -0
  215. package/dist/utils/index.js +5 -0
  216. package/dist/utils/mpcExclusive.js +1 -1
  217. package/dist/utils/stealth-transfer.js +2 -2
  218. package/dist/utils/swap-helpers.d.ts +1 -1
  219. package/dist/utils/swap-helpers.js +1 -1
  220. package/dist/utils/types/airdrop-sweep.d.ts +1 -1
  221. package/dist/utils/types/index.d.ts +6 -6
  222. package/dist/utils/types/stealth-transfer.d.ts +1 -1
  223. package/dist/utils/wallet.d.ts +2 -2
  224. package/dist/utils/wallet.js +3 -3
  225. package/package.json +52 -56
  226. package/dist/__tests__/subpath-exports.test.js +0 -64
  227. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  228. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  229. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  230. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  231. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  232. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  233. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  234. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -1
  235. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -1
  236. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -8
  237. package/dist/contracts/tm-bundle-merkle/config.js +0 -2
  238. package/dist/contracts/tm-bundle-merkle/core.d.ts +0 -1
  239. package/dist/contracts/tm-bundle-merkle/core.js +0 -1
  240. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  241. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  242. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -4
  243. package/dist/contracts/tm-bundle-merkle/internal.js +0 -4
  244. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +0 -1
  245. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +0 -1
  246. package/dist/contracts/tm-bundle-merkle/private.d.ts +0 -1
  247. package/dist/contracts/tm-bundle-merkle/private.js +0 -1
  248. package/dist/contracts/tm-bundle-merkle/submit.d.ts +0 -3
  249. package/dist/contracts/tm-bundle-merkle/submit.js +0 -3
  250. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +0 -4
  251. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +0 -4
  252. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +0 -1
  253. package/dist/contracts/tm-bundle-merkle/swap-internal.js +0 -1
  254. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -4
  255. package/dist/contracts/tm-bundle-merkle/swap.js +0 -4
  256. package/dist/contracts/tm-bundle-merkle/types.d.ts +0 -1
  257. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  258. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  259. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  260. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  261. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  262. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  263. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -8
  264. package/dist/contracts/tm-bundle-merkle/utils.js +0 -8
  265. package/dist/flap/index.js +0 -9
  266. package/dist/merkle/index.js +0 -11
  267. package/dist/shared/abis/TaxToken.json +0 -105
  268. package/dist/shared/abis/TokenManager.json +0 -836
  269. package/dist/shared/abis/TokenManager2.json +0 -60
  270. package/dist/shared/abis/TokenManagerHelper3.json +0 -993
  271. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  272. package/dist/shared/flap/graduated-dex.js +0 -1
  273. package/dist/shared/flap/launch-v6.d.ts +0 -127
  274. package/dist/shared/flap/launch-v6.js +0 -123
  275. package/dist/shared/four/index.d.ts +0 -7
  276. package/dist/shared/four/index.js +0 -22
  277. package/dist/shared/index.d.ts +0 -16
  278. package/dist/shared/index.js +0 -14
  279. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  280. package/dist/utils/pcs-infinity-cl.js +0 -390
  281. package/dist/utils/types/erc20.js +0 -1
  282. package/dist/utils/types/holders-maker.js +0 -1
  283. package/dist/utils/types/lp-inspect.js +0 -1
  284. package/dist/utils/types/private-sale.d.ts +0 -1
  285. package/dist/utils/types/private-sale.js +0 -1
  286. package/dist/utils/types/quote-helpers.js +0 -1
  287. package/dist/vanity/index.d.ts +0 -5
  288. package/dist/vanity/index.js +0 -5
  289. /package/dist/{bundle-core → bundle}/errors.d.ts +0 -0
  290. /package/dist/{bundle-core → bundle}/errors.js +0 -0
  291. /package/dist/{bundle-core → bundle}/four-meme/approve-tokenmanager.d.ts +0 -0
  292. /package/dist/{bundle-core → bundle}/four-meme/core.d.ts +0 -0
  293. /package/dist/{bundle-core → bundle}/four-meme/pancake-proxy.d.ts +0 -0
  294. /package/dist/{bundle-core → bundle}/four-meme/private.d.ts +0 -0
  295. /package/dist/{bundle-core → bundle}/four-meme/swap-buy-first.d.ts +0 -0
  296. /package/dist/{bundle-core → bundle}/four-meme/swap-hop-helpers.d.ts +0 -0
  297. /package/dist/{bundle-core → bundle}/four-meme/swap-hop-helpers.js +0 -0
  298. /package/dist/{bundle-core → bundle}/four-meme/swap-internal.d.ts +0 -0
  299. /package/dist/{bundle-core → bundle}/four-meme/swap-sign-helpers.d.ts +0 -0
  300. /package/dist/{bundle-core → bundle}/four-meme/swap.d.ts +0 -0
  301. /package/dist/{bundle-core → bundle}/four-meme/swap.js +0 -0
  302. /package/dist/{bundle-core → bundle}/four-meme/types/buy-first.d.ts +0 -0
  303. /package/dist/{bundle-core → bundle}/four-meme/types/buy-first.js +0 -0
  304. /package/dist/{bundle-core → bundle}/four-meme/types/core-flow.d.ts +0 -0
  305. /package/dist/{bundle-core → bundle}/four-meme/types/core-flow.js +0 -0
  306. /package/dist/{bundle-core → bundle}/four-meme/types/index.js +0 -0
  307. /package/dist/{bundle-core → bundle}/four-meme/types/swap-internal.d.ts +0 -0
  308. /package/dist/{bundle-core → bundle}/four-meme/types/swap-internal.js +0 -0
  309. /package/dist/{bundle-core → bundle}/four-meme/types.d.ts +0 -0
  310. /package/dist/{bundle-core → bundle}/four-meme/types.js +0 -0
  311. /package/dist/{bundle-core → bundle}/four-meme/utils-disperse.d.ts +0 -0
  312. /package/dist/{bundle-core → bundle}/four-meme/utils-pairwise.d.ts +0 -0
  313. /package/dist/{bundle-core → bundle}/four-meme/utils-sweep.d.ts +0 -0
  314. /package/dist/{bundle-core → bundle}/index.d.ts +0 -0
  315. /package/dist/{bundle-core → bundle}/index.js +0 -0
  316. /package/dist/{bundle-core → bundle}/sign-context-helpers.d.ts +0 -0
  317. /package/dist/{bundle-core → bundle}/submit.d.ts +0 -0
  318. /package/dist/{bundle-core → bundle}/types/index.d.ts +0 -0
  319. /package/dist/{bundle-core → bundle}/types/index.js +0 -0
  320. /package/dist/{bundle-core → bundle}/types.d.ts +0 -0
  321. /package/dist/{bundle-core → bundle}/types.js +0 -0
  322. /package/dist/{shared/foundation → core}/amount/split-by-weight.d.ts +0 -0
  323. /package/dist/{shared/foundation → core}/amount/split-by-weight.js +0 -0
  324. /package/dist/{shared → core}/clients/blockrazor.d.ts +0 -0
  325. /package/dist/{shared → core}/clients/club48.d.ts +0 -0
  326. /package/dist/{shared → core}/clients/club48.js +0 -0
  327. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  328. /package/dist/{shared → core}/clients/emitservice.js +0 -0
  329. /package/dist/{shared → core}/clients/four.d.ts +0 -0
  330. /package/dist/{shared → core}/clients/index.d.ts +0 -0
  331. /package/dist/{shared → core}/clients/index.js +0 -0
  332. /package/dist/{shared → core}/clients/merkle.d.ts +0 -0
  333. /package/dist/{shared → core}/constants/addresses.d.ts +0 -0
  334. /package/dist/{shared → core}/constants/addresses.js +0 -0
  335. /package/dist/{shared → core}/constants/chains.d.ts +0 -0
  336. /package/dist/{shared → core}/constants/chains.js +0 -0
  337. /package/dist/{shared → core}/constants/gas.d.ts +0 -0
  338. /package/dist/{shared → core}/constants/gas.js +0 -0
  339. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  340. /package/dist/{shared → core}/constants/profit.js +0 -0
  341. /package/dist/{shared → core}/constants/quote.d.ts +0 -0
  342. /package/dist/{shared → core}/constants/quote.js +0 -0
  343. /package/dist/{shared/foundation → core}/dex/v3-path.d.ts +0 -0
  344. /package/dist/{shared/foundation → core}/erc20/decimals.d.ts +0 -0
  345. /package/dist/{shared/foundation → core}/erc20/decimals.js +0 -0
  346. /package/dist/{shared/foundation/index.d.ts → core/foundation.d.ts} +0 -0
  347. /package/dist/{shared/foundation/index.js → core/foundation.js} +0 -0
  348. /package/dist/{shared/foundation → core}/gas/bundle-gas.d.ts +0 -0
  349. /package/dist/{shared/foundation → core}/gas/bundle-gas.js +0 -0
  350. /package/dist/{shared/foundation → core}/gas/profit-hop.d.ts +0 -0
  351. /package/dist/{types → core/legacy-types}/errors.d.ts +0 -0
  352. /package/dist/{types → core/legacy-types}/errors.js +0 -0
  353. /package/dist/{shared/foundation → core}/nonce/nonce-manager.d.ts +0 -0
  354. /package/dist/{shared/foundation → core}/normalize-unknown.d.ts +0 -0
  355. /package/dist/{shared/foundation → core}/normalize-unknown.js +0 -0
  356. /package/dist/{shared/foundation → core}/sdk-logger.d.ts +0 -0
  357. /package/dist/{shared/foundation → core}/sdk-logger.js +0 -0
  358. /package/dist/{shared/abis → core/shared-abis}/common.d.ts +0 -0
  359. /package/dist/{shared/abis → core/shared-abis}/common.js +0 -0
  360. /package/dist/{shared/abis → core/shared-abis}/index.d.ts +0 -0
  361. /package/dist/{shared/abis → core/shared-abis}/index.js +0 -0
  362. /package/dist/{shared/foundation → core}/tx/build-request.d.ts +0 -0
  363. /package/dist/{shared/foundation → core}/tx/build-request.js +0 -0
  364. /package/dist/{shared/foundation → core}/tx/sign-batch.d.ts +0 -0
  365. /package/dist/{shared/foundation → core}/tx/sign-batch.js +0 -0
  366. /package/dist/{shared/foundation → core}/tx/wallet-sign-patch.d.ts +0 -0
  367. /package/dist/{shared/foundation → core}/tx/wallet-sign-patch.js +0 -0
  368. /package/dist/{shared/foundation → core}/types/airdrop-sweep.js +0 -0
  369. /package/dist/{shared/foundation → core}/types/erc20.d.ts +0 -0
  370. /package/dist/{shared/foundation → core}/types/erc20.js +0 -0
  371. /package/dist/{shared/foundation → core}/types/holders-maker.js +0 -0
  372. /package/dist/{shared/foundation → core}/types/index.d.ts +0 -0
  373. /package/dist/{shared/foundation → core}/types/index.js +0 -0
  374. /package/dist/{shared/foundation → core}/types/lp-inspect.js +0 -0
  375. /package/dist/{shared/foundation → core}/types/multicall.d.ts +0 -0
  376. /package/dist/{shared/foundation → core}/types/multicall.js +0 -0
  377. /package/dist/{shared/foundation → core}/types/private-sale.js +0 -0
  378. /package/dist/{shared/foundation → core}/types/quote-helpers.d.ts +0 -0
  379. /package/dist/{shared/foundation → core}/types/quote-helpers.js +0 -0
  380. /package/dist/{__tests__/subpath-exports.test.d.ts → core/types-erc20.js} +0 -0
  381. /package/dist/{shared/foundation → core}/wallet/generate.d.ts +0 -0
  382. /package/dist/{shared/foundation → core}/wallet/generate.js +0 -0
  383. /package/dist/{dex → domains/dex}/direct-router.d.ts +0 -0
  384. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  385. /package/dist/{dex → domains/dex}/index.js +0 -0
  386. /package/dist/{contracts/tm-bundle-merkle → domains/dex}/types.js +0 -0
  387. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  388. /package/dist/{shared → domains}/flap/abi.js +0 -0
  389. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  390. /package/dist/{shared → domains}/flap/curve.js +0 -0
  391. /package/dist/{shared → domains}/flap/errors.d.ts +0 -0
  392. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  393. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  394. /package/dist/{shared → domains}/flap/meta.d.ts +0 -0
  395. /package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +0 -0
  396. /package/dist/{shared/flap/index.js → domains/flap/module.js} +0 -0
  397. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  398. /package/dist/{shared → domains}/flap/pinata.d.ts +0 -0
  399. /package/dist/{shared → domains}/flap/pinata.js +0 -0
  400. /package/dist/{shared → domains}/flap/portal-bundle-merkle/core-helpers.d.ts +0 -0
  401. /package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -0
  402. /package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  403. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  404. /package/dist/{shared → domains}/flap/portal-bundle-merkle/index.d.ts +0 -0
  405. /package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +0 -0
  406. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  407. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  408. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-batch.d.ts +0 -0
  409. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -0
  410. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  411. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-cross.d.ts +0 -0
  412. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -0
  413. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-planning.d.ts +0 -0
  414. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-quick-batch.d.ts +0 -0
  415. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-single.d.ts +0 -0
  416. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-types.d.ts +0 -0
  417. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-types.js +0 -0
  418. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap.d.ts +0 -0
  419. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap.js +0 -0
  420. /package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +0 -0
  421. /package/dist/{dex → domains/flap/portal-bundle-merkle}/types.js +0 -0
  422. /package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.d.ts +0 -0
  423. /package/dist/{shared → domains}/flap/portal-create-token.d.ts +0 -0
  424. /package/dist/{shared → domains}/flap/portal.d.ts +0 -0
  425. /package/dist/{shared → domains}/flap/portal.js +0 -0
  426. /package/dist/{shared → domains}/flap/vanity.d.ts +0 -0
  427. /package/dist/{shared → domains}/flap/vanity.js +0 -0
  428. /package/dist/{shared → domains}/flap/vault.d.ts +0 -0
  429. /package/dist/{flows → domains/flows}/create.d.ts +0 -0
  430. /package/dist/{flows → domains/flows}/index.d.ts +0 -0
  431. /package/dist/{flows → domains/flows}/index.js +0 -0
  432. /package/dist/{contracts → domains/four/contracts}/helper3.d.ts +0 -0
  433. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  434. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
  435. /package/dist/{shared → domains}/four/tax-token.d.ts +0 -0
  436. /package/dist/{utils/holders-maker → domains/holders/internal}/addresses.d.ts +0 -0
  437. /package/dist/{utils/holders-maker → domains/holders/internal}/constants.d.ts +0 -0
  438. /package/dist/{utils/holders-maker → domains/holders/internal}/transfer-tx.d.ts +0 -0
  439. /package/dist/{shared/flap/portal-bundle-merkle → domains/holders}/types.js +0 -0
  440. /package/dist/{bundle-core/__tests__/config-helpers.test.d.ts → domains/lp-inspect/types.js} +0 -0
  441. /package/dist/{bundle-core/__tests__/facade-parity.test.d.ts → domains/private-sale/types.js} +0 -0
  442. /package/dist/{bundle-core/__tests__/sign-context-helpers.test.d.ts → domains/quote/types.js} +0 -0
@@ -1,28 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { calculateBatchProfit, calculateProfit, getGasPriceMultiplier, getProfitRateBps, getTxType, } from '../config-helpers.js';
3
- describe('bundle-core/config-helpers', () => {
4
- it('getTxType defaults to legacy type-0', () => {
5
- expect(getTxType({})).toBe(0);
6
- expect(getTxType({ txType: 2 })).toBe(2);
7
- });
8
- it('getGasPriceMultiplier defaults to 50%', () => {
9
- expect(getGasPriceMultiplier({})).toBe(50);
10
- expect(getGasPriceMultiplier({ gasPriceMultiplierPercent: 120 })).toBe(120);
11
- });
12
- it('getProfitRateBps uses shared normal rate (40 bps)', () => {
13
- expect(getProfitRateBps()).toBe(40);
14
- });
15
- it('calculateProfit splits amount by bps', () => {
16
- const amount = 10000n;
17
- const { profit, remaining } = calculateProfit(amount);
18
- expect(profit).toBe(40n);
19
- expect(remaining).toBe(9960n);
20
- expect(profit + remaining).toBe(amount);
21
- });
22
- it('calculateBatchProfit aggregates per-item profit', () => {
23
- const amounts = [10000n, 20000n];
24
- const { totalProfit, remainingAmounts } = calculateBatchProfit(amounts);
25
- expect(totalProfit).toBe(120n);
26
- expect(remainingAmounts).toEqual([9960n, 19920n]);
27
- });
28
- });
@@ -1,33 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import * as bundleCoreConfig from '../config-helpers.js';
3
- import * as bundleCoreErrors from '../errors.js';
4
- import * as bscFourConfig from '../../chains/bsc/four/config.js';
5
- import * as tmMerkleConfig from '../../contracts/tm-bundle-merkle/config.js';
6
- const sharedHelpers = [
7
- 'getTxType',
8
- 'getGasPriceMultiplier',
9
- 'getBundleOptions',
10
- 'getGasPriceConfig',
11
- 'shouldExtractProfit',
12
- 'getProfitRateBps',
13
- 'getProfitRecipient',
14
- 'calculateProfit',
15
- 'calculateBatchProfit',
16
- 'getBribeAmount',
17
- ];
18
- describe('bundle-core facade parity', () => {
19
- it('bsc/four/config re-exports same config-helpers implementations', () => {
20
- for (const name of sharedHelpers) {
21
- expect(bscFourConfig[name]).toBe(bundleCoreConfig[name]);
22
- }
23
- });
24
- it('tm-bundle-merkle/config re-exports same config-helpers implementations', () => {
25
- for (const name of sharedHelpers) {
26
- expect(tmMerkleConfig[name]).toBe(bundleCoreConfig[name]);
27
- }
28
- });
29
- it('bsc/four and tm-bundle-merkle share bundle-core error helpers', () => {
30
- expect(bscFourConfig.getErrorMessage).toBe(bundleCoreErrors.getBundleErrorMessage);
31
- expect(tmMerkleConfig.getErrorMessage).toBe(bundleCoreErrors.getBundleErrorMessage);
32
- });
33
- });
@@ -1,60 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { ethers } from 'ethers';
3
- import { SIGN_FIXTURE_CHAIN_ID, SIGN_FIXTURE_RPC } from './sign-fixtures.js';
4
- import { countSellerNonceSlots, getFourSwapProfitRateBps, planSellerNonces, toCommonBundleConfig, } from '../four-meme/swap-sign-helpers.js';
5
- import { generateDisperseHopPaths } from '../four-meme/swap-hop-helpers.js';
6
- import { normalizeItemsOrRecipientsAmounts, resolveHopCountInput, resolveProvidedHops, } from '../sign-context-helpers.js';
7
- import { normalizeAmounts } from '../internal.js';
8
- describe('swap-sign-helpers', () => {
9
- it('toCommonBundleConfig coerces bigint gasLimit', () => {
10
- const cfg = toCommonBundleConfig({
11
- rpcUrl: 'http://127.0.0.1:8545',
12
- gasLimit: 500000n,
13
- minGasPriceGwei: 3,
14
- chainId: 56,
15
- });
16
- expect(cfg.gasLimit).toBe(500000);
17
- expect(cfg.chainId).toBe(56);
18
- });
19
- it('countSellerNonceSlots counts optional slots', () => {
20
- expect(countSellerNonceSlots(false, false, false)).toBe(1);
21
- expect(countSellerNonceSlots(true, true, true)).toBe(4);
22
- });
23
- it('planSellerNonces assigns sequential seller slots', () => {
24
- const plan = planSellerNonces([10, 11, 12, 13], true, true, true);
25
- expect(plan).toEqual({
26
- bribeNonce: 10,
27
- approvalNonce: 11,
28
- sellerNonce: 12,
29
- profitNonce: 13,
30
- });
31
- });
32
- it('getFourSwapProfitRateBps respects userType', () => {
33
- expect(getFourSwapProfitRateBps('v0')).toBeGreaterThan(0);
34
- expect(getFourSwapProfitRateBps('v1')).toBeGreaterThan(0);
35
- });
36
- });
37
- describe('swap-hop-helpers', () => {
38
- it('generateDisperseHopPaths returns empty hops when hopCount=0', () => {
39
- const provider = new ethers.JsonRpcProvider(SIGN_FIXTURE_RPC, SIGN_FIXTURE_CHAIN_ID);
40
- const paths = generateDisperseHopPaths(['0xabc'], 0, provider);
41
- expect(paths[0]?.hopWallets).toEqual([]);
42
- });
43
- });
44
- describe('sign-context-helpers', () => {
45
- it('resolveProvidedHops returns null when all hop chains empty', () => {
46
- expect(resolveProvidedHops(2, [[], []])).toBeNull();
47
- expect(resolveProvidedHops(2, undefined, [{ hopPrivateKeys: [] }, { hopPrivateKeys: [] }])).toBeNull();
48
- });
49
- it('resolveProvidedHops returns hops when any chain non-empty', () => {
50
- const hops = resolveProvidedHops(2, [['0xabc'], []]);
51
- expect(hops).toEqual([['0xabc'], []]);
52
- });
53
- it('resolveHopCountInput merges per-item hopCount', () => {
54
- expect(resolveHopCountInput(2, 1, [{ hopCount: 3 }, {}])).toEqual([3, 1]);
55
- });
56
- it('normalizeItemsOrRecipientsAmounts prefers items', () => {
57
- const out = normalizeItemsOrRecipientsAmounts(['0xa', '0xb'], [{ amount: 100n }, { amount: '200' }], '999', undefined, normalizeAmounts);
58
- expect(out).toEqual(['100', '200']);
59
- });
60
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,220 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { afterEach, describe, expect, it, vi } from 'vitest';
3
- import { FourClient } from '../../shared/clients/four.js';
4
- import { disperseWithBundleMerkle } from '../four-meme/utils-disperse.js';
5
- import { sweepWithBundleMerkle } from '../four-meme/utils-sweep.js';
6
- import { pairwiseTransferWithBundleMerkle } from '../four-meme/utils-pairwise.js';
7
- import { fourBundleSwapMerkle } from '../four-meme/swap.js';
8
- import { createTokenWithBundleBuyMerkle } from '../four-meme/core.js';
9
- import { disperseWithBundleMerkle as facadeDisperse } from '../../chains/bsc/four/utils-disperse.js';
10
- import { sweepWithBundleMerkle as facadeSweep } from '../../chains/bsc/four/utils-sweep.js';
11
- import * as bundleInternal from '../internal.js';
12
- import * as swapHelpers from '../../utils/swap-helpers.js';
13
- import { TM_ADDRESS } from '../four-meme/swap-internal.js';
14
- import { SIGN_FIXTURE_CHAIN_ID, SIGN_FIXTURE_PRIVATE_KEY, SIGN_FIXTURE_RECIPIENT, SIGN_FIXTURE_RPC, mockJsonRpcFeeData, parseSignedTx, } from './sign-fixtures.js';
15
- const MNEMONIC = 'test test test test test test test test test test test junk';
16
- describe('bundle-core sign-only fixtures', () => {
17
- afterEach(() => {
18
- vi.restoreAllMocks();
19
- });
20
- it('bsc/four utils re-export bundle-core implementations', () => {
21
- expect(facadeDisperse).toBe(disperseWithBundleMerkle);
22
- expect(facadeSweep).toBe(sweepWithBundleMerkle);
23
- });
24
- it('disperseWithBundleMerkle returns empty when no recipients', async () => {
25
- const result = await disperseWithBundleMerkle({
26
- fromPrivateKey: SIGN_FIXTURE_PRIVATE_KEY,
27
- recipients: [],
28
- amount: '0.01',
29
- config: { rpcUrl: SIGN_FIXTURE_RPC, chainId: SIGN_FIXTURE_CHAIN_ID },
30
- });
31
- expect(result.signedTransactions).toEqual([]);
32
- });
33
- it('disperseWithBundleMerkle signs native BNB transfer + profit hop (offline)', async () => {
34
- mockJsonRpcFeeData('5');
35
- const startNonce = 12;
36
- const result = await disperseWithBundleMerkle({
37
- fromPrivateKey: SIGN_FIXTURE_PRIVATE_KEY,
38
- recipients: [SIGN_FIXTURE_RECIPIENT],
39
- amount: '0.01',
40
- config: {
41
- rpcUrl: SIGN_FIXTURE_RPC,
42
- chainId: SIGN_FIXTURE_CHAIN_ID,
43
- minGasPriceGwei: 5,
44
- bribeAmount: 0,
45
- prefer21000ForNative: true,
46
- },
47
- startNonce,
48
- });
49
- expect(result.signedTransactions.length).toBe(4);
50
- const transferTx = parseSignedTx(result.signedTransactions[0]);
51
- expect(transferTx.chainId).toBe(BigInt(SIGN_FIXTURE_CHAIN_ID));
52
- expect(transferTx.type).toBe(0);
53
- expect(transferTx.nonce).toBe(startNonce);
54
- expect(transferTx.to?.toLowerCase()).toBe(SIGN_FIXTURE_RECIPIENT.toLowerCase());
55
- expect(transferTx.value).toBe(ethers.parseEther('0.01'));
56
- for (const signed of result.signedTransactions) {
57
- expect(signed.startsWith('0x')).toBe(true);
58
- expect(parseSignedTx(signed).chainId).toBe(BigInt(SIGN_FIXTURE_CHAIN_ID));
59
- }
60
- expect(result.profitHopWallets?.length).toBe(2);
61
- expect(result.metadata?.recipientCount).toBe(1);
62
- expect(result.metadata?.isNative).toBe(true);
63
- });
64
- it('sweepWithBundleMerkle signs native sweep with target paying profit (offline)', async () => {
65
- mockJsonRpcFeeData('5');
66
- vi.spyOn(bundleInternal, 'batchGetBalances').mockResolvedValue([ethers.parseEther('1')]);
67
- vi.spyOn(ethers.JsonRpcProvider.prototype, 'getTransactionCount').mockResolvedValue(3);
68
- const source = ethers.HDNodeWallet.fromPhrase(MNEMONIC, undefined, "m/44'/60'/0'/0/1");
69
- const target = ethers.HDNodeWallet.fromPhrase(MNEMONIC, undefined, "m/44'/60'/0'/0/2");
70
- const result = await sweepWithBundleMerkle({
71
- sourcePrivateKeys: [source.privateKey],
72
- target: target.address,
73
- targetPrivateKey: target.privateKey,
74
- amount: '0.05',
75
- config: {
76
- rpcUrl: SIGN_FIXTURE_RPC,
77
- chainId: SIGN_FIXTURE_CHAIN_ID,
78
- minGasPriceGwei: 5,
79
- bribeAmount: 0,
80
- prefer21000ForNative: true,
81
- },
82
- });
83
- expect(result.signedTransactions.length).toBeGreaterThanOrEqual(2);
84
- const sweepTx = result.signedTransactions.find((raw) => {
85
- const tx = parseSignedTx(raw);
86
- return tx.to?.toLowerCase() === target.address.toLowerCase() && tx.value === ethers.parseEther('0.05');
87
- });
88
- expect(sweepTx).toBeDefined();
89
- expect(result.metadata?.isNative).toBe(true);
90
- });
91
- it('pairwiseTransferWithBundleMerkle signs native pairwise transfer (offline)', async () => {
92
- mockJsonRpcFeeData('5');
93
- const sender = ethers.HDNodeWallet.fromPhrase(MNEMONIC, undefined, "m/44'/60'/0'/0/3");
94
- const receiver = ethers.HDNodeWallet.fromPhrase(MNEMONIC, undefined, "m/44'/60'/0'/0/4");
95
- const result = await pairwiseTransferWithBundleMerkle({
96
- senderPrivateKeys: [sender.privateKey],
97
- receiverAddresses: [receiver.address],
98
- amount: '0.02',
99
- config: {
100
- rpcUrl: SIGN_FIXTURE_RPC,
101
- chainId: SIGN_FIXTURE_CHAIN_ID,
102
- minGasPriceGwei: 5,
103
- bribeAmount: 0,
104
- prefer21000ForNative: true,
105
- },
106
- startNonce: 7,
107
- });
108
- expect(result.signedTransactions.length).toBeGreaterThanOrEqual(1);
109
- const transferTx = result.signedTransactions.find((raw) => {
110
- const tx = parseSignedTx(raw);
111
- return tx.to?.toLowerCase() === receiver.address.toLowerCase() && tx.value === ethers.parseEther('0.02');
112
- });
113
- expect(transferTx).toBeDefined();
114
- expect(result.metadata?.pairCount).toBe(1);
115
- expect(result.metadata?.isNative).toBe(true);
116
- });
117
- it('fourBundleSwapMerkle signs sell+buy bundle (offline)', async () => {
118
- mockJsonRpcFeeData('5');
119
- vi.spyOn(swapHelpers, 'calculateSellAmount').mockResolvedValue({
120
- amount: ethers.parseUnits('1000', 18),
121
- decimals: 18,
122
- });
123
- const sellQuoteFunds = ethers.parseEther('0.5');
124
- vi.spyOn(ethers.JsonRpcProvider.prototype, 'getBalance').mockResolvedValue(ethers.parseEther('10'));
125
- vi.spyOn(ethers.Contract.prototype, 'getFunction').mockImplementation(((name) => {
126
- if (name === 'trySell') {
127
- return async () => ({ funds: sellQuoteFunds });
128
- }
129
- if (name === 'allowance') {
130
- return async () => ethers.MaxUint256;
131
- }
132
- if (name === 'sellToken') {
133
- return {
134
- populateTransaction: async () => ({
135
- to: TM_ADDRESS,
136
- data: '0xdeadbeef',
137
- }),
138
- };
139
- }
140
- if (name === 'buyTokenAMAP') {
141
- return {
142
- populateTransaction: async () => ({
143
- to: TM_ADDRESS,
144
- data: '0xcafebabe',
145
- }),
146
- };
147
- }
148
- return async () => {
149
- throw new Error(`unexpected getFunction ${name}`);
150
- };
151
- }));
152
- const seller = ethers.HDNodeWallet.fromPhrase(MNEMONIC, undefined, "m/44'/60'/0'/0/5");
153
- const buyer = ethers.HDNodeWallet.fromPhrase(MNEMONIC, undefined, "m/44'/60'/0'/0/6");
154
- const tokenAddress = '0x1111111111111111111111111111111111111111';
155
- const result = await fourBundleSwapMerkle({
156
- sellerPrivateKey: seller.privateKey,
157
- buyerPrivateKey: buyer.privateKey,
158
- sellAmount: '1000',
159
- tokenAddress,
160
- config: {
161
- rpcUrl: SIGN_FIXTURE_RPC,
162
- chainId: SIGN_FIXTURE_CHAIN_ID,
163
- minGasPriceGwei: 5,
164
- bribeAmount: 0,
165
- },
166
- startNonces: [3, 1],
167
- });
168
- expect(result.signedTransactions.length).toBeGreaterThanOrEqual(2);
169
- for (const signed of result.signedTransactions) {
170
- expect(parseSignedTx(signed).chainId).toBe(BigInt(SIGN_FIXTURE_CHAIN_ID));
171
- }
172
- expect(result.metadata?.sellerAddress.toLowerCase()).toBe(seller.address.toLowerCase());
173
- expect(result.metadata?.buyerAddress.toLowerCase()).toBe(buyer.address.toLowerCase());
174
- });
175
- it('createTokenWithBundleBuyMerkle signs create bundle with mocked Four API (offline)', async () => {
176
- mockJsonRpcFeeData('5');
177
- vi.spyOn(ethers.JsonRpcProvider.prototype, 'getTransactionCount').mockResolvedValue(7);
178
- vi.spyOn(FourClient.prototype, 'generateNonce').mockResolvedValue('fixture-nonce');
179
- vi.spyOn(FourClient.prototype, 'loginDex').mockResolvedValue('fixture-token');
180
- vi.spyOn(FourClient.prototype, 'createToken').mockResolvedValue({
181
- createArg: '0xabcd',
182
- signature: '0x1234',
183
- });
184
- const originalGetFunction = ethers.Contract.prototype.getFunction;
185
- vi.spyOn(ethers.Contract.prototype, 'getFunction').mockImplementation(function (key) {
186
- const name = typeof key === 'string' ? key : key.name;
187
- if (name === 'createToken') {
188
- return Object.assign(async () => ({}), {
189
- populateTransaction: async () => ({
190
- to: '0x5c952063c7fc8610FFDB798152D69F0B9550762b',
191
- data: '0xdeadbeef',
192
- }),
193
- });
194
- }
195
- return originalGetFunction.call(this, key);
196
- });
197
- const result = await createTokenWithBundleBuyMerkle({
198
- privateKeys: [SIGN_FIXTURE_PRIVATE_KEY],
199
- buyAmounts: ['0.01'],
200
- tokenInfo: {
201
- name: 'Fixture',
202
- symbol: 'FIX',
203
- description: 'fixture',
204
- imageUrl: 'https://example.com/fix.png',
205
- preSale: '0.01',
206
- },
207
- config: {
208
- rpcUrl: SIGN_FIXTURE_RPC,
209
- chainId: SIGN_FIXTURE_CHAIN_ID,
210
- minGasPriceGwei: 5,
211
- bribeAmount: 0,
212
- },
213
- });
214
- expect(result.signedTransactions.length).toBeGreaterThanOrEqual(1);
215
- for (const signed of result.signedTransactions) {
216
- expect(parseSignedTx(signed).chainId).toBe(BigInt(SIGN_FIXTURE_CHAIN_ID));
217
- }
218
- expect(result.tokenAddress).toBe('0x0000000000000000000000000000000000000000');
219
- });
220
- });
@@ -1,10 +0,0 @@
1
- import { ethers } from 'ethers';
2
- /** Hardhat / Anvil mnemonic #0 — 仅用于离线 sign fixture */
3
- export declare const SIGN_FIXTURE_WALLET: ethers.HDNodeWallet;
4
- export declare const SIGN_FIXTURE_PRIVATE_KEY: string;
5
- /** Hardhat / Anvil mnemonic #1 */
6
- export declare const SIGN_FIXTURE_RECIPIENT = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8";
7
- export declare const SIGN_FIXTURE_RPC = "http://127.0.0.1:8545";
8
- export declare const SIGN_FIXTURE_CHAIN_ID = 56;
9
- export declare function mockJsonRpcFeeData(gasPriceGwei?: string): any;
10
- export declare function parseSignedTx(signed: string): ethers.Transaction;
@@ -1,16 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { vi } from 'vitest';
3
- /** Hardhat / Anvil mnemonic #0 — 仅用于离线 sign fixture */
4
- export const SIGN_FIXTURE_WALLET = ethers.Wallet.fromPhrase('test test test test test test test test test test test junk');
5
- export const SIGN_FIXTURE_PRIVATE_KEY = SIGN_FIXTURE_WALLET.privateKey;
6
- /** Hardhat / Anvil mnemonic #1 */
7
- export const SIGN_FIXTURE_RECIPIENT = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8';
8
- export const SIGN_FIXTURE_RPC = 'http://127.0.0.1:8545';
9
- export const SIGN_FIXTURE_CHAIN_ID = 56;
10
- export function mockJsonRpcFeeData(gasPriceGwei = '3') {
11
- const feeData = new ethers.FeeData(ethers.parseUnits(gasPriceGwei, 'gwei'), null, null);
12
- return vi.spyOn(ethers.JsonRpcProvider.prototype, 'getFeeData').mockResolvedValue(feeData);
13
- }
14
- export function parseSignedTx(signed) {
15
- return ethers.Transaction.from(signed);
16
- }
@@ -1 +0,0 @@
1
- export { approveFourTokenManagerBatch, type ApproveFourTokenManagerBatchParams, type ApproveFourTokenManagerBatchResult, } from '../../bundle-core/four-meme/approve-tokenmanager.js';
@@ -1 +0,0 @@
1
- export { approveFourTokenManagerBatch, } from '../../bundle-core/four-meme/approve-tokenmanager.js';
@@ -1,8 +0,0 @@
1
- /**
2
- * TM-Merkle bundle 配置 helper(实现见 bundle-core/)
3
- */
4
- import type { FourBundleMerkleConfig, FourSignConfig } from './types.js';
5
- export type { FourBundleMerkleConfig, FourSignConfig };
6
- export type FourAnyConfig = FourBundleMerkleConfig | FourSignConfig;
7
- export { BUNDLE_ERRORS as ERRORS, getBundleErrorMessage as getErrorMessage } from '../../bundle-core/errors.js';
8
- export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from '../../bundle-core/config-helpers.js';
@@ -1,2 +0,0 @@
1
- export { BUNDLE_ERRORS as ERRORS, getBundleErrorMessage as getErrorMessage } from '../../bundle-core/errors.js';
2
- export { getTxType, getGasPriceMultiplier, getBundleOptions, getGasPriceConfig, shouldExtractProfit, getProfitRateBps, getProfitRecipient, calculateProfit, calculateBatchProfit, getBribeAmount, } from '../../bundle-core/config-helpers.js';
@@ -1 +0,0 @@
1
- export { createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle, } from '../../bundle-core/four-meme/core.js';
@@ -1 +0,0 @@
1
- export { createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle, } from '../../bundle-core/four-meme/core.js';
@@ -1,15 +0,0 @@
1
- /**
2
- * four.meme Bundle 交易方法(Merkle 版本)
3
- * 使用 Merkle.io Bundle 服务实现原子化交易
4
- */
5
- export * from './config.js';
6
- export * from './types.js';
7
- export { createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle } from './core.js';
8
- export { fourPrivateBuyMerkle, fourPrivateSellMerkle, fourBatchPrivateBuyMerkle, fourBatchPrivateSellMerkle, } from './private.js';
9
- export { disperseWithBundleMerkle, sweepWithBundleMerkle, pairwiseTransferWithBundleMerkle } from './utils.js';
10
- export { fourPancakeProxyBatchBuyMerkle, fourPancakeProxyBatchSellMerkle, approveFourPancakeProxy, approveFourPancakeProxyBatch, } from './pancake-proxy.js';
11
- export { approveFourTokenManagerBatch, type ApproveFourTokenManagerBatchParams, type ApproveFourTokenManagerBatchResult, } from './approve-tokenmanager.js';
12
- export { submitBundleToMerkle, submitMultipleBundles, submitMultipleBundlesParallel, type MerkleSubmitConfig, type SubmitBundleResult, submitBundleToBlockRazor, submitMultipleBundlesToBlockRazor, submitMultipleBundlesToBlockRazorParallel, type BlockRazorSubmitConfig, type BlockRazorSubmitResult, submitDirectToRpc, submitDirectToRpcSequential, // ✅ 顺序广播并等待确认(用于多跳)
13
- submitDirectToRpcSequentialNoWait, // ✅ 顺序广播但不等待确认(用于 AA handleOps + tail)
14
- submitDirectToRpcParallel, type DirectSubmitConfig, type DirectSubmitResult, type DirectTxResult, } from './submit.js';
15
- export { fourBundleBuyFirstMerkle, type FourBundleBuyFirstSignParams, type FourBuyFirstSignConfig, type FourBuyFirstResult, } from './swap-buy-first.js';
@@ -1,29 +0,0 @@
1
- /**
2
- * four.meme Bundle 交易方法(Merkle 版本)
3
- * 使用 Merkle.io Bundle 服务实现原子化交易
4
- */
5
- // 配置和类型
6
- export * from './config.js';
7
- export * from './types.js';
8
- // 核心交易方法
9
- export { createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle } from './core.js';
10
- // 私有交易方法
11
- export { fourPrivateBuyMerkle, fourPrivateSellMerkle, fourBatchPrivateBuyMerkle, fourBatchPrivateSellMerkle, } from './private.js';
12
- // 工具方法
13
- export { disperseWithBundleMerkle, sweepWithBundleMerkle, pairwiseTransferWithBundleMerkle } from './utils.js';
14
- // PancakeSwapProxy 代理交易方法
15
- export { fourPancakeProxyBatchBuyMerkle, fourPancakeProxyBatchSellMerkle, approveFourPancakeProxy, approveFourPancakeProxyBatch, } from './pancake-proxy.js';
16
- // TokenManager 授权方法
17
- export { approveFourTokenManagerBatch, } from './approve-tokenmanager.js';
18
- // Bundle提交方法(服务器端使用)
19
- export {
20
- // Merkle 提交方法
21
- submitBundleToMerkle, submitMultipleBundles, submitMultipleBundlesParallel,
22
- // ✅ BlockRazor 提交方法
23
- submitBundleToBlockRazor, submitMultipleBundlesToBlockRazor, submitMultipleBundlesToBlockRazorParallel,
24
- // ✅ Monad 等链的逐笔广播方法
25
- submitDirectToRpc, submitDirectToRpcSequential, // ✅ 顺序广播并等待确认(用于多跳)
26
- submitDirectToRpcSequentialNoWait, // ✅ 顺序广播但不等待确认(用于 AA handleOps + tail)
27
- submitDirectToRpcParallel, } from './submit.js';
28
- // 先买后卖换手方法
29
- export { fourBundleBuyFirstMerkle, } from './swap-buy-first.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * @deprecated 实现已迁移至 bundle-core/internal.ts,此处仅 re-export 保持 import 路径不变。
3
- */
4
- export { getErc20Decimals, getErc20DecimalsMerkle, generateHopWallets, normalizeAmounts, batchGetBalances, estimateErc20TransferGas, estimateMaxErc20TransferGas, calculateGasLimit, isNativeTokenAddress, } from '../../bundle-core/internal.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * @deprecated 实现已迁移至 bundle-core/internal.ts,此处仅 re-export 保持 import 路径不变。
3
- */
4
- export { getErc20Decimals, getErc20DecimalsMerkle, generateHopWallets, normalizeAmounts, batchGetBalances, estimateErc20TransferGas, estimateMaxErc20TransferGas, calculateGasLimit, isNativeTokenAddress, } from '../../bundle-core/internal.js';
@@ -1 +0,0 @@
1
- export { fourPancakeProxyBatchBuyMerkle, fourPancakeProxyBatchSellMerkle, approveFourPancakeProxy, approveFourPancakeProxyBatch, } from '../../bundle-core/four-meme/pancake-proxy.js';
@@ -1 +0,0 @@
1
- export { fourPancakeProxyBatchBuyMerkle, fourPancakeProxyBatchSellMerkle, approveFourPancakeProxy, approveFourPancakeProxyBatch, } from '../../bundle-core/four-meme/pancake-proxy.js';
@@ -1 +0,0 @@
1
- export { fourPrivateBuyMerkle, fourPrivateSellMerkle, fourBatchPrivateBuyMerkle, fourBatchPrivateSellMerkle, } from '../../bundle-core/four-meme/private.js';
@@ -1 +0,0 @@
1
- export { fourPrivateBuyMerkle, fourPrivateSellMerkle, fourBatchPrivateBuyMerkle, fourBatchPrivateSellMerkle, } from '../../bundle-core/four-meme/private.js';
@@ -1,3 +0,0 @@
1
- /** Bundle 提交 — 实现见 bundle-core/submit;ENI 见 chains/eni/submit */
2
- export { submitBundleToMerkle, submitMultipleBundles, submitMultipleBundlesParallel, submitBundleToBlockRazor, submitMultipleBundlesToBlockRazor, submitMultipleBundlesToBlockRazorParallel, submitDirectToRpc, submitDirectToRpcSequential, submitDirectToRpcSequentialNoWait, submitDirectToRpcParallel, submitDirectToRpcSmart, type MerkleSubmitConfig, type SubmitBundleResult, type BlockRazorSubmitConfig, type BlockRazorSubmitResult, type DirectSubmitConfig, type DirectSubmitResult, type DirectTxResult, } from '../../bundle-core/submit.js';
3
- export { submitBundleToEni, submitEniParallelThenProfit, type EniBundleSubmitConfig, type EniBundleSubmitResult, } from '../../chains/eni/submit.js';
@@ -1,3 +0,0 @@
1
- /** Bundle 提交 — 实现见 bundle-core/submit;ENI 见 chains/eni/submit */
2
- export { submitBundleToMerkle, submitMultipleBundles, submitMultipleBundlesParallel, submitBundleToBlockRazor, submitMultipleBundlesToBlockRazor, submitMultipleBundlesToBlockRazorParallel, submitDirectToRpc, submitDirectToRpcSequential, submitDirectToRpcSequentialNoWait, submitDirectToRpcParallel, submitDirectToRpcSmart, } from '../../bundle-core/submit.js';
3
- export { submitBundleToEni, submitEniParallelThenProfit, } from '../../chains/eni/submit.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * TM-Merkle Four.meme 内盘先买后卖 — 实现见 bundle-core/four-meme/
3
- */
4
- export { fourBundleBuyFirstMerkle, type FourBuyFirstSignConfig, type FourBuyFirstConfig, type FourBundleBuyFirstSignParams, type FourBundleBuyFirstParams, type FourBuyFirstResult, } from '../../bundle-core/four-meme/swap-buy-first.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * TM-Merkle Four.meme 内盘先买后卖 — 实现见 bundle-core/four-meme/
3
- */
4
- export { fourBundleBuyFirstMerkle, } from '../../bundle-core/four-meme/swap-buy-first.js';
@@ -1 +0,0 @@
1
- export { TM_ABI, HELPER3_ABI, TM_ADDRESS } from '../../bundle-core/four-meme/swap-internal.js';
@@ -1 +0,0 @@
1
- export { TM_ABI, HELPER3_ABI, TM_ADDRESS } from '../../bundle-core/four-meme/swap-internal.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * TM-Merkle Four.meme 内盘捆绑换手 — 实现见 bundle-core/four-meme/
3
- */
4
- export { fourBundleSwapMerkle, fourBatchSwapMerkle, fourQuickBatchSwapMerkle, type UserType, type FourSwapSignConfig, type FourSwapConfig, type FourBundleSwapSignParams, type FourBundleSwapParams, type FourSwapResult, type FourBatchSwapSignParams, type FourBatchSwapResult, type FourQuickBatchSwapSignParams, type FourQuickBatchSwapResult, } from '../../bundle-core/four-meme/swap.js';
@@ -1,4 +0,0 @@
1
- /**
2
- * TM-Merkle Four.meme 内盘捆绑换手 — 实现见 bundle-core/four-meme/
3
- */
4
- export { fourBundleSwapMerkle, fourBatchSwapMerkle, fourQuickBatchSwapMerkle, } from '../../bundle-core/four-meme/swap.js';
@@ -1 +0,0 @@
1
- export type * from '../../bundle-core/four-meme/types.js';
@@ -1 +0,0 @@
1
- export { disperseWithBundleMerkle } from '../../bundle-core/four-meme/utils-disperse.js';
@@ -1 +0,0 @@
1
- export { disperseWithBundleMerkle } from '../../bundle-core/four-meme/utils-disperse.js';
@@ -1 +0,0 @@
1
- export { pairwiseTransferWithBundleMerkle } from '../../bundle-core/four-meme/utils-pairwise.js';
@@ -1 +0,0 @@
1
- export { pairwiseTransferWithBundleMerkle } from '../../bundle-core/four-meme/utils-pairwise.js';
@@ -1 +0,0 @@
1
- export { sweepWithBundleMerkle } from '../../bundle-core/four-meme/utils-sweep.js';
@@ -1 +0,0 @@
1
- export { sweepWithBundleMerkle } from '../../bundle-core/four-meme/utils-sweep.js';
@@ -1,8 +0,0 @@
1
- /**
2
- * TokenManager Merkle 钱包工具(disperse / sweep / pairwise)
3
- *
4
- * 实现按域拆至 `utils-disperse.ts`、`utils-sweep.ts`、`utils-pairwise.ts`;本文件仅再导出,保持 `from './utils.js'` 与历史路径兼容。
5
- */
6
- export { disperseWithBundleMerkle } from './utils-disperse.js';
7
- export { sweepWithBundleMerkle } from './utils-sweep.js';
8
- export { pairwiseTransferWithBundleMerkle } from './utils-pairwise.js';
@@ -1,8 +0,0 @@
1
- /**
2
- * TokenManager Merkle 钱包工具(disperse / sweep / pairwise)
3
- *
4
- * 实现按域拆至 `utils-disperse.ts`、`utils-sweep.ts`、`utils-pairwise.ts`;本文件仅再导出,保持 `from './utils.js'` 与历史路径兼容。
5
- */
6
- export { disperseWithBundleMerkle } from './utils-disperse.js';
7
- export { sweepWithBundleMerkle } from './utils-sweep.js';
8
- export { pairwiseTransferWithBundleMerkle } from './utils-pairwise.js';
@@ -1,9 +0,0 @@
1
- /**
2
- * Flap Portal Merkle Bundle 子路径入口
3
- *
4
- * memeweb 等消费者请使用 `four-flap-meme-sdk/flap` 或 `four-flap-meme-sdk/shared/flap`(同入口)。
5
- *
6
- * @see README.zh-CN.md
7
- */
8
- export { FlapPortal, FlapPortalWriter, V3LPFeeProfile, lpFeeProfileToV3Fee, FLAP_TOTAL_SUPPLY, } from '../shared/flap/index.js';
9
- export { flapBundleSwapMerkle, flapBatchSwapMerkle, flapQuickBatchSwapMerkle, flapCrossSwapMerkle, flapBundleBuyFirstMerkle, flapDisperseWithBundleMerkle, flapSweepWithBundleMerkle, createTokenWithBundleBuyMerkle, batchBuyWithBundleMerkle, batchSellWithBundleMerkle, flapBundleCreateToDex, } from '../shared/flap/portal-bundle-merkle/index.js';
@@ -1,11 +0,0 @@
1
- /**
2
- * BSC Four.meme Merkle Bundle 横向入口
3
- *
4
- * memeweb 分发 / 换手 / 提交可统一走 `four-flap-meme-sdk/merkle`,避免拉包根。
5
- */
6
- export { disperseWithBundleMerkle } from '../bundle-core/four-meme/utils-disperse.js';
7
- export { sweepWithBundleMerkle } from '../bundle-core/four-meme/utils-sweep.js';
8
- export { pairwiseTransferWithBundleMerkle } from '../bundle-core/four-meme/utils-pairwise.js';
9
- export { fourBundleSwapMerkle, fourBatchSwapMerkle, fourQuickBatchSwapMerkle } from '../bundle-core/four-meme/swap.js';
10
- export { fourBundleBuyFirstMerkle } from '../bundle-core/four-meme/swap-buy-first.js';
11
- export { submitBundleToMerkle, submitBundleToBlockRazor, submitDirectToRpc, submitDirectToRpcSmart, } from '../bundle-core/submit.js';