@0xtorch/evm 0.0.59 → 0.0.61

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 (338) hide show
  1. package/_cjs/analyzer/analyze.js +23 -7
  2. package/_cjs/analyzer/analyze.js.map +1 -1
  3. package/_cjs/analyzer/index.js +3 -1
  4. package/_cjs/analyzer/index.js.map +1 -1
  5. package/_cjs/analyzer/json/analyze.js +34 -38
  6. package/_cjs/analyzer/json/analyze.js.map +1 -1
  7. package/_cjs/analyzer/json/components/comment.js +2 -2
  8. package/_cjs/analyzer/json/components/comment.js.map +1 -1
  9. package/_cjs/analyzer/json/components/erc1155.js +4 -6
  10. package/_cjs/analyzer/json/components/erc1155.js.map +1 -1
  11. package/_cjs/analyzer/json/components/erc20.js +4 -6
  12. package/_cjs/analyzer/json/components/erc20.js.map +1 -1
  13. package/_cjs/analyzer/json/components/erc721.js +3 -5
  14. package/_cjs/analyzer/json/components/erc721.js.map +1 -1
  15. package/_cjs/analyzer/json/components/id.js +2 -2
  16. package/_cjs/analyzer/json/components/id.js.map +1 -1
  17. package/_cjs/analyzer/json/components/internal.js +4 -6
  18. package/_cjs/analyzer/json/components/internal.js.map +1 -1
  19. package/_cjs/analyzer/json/components/logArgument.js +15 -17
  20. package/_cjs/analyzer/json/components/logArgument.js.map +1 -1
  21. package/_cjs/analyzer/json/components/transfer.js +4 -6
  22. package/_cjs/analyzer/json/components/transfer.js.map +1 -1
  23. package/_cjs/analyzer/json/condition/address.js +1 -1
  24. package/_cjs/analyzer/json/condition/address.js.map +1 -1
  25. package/_cjs/analyzer/json/condition/value.js +5 -7
  26. package/_cjs/analyzer/json/condition/value.js.map +1 -1
  27. package/_cjs/analyzer/json/generator.js +1 -1
  28. package/_cjs/analyzer/json/generator.js.map +1 -1
  29. package/_cjs/analyzer/json/schemas/generator.js +6 -2
  30. package/_cjs/analyzer/json/schemas/generator.js.map +1 -1
  31. package/_cjs/analyzer/seaport/analyze.js +82 -106
  32. package/_cjs/analyzer/seaport/analyze.js.map +1 -1
  33. package/_cjs/analyzer/swap/analyze.js +5 -7
  34. package/_cjs/analyzer/swap/analyze.js.map +1 -1
  35. package/_cjs/analyzer/swap/traderJoeLBPairSwap.js.map +1 -1
  36. package/_cjs/analyzer/transfer/analyze.js +11 -98
  37. package/_cjs/analyzer/transfer/analyze.js.map +1 -1
  38. package/_cjs/analyzer/utils/createTransfersByTransaction.js +52 -0
  39. package/_cjs/analyzer/utils/createTransfersByTransaction.js.map +1 -0
  40. package/_cjs/clients/externals/viem/createViemInstance.js +2 -2
  41. package/_cjs/clients/externals/viem/createViemInstance.js.map +1 -1
  42. package/_cjs/clients/externals/viem/middleware.js +3 -6
  43. package/_cjs/clients/externals/viem/middleware.js.map +1 -1
  44. package/_cjs/decoder/decode.js +3 -3
  45. package/_cjs/decoder/decode.js.map +1 -1
  46. package/_cjs/decoder/parseErc1155TransferSingleLogs.js +2 -2
  47. package/_cjs/decoder/parseErc1155TransferSingleLogs.js.map +1 -1
  48. package/_cjs/decoder/parseErc20TransferLogs.js +2 -2
  49. package/_cjs/decoder/parseErc20TransferLogs.js.map +1 -1
  50. package/_cjs/decoder/parseErc721TransferLogs.js +3 -3
  51. package/_cjs/decoder/parseErc721TransferLogs.js.map +1 -1
  52. package/_cjs/decoder/tests.js +1 -1
  53. package/_cjs/decoder/tests.js.map +1 -1
  54. package/_cjs/explorers/externals/blockscout/getInternalTransactionsByAddress.js +1 -1
  55. package/_cjs/explorers/externals/blockscout/getInternalTransactionsByAddress.js.map +1 -1
  56. package/_cjs/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js +1 -1
  57. package/_cjs/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js.map +1 -1
  58. package/_cjs/explorers/externals/etherscan/getInternalTransactionsByAddress.js +1 -1
  59. package/_cjs/explorers/externals/etherscan/getInternalTransactionsByAddress.js.map +1 -1
  60. package/_cjs/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js +1 -1
  61. package/_cjs/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js.map +1 -1
  62. package/_cjs/index.js +4 -3
  63. package/_cjs/index.js.map +1 -1
  64. package/_cjs/tests.js +6 -2
  65. package/_cjs/tests.js.map +1 -1
  66. package/_esm/analyzer/analyze.js +25 -8
  67. package/_esm/analyzer/analyze.js.map +1 -1
  68. package/_esm/analyzer/axieMarketplace/analyze.js +1 -1
  69. package/_esm/analyzer/axieMarketplace/analyze.js.map +1 -1
  70. package/_esm/analyzer/index.js +1 -0
  71. package/_esm/analyzer/index.js.map +1 -1
  72. package/_esm/analyzer/json/analyze.js +34 -38
  73. package/_esm/analyzer/json/analyze.js.map +1 -1
  74. package/_esm/analyzer/json/components/comment.js +2 -2
  75. package/_esm/analyzer/json/components/comment.js.map +1 -1
  76. package/_esm/analyzer/json/components/erc1155.js +4 -6
  77. package/_esm/analyzer/json/components/erc1155.js.map +1 -1
  78. package/_esm/analyzer/json/components/erc20.js +4 -6
  79. package/_esm/analyzer/json/components/erc20.js.map +1 -1
  80. package/_esm/analyzer/json/components/erc721.js +3 -5
  81. package/_esm/analyzer/json/components/erc721.js.map +1 -1
  82. package/_esm/analyzer/json/components/id.js +2 -2
  83. package/_esm/analyzer/json/components/id.js.map +1 -1
  84. package/_esm/analyzer/json/components/internal.js +4 -6
  85. package/_esm/analyzer/json/components/internal.js.map +1 -1
  86. package/_esm/analyzer/json/components/logArgument.js +15 -17
  87. package/_esm/analyzer/json/components/logArgument.js.map +1 -1
  88. package/_esm/analyzer/json/components/targetAsset.js +1 -1
  89. package/_esm/analyzer/json/components/targetAsset.js.map +1 -1
  90. package/_esm/analyzer/json/components/transfer.js +4 -6
  91. package/_esm/analyzer/json/components/transfer.js.map +1 -1
  92. package/_esm/analyzer/json/condition/address.js +1 -1
  93. package/_esm/analyzer/json/condition/address.js.map +1 -1
  94. package/_esm/analyzer/json/condition/value.js +5 -7
  95. package/_esm/analyzer/json/condition/value.js.map +1 -1
  96. package/_esm/analyzer/json/generator.js +1 -1
  97. package/_esm/analyzer/json/generator.js.map +1 -1
  98. package/_esm/analyzer/json/schemas/generator.js +6 -2
  99. package/_esm/analyzer/json/schemas/generator.js.map +1 -1
  100. package/_esm/analyzer/seaport/analyze.js +92 -116
  101. package/_esm/analyzer/seaport/analyze.js.map +1 -1
  102. package/_esm/analyzer/spam/analyze.js +1 -1
  103. package/_esm/analyzer/spam/analyze.js.map +1 -1
  104. package/_esm/analyzer/swap/analyze.js +5 -7
  105. package/_esm/analyzer/swap/analyze.js.map +1 -1
  106. package/_esm/analyzer/swap/traderJoeLBPairSwap.js +0 -1
  107. package/_esm/analyzer/swap/traderJoeLBPairSwap.js.map +1 -1
  108. package/_esm/analyzer/transfer/analyze.js +11 -98
  109. package/_esm/analyzer/transfer/analyze.js.map +1 -1
  110. package/_esm/analyzer/utils/createTransfersByTransaction.js +51 -0
  111. package/_esm/analyzer/utils/createTransfersByTransaction.js.map +1 -0
  112. package/_esm/clients/externals/viem/createViemInstance.js +3 -3
  113. package/_esm/clients/externals/viem/createViemInstance.js.map +1 -1
  114. package/_esm/clients/externals/viem/middleware.js +4 -7
  115. package/_esm/clients/externals/viem/middleware.js.map +1 -1
  116. package/_esm/decoder/decode.js +6 -4
  117. package/_esm/decoder/decode.js.map +1 -1
  118. package/_esm/decoder/parseErc1155TransferSingleLogs.js +2 -2
  119. package/_esm/decoder/parseErc1155TransferSingleLogs.js.map +1 -1
  120. package/_esm/decoder/parseErc20TransferLogs.js +2 -2
  121. package/_esm/decoder/parseErc20TransferLogs.js.map +1 -1
  122. package/_esm/decoder/parseErc721TransferLogs.js +3 -3
  123. package/_esm/decoder/parseErc721TransferLogs.js.map +1 -1
  124. package/_esm/decoder/tests.js +1 -2
  125. package/_esm/decoder/tests.js.map +1 -1
  126. package/_esm/explorers/definitions/etherscan.js +1 -1
  127. package/_esm/explorers/definitions/etherscan.js.map +1 -1
  128. package/_esm/explorers/externals/blockscout/getInternalTransactionsByAddress.js +1 -1
  129. package/_esm/explorers/externals/blockscout/getInternalTransactionsByAddress.js.map +1 -1
  130. package/_esm/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js +1 -1
  131. package/_esm/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.js.map +1 -1
  132. package/_esm/explorers/externals/etherscan/getInternalTransactionsByAddress.js +1 -1
  133. package/_esm/explorers/externals/etherscan/getInternalTransactionsByAddress.js.map +1 -1
  134. package/_esm/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js +1 -1
  135. package/_esm/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.js.map +1 -1
  136. package/_esm/index.js +1 -1
  137. package/_esm/index.js.map +1 -1
  138. package/_esm/tests.js +5 -1
  139. package/_esm/tests.js.map +1 -1
  140. package/_types/analyzer/analyze.d.ts +2 -10
  141. package/_types/analyzer/analyze.d.ts.map +1 -1
  142. package/_types/analyzer/analyzer.d.ts +1 -9
  143. package/_types/analyzer/analyzer.d.ts.map +1 -1
  144. package/_types/analyzer/axieMarketplace/analyze.d.ts +2 -9
  145. package/_types/analyzer/axieMarketplace/analyze.d.ts.map +1 -1
  146. package/_types/analyzer/fail/analyze.d.ts +2 -9
  147. package/_types/analyzer/fail/analyze.d.ts.map +1 -1
  148. package/_types/analyzer/gasFee/analyze.d.ts +2 -9
  149. package/_types/analyzer/gasFee/analyze.d.ts.map +1 -1
  150. package/_types/analyzer/index.d.ts +1 -0
  151. package/_types/analyzer/index.d.ts.map +1 -1
  152. package/_types/analyzer/json/analyze.d.ts +2 -9
  153. package/_types/analyzer/json/analyze.d.ts.map +1 -1
  154. package/_types/analyzer/json/components/comment.d.ts +1 -9
  155. package/_types/analyzer/json/components/comment.d.ts.map +1 -1
  156. package/_types/analyzer/json/components/erc1155.d.ts +2 -18
  157. package/_types/analyzer/json/components/erc1155.d.ts.map +1 -1
  158. package/_types/analyzer/json/components/erc1155Raw.d.ts +1 -9
  159. package/_types/analyzer/json/components/erc1155Raw.d.ts.map +1 -1
  160. package/_types/analyzer/json/components/erc20.d.ts +2 -18
  161. package/_types/analyzer/json/components/erc20.d.ts.map +1 -1
  162. package/_types/analyzer/json/components/erc20Raw.d.ts +1 -9
  163. package/_types/analyzer/json/components/erc20Raw.d.ts.map +1 -1
  164. package/_types/analyzer/json/components/erc721.d.ts +2 -18
  165. package/_types/analyzer/json/components/erc721.d.ts.map +1 -1
  166. package/_types/analyzer/json/components/erc721Raw.d.ts +1 -9
  167. package/_types/analyzer/json/components/erc721Raw.d.ts.map +1 -1
  168. package/_types/analyzer/json/components/id.d.ts +1 -9
  169. package/_types/analyzer/json/components/id.d.ts.map +1 -1
  170. package/_types/analyzer/json/components/internal.d.ts +2 -18
  171. package/_types/analyzer/json/components/internal.d.ts.map +1 -1
  172. package/_types/analyzer/json/components/internalRaw.d.ts +1 -9
  173. package/_types/analyzer/json/components/internalRaw.d.ts.map +1 -1
  174. package/_types/analyzer/json/components/logArgument.d.ts +2 -18
  175. package/_types/analyzer/json/components/logArgument.d.ts.map +1 -1
  176. package/_types/analyzer/json/components/logArgumentRaw.d.ts +1 -9
  177. package/_types/analyzer/json/components/logArgumentRaw.d.ts.map +1 -1
  178. package/_types/analyzer/json/components/targetAsset.d.ts +1 -9
  179. package/_types/analyzer/json/components/targetAsset.d.ts.map +1 -1
  180. package/_types/analyzer/json/components/transfer.d.ts +1 -9
  181. package/_types/analyzer/json/components/transfer.d.ts.map +1 -1
  182. package/_types/analyzer/json/condition/address.d.ts +1 -9
  183. package/_types/analyzer/json/condition/address.d.ts.map +1 -1
  184. package/_types/analyzer/json/condition/argumentValue.d.ts +1 -9
  185. package/_types/analyzer/json/condition/argumentValue.d.ts.map +1 -1
  186. package/_types/analyzer/json/condition/value.d.ts +1 -9
  187. package/_types/analyzer/json/condition/value.d.ts.map +1 -1
  188. package/_types/analyzer/json/generator.d.ts +1 -9
  189. package/_types/analyzer/json/generator.d.ts.map +1 -1
  190. package/_types/analyzer/json/schemas/generator.d.ts.map +1 -1
  191. package/_types/analyzer/json/types.d.ts +2 -2
  192. package/_types/analyzer/json/types.d.ts.map +1 -1
  193. package/_types/analyzer/parsers/transfer.d.ts +1 -1
  194. package/_types/analyzer/parsers/transfer.d.ts.map +1 -1
  195. package/_types/analyzer/seaport/analyze.d.ts +2 -9
  196. package/_types/analyzer/seaport/analyze.d.ts.map +1 -1
  197. package/_types/analyzer/spam/analyze.d.ts +2 -9
  198. package/_types/analyzer/spam/analyze.d.ts.map +1 -1
  199. package/_types/analyzer/swap/analyze.d.ts +2 -9
  200. package/_types/analyzer/swap/analyze.d.ts.map +1 -1
  201. package/_types/analyzer/swap/traderJoeLBPairSwap.d.ts.map +1 -1
  202. package/_types/analyzer/transfer/analyze.d.ts +2 -9
  203. package/_types/analyzer/transfer/analyze.d.ts.map +1 -1
  204. package/_types/analyzer/utils/createTransfersByTransaction.d.ts +5 -0
  205. package/_types/analyzer/utils/createTransfersByTransaction.d.ts.map +1 -0
  206. package/_types/chains/definitions/arbitrumOne.d.ts.map +1 -1
  207. package/_types/chains/definitions/astar.d.ts.map +1 -1
  208. package/_types/chains/definitions/avalancheC.d.ts.map +1 -1
  209. package/_types/chains/definitions/base.d.ts.map +1 -1
  210. package/_types/chains/definitions/bsc.d.ts.map +1 -1
  211. package/_types/chains/definitions/defineChain.d.ts.map +1 -1
  212. package/_types/chains/definitions/ethereum.d.ts.map +1 -1
  213. package/_types/chains/definitions/fantom.d.ts.map +1 -1
  214. package/_types/chains/definitions/linea.d.ts.map +1 -1
  215. package/_types/chains/definitions/mantaPacific.d.ts.map +1 -1
  216. package/_types/chains/definitions/mantle.d.ts.map +1 -1
  217. package/_types/chains/definitions/metis.d.ts.map +1 -1
  218. package/_types/chains/definitions/moonbeam.d.ts.map +1 -1
  219. package/_types/chains/definitions/moonriver.d.ts.map +1 -1
  220. package/_types/chains/definitions/oasys.d.ts.map +1 -1
  221. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  222. package/_types/chains/definitions/polygonPos.d.ts.map +1 -1
  223. package/_types/chains/definitions/ronin.d.ts.map +1 -1
  224. package/_types/chains/externals/defillama/getBlockOfTimestamp.d.ts.map +1 -1
  225. package/_types/clients/definitions/defineClient.d.ts.map +1 -1
  226. package/_types/clients/definitions/viemClient.d.ts +14 -14
  227. package/_types/clients/definitions/viemClient.d.ts.map +1 -1
  228. package/_types/clients/externals/viem/createViemInstance.d.ts +3 -3
  229. package/_types/clients/externals/viem/createViemInstance.d.ts.map +1 -1
  230. package/_types/clients/externals/viem/estimateFeesPerGas.d.ts.map +1 -1
  231. package/_types/clients/externals/viem/getBalance.d.ts.map +1 -1
  232. package/_types/clients/externals/viem/getBlock.d.ts +1 -1
  233. package/_types/clients/externals/viem/getBlock.d.ts.map +1 -1
  234. package/_types/clients/externals/viem/getBlockNumber.d.ts.map +1 -1
  235. package/_types/clients/externals/viem/getEventLogs.d.ts.map +1 -1
  236. package/_types/clients/externals/viem/getTransaction.d.ts.map +1 -1
  237. package/_types/clients/externals/viem/getTransactionCount.d.ts.map +1 -1
  238. package/_types/clients/externals/viem/getTransactionReceipt.d.ts.map +1 -1
  239. package/_types/clients/externals/viem/middleware.d.ts.map +1 -1
  240. package/_types/clients/externals/viem/multicall.d.ts.map +1 -1
  241. package/_types/clients/externals/viem/readContract.d.ts.map +1 -1
  242. package/_types/creates/createEvmAccount.d.ts +1 -1
  243. package/_types/creates/createEvmAccount.d.ts.map +1 -1
  244. package/_types/decoder/decode.d.ts.map +1 -1
  245. package/_types/decoder/parseErc1155TransferSingleLogs.d.ts.map +1 -1
  246. package/_types/decoder/parseErc20TransferLogs.d.ts.map +1 -1
  247. package/_types/decoder/parseErc721TransferLogs.d.ts.map +1 -1
  248. package/_types/decoder/tests.d.ts +2 -39
  249. package/_types/decoder/tests.d.ts.map +1 -1
  250. package/_types/explorers/definitions/blockscout.d.ts +34 -79
  251. package/_types/explorers/definitions/blockscout.d.ts.map +1 -1
  252. package/_types/explorers/definitions/defineExplorer.d.ts.map +1 -1
  253. package/_types/explorers/definitions/etherscan.d.ts +34 -79
  254. package/_types/explorers/definitions/etherscan.d.ts.map +1 -1
  255. package/_types/explorers/definitions/roninExplorer.d.ts +34 -79
  256. package/_types/explorers/definitions/roninExplorer.d.ts.map +1 -1
  257. package/_types/explorers/definitions/routescan.d.ts.map +1 -1
  258. package/_types/explorers/externals/blockscout/getBlockNumberOfTimestamp.d.ts.map +1 -1
  259. package/_types/explorers/externals/blockscout/getContractByAddress.d.ts.map +1 -1
  260. package/_types/explorers/externals/blockscout/getContractCreations.d.ts.map +1 -1
  261. package/_types/explorers/externals/blockscout/getEventLogsByAddressAndTopics.d.ts.map +1 -1
  262. package/_types/explorers/externals/blockscout/getInternalTransactionsByAddress.d.ts.map +1 -1
  263. package/_types/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.d.ts.map +1 -1
  264. package/_types/explorers/externals/blockscout/getNormalTransactionsByAddress.d.ts.map +1 -1
  265. package/_types/explorers/externals/blockscout/getTokenTransfersByAddress.d.ts.map +1 -1
  266. package/_types/explorers/externals/blockscout/middleware.d.ts.map +1 -1
  267. package/_types/explorers/externals/defillama/getBlockNumberOfTimestamp.d.ts.map +1 -1
  268. package/_types/explorers/externals/etherscan/getBlockNumberOfTimestamp.d.ts.map +1 -1
  269. package/_types/explorers/externals/etherscan/getContractByAddress.d.ts.map +1 -1
  270. package/_types/explorers/externals/etherscan/getContractCreations.d.ts.map +1 -1
  271. package/_types/explorers/externals/etherscan/getErc1155TokenTransfersByAddress.d.ts.map +1 -1
  272. package/_types/explorers/externals/etherscan/getErc20TokenTransfersByAddress.d.ts.map +1 -1
  273. package/_types/explorers/externals/etherscan/getErc721TokenTransfersByAddress.d.ts.map +1 -1
  274. package/_types/explorers/externals/etherscan/getEventLogsByAddressAndTopics.d.ts.map +1 -1
  275. package/_types/explorers/externals/etherscan/getInternalTransactionsByAddress.d.ts.map +1 -1
  276. package/_types/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.d.ts.map +1 -1
  277. package/_types/explorers/externals/etherscan/getNormalTransactionsByAddress.d.ts.map +1 -1
  278. package/_types/explorers/externals/etherscan/middleware.d.ts.map +1 -1
  279. package/_types/explorers/externals/roninExplorer/getInternalTransactionByHash.d.ts.map +1 -1
  280. package/_types/explorers/externals/roninExplorer/getNormalTransactionsByAddress.d.ts.map +1 -1
  281. package/_types/explorers/externals/roninExplorer/getTokenTransfersByAddress.d.ts.map +1 -1
  282. package/_types/explorers/externals/roninExplorer/middleware.d.ts.map +1 -1
  283. package/_types/getContractAbi.d.ts.map +1 -1
  284. package/_types/getTransactionDetail.d.ts.map +1 -1
  285. package/_types/index.d.ts +1 -1
  286. package/_types/index.d.ts.map +1 -1
  287. package/_types/tests.d.ts +5 -1
  288. package/_types/tests.d.ts.map +1 -1
  289. package/_types/types/hex.d.ts +1 -1
  290. package/_types/types/hex.d.ts.map +1 -1
  291. package/_types/types/transaction.d.ts +1 -1
  292. package/_types/types/transaction.d.ts.map +1 -1
  293. package/_types/utils/create.d.ts +3 -3
  294. package/_types/utils/create.d.ts.map +1 -1
  295. package/_types/utils/types.d.ts.map +1 -1
  296. package/analyzer/analyze.ts +32 -8
  297. package/analyzer/axieMarketplace/analyze.ts +2 -2
  298. package/analyzer/index.ts +1 -0
  299. package/analyzer/json/analyze.ts +37 -39
  300. package/analyzer/json/components/comment.ts +4 -2
  301. package/analyzer/json/components/erc1155.ts +6 -6
  302. package/analyzer/json/components/erc20.ts +6 -6
  303. package/analyzer/json/components/erc721.ts +4 -5
  304. package/analyzer/json/components/id.ts +4 -2
  305. package/analyzer/json/components/internal.ts +6 -6
  306. package/analyzer/json/components/logArgument.ts +16 -17
  307. package/analyzer/json/components/targetAsset.ts +1 -1
  308. package/analyzer/json/components/transfer.ts +6 -5
  309. package/analyzer/json/condition/address.ts +1 -1
  310. package/analyzer/json/condition/value.ts +8 -6
  311. package/analyzer/json/generator.ts +2 -2
  312. package/analyzer/json/schemas/generator.ts +6 -2
  313. package/analyzer/json/types.ts +3 -3
  314. package/analyzer/parsers/transfer.ts +1 -1
  315. package/analyzer/seaport/analyze.ts +136 -137
  316. package/analyzer/spam/analyze.ts +1 -1
  317. package/analyzer/swap/analyze.ts +6 -6
  318. package/analyzer/swap/traderJoeLBPairSwap.ts +0 -1
  319. package/analyzer/transfer/analyze.ts +11 -116
  320. package/analyzer/utils/createTransfersByTransaction.ts +89 -0
  321. package/clients/externals/viem/createViemInstance.ts +4 -3
  322. package/clients/externals/viem/middleware.ts +6 -7
  323. package/decoder/decode.ts +7 -5
  324. package/decoder/parseErc1155TransferSingleLogs.ts +3 -3
  325. package/decoder/parseErc20TransferLogs.ts +2 -2
  326. package/decoder/parseErc721TransferLogs.ts +3 -3
  327. package/decoder/tests.ts +2 -2
  328. package/explorers/definitions/etherscan.ts +1 -1
  329. package/explorers/externals/blockscout/getInternalTransactionsByAddress.ts +1 -1
  330. package/explorers/externals/blockscout/getInternalTransactionsByTransactionHash.ts +1 -1
  331. package/explorers/externals/etherscan/getInternalTransactionsByAddress.ts +1 -1
  332. package/explorers/externals/etherscan/getInternalTransactionsByTransactionHash.ts +1 -1
  333. package/index.ts +1 -0
  334. package/package.json +3 -5
  335. package/tests.ts +9 -1
  336. package/types/transaction.ts +1 -1
  337. package/utils/create.ts +1 -1
  338. package/utils/types.ts +0 -1
@@ -0,0 +1,89 @@
1
+ import type { CryptoCurrencyPrice, Transfer } from '@0xtorch/core'
2
+ import type { Chain } from '../../chains'
3
+ import type { TransactionDecoded } from '../../types'
4
+ import {
5
+ parseErc20TransferToActionTransferNone,
6
+ parseErc721TransferToActionTransferNone,
7
+ parseErc1155TransferToActionTransferNone,
8
+ parseInternalTransactionToActionTransferNone,
9
+ parseTransactionValueToActionTransferNone,
10
+ } from '../parsers/transfer'
11
+
12
+ export const createTransfersByTransaction = <
13
+ Price extends CryptoCurrencyPrice | undefined,
14
+ >(
15
+ chain: Chain,
16
+ transaction: TransactionDecoded<Price>,
17
+ ): readonly Transfer[] => {
18
+ const {
19
+ to,
20
+ value,
21
+ internalTransactions,
22
+ erc20Transfers,
23
+ erc721Transfers,
24
+ erc1155Transfers,
25
+ } = transaction
26
+
27
+ const mut_transfers: Transfer[] = []
28
+
29
+ // value
30
+ if (value > 0 && to !== null) {
31
+ mut_transfers.push(
32
+ parseTransactionValueToActionTransferNone({ chain, transaction }),
33
+ )
34
+ }
35
+
36
+ // internal transaction
37
+ for (const internalTransaction of internalTransactions.filter(
38
+ ({ value }) => value > 0,
39
+ )) {
40
+ if (internalTransaction.to === undefined) {
41
+ continue
42
+ }
43
+ mut_transfers.push(
44
+ parseInternalTransactionToActionTransferNone({
45
+ chain,
46
+ internalTransaction,
47
+ }),
48
+ )
49
+ }
50
+
51
+ // ERC20,721,1155 transfer
52
+ for (const transfer of [
53
+ ...erc20Transfers,
54
+ ...erc721Transfers,
55
+ ...erc1155Transfers,
56
+ ].sort((a, b) => a.logIndex - b.logIndex)) {
57
+ switch (transfer.type) {
58
+ case 'Erc20Transfer': {
59
+ mut_transfers.push(
60
+ parseErc20TransferToActionTransferNone({
61
+ chainId: chain.id,
62
+ transfer,
63
+ }),
64
+ )
65
+ break
66
+ }
67
+ case 'Erc721Transfer': {
68
+ mut_transfers.push(
69
+ parseErc721TransferToActionTransferNone({
70
+ chainId: chain.id,
71
+ transfer,
72
+ }),
73
+ )
74
+ break
75
+ }
76
+ case 'Erc1155Transfer': {
77
+ mut_transfers.push(
78
+ parseErc1155TransferToActionTransferNone({
79
+ chainId: chain.id,
80
+ transfer,
81
+ }),
82
+ )
83
+ break
84
+ }
85
+ }
86
+ }
87
+
88
+ return mut_transfers
89
+ }
@@ -1,11 +1,11 @@
1
1
  import type { AbiEvent } from 'abitype'
2
2
  import type { Chain, GetLogsReturnType, PublicClient } from 'viem'
3
3
  import {
4
+ http,
4
5
  HttpRequestError,
5
6
  InvalidInputRpcError,
6
7
  TransactionReceiptNotFoundError,
7
8
  createPublicClient,
8
- http,
9
9
  } from 'viem'
10
10
  import type { HttpRpc } from '../../../chains'
11
11
  import type { LowerHex } from '../../../types'
@@ -39,7 +39,7 @@ export const createViemInstance = (() => {
39
39
  endpointChainIds.get(endpoint) === chainId &&
40
40
  !busyEndpoints.has(endpoint) &&
41
41
  (!cooldownEndpoints.has(endpoint) ||
42
- cooldownEndpoints.get(endpoint)! <= now) &&
42
+ (cooldownEndpoints.get(endpoint) ?? 0) <= now) &&
43
43
  (rpcCondition?.isArchive !== true ||
44
44
  endpointIsArchives.get(endpoint) === true) &&
45
45
  (rpcCondition?.getLogsIsUsable !== true ||
@@ -91,7 +91,8 @@ export const createViemInstance = (() => {
91
91
  console.debug(error)
92
92
  cooldownEndpoint(endpoint)
93
93
  return await call(chain, caller, timeout - (Date.now() - start))
94
- } else if (
94
+ }
95
+ if (
95
96
  error instanceof TransactionReceiptNotFoundError ||
96
97
  error instanceof HttpRequestError ||
97
98
  error instanceof InvalidInputRpcError
@@ -7,10 +7,10 @@ import type {
7
7
  Chain as ViemChain,
8
8
  } from 'viem'
9
9
  import {
10
+ http,
10
11
  CallExecutionError,
11
12
  ContractFunctionExecutionError,
12
13
  createPublicClient,
13
- http,
14
14
  } from 'viem'
15
15
  import type { HttpRpc } from '../../../chains'
16
16
  import type { LowerHex } from '../../../types'
@@ -191,13 +191,12 @@ const selectAvailableRpc = (
191
191
  )
192
192
  if (availableRpcs.length === 0) {
193
193
  return undefined
194
- } else if (onlyGetLogsIsUsable) {
195
- return availableRpcs.toSorted((a, b) =>
196
- Number(b.rpc.getLogsMaxBlockRange - a.rpc.getLogsMaxBlockRange),
197
- )[0].rpc
198
- } else {
199
- return availableRpcs[0].rpc
200
194
  }
195
+ return onlyGetLogsIsUsable
196
+ ? availableRpcs.toSorted((a, b) =>
197
+ Number(b.rpc.getLogsMaxBlockRange - a.rpc.getLogsMaxBlockRange),
198
+ )[0].rpc
199
+ : availableRpcs[0].rpc
201
200
  }
202
201
 
203
202
  type PublicClient = ReturnType<typeof createPublicClient>
package/decoder/decode.ts CHANGED
@@ -8,14 +8,14 @@ import {
8
8
  zeroAddress,
9
9
  } from 'viem'
10
10
  import { z } from 'zod'
11
- import { erc1155Abi, erc20Abi, erc721Abi, wethAbi } from '../abis'
11
+ import { erc20Abi, erc721Abi, erc1155Abi, wethAbi } from '../abis'
12
12
  import type { Chain } from '../chains'
13
13
  import type {
14
- Erc1155Transfer,
15
14
  Erc20Token,
16
15
  Erc20Transfer,
17
16
  Erc721Token,
18
17
  Erc721Transfer,
18
+ Erc1155Transfer,
19
19
  Hex,
20
20
  InputData,
21
21
  LogData,
@@ -24,9 +24,9 @@ import type {
24
24
  } from '../types'
25
25
  import { parsedLogSchema, toLowerHex } from '../types'
26
26
  import { checkTimeout, createErc1155NftId, createEvmCurrencyId } from '../utils'
27
- import { parseErc1155TransferSingleLogs } from './parseErc1155TransferSingleLogs'
28
27
  import { parseErc20TransferLogs } from './parseErc20TransferLogs'
29
28
  import { parseErc721TransferLogs } from './parseErc721TransferLogs'
29
+ import { parseErc1155TransferSingleLogs } from './parseErc1155TransferSingleLogs'
30
30
  import type { Decode } from './types'
31
31
 
32
32
  export const decode: Decode = async (
@@ -132,6 +132,7 @@ export const decode: Decode = async (
132
132
  .map((transfer) => ({
133
133
  type: transfer.type,
134
134
  logIndex: transfer.logIndex,
135
+ // biome-ignore lint/style/noNonNullAssertion: <explanation>
135
136
  token: erc20Tokens.find(
136
137
  (token) => token?.contractAddress === transfer.contractAddress,
137
138
  )!,
@@ -149,6 +150,7 @@ export const decode: Decode = async (
149
150
  .map((transfer) => ({
150
151
  type: transfer.type,
151
152
  logIndex: transfer.logIndex,
153
+ // biome-ignore lint/style/noNonNullAssertion: <explanation>
152
154
  token: erc721Tokens.find(
153
155
  (token) => token?.contractAddress === transfer.contractAddress,
154
156
  )!,
@@ -518,8 +520,8 @@ const getErc20Token = async (
518
520
  ? undefined
519
521
  : coingeckoCoins.find(
520
522
  ({ platforms }) =>
521
- platforms[chain.coingeckoId!] !== undefined &&
522
- platforms[chain.coingeckoId!].toLowerCase() === address,
523
+ platforms[chain.coingeckoId ?? ''] !== undefined &&
524
+ platforms[chain.coingeckoId ?? ''].toLowerCase() === address,
523
525
  )
524
526
 
525
527
  return {
@@ -24,13 +24,13 @@ export const parseErc1155TransferSingleLogs = (
24
24
  .map((log) => {
25
25
  const id = BigInt(log.data.slice(0, 66))
26
26
  return {
27
- type: 'Erc1155Transfer',
27
+ type: 'Erc1155Transfer' as const,
28
28
  logIndex: log.logIndex,
29
29
  token: {
30
30
  contractAddress: toLowerHex(log.address),
31
31
  },
32
- from: toLowerHex(`0x${log.topics[2]!.slice(26)}`),
33
- to: toLowerHex(`0x${log.topics[3]!.slice(26)}`),
32
+ from: toLowerHex(`0x${log.topics[2]?.slice(26) ?? ''}`),
33
+ to: toLowerHex(`0x${log.topics[3]?.slice(26) ?? ''}`),
34
34
  id,
35
35
  value: BigInt(`0x${log.data.slice(66, 130)}`),
36
36
  nft: {
@@ -27,8 +27,8 @@ export const parseErc20TransferLogs = (
27
27
  type: 'Erc20Transfer',
28
28
  logIndex: log.logIndex,
29
29
  contractAddress: toLowerHex(log.address),
30
- from: toLowerHex(`0x${log.topics[1]!.slice(26)}`),
31
- to: toLowerHex(`0x${log.topics[2]!.slice(26)}`),
30
+ from: toLowerHex(`0x${log.topics[1]?.slice(26) ?? ''}`),
31
+ to: toLowerHex(`0x${log.topics[2]?.slice(26) ?? ''}`),
32
32
  value: BigInt(log.data),
33
33
  price: undefined,
34
34
  }),
@@ -25,13 +25,13 @@ export const parseErc721TransferLogs = (
25
25
  log.data === '0x',
26
26
  )
27
27
  .map((log): Erc721TransferLog => {
28
- const tokenId = BigInt(log.topics[3]!)
28
+ const tokenId = BigInt(log.topics[3] ?? '0x0')
29
29
  return {
30
30
  type: 'Erc721Transfer',
31
31
  logIndex: log.logIndex,
32
32
  contractAddress: toLowerHex(log.address),
33
- from: toLowerHex(`0x${log.topics[1]!.slice(26)}`),
34
- to: toLowerHex(`0x${log.topics[2]!.slice(26)}`),
33
+ from: toLowerHex(`0x${log.topics[1]?.slice(26) ?? ''}`),
34
+ to: toLowerHex(`0x${log.topics[2]?.slice(26) ?? ''}`),
35
35
  tokenId,
36
36
  nft: {
37
37
  type: 'Nft',
package/decoder/tests.ts CHANGED
@@ -64,7 +64,8 @@ const testExplorer: Explorer = {
64
64
  name: 'UniswapV2Router02',
65
65
  abi: '[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]',
66
66
  }
67
- } else if (lowerAddress === '0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852') {
67
+ }
68
+ if (lowerAddress === '0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852') {
68
69
  return {
69
70
  name: 'UniswapV2Pair',
70
71
  abi: '[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]',
@@ -123,7 +124,6 @@ export const testTxSwapExactETHForTokens = {
123
124
  value: 1_000_000_000_000_000_000n,
124
125
  yParity: 1,
125
126
  typeHex: '0x2',
126
- // eslint-disable-next-line unicorn/no-null
127
127
  contractAddress: null,
128
128
  cumulativeGasUsed: 4_139_478n,
129
129
  effectiveGasPrice: 36_097_044_253n,
@@ -4,9 +4,9 @@ import {
4
4
  getContractCreations as apiGetContractCreations,
5
5
  getBlockNumberOfTimestamp,
6
6
  getContractByAddress,
7
- getErc1155TokenTransfersByAddress,
8
7
  getErc20TokenTransfersByAddress,
9
8
  getErc721TokenTransfersByAddress,
9
+ getErc1155TokenTransfersByAddress,
10
10
  getEventLogsByAddressAndTopics,
11
11
  getInternalTransactionsByAddress,
12
12
  getInternalTransactionsByTransactionHash,
@@ -41,7 +41,7 @@ const transactionSchema = z.object({
41
41
  isError: z
42
42
  .string()
43
43
  .regex(/^\d+$/)
44
- .transform((x) => (x === '1' ? true : false)),
44
+ .transform((x) => x === '1'),
45
45
  errCode: z.string(),
46
46
  })
47
47
  const responseSchema = z.object({
@@ -29,7 +29,7 @@ const transactionSchema = z.object({
29
29
  isError: z
30
30
  .string()
31
31
  .regex(/^\d+$/)
32
- .transform((x) => (x === '1' ? true : false)),
32
+ .transform((x) => x === '1'),
33
33
  errCode: z.string(),
34
34
  })
35
35
  const responseSchema = z.object({
@@ -39,7 +39,7 @@ const transactionSchema = z.object({
39
39
  isError: z
40
40
  .string()
41
41
  .regex(/^\d+$/)
42
- .transform((x) => (x === '1' ? true : false)),
42
+ .transform((x) => x === '1'),
43
43
  errCode: z.string(),
44
44
  })
45
45
  const responseSchema = z.object({
@@ -30,7 +30,7 @@ const transactionSchema = z.object({
30
30
  isError: z
31
31
  .string()
32
32
  .regex(/^\d+$/)
33
- .transform((x) => (x === '1' ? true : false)),
33
+ .transform((x) => x === '1'),
34
34
  errCode: z.string(),
35
35
  })
36
36
  const responseSchema = z.object({
package/index.ts CHANGED
@@ -8,6 +8,7 @@ export {
8
8
  analyzeTransfer,
9
9
  analyzer,
10
10
  createAnalyzeByJsonRule,
11
+ createTransfersByTransaction,
11
12
  evmAnalyzersSchema,
12
13
  } from './analyzer'
13
14
  export type { AnalyzeParameters, AnalyzeReturnType, Analyzer } from './analyzer'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/evm",
3
- "version": "0.0.59",
3
+ "version": "0.0.61",
4
4
  "description": "Cryptorch EVM extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -38,12 +38,10 @@
38
38
  ],
39
39
  "dependencies": {
40
40
  "@0xtorch/big-decimal": "^0.0.10",
41
- "@0xtorch/core": "^0.0.34",
41
+ "@0xtorch/core": "^0.0.36",
42
42
  "@supercharge/promise-pool": "^3.1.1",
43
+ "abitype": "^1.0.6",
43
44
  "viem": "^2.17.3",
44
45
  "zod": "^3.23.8"
45
- },
46
- "peerDependencies": {
47
- "typescript": "^5.3.3"
48
46
  }
49
47
  }
package/tests.ts CHANGED
@@ -1 +1,9 @@
1
- export const isIntegrationTest = process.env.INTEGRATION_TEST === 'true'
1
+ export const IS_SMALL_TEST = (process.env.TEST_SIZE ?? '').includes('S')
2
+
3
+ export const IS_MEDIUM_TEST = (process.env.TEST_SIZE ?? '').includes('M')
4
+
5
+ export const IS_LARGE_TEST = (process.env.TEST_SIZE ?? '').includes('L')
6
+
7
+ export const IS_END_TO_END_TEST = (process.env.TEST_SIZE ?? '').includes('E')
8
+
9
+ export const IS_RPC_TEST = process.env.TEST_TARGET === 'RPC'
@@ -6,9 +6,9 @@ import type {
6
6
  } from '@0xtorch/core'
7
7
  import type { Block, BlockTag, Transaction, TransactionReceipt } from 'viem'
8
8
  import type { Prettify } from '../utils'
9
- import type { Erc1155Transfer } from './erc1155'
10
9
  import type { Erc20Transfer } from './erc20'
11
10
  import type { Erc721Transfer } from './erc721'
11
+ import type { Erc1155Transfer } from './erc1155'
12
12
  import type { LowerHex } from './hex'
13
13
  import type { InputFunction } from './input'
14
14
  import type { InternalTransaction } from './internalTransaction'
package/utils/create.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Erc1155NftId, Erc721NftId, Hex, LowerHex } from '../types'
1
+ import type { Erc721NftId, Erc1155NftId, Hex, LowerHex } from '../types'
2
2
  import { isHex, toLowerHex } from '../types'
3
3
 
4
4
  type CreateEvmAddressIdParameters = {
package/utils/types.ts CHANGED
@@ -8,5 +8,4 @@
8
8
  */
9
9
  export type Prettify<T> = {
10
10
  [K in keyof T]: T[K]
11
- // eslint-disable-next-line @typescript-eslint/ban-types
12
11
  } & {}