four-flap-meme-sdk 2.2.20 → 3.0.1

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 (446) 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/index.d.ts +1 -1
  59. package/dist/chains/bsc/index.js +2 -0
  60. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.d.ts +1 -1
  61. package/dist/chains/bsc/pancake/bundle-buy-first-helpers.js +3 -3
  62. package/dist/chains/bsc/pancake/bundle-buy-first.js +4 -4
  63. package/dist/chains/bsc/pancake/bundle-swap-helpers.d.ts +1 -1
  64. package/dist/chains/bsc/pancake/bundle-swap-helpers.js +5 -5
  65. package/dist/chains/bsc/pancake/bundle-swap.js +2 -2
  66. package/dist/chains/bsc/platforms/iro/constants.js +1 -1
  67. package/dist/chains/bsc/platforms/iro/token.js +1 -1
  68. package/dist/chains/eni/batch-router/transfer.js +2 -2
  69. package/dist/chains/eni/constants.js +1 -1
  70. package/dist/chains/eni/index.d.ts +2 -0
  71. package/dist/chains/eni/index.js +4 -0
  72. package/dist/chains/eni/platforms/daoaas/create.js +1 -1
  73. package/dist/chains/eni/platforms/daoaas/portal-direct.js +1 -1
  74. package/dist/chains/eni/platforms/dswap/liquidity.js +1 -1
  75. package/dist/chains/eni/platforms/fair-launch/constants.js +1 -1
  76. package/dist/chains/eni/platforms/fair-launch/launcher.js +1 -1
  77. package/dist/chains/eni/platforms/fair-launch/pool.js +1 -1
  78. package/dist/chains/eni/platforms/iro/constants.d.ts +1 -1
  79. package/dist/chains/eni/platforms/iro/constants.js +2 -2
  80. package/dist/chains/eni/platforms/iro/token.js +1 -1
  81. package/dist/chains/eni/submit.js +2 -2
  82. package/dist/chains/monad/constants.js +1 -1
  83. package/dist/chains/xlayer/constants.js +1 -1
  84. package/dist/chains/xlayer/eip7702/bundle-create.js +1 -1
  85. package/dist/chains/xlayer/eip7702/bundle-sell.js +1 -1
  86. package/dist/chains/xlayer/eip7702/bundle-swap.js +1 -1
  87. package/dist/chains/xlayer/eip7702/constants.d.ts +1 -1
  88. package/dist/chains/xlayer/eip7702/constants.js +2 -2
  89. package/dist/chains/xlayer/eip7702/multi-hop-transfer.js +1 -1
  90. package/dist/chains/xlayer/eip7702/utils.js +1 -1
  91. package/dist/chains/xlayer/eip7702/volume.js +1 -1
  92. package/dist/chains/xlayer/eoa/constants.js +1 -1
  93. package/dist/chains/xlayer/eoa/dex-helpers.d.ts +1 -1
  94. package/dist/chains/xlayer/eoa/dex-helpers.js +2 -2
  95. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.d.ts +1 -1
  96. package/dist/chains/xlayer/eoa/eoa-bundle-swap-helpers.js +3 -3
  97. package/dist/chains/xlayer/eoa/eoa-bundle-swap.js +2 -2
  98. package/dist/chains/xlayer/eoa/eoa-wash-volume.d.ts +1 -1
  99. package/dist/chains/xlayer/eoa/eoa-wash-volume.js +2 -2
  100. package/dist/chains/xlayer/eoa/router-manager.js +1 -1
  101. package/dist/{shared → core}/clients/blockrazor.js +1 -1
  102. package/dist/{shared → core}/clients/four.js +1 -1
  103. package/dist/{shared → core}/clients/merkle.js +1 -1
  104. package/dist/{shared → core}/constants/index.d.ts +2 -2
  105. package/dist/{shared → core}/constants/index.js +1 -1
  106. package/dist/{shared/foundation → core}/dex/v3-path.js +1 -1
  107. package/dist/{utils → core}/erc20.d.ts +2 -2
  108. package/dist/{utils → core}/erc20.js +3 -3
  109. package/dist/{shared/foundation → core}/gas/profit-hop.js +1 -1
  110. package/dist/core/index.d.ts +5 -0
  111. package/dist/core/index.js +5 -0
  112. package/dist/{shared/foundation → core}/nonce/nonce-manager.js +1 -1
  113. package/dist/{shared/foundation → core}/types/airdrop-sweep.d.ts +1 -1
  114. package/dist/{shared/foundation → core}/types/holders-maker.d.ts +1 -1
  115. package/dist/{shared/foundation → core}/types/lp-inspect.d.ts +1 -1
  116. package/dist/{shared/foundation → core}/types/private-sale.d.ts +1 -1
  117. package/dist/{utils/types/erc20.d.ts → core/types-erc20.d.ts} +1 -1
  118. package/dist/{dex → domains/dex}/direct-router-helpers.d.ts +1 -1
  119. package/dist/{dex → domains/dex}/direct-router-helpers.js +4 -4
  120. package/dist/{dex → domains/dex}/direct-router.js +6 -6
  121. package/dist/{dex → domains/dex}/types.d.ts +1 -1
  122. package/dist/{shared → domains}/flap/constants.d.ts +1 -1
  123. package/dist/{shared → domains}/flap/constants.js +1 -1
  124. package/dist/{shared → domains}/flap/errors.js +1 -1
  125. package/dist/{flap → domains/flap}/index.d.ts +5 -9
  126. package/dist/domains/flap/index.js +5 -0
  127. package/dist/{shared → domains}/flap/meta.js +2 -2
  128. package/dist/{shared → domains}/flap/permit.js +2 -2
  129. package/dist/{shared → domains}/flap/portal-bundle-merkle/config.d.ts +2 -2
  130. package/dist/{shared → domains}/flap/portal-bundle-merkle/config.js +4 -4
  131. package/dist/{shared → domains}/flap/portal-bundle-merkle/core-helpers.js +3 -3
  132. package/dist/{shared → domains}/flap/portal-bundle-merkle/core.js +4 -4
  133. package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.js +3 -3
  134. package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.js +4 -4
  135. package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.js +4 -4
  136. package/dist/{shared → domains}/flap/portal-bundle-merkle/private.js +3 -3
  137. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-batch.js +2 -2
  138. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first-helpers.js +3 -3
  139. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.js +7 -7
  140. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-cross.js +1 -1
  141. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-helpers.js +3 -3
  142. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-planning.js +5 -5
  143. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-quick-batch.js +4 -4
  144. package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-single.js +2 -2
  145. package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.js +3 -3
  146. package/dist/{shared → domains}/flap/portal-bundle.d.ts +2 -2
  147. package/dist/{shared → domains}/flap/portal-bundle.js +3 -3
  148. package/dist/{shared → domains}/flap/portal-create-token.js +1 -1
  149. package/dist/{shared → domains}/flap/vault.js +1 -1
  150. package/dist/{flows → domains/flows}/create.js +2 -2
  151. package/dist/{contracts → domains/four/contracts}/helper3.js +2 -2
  152. package/dist/{contracts → domains/four/contracts}/tm-bundle-helpers.d.ts +4 -4
  153. package/dist/{contracts → domains/four/contracts}/tm-bundle-helpers.js +3 -3
  154. package/dist/{contracts → domains/four/contracts}/tm-bundle.d.ts +2 -2
  155. package/dist/{contracts → domains/four/contracts}/tm-bundle.js +7 -7
  156. package/dist/{contracts → domains/four/contracts}/tm.d.ts +1 -1
  157. package/dist/{contracts → domains/four/contracts}/tm.js +4 -4
  158. package/dist/{contracts → domains/four/contracts}/tm1.js +2 -2
  159. package/dist/{contracts → domains/four/contracts}/tm2.js +2 -2
  160. package/dist/domains/four/index.d.ts +7 -0
  161. package/dist/domains/four/index.js +7 -0
  162. package/dist/{shared → domains}/four/tax-token.js +1 -1
  163. package/dist/{utils → domains/holders}/holders-maker-helpers.d.ts +7 -7
  164. package/dist/{utils → domains/holders}/holders-maker-helpers.js +7 -7
  165. package/dist/{utils → domains/holders}/holders-maker.d.ts +2 -2
  166. package/dist/{utils → domains/holders}/holders-maker.js +4 -4
  167. package/dist/domains/holders/index.d.ts +1 -0
  168. package/dist/domains/holders/index.js +1 -0
  169. package/dist/{utils/holders-maker → domains/holders/internal}/addresses.js +1 -1
  170. package/dist/{utils/holders-maker → domains/holders/internal}/buy-tx.d.ts +1 -1
  171. package/dist/{utils/holders-maker → domains/holders/internal}/buy-tx.js +4 -4
  172. package/dist/{utils/holders-maker → domains/holders/internal}/constants.js +1 -1
  173. package/dist/{utils/holders-maker → domains/holders/internal}/disperse.d.ts +4 -4
  174. package/dist/{utils/holders-maker → domains/holders/internal}/disperse.js +2 -2
  175. package/dist/{utils/holders-maker → domains/holders/internal}/routing.d.ts +1 -1
  176. package/dist/{utils/holders-maker → domains/holders/internal}/routing.js +1 -1
  177. package/dist/{utils/holders-maker → domains/holders/internal}/transfer-tx.js +2 -2
  178. package/dist/{utils/types/holders-maker.d.ts → domains/holders/types.d.ts} +1 -1
  179. package/dist/domains/lp-inspect/index.d.ts +1 -0
  180. package/dist/domains/lp-inspect/index.js +1 -0
  181. package/dist/{utils → domains/lp-inspect}/lp-inspect-helpers.d.ts +1 -1
  182. package/dist/{utils → domains/lp-inspect}/lp-inspect-helpers.js +1 -1
  183. package/dist/{utils → domains/lp-inspect}/lp-inspect.d.ts +2 -2
  184. package/dist/{utils → domains/lp-inspect}/lp-inspect.js +6 -6
  185. package/dist/{utils/types/lp-inspect.d.ts → domains/lp-inspect/types.d.ts} +1 -1
  186. package/dist/{merkle → domains/merkle}/index.d.ts +7 -7
  187. package/dist/domains/merkle/index.js +11 -0
  188. package/dist/domains/private-sale/index.d.ts +1 -0
  189. package/dist/domains/private-sale/index.js +1 -0
  190. package/dist/{utils → domains/private-sale}/private-sale.d.ts +2 -2
  191. package/dist/{utils → domains/private-sale}/private-sale.js +2 -2
  192. package/dist/domains/private-sale/types.d.ts +1 -0
  193. package/dist/domains/quote/index.d.ts +1 -0
  194. package/dist/domains/quote/index.js +1 -0
  195. package/dist/{utils → domains/quote}/quote-helpers.d.ts +3 -3
  196. package/dist/{utils → domains/quote}/quote-helpers.js +2 -2
  197. package/dist/{utils/types/quote-helpers.d.ts → domains/quote/types.d.ts} +1 -1
  198. package/dist/domains/vanity/index.d.ts +5 -0
  199. package/dist/domains/vanity/index.js +5 -0
  200. package/dist/exports/root-bundle-and-tooling.d.ts +11 -11
  201. package/dist/exports/root-bundle-and-tooling.js +11 -11
  202. package/dist/exports/root-foundations.d.ts +21 -21
  203. package/dist/exports/root-foundations.js +21 -21
  204. package/dist/exports/root-swap-dex-and-xlayer.d.ts +10 -10
  205. package/dist/exports/root-swap-dex-and-xlayer.js +8 -8
  206. package/dist/index.d.ts +7 -10
  207. package/dist/index.js +7 -10
  208. package/dist/utils/airdrop-sweep.js +3 -3
  209. package/dist/utils/bundle-helpers.d.ts +7 -7
  210. package/dist/utils/bundle-helpers.js +7 -7
  211. package/dist/utils/constants.d.ts +2 -2
  212. package/dist/utils/constants.js +2 -2
  213. package/dist/utils/contract-factory.js +1 -1
  214. package/dist/utils/errors.d.ts +2 -2
  215. package/dist/utils/errors.js +3 -3
  216. package/dist/utils/hop-chains.d.ts +1 -1
  217. package/dist/utils/hop-chains.js +2 -2
  218. package/dist/utils/index.d.ts +5 -0
  219. package/dist/utils/index.js +5 -0
  220. package/dist/utils/mpcExclusive.js +1 -1
  221. package/dist/utils/stealth-transfer.js +2 -2
  222. package/dist/utils/swap-helpers.d.ts +1 -1
  223. package/dist/utils/swap-helpers.js +1 -1
  224. package/dist/utils/types/airdrop-sweep.d.ts +1 -1
  225. package/dist/utils/types/index.d.ts +6 -6
  226. package/dist/utils/types/stealth-transfer.d.ts +1 -1
  227. package/dist/utils/wallet.d.ts +2 -2
  228. package/dist/utils/wallet.js +3 -3
  229. package/package.json +56 -56
  230. package/dist/__tests__/subpath-exports.test.js +0 -64
  231. package/dist/bundle-core/__tests__/config-helpers.test.js +0 -28
  232. package/dist/bundle-core/__tests__/facade-parity.test.js +0 -33
  233. package/dist/bundle-core/__tests__/sign-context-helpers.test.js +0 -60
  234. package/dist/bundle-core/__tests__/sign-fixture.test.d.ts +0 -1
  235. package/dist/bundle-core/__tests__/sign-fixture.test.js +0 -220
  236. package/dist/bundle-core/__tests__/sign-fixtures.d.ts +0 -10
  237. package/dist/bundle-core/__tests__/sign-fixtures.js +0 -16
  238. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.d.ts +0 -1
  239. package/dist/contracts/tm-bundle-merkle/approve-tokenmanager.js +0 -1
  240. package/dist/contracts/tm-bundle-merkle/config.d.ts +0 -8
  241. package/dist/contracts/tm-bundle-merkle/config.js +0 -2
  242. package/dist/contracts/tm-bundle-merkle/core.d.ts +0 -1
  243. package/dist/contracts/tm-bundle-merkle/core.js +0 -1
  244. package/dist/contracts/tm-bundle-merkle/index.d.ts +0 -15
  245. package/dist/contracts/tm-bundle-merkle/index.js +0 -29
  246. package/dist/contracts/tm-bundle-merkle/internal.d.ts +0 -4
  247. package/dist/contracts/tm-bundle-merkle/internal.js +0 -4
  248. package/dist/contracts/tm-bundle-merkle/pancake-proxy.d.ts +0 -1
  249. package/dist/contracts/tm-bundle-merkle/pancake-proxy.js +0 -1
  250. package/dist/contracts/tm-bundle-merkle/private.d.ts +0 -1
  251. package/dist/contracts/tm-bundle-merkle/private.js +0 -1
  252. package/dist/contracts/tm-bundle-merkle/submit.d.ts +0 -3
  253. package/dist/contracts/tm-bundle-merkle/submit.js +0 -3
  254. package/dist/contracts/tm-bundle-merkle/swap-buy-first.d.ts +0 -4
  255. package/dist/contracts/tm-bundle-merkle/swap-buy-first.js +0 -4
  256. package/dist/contracts/tm-bundle-merkle/swap-internal.d.ts +0 -1
  257. package/dist/contracts/tm-bundle-merkle/swap-internal.js +0 -1
  258. package/dist/contracts/tm-bundle-merkle/swap.d.ts +0 -4
  259. package/dist/contracts/tm-bundle-merkle/swap.js +0 -4
  260. package/dist/contracts/tm-bundle-merkle/types.d.ts +0 -1
  261. package/dist/contracts/tm-bundle-merkle/utils-disperse.d.ts +0 -1
  262. package/dist/contracts/tm-bundle-merkle/utils-disperse.js +0 -1
  263. package/dist/contracts/tm-bundle-merkle/utils-pairwise.d.ts +0 -1
  264. package/dist/contracts/tm-bundle-merkle/utils-pairwise.js +0 -1
  265. package/dist/contracts/tm-bundle-merkle/utils-sweep.d.ts +0 -1
  266. package/dist/contracts/tm-bundle-merkle/utils-sweep.js +0 -1
  267. package/dist/contracts/tm-bundle-merkle/utils.d.ts +0 -8
  268. package/dist/contracts/tm-bundle-merkle/utils.js +0 -8
  269. package/dist/flap/index.js +0 -9
  270. package/dist/merkle/index.js +0 -11
  271. package/dist/shared/abis/TaxToken.json +0 -105
  272. package/dist/shared/abis/TokenManager.json +0 -836
  273. package/dist/shared/abis/TokenManager2.json +0 -60
  274. package/dist/shared/abis/TokenManagerHelper3.json +0 -993
  275. package/dist/shared/flap/graduated-dex.d.ts +0 -1
  276. package/dist/shared/flap/graduated-dex.js +0 -1
  277. package/dist/shared/flap/launch-v6.d.ts +0 -127
  278. package/dist/shared/flap/launch-v6.js +0 -123
  279. package/dist/shared/four/index.d.ts +0 -7
  280. package/dist/shared/four/index.js +0 -22
  281. package/dist/shared/index.d.ts +0 -16
  282. package/dist/shared/index.js +0 -14
  283. package/dist/utils/pcs-infinity-cl.d.ts +0 -65
  284. package/dist/utils/pcs-infinity-cl.js +0 -390
  285. package/dist/utils/types/erc20.js +0 -1
  286. package/dist/utils/types/holders-maker.js +0 -1
  287. package/dist/utils/types/lp-inspect.js +0 -1
  288. package/dist/utils/types/private-sale.d.ts +0 -1
  289. package/dist/utils/types/private-sale.js +0 -1
  290. package/dist/utils/types/quote-helpers.js +0 -1
  291. package/dist/vanity/index.d.ts +0 -5
  292. package/dist/vanity/index.js +0 -5
  293. /package/dist/{bundle-core → bundle}/errors.d.ts +0 -0
  294. /package/dist/{bundle-core → bundle}/errors.js +0 -0
  295. /package/dist/{bundle-core → bundle}/four-meme/approve-tokenmanager.d.ts +0 -0
  296. /package/dist/{bundle-core → bundle}/four-meme/core.d.ts +0 -0
  297. /package/dist/{bundle-core → bundle}/four-meme/pancake-proxy.d.ts +0 -0
  298. /package/dist/{bundle-core → bundle}/four-meme/private.d.ts +0 -0
  299. /package/dist/{bundle-core → bundle}/four-meme/swap-buy-first.d.ts +0 -0
  300. /package/dist/{bundle-core → bundle}/four-meme/swap-hop-helpers.d.ts +0 -0
  301. /package/dist/{bundle-core → bundle}/four-meme/swap-hop-helpers.js +0 -0
  302. /package/dist/{bundle-core → bundle}/four-meme/swap-internal.d.ts +0 -0
  303. /package/dist/{bundle-core → bundle}/four-meme/swap-sign-helpers.d.ts +0 -0
  304. /package/dist/{bundle-core → bundle}/four-meme/swap.d.ts +0 -0
  305. /package/dist/{bundle-core → bundle}/four-meme/swap.js +0 -0
  306. /package/dist/{bundle-core → bundle}/four-meme/types/buy-first.d.ts +0 -0
  307. /package/dist/{bundle-core → bundle}/four-meme/types/buy-first.js +0 -0
  308. /package/dist/{bundle-core → bundle}/four-meme/types/core-flow.d.ts +0 -0
  309. /package/dist/{bundle-core → bundle}/four-meme/types/core-flow.js +0 -0
  310. /package/dist/{bundle-core → bundle}/four-meme/types/index.js +0 -0
  311. /package/dist/{bundle-core → bundle}/four-meme/types/swap-internal.d.ts +0 -0
  312. /package/dist/{bundle-core → bundle}/four-meme/types/swap-internal.js +0 -0
  313. /package/dist/{bundle-core → bundle}/four-meme/types.d.ts +0 -0
  314. /package/dist/{bundle-core → bundle}/four-meme/types.js +0 -0
  315. /package/dist/{bundle-core → bundle}/four-meme/utils-disperse.d.ts +0 -0
  316. /package/dist/{bundle-core → bundle}/four-meme/utils-pairwise.d.ts +0 -0
  317. /package/dist/{bundle-core → bundle}/four-meme/utils-sweep.d.ts +0 -0
  318. /package/dist/{bundle-core → bundle}/index.d.ts +0 -0
  319. /package/dist/{bundle-core → bundle}/index.js +0 -0
  320. /package/dist/{bundle-core → bundle}/sign-context-helpers.d.ts +0 -0
  321. /package/dist/{bundle-core → bundle}/submit.d.ts +0 -0
  322. /package/dist/{bundle-core → bundle}/types/index.d.ts +0 -0
  323. /package/dist/{bundle-core → bundle}/types/index.js +0 -0
  324. /package/dist/{bundle-core → bundle}/types.d.ts +0 -0
  325. /package/dist/{bundle-core → bundle}/types.js +0 -0
  326. /package/dist/{shared/foundation → core}/amount/split-by-weight.d.ts +0 -0
  327. /package/dist/{shared/foundation → core}/amount/split-by-weight.js +0 -0
  328. /package/dist/{shared → core}/clients/blockrazor.d.ts +0 -0
  329. /package/dist/{shared → core}/clients/club48.d.ts +0 -0
  330. /package/dist/{shared → core}/clients/club48.js +0 -0
  331. /package/dist/{shared → core}/clients/emitservice.d.ts +0 -0
  332. /package/dist/{shared → core}/clients/emitservice.js +0 -0
  333. /package/dist/{shared → core}/clients/four.d.ts +0 -0
  334. /package/dist/{shared → core}/clients/index.d.ts +0 -0
  335. /package/dist/{shared → core}/clients/index.js +0 -0
  336. /package/dist/{shared → core}/clients/merkle.d.ts +0 -0
  337. /package/dist/{shared → core}/constants/addresses.d.ts +0 -0
  338. /package/dist/{shared → core}/constants/addresses.js +0 -0
  339. /package/dist/{shared → core}/constants/chains.d.ts +0 -0
  340. /package/dist/{shared → core}/constants/chains.js +0 -0
  341. /package/dist/{shared → core}/constants/gas.d.ts +0 -0
  342. /package/dist/{shared → core}/constants/gas.js +0 -0
  343. /package/dist/{shared → core}/constants/profit.d.ts +0 -0
  344. /package/dist/{shared → core}/constants/profit.js +0 -0
  345. /package/dist/{shared → core}/constants/quote.d.ts +0 -0
  346. /package/dist/{shared → core}/constants/quote.js +0 -0
  347. /package/dist/{shared/foundation → core}/dex/v3-path.d.ts +0 -0
  348. /package/dist/{shared/foundation → core}/erc20/decimals.d.ts +0 -0
  349. /package/dist/{shared/foundation → core}/erc20/decimals.js +0 -0
  350. /package/dist/{shared/foundation/index.d.ts → core/foundation.d.ts} +0 -0
  351. /package/dist/{shared/foundation/index.js → core/foundation.js} +0 -0
  352. /package/dist/{shared/foundation → core}/gas/bundle-gas.d.ts +0 -0
  353. /package/dist/{shared/foundation → core}/gas/bundle-gas.js +0 -0
  354. /package/dist/{shared/foundation → core}/gas/profit-hop.d.ts +0 -0
  355. /package/dist/{types → core/legacy-types}/errors.d.ts +0 -0
  356. /package/dist/{types → core/legacy-types}/errors.js +0 -0
  357. /package/dist/{shared/foundation → core}/nonce/nonce-manager.d.ts +0 -0
  358. /package/dist/{shared/foundation → core}/normalize-unknown.d.ts +0 -0
  359. /package/dist/{shared/foundation → core}/normalize-unknown.js +0 -0
  360. /package/dist/{shared/foundation → core}/sdk-logger.d.ts +0 -0
  361. /package/dist/{shared/foundation → core}/sdk-logger.js +0 -0
  362. /package/dist/{shared/abis → core/shared-abis}/common.d.ts +0 -0
  363. /package/dist/{shared/abis → core/shared-abis}/common.js +0 -0
  364. /package/dist/{shared/abis → core/shared-abis}/index.d.ts +0 -0
  365. /package/dist/{shared/abis → core/shared-abis}/index.js +0 -0
  366. /package/dist/{shared/foundation → core}/tx/build-request.d.ts +0 -0
  367. /package/dist/{shared/foundation → core}/tx/build-request.js +0 -0
  368. /package/dist/{shared/foundation → core}/tx/sign-batch.d.ts +0 -0
  369. /package/dist/{shared/foundation → core}/tx/sign-batch.js +0 -0
  370. /package/dist/{shared/foundation → core}/tx/wallet-sign-patch.d.ts +0 -0
  371. /package/dist/{shared/foundation → core}/tx/wallet-sign-patch.js +0 -0
  372. /package/dist/{shared/foundation → core}/types/airdrop-sweep.js +0 -0
  373. /package/dist/{shared/foundation → core}/types/erc20.d.ts +0 -0
  374. /package/dist/{shared/foundation → core}/types/erc20.js +0 -0
  375. /package/dist/{shared/foundation → core}/types/holders-maker.js +0 -0
  376. /package/dist/{shared/foundation → core}/types/index.d.ts +0 -0
  377. /package/dist/{shared/foundation → core}/types/index.js +0 -0
  378. /package/dist/{shared/foundation → core}/types/lp-inspect.js +0 -0
  379. /package/dist/{shared/foundation → core}/types/multicall.d.ts +0 -0
  380. /package/dist/{shared/foundation → core}/types/multicall.js +0 -0
  381. /package/dist/{shared/foundation → core}/types/private-sale.js +0 -0
  382. /package/dist/{shared/foundation → core}/types/quote-helpers.d.ts +0 -0
  383. /package/dist/{shared/foundation → core}/types/quote-helpers.js +0 -0
  384. /package/dist/{__tests__/subpath-exports.test.d.ts → core/types-erc20.js} +0 -0
  385. /package/dist/{shared/foundation → core}/wallet/generate.d.ts +0 -0
  386. /package/dist/{shared/foundation → core}/wallet/generate.js +0 -0
  387. /package/dist/{dex → domains/dex}/direct-router.d.ts +0 -0
  388. /package/dist/{dex → domains/dex}/index.d.ts +0 -0
  389. /package/dist/{dex → domains/dex}/index.js +0 -0
  390. /package/dist/{contracts/tm-bundle-merkle → domains/dex}/types.js +0 -0
  391. /package/dist/{shared → domains}/flap/abi.d.ts +0 -0
  392. /package/dist/{shared → domains}/flap/abi.js +0 -0
  393. /package/dist/{shared → domains}/flap/curve.d.ts +0 -0
  394. /package/dist/{shared → domains}/flap/curve.js +0 -0
  395. /package/dist/{shared → domains}/flap/errors.d.ts +0 -0
  396. /package/dist/{shared → domains}/flap/ipfs.d.ts +0 -0
  397. /package/dist/{shared → domains}/flap/ipfs.js +0 -0
  398. /package/dist/{shared → domains}/flap/meta.d.ts +0 -0
  399. /package/dist/{shared/flap/index.d.ts → domains/flap/module.d.ts} +0 -0
  400. /package/dist/{shared/flap/index.js → domains/flap/module.js} +0 -0
  401. /package/dist/{shared → domains}/flap/permit.d.ts +0 -0
  402. /package/dist/{shared → domains}/flap/pinata.d.ts +0 -0
  403. /package/dist/{shared → domains}/flap/pinata.js +0 -0
  404. /package/dist/{shared → domains}/flap/portal-bundle-merkle/core-helpers.d.ts +0 -0
  405. /package/dist/{shared → domains}/flap/portal-bundle-merkle/core.d.ts +0 -0
  406. /package/dist/{shared → domains}/flap/portal-bundle-merkle/create-to-dex.d.ts +0 -0
  407. /package/dist/{shared → domains}/flap/portal-bundle-merkle/curve-to-dex.d.ts +0 -0
  408. /package/dist/{shared → domains}/flap/portal-bundle-merkle/index.d.ts +0 -0
  409. /package/dist/{shared → domains}/flap/portal-bundle-merkle/index.js +0 -0
  410. /package/dist/{shared → domains}/flap/portal-bundle-merkle/pancake-proxy.d.ts +0 -0
  411. /package/dist/{shared → domains}/flap/portal-bundle-merkle/private.d.ts +0 -0
  412. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-batch.d.ts +0 -0
  413. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first-helpers.d.ts +0 -0
  414. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-buy-first.d.ts +0 -0
  415. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-cross.d.ts +0 -0
  416. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-helpers.d.ts +0 -0
  417. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-planning.d.ts +0 -0
  418. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-quick-batch.d.ts +0 -0
  419. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-single.d.ts +0 -0
  420. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-types.d.ts +0 -0
  421. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap-types.js +0 -0
  422. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap.d.ts +0 -0
  423. /package/dist/{shared → domains}/flap/portal-bundle-merkle/swap.js +0 -0
  424. /package/dist/{shared → domains}/flap/portal-bundle-merkle/types.d.ts +0 -0
  425. /package/dist/{dex → domains/flap/portal-bundle-merkle}/types.js +0 -0
  426. /package/dist/{shared → domains}/flap/portal-bundle-merkle/utils.d.ts +0 -0
  427. /package/dist/{shared → domains}/flap/portal-create-token.d.ts +0 -0
  428. /package/dist/{shared → domains}/flap/portal.d.ts +0 -0
  429. /package/dist/{shared → domains}/flap/portal.js +0 -0
  430. /package/dist/{shared → domains}/flap/vanity.d.ts +0 -0
  431. /package/dist/{shared → domains}/flap/vanity.js +0 -0
  432. /package/dist/{shared → domains}/flap/vault.d.ts +0 -0
  433. /package/dist/{flows → domains/flows}/create.d.ts +0 -0
  434. /package/dist/{flows → domains/flows}/index.d.ts +0 -0
  435. /package/dist/{flows → domains/flows}/index.js +0 -0
  436. /package/dist/{contracts → domains/four/contracts}/helper3.d.ts +0 -0
  437. /package/dist/{contracts → domains/four/contracts}/tm1.d.ts +0 -0
  438. /package/dist/{contracts → domains/four/contracts}/tm2.d.ts +0 -0
  439. /package/dist/{shared → domains}/four/tax-token.d.ts +0 -0
  440. /package/dist/{utils/holders-maker → domains/holders/internal}/addresses.d.ts +0 -0
  441. /package/dist/{utils/holders-maker → domains/holders/internal}/constants.d.ts +0 -0
  442. /package/dist/{utils/holders-maker → domains/holders/internal}/transfer-tx.d.ts +0 -0
  443. /package/dist/{shared/flap/portal-bundle-merkle → domains/holders}/types.js +0 -0
  444. /package/dist/{bundle-core/__tests__/config-helpers.test.d.ts → domains/lp-inspect/types.js} +0 -0
  445. /package/dist/{bundle-core/__tests__/facade-parity.test.d.ts → domains/private-sale/types.js} +0 -0
  446. /package/dist/{bundle-core/__tests__/sign-context-helpers.test.d.ts → domains/quote/types.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "four-flap-meme-sdk",
3
- "version": "2.2.20",
3
+ "version": "3.0.1",
4
4
  "description": "SDK for Flap bonding curve and four.meme TokenManager",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,6 +13,7 @@
13
13
  "build": "tsc -p tsconfig.json",
14
14
  "clean": "rm -rf dist",
15
15
  "test": "vitest run",
16
+ "lint": "eslint \"src/**/*.{ts,tsx}\"",
16
17
  "check:export-types": "node scripts/check-export-return-types.mjs",
17
18
  "prepublishOnly": "npm run build"
18
19
  },
@@ -21,21 +22,53 @@
21
22
  "types": "./dist/index.d.ts",
22
23
  "default": "./dist/index.js"
23
24
  },
24
- "./foundation": {
25
- "types": "./dist/shared/foundation/index.d.ts",
26
- "default": "./dist/shared/foundation/index.js"
25
+ "./core": {
26
+ "types": "./dist/core/index.d.ts",
27
+ "default": "./dist/core/index.js"
27
28
  },
28
- "./bundle-core": {
29
- "types": "./dist/bundle-core/index.d.ts",
30
- "default": "./dist/bundle-core/index.js"
29
+ "./flap": {
30
+ "types": "./dist/domains/flap/index.d.ts",
31
+ "default": "./dist/domains/flap/index.js"
31
32
  },
32
- "./flows": {
33
- "types": "./dist/flows/index.d.ts",
34
- "default": "./dist/flows/index.js"
33
+ "./four": {
34
+ "types": "./dist/domains/four/index.d.ts",
35
+ "default": "./dist/domains/four/index.js"
36
+ },
37
+ "./dex": {
38
+ "types": "./dist/domains/dex/index.d.ts",
39
+ "default": "./dist/domains/dex/index.js"
40
+ },
41
+ "./merkle": {
42
+ "types": "./dist/domains/merkle/index.d.ts",
43
+ "default": "./dist/domains/merkle/index.js"
44
+ },
45
+ "./vanity": {
46
+ "types": "./dist/domains/vanity/index.d.ts",
47
+ "default": "./dist/domains/vanity/index.js"
35
48
  },
36
- "./constants": {
37
- "types": "./dist/shared/constants/index.d.ts",
38
- "default": "./dist/shared/constants/index.js"
49
+ "./quote": {
50
+ "types": "./dist/domains/quote/index.d.ts",
51
+ "default": "./dist/domains/quote/index.js"
52
+ },
53
+ "./lp-inspect": {
54
+ "types": "./dist/domains/lp-inspect/index.d.ts",
55
+ "default": "./dist/domains/lp-inspect/index.js"
56
+ },
57
+ "./holders": {
58
+ "types": "./dist/domains/holders/index.d.ts",
59
+ "default": "./dist/domains/holders/index.js"
60
+ },
61
+ "./private-sale": {
62
+ "types": "./dist/domains/private-sale/index.d.ts",
63
+ "default": "./dist/domains/private-sale/index.js"
64
+ },
65
+ "./bundle": {
66
+ "types": "./dist/bundle/index.d.ts",
67
+ "default": "./dist/bundle/index.js"
68
+ },
69
+ "./flows": {
70
+ "types": "./dist/domains/flows/index.d.ts",
71
+ "default": "./dist/domains/flows/index.js"
39
72
  },
40
73
  "./chains": {
41
74
  "types": "./dist/chains/index.d.ts",
@@ -45,6 +78,10 @@
45
78
  "types": "./dist/chains/bsc/index.d.ts",
46
79
  "default": "./dist/chains/bsc/index.js"
47
80
  },
81
+ "./chains/bsc/four": {
82
+ "types": "./dist/chains/bsc/four/index.d.ts",
83
+ "default": "./dist/chains/bsc/four/index.js"
84
+ },
48
85
  "./chains/bsc/iro": {
49
86
  "types": "./dist/chains/bsc/iro.d.ts",
50
87
  "default": "./dist/chains/bsc/iro.js"
@@ -65,49 +102,9 @@
65
102
  "types": "./dist/chains/monad/index.d.ts",
66
103
  "default": "./dist/chains/monad/index.js"
67
104
  },
68
- "./flap": {
69
- "types": "./dist/flap/index.d.ts",
70
- "default": "./dist/flap/index.js"
71
- },
72
- "./shared/flap": {
73
- "types": "./dist/flap/index.d.ts",
74
- "default": "./dist/flap/index.js"
75
- },
76
- "./dex": {
77
- "types": "./dist/dex/index.d.ts",
78
- "default": "./dist/dex/index.js"
79
- },
80
- "./merkle": {
81
- "types": "./dist/merkle/index.d.ts",
82
- "default": "./dist/merkle/index.js"
83
- },
84
- "./quote": {
85
- "types": "./dist/utils/quote-helpers.d.ts",
86
- "default": "./dist/utils/quote-helpers.js"
87
- },
88
- "./vanity": {
89
- "types": "./dist/vanity/index.d.ts",
90
- "default": "./dist/vanity/index.js"
91
- },
92
- "./utils/wallet": {
93
- "types": "./dist/utils/wallet.d.ts",
94
- "default": "./dist/utils/wallet.js"
95
- },
96
- "./utils/erc20": {
97
- "types": "./dist/utils/erc20.d.ts",
98
- "default": "./dist/utils/erc20.js"
99
- },
100
- "./utils/lp-inspect": {
101
- "types": "./dist/utils/lp-inspect.d.ts",
102
- "default": "./dist/utils/lp-inspect.js"
103
- },
104
- "./utils/holders-maker": {
105
- "types": "./dist/utils/holders-maker.d.ts",
106
- "default": "./dist/utils/holders-maker.js"
107
- },
108
- "./utils/private-sale": {
109
- "types": "./dist/utils/private-sale.d.ts",
110
- "default": "./dist/utils/private-sale.js"
105
+ "./utils": {
106
+ "types": "./dist/utils/index.d.ts",
107
+ "default": "./dist/utils/index.js"
111
108
  },
112
109
  "./package.json": "./package.json"
113
110
  },
@@ -132,8 +129,11 @@
132
129
  "pinata": "^1.10.1"
133
130
  },
134
131
  "devDependencies": {
132
+ "@eslint/js": "^10.0.1",
133
+ "eslint": "^10.7.0",
135
134
  "solc": "^0.8.33",
136
135
  "typescript": "^5.6.3",
136
+ "typescript-eslint": "^8.65.0",
137
137
  "vitest": "^3.2.6"
138
138
  }
139
139
  }
@@ -1,64 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- describe('subpath exports (package.json exports map)', () => {
3
- it('chains subpath exposes chains namespace', async () => {
4
- const mod = await import('../chains/index.js');
5
- expect(mod.chains).toBeDefined();
6
- expect(mod.chains.bsc).toBeDefined();
7
- expect(mod.chains.xlayer).toBeDefined();
8
- expect(mod.chains.eni).toBeDefined();
9
- expect(mod.bsc).toBe(mod.chains.bsc);
10
- });
11
- it('flap subpath exposes Merkle swap entrypoints', async () => {
12
- const mod = await import('../flap/index.js');
13
- expect(typeof mod.flapBundleSwapMerkle).toBe('function');
14
- expect(typeof mod.flapBatchSwapMerkle).toBe('function');
15
- expect(typeof mod.flapQuickBatchSwapMerkle).toBe('function');
16
- expect(typeof mod.flapCrossSwapMerkle).toBe('function');
17
- });
18
- it('utils/wallet subpath exports GeneratedWallet type surface', async () => {
19
- const mod = await import('../utils/wallet.js');
20
- expect(typeof mod.generateWallets).toBe('function');
21
- expect(typeof mod.validatePrivateKeys).toBe('function');
22
- expect(typeof mod.getTokenBalancesWithMulticall).toBe('function');
23
- });
24
- it('constants subpath exports FlapChain type re-export', async () => {
25
- const mod = await import('../shared/constants/index.js');
26
- expect(mod.CHAINS).toBeDefined();
27
- expect(mod.PROFIT_CONFIG).toBeDefined();
28
- });
29
- it('quote subpath exports quoteV2/quoteV3', async () => {
30
- const mod = await import('../utils/quote-helpers.js');
31
- expect(typeof mod.quoteV2).toBe('function');
32
- expect(typeof mod.quoteV3).toBe('function');
33
- });
34
- it('merkle subpath exports Four Merkle swap and disperse', async () => {
35
- const mod = await import('../merkle/index.js');
36
- expect(typeof mod.disperseWithBundleMerkle).toBe('function');
37
- expect(typeof mod.fourBundleSwapMerkle).toBe('function');
38
- expect(typeof mod.submitBundleToMerkle).toBe('function');
39
- });
40
- it('vanity subpath exports findSaltEndingByChain', async () => {
41
- const mod = await import('../vanity/index.js');
42
- expect(typeof mod.findSaltEndingByChain).toBe('function');
43
- expect(typeof mod.getVanitySuffix).toBe('function');
44
- });
45
- it('chains/bsc/iro subpath exports bscIroCreateProject', async () => {
46
- const mod = await import('../chains/bsc/iro.js');
47
- expect(typeof mod.bscIroCreateProject).toBe('function');
48
- });
49
- it('chains/eni flat aliases on eni subpath', async () => {
50
- const mod = await import('../chains/eni/index.js');
51
- expect(typeof mod.eniCreatePortalQuery).toBe('function');
52
- expect(typeof mod.eniDisperseForSubmit).toBe('function');
53
- });
54
- it('chains/xlayer/eip7702 flat aliases', async () => {
55
- const mod = await import('../chains/xlayer/eip7702/index.js');
56
- expect(typeof mod.xlayerEip7702BundleSwap).toBe('function');
57
- expect(typeof mod.xlayerEip7702CheckApprovalStatus).toBe('function');
58
- });
59
- it('chains/xlayer re-exports eip7702 flat aliases', async () => {
60
- const mod = await import('../chains/xlayer/index.js');
61
- expect(typeof mod.xlayerEip7702Disperse).toBe('function');
62
- expect(mod.XLayer).toBeDefined();
63
- });
64
- });
@@ -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';