@0xtorch/evm 0.0.11 → 0.0.12

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 (410) hide show
  1. package/.DS_Store +0 -0
  2. package/_cjs/analyzer/analyze.js.map +1 -1
  3. package/_cjs/analyzer/axieMarketplace/analyze.js +37 -130
  4. package/_cjs/analyzer/axieMarketplace/analyze.js.map +1 -1
  5. package/_cjs/analyzer/gasFee/analyze.js +22 -21
  6. package/_cjs/analyzer/gasFee/analyze.js.map +1 -1
  7. package/_cjs/analyzer/index.js +2 -1
  8. package/_cjs/analyzer/index.js.map +1 -1
  9. package/_cjs/analyzer/json/analyze.js +21 -29
  10. package/_cjs/analyzer/json/analyze.js.map +1 -1
  11. package/_cjs/analyzer/json/components/comment.js +47 -0
  12. package/_cjs/analyzer/json/components/comment.js.map +1 -0
  13. package/_cjs/analyzer/json/components/erc1155.js +93 -0
  14. package/_cjs/analyzer/json/components/erc1155.js.map +1 -0
  15. package/_cjs/analyzer/json/components/erc1155Raw.js +31 -0
  16. package/_cjs/analyzer/json/components/erc1155Raw.js.map +1 -0
  17. package/_cjs/analyzer/json/components/erc20.js +90 -0
  18. package/_cjs/analyzer/json/components/erc20.js.map +1 -0
  19. package/_cjs/analyzer/json/components/erc20Raw.js +28 -0
  20. package/_cjs/analyzer/json/components/erc20Raw.js.map +1 -0
  21. package/_cjs/analyzer/json/components/erc721.js +78 -0
  22. package/_cjs/analyzer/json/components/erc721.js.map +1 -0
  23. package/_cjs/analyzer/json/components/erc721Raw.js +29 -0
  24. package/_cjs/analyzer/json/components/erc721Raw.js.map +1 -0
  25. package/_cjs/analyzer/json/components/id.js +47 -0
  26. package/_cjs/analyzer/json/components/id.js.map +1 -0
  27. package/_cjs/analyzer/json/components/internal.js +78 -0
  28. package/_cjs/analyzer/json/components/internal.js.map +1 -0
  29. package/_cjs/analyzer/json/components/internalRaw.js +26 -0
  30. package/_cjs/analyzer/json/components/internalRaw.js.map +1 -0
  31. package/_cjs/analyzer/json/components/logArgument.js +67 -0
  32. package/_cjs/analyzer/json/components/logArgument.js.map +1 -0
  33. package/_cjs/analyzer/json/components/logArgumentRaw.js +41 -0
  34. package/_cjs/analyzer/json/components/logArgumentRaw.js.map +1 -0
  35. package/_cjs/analyzer/json/components/transfer.js +435 -0
  36. package/_cjs/analyzer/json/components/transfer.js.map +1 -0
  37. package/_cjs/analyzer/json/condition/address.js +106 -0
  38. package/_cjs/analyzer/json/condition/address.js.map +1 -0
  39. package/_cjs/analyzer/json/condition/argumentValue.js +31 -0
  40. package/_cjs/analyzer/json/condition/argumentValue.js.map +1 -0
  41. package/_cjs/analyzer/json/condition/index.js +10 -0
  42. package/_cjs/analyzer/json/condition/index.js.map +1 -0
  43. package/_cjs/analyzer/json/condition/value.js +65 -0
  44. package/_cjs/analyzer/json/condition/value.js.map +1 -0
  45. package/_cjs/analyzer/json/generator.js +774 -0
  46. package/_cjs/analyzer/json/generator.js.map +1 -0
  47. package/_cjs/analyzer/json/index.js +3 -1
  48. package/_cjs/analyzer/json/index.js.map +1 -1
  49. package/_cjs/analyzer/json/schemas/generator.js +279 -0
  50. package/_cjs/analyzer/json/schemas/generator.js.map +1 -0
  51. package/_cjs/analyzer/json/schemas/index.js +303 -0
  52. package/_cjs/analyzer/json/schemas/index.js.map +1 -0
  53. package/_cjs/analyzer/json/schemas/utils.js +14 -0
  54. package/_cjs/analyzer/json/schemas/utils.js.map +1 -0
  55. package/_cjs/analyzer/parsers/transfer.js +149 -0
  56. package/_cjs/analyzer/parsers/transfer.js.map +1 -0
  57. package/_cjs/analyzer/seaport/analyze.js +165 -157
  58. package/_cjs/analyzer/seaport/analyze.js.map +1 -1
  59. package/_cjs/analyzer/spam/analyze.js +61 -90
  60. package/_cjs/analyzer/spam/analyze.js.map +1 -1
  61. package/_cjs/analyzer/swap/analyze.js +50 -75
  62. package/_cjs/analyzer/swap/analyze.js.map +1 -1
  63. package/_cjs/analyzer/transfer/analyze.js +37 -84
  64. package/_cjs/analyzer/transfer/analyze.js.map +1 -1
  65. package/_cjs/index.js +3 -2
  66. package/_cjs/index.js.map +1 -1
  67. package/_cjs/utils/create.js +28 -0
  68. package/_cjs/utils/create.js.map +1 -0
  69. package/_cjs/utils/index.js +3 -1
  70. package/_cjs/utils/index.js.map +1 -1
  71. package/_esm/analyzer/analyze.js.map +1 -1
  72. package/_esm/analyzer/axieMarketplace/analyze.js +37 -130
  73. package/_esm/analyzer/axieMarketplace/analyze.js.map +1 -1
  74. package/_esm/analyzer/gasFee/analyze.js +23 -21
  75. package/_esm/analyzer/gasFee/analyze.js.map +1 -1
  76. package/_esm/analyzer/index.js +1 -1
  77. package/_esm/analyzer/index.js.map +1 -1
  78. package/_esm/analyzer/json/analyze.js +22 -29
  79. package/_esm/analyzer/json/analyze.js.map +1 -1
  80. package/_esm/analyzer/json/components/comment.js +43 -0
  81. package/_esm/analyzer/json/components/comment.js.map +1 -0
  82. package/_esm/analyzer/json/components/erc1155.js +88 -0
  83. package/_esm/analyzer/json/components/erc1155.js.map +1 -0
  84. package/_esm/analyzer/json/components/erc1155Raw.js +27 -0
  85. package/_esm/analyzer/json/components/erc1155Raw.js.map +1 -0
  86. package/_esm/analyzer/json/components/erc20.js +85 -0
  87. package/_esm/analyzer/json/components/erc20.js.map +1 -0
  88. package/_esm/analyzer/json/components/erc20Raw.js +24 -0
  89. package/_esm/analyzer/json/components/erc20Raw.js.map +1 -0
  90. package/_esm/analyzer/json/components/erc721.js +73 -0
  91. package/_esm/analyzer/json/components/erc721.js.map +1 -0
  92. package/_esm/analyzer/json/components/erc721Raw.js +25 -0
  93. package/_esm/analyzer/json/components/erc721Raw.js.map +1 -0
  94. package/_esm/analyzer/json/components/id.js +43 -0
  95. package/_esm/analyzer/json/components/id.js.map +1 -0
  96. package/_esm/analyzer/json/components/internal.js +73 -0
  97. package/_esm/analyzer/json/components/internal.js.map +1 -0
  98. package/_esm/analyzer/json/components/internalRaw.js +22 -0
  99. package/_esm/analyzer/json/components/internalRaw.js.map +1 -0
  100. package/_esm/analyzer/json/components/logArgument.js +62 -0
  101. package/_esm/analyzer/json/components/logArgument.js.map +1 -0
  102. package/_esm/analyzer/json/components/logArgumentRaw.js +37 -0
  103. package/_esm/analyzer/json/components/logArgumentRaw.js.map +1 -0
  104. package/_esm/analyzer/json/components/transfer.js +431 -0
  105. package/_esm/analyzer/json/components/transfer.js.map +1 -0
  106. package/_esm/analyzer/json/condition/address.js +102 -0
  107. package/_esm/analyzer/json/condition/address.js.map +1 -0
  108. package/_esm/analyzer/json/condition/argumentValue.js +27 -0
  109. package/_esm/analyzer/json/condition/argumentValue.js.map +1 -0
  110. package/_esm/analyzer/json/condition/index.js +4 -0
  111. package/_esm/analyzer/json/condition/index.js.map +1 -0
  112. package/_esm/analyzer/json/condition/value.js +61 -0
  113. package/_esm/analyzer/json/condition/value.js.map +1 -0
  114. package/_esm/analyzer/json/generator.js +825 -0
  115. package/_esm/analyzer/json/generator.js.map +1 -0
  116. package/_esm/analyzer/json/index.js +1 -0
  117. package/_esm/analyzer/json/index.js.map +1 -1
  118. package/_esm/analyzer/json/schemas/generator.js +340 -0
  119. package/_esm/analyzer/json/schemas/generator.js.map +1 -0
  120. package/_esm/analyzer/json/schemas/index.js +299 -0
  121. package/_esm/analyzer/json/schemas/index.js.map +1 -0
  122. package/_esm/analyzer/json/schemas/utils.js +11 -0
  123. package/_esm/analyzer/json/schemas/utils.js.map +1 -0
  124. package/_esm/analyzer/parsers/transfer.js +129 -0
  125. package/_esm/analyzer/parsers/transfer.js.map +1 -0
  126. package/_esm/analyzer/seaport/analyze.js +166 -157
  127. package/_esm/analyzer/seaport/analyze.js.map +1 -1
  128. package/_esm/analyzer/spam/analyze.js +62 -92
  129. package/_esm/analyzer/spam/analyze.js.map +1 -1
  130. package/_esm/analyzer/swap/analyze.js +51 -75
  131. package/_esm/analyzer/swap/analyze.js.map +1 -1
  132. package/_esm/analyzer/transfer/analyze.js +38 -86
  133. package/_esm/analyzer/transfer/analyze.js.map +1 -1
  134. package/_esm/index.js +1 -1
  135. package/_esm/index.js.map +1 -1
  136. package/_esm/utils/create.js +21 -0
  137. package/_esm/utils/create.js.map +1 -0
  138. package/_esm/utils/index.js +1 -0
  139. package/_esm/utils/index.js.map +1 -1
  140. package/_types/analyzer/analyze.d.ts +11 -16
  141. package/_types/analyzer/analyze.d.ts.map +1 -1
  142. package/_types/analyzer/analyzer.d.ts +9 -1
  143. package/_types/analyzer/analyzer.d.ts.map +1 -1
  144. package/_types/analyzer/axieMarketplace/analyze.d.ts +9 -2
  145. package/_types/analyzer/axieMarketplace/analyze.d.ts.map +1 -1
  146. package/_types/analyzer/gasFee/analyze.d.ts +9 -2
  147. package/_types/analyzer/gasFee/analyze.d.ts.map +1 -1
  148. package/_types/analyzer/index.d.ts +1 -1
  149. package/_types/analyzer/index.d.ts.map +1 -1
  150. package/_types/analyzer/json/analyze.d.ts +9 -2
  151. package/_types/analyzer/json/analyze.d.ts.map +1 -1
  152. package/_types/analyzer/json/components/comment.d.ts +20 -0
  153. package/_types/analyzer/json/components/comment.d.ts.map +1 -0
  154. package/_types/analyzer/json/components/erc1155.d.ts +32 -0
  155. package/_types/analyzer/json/components/erc1155.d.ts.map +1 -0
  156. package/_types/analyzer/json/components/erc1155Raw.d.ts +18 -0
  157. package/_types/analyzer/json/components/erc1155Raw.d.ts.map +1 -0
  158. package/_types/analyzer/json/components/erc20.d.ts +32 -0
  159. package/_types/analyzer/json/components/erc20.d.ts.map +1 -0
  160. package/_types/analyzer/json/components/erc20Raw.d.ts +18 -0
  161. package/_types/analyzer/json/components/erc20Raw.d.ts.map +1 -0
  162. package/_types/analyzer/json/components/erc721.d.ts +32 -0
  163. package/_types/analyzer/json/components/erc721.d.ts.map +1 -0
  164. package/_types/analyzer/json/components/erc721Raw.d.ts +18 -0
  165. package/_types/analyzer/json/components/erc721Raw.d.ts.map +1 -0
  166. package/_types/analyzer/json/components/id.d.ts +20 -0
  167. package/_types/analyzer/json/components/id.d.ts.map +1 -0
  168. package/_types/analyzer/json/components/internal.d.ts +32 -0
  169. package/_types/analyzer/json/components/internal.d.ts.map +1 -0
  170. package/_types/analyzer/json/components/internalRaw.d.ts +18 -0
  171. package/_types/analyzer/json/components/internalRaw.d.ts.map +1 -0
  172. package/_types/analyzer/json/components/logArgument.d.ts +32 -0
  173. package/_types/analyzer/json/components/logArgument.d.ts.map +1 -0
  174. package/_types/analyzer/json/components/logArgumentRaw.d.ts +18 -0
  175. package/_types/analyzer/json/components/logArgumentRaw.d.ts.map +1 -0
  176. package/_types/analyzer/json/components/transfer.d.ts +20 -0
  177. package/_types/analyzer/json/components/transfer.d.ts.map +1 -0
  178. package/_types/analyzer/json/condition/address.d.ts +18 -0
  179. package/_types/analyzer/json/condition/address.d.ts.map +1 -0
  180. package/_types/analyzer/json/condition/argumentValue.d.ts +18 -0
  181. package/_types/analyzer/json/condition/argumentValue.d.ts.map +1 -0
  182. package/_types/analyzer/json/condition/index.d.ts +4 -0
  183. package/_types/analyzer/json/condition/index.d.ts.map +1 -0
  184. package/_types/analyzer/json/condition/value.d.ts +18 -0
  185. package/_types/analyzer/json/condition/value.d.ts.map +1 -0
  186. package/_types/analyzer/json/generator.d.ts +20 -0
  187. package/_types/analyzer/json/generator.d.ts.map +1 -0
  188. package/_types/analyzer/json/index.d.ts +1 -0
  189. package/_types/analyzer/json/index.d.ts.map +1 -1
  190. package/_types/analyzer/json/schemas/generator.d.ts +56942 -0
  191. package/_types/analyzer/json/schemas/generator.d.ts.map +1 -0
  192. package/_types/analyzer/json/schemas/index.d.ts +1348 -0
  193. package/_types/analyzer/json/schemas/index.d.ts.map +1 -0
  194. package/_types/analyzer/json/schemas/utils.d.ts +4 -0
  195. package/_types/analyzer/json/schemas/utils.d.ts.map +1 -0
  196. package/_types/analyzer/json/types.d.ts +42 -172
  197. package/_types/analyzer/json/types.d.ts.map +1 -1
  198. package/_types/analyzer/parsers/transfer.d.ts +46 -0
  199. package/_types/analyzer/parsers/transfer.d.ts.map +1 -0
  200. package/_types/analyzer/seaport/analyze.d.ts +9 -2
  201. package/_types/analyzer/seaport/analyze.d.ts.map +1 -1
  202. package/_types/analyzer/seaport/orderFulfilled.d.ts +8 -8
  203. package/_types/analyzer/spam/analyze.d.ts +9 -2
  204. package/_types/analyzer/spam/analyze.d.ts.map +1 -1
  205. package/_types/analyzer/swap/analyze.d.ts +9 -2
  206. package/_types/analyzer/swap/analyze.d.ts.map +1 -1
  207. package/_types/analyzer/transfer/analyze.d.ts +9 -2
  208. package/_types/analyzer/transfer/analyze.d.ts.map +1 -1
  209. package/_types/analyzer/types.d.ts +6 -6
  210. package/_types/analyzer/types.d.ts.map +1 -1
  211. package/_types/decoder/tests.d.ts +2 -2
  212. package/_types/explorers/definitions/blockscout.d.ts +60 -4
  213. package/_types/explorers/definitions/blockscout.d.ts.map +1 -1
  214. package/_types/explorers/definitions/etherscan.d.ts +60 -4
  215. package/_types/explorers/definitions/etherscan.d.ts.map +1 -1
  216. package/_types/explorers/definitions/roninExplorer.d.ts +60 -4
  217. package/_types/explorers/definitions/roninExplorer.d.ts.map +1 -1
  218. package/_types/explorers/externals/blockscout/getInternalTransactionsByAddress.d.ts +2 -2
  219. package/_types/getAccountsTransactionFulls/getAccountsTransactionFulls.d.ts +9 -1
  220. package/_types/getAccountsTransactionFulls/getAccountsTransactionFulls.d.ts.map +1 -1
  221. package/_types/getTransactionFull/getTransactionFull.d.ts +9 -1
  222. package/_types/getTransactionFull/getTransactionFull.d.ts.map +1 -1
  223. package/_types/index.d.ts +1 -1
  224. package/_types/index.d.ts.map +1 -1
  225. package/_types/types/log.d.ts +6 -6
  226. package/_types/types/transaction.d.ts +3 -4
  227. package/_types/types/transaction.d.ts.map +1 -1
  228. package/_types/utils/create.d.ts +23 -0
  229. package/_types/utils/create.d.ts.map +1 -0
  230. package/_types/utils/index.d.ts +1 -0
  231. package/_types/utils/index.d.ts.map +1 -1
  232. package/analyzer/analyze.ts +6 -30
  233. package/analyzer/axieMarketplace/analyze.ts +67 -150
  234. package/analyzer/gasFee/analyze.ts +29 -36
  235. package/analyzer/index.ts +1 -1
  236. package/analyzer/json/analyze.ts +32 -53
  237. package/analyzer/json/components/comment.ts +62 -0
  238. package/analyzer/json/components/erc1155.ts +132 -0
  239. package/analyzer/json/components/erc1155Raw.ts +46 -0
  240. package/analyzer/json/components/erc20.ts +129 -0
  241. package/analyzer/json/components/erc20Raw.ts +43 -0
  242. package/analyzer/json/components/erc721.ts +117 -0
  243. package/analyzer/json/components/erc721Raw.ts +46 -0
  244. package/analyzer/json/components/id.ts +62 -0
  245. package/analyzer/json/components/internal.ts +117 -0
  246. package/analyzer/json/components/internalRaw.ts +39 -0
  247. package/analyzer/json/components/logArgument.ts +99 -0
  248. package/analyzer/json/components/logArgumentRaw.ts +57 -0
  249. package/analyzer/json/components/transfer.ts +531 -0
  250. package/analyzer/json/condition/address.ts +124 -0
  251. package/analyzer/json/condition/argumentValue.ts +43 -0
  252. package/analyzer/json/condition/index.ts +3 -0
  253. package/analyzer/json/condition/value.ts +76 -0
  254. package/analyzer/json/generator.ts +1166 -0
  255. package/analyzer/json/index.ts +1 -0
  256. package/analyzer/json/schemas/generator.ts +387 -0
  257. package/analyzer/json/schemas/index.ts +363 -0
  258. package/analyzer/json/schemas/utils.ts +12 -0
  259. package/analyzer/json/types.ts +111 -207
  260. package/analyzer/parsers/transfer.ts +301 -0
  261. package/analyzer/seaport/analyze.ts +228 -195
  262. package/analyzer/spam/analyze.ts +79 -112
  263. package/analyzer/swap/analyze.ts +67 -101
  264. package/analyzer/transfer/analyze.ts +54 -100
  265. package/analyzer/types.ts +5 -21
  266. package/index.ts +1 -0
  267. package/package.json +2 -2
  268. package/types/transaction.ts +2 -14
  269. package/utils/create.ts +57 -0
  270. package/utils/index.ts +1 -0
  271. package/_cjs/analyzer/createAccountActionByAction/addLiquidity.js +0 -28
  272. package/_cjs/analyzer/createAccountActionByAction/addLiquidity.js.map +0 -1
  273. package/_cjs/analyzer/createAccountActionByAction/atomicArbitrage.js +0 -79
  274. package/_cjs/analyzer/createAccountActionByAction/atomicArbitrage.js.map +0 -1
  275. package/_cjs/analyzer/createAccountActionByAction/bridgeFrom.js +0 -38
  276. package/_cjs/analyzer/createAccountActionByAction/bridgeFrom.js.map +0 -1
  277. package/_cjs/analyzer/createAccountActionByAction/bridgeTo.js +0 -38
  278. package/_cjs/analyzer/createAccountActionByAction/bridgeTo.js.map +0 -1
  279. package/_cjs/analyzer/createAccountActionByAction/buyNft.js +0 -59
  280. package/_cjs/analyzer/createAccountActionByAction/buyNft.js.map +0 -1
  281. package/_cjs/analyzer/createAccountActionByAction/createAccountActionByAction.js +0 -69
  282. package/_cjs/analyzer/createAccountActionByAction/createAccountActionByAction.js.map +0 -1
  283. package/_cjs/analyzer/createAccountActionByAction/deposit.js +0 -41
  284. package/_cjs/analyzer/createAccountActionByAction/deposit.js.map +0 -1
  285. package/_cjs/analyzer/createAccountActionByAction/depositWithBond.js +0 -28
  286. package/_cjs/analyzer/createAccountActionByAction/depositWithBond.js.map +0 -1
  287. package/_cjs/analyzer/createAccountActionByAction/freeMintNft.js +0 -32
  288. package/_cjs/analyzer/createAccountActionByAction/freeMintNft.js.map +0 -1
  289. package/_cjs/analyzer/createAccountActionByAction/index.js +0 -6
  290. package/_cjs/analyzer/createAccountActionByAction/index.js.map +0 -1
  291. package/_cjs/analyzer/createAccountActionByAction/removeLiquidity.js +0 -28
  292. package/_cjs/analyzer/createAccountActionByAction/removeLiquidity.js.map +0 -1
  293. package/_cjs/analyzer/createAccountActionByAction/spam.js +0 -58
  294. package/_cjs/analyzer/createAccountActionByAction/spam.js.map +0 -1
  295. package/_cjs/analyzer/createAccountActionByAction/trade.js +0 -59
  296. package/_cjs/analyzer/createAccountActionByAction/trade.js.map +0 -1
  297. package/_cjs/analyzer/createAccountActionByAction/transactionFee.js +0 -29
  298. package/_cjs/analyzer/createAccountActionByAction/transactionFee.js.map +0 -1
  299. package/_cjs/analyzer/createAccountActionByAction/transfer.js +0 -74
  300. package/_cjs/analyzer/createAccountActionByAction/transfer.js.map +0 -1
  301. package/_cjs/analyzer/createAccountActionByAction/withdraw.js +0 -38
  302. package/_cjs/analyzer/createAccountActionByAction/withdraw.js.map +0 -1
  303. package/_cjs/analyzer/createAccountActionByAction/withdrawWithBond.js +0 -28
  304. package/_cjs/analyzer/createAccountActionByAction/withdrawWithBond.js.map +0 -1
  305. package/_cjs/analyzer/json/generatorAnyLog.js +0 -163
  306. package/_cjs/analyzer/json/generatorAnyLog.js.map +0 -1
  307. package/_cjs/analyzer/json/generatorAnyTokenTransfer.js +0 -102
  308. package/_cjs/analyzer/json/generatorAnyTokenTransfer.js.map +0 -1
  309. package/_cjs/analyzer/json/generatorSpecificTokenTransfer.js +0 -343
  310. package/_cjs/analyzer/json/generatorSpecificTokenTransfer.js.map +0 -1
  311. package/_esm/analyzer/createAccountActionByAction/addLiquidity.js +0 -24
  312. package/_esm/analyzer/createAccountActionByAction/addLiquidity.js.map +0 -1
  313. package/_esm/analyzer/createAccountActionByAction/atomicArbitrage.js +0 -79
  314. package/_esm/analyzer/createAccountActionByAction/atomicArbitrage.js.map +0 -1
  315. package/_esm/analyzer/createAccountActionByAction/bridgeFrom.js +0 -34
  316. package/_esm/analyzer/createAccountActionByAction/bridgeFrom.js.map +0 -1
  317. package/_esm/analyzer/createAccountActionByAction/bridgeTo.js +0 -34
  318. package/_esm/analyzer/createAccountActionByAction/bridgeTo.js.map +0 -1
  319. package/_esm/analyzer/createAccountActionByAction/buyNft.js +0 -59
  320. package/_esm/analyzer/createAccountActionByAction/buyNft.js.map +0 -1
  321. package/_esm/analyzer/createAccountActionByAction/createAccountActionByAction.js +0 -80
  322. package/_esm/analyzer/createAccountActionByAction/createAccountActionByAction.js.map +0 -1
  323. package/_esm/analyzer/createAccountActionByAction/deposit.js +0 -38
  324. package/_esm/analyzer/createAccountActionByAction/deposit.js.map +0 -1
  325. package/_esm/analyzer/createAccountActionByAction/depositWithBond.js +0 -24
  326. package/_esm/analyzer/createAccountActionByAction/depositWithBond.js.map +0 -1
  327. package/_esm/analyzer/createAccountActionByAction/freeMintNft.js +0 -28
  328. package/_esm/analyzer/createAccountActionByAction/freeMintNft.js.map +0 -1
  329. package/_esm/analyzer/createAccountActionByAction/index.js +0 -2
  330. package/_esm/analyzer/createAccountActionByAction/index.js.map +0 -1
  331. package/_esm/analyzer/createAccountActionByAction/removeLiquidity.js +0 -24
  332. package/_esm/analyzer/createAccountActionByAction/removeLiquidity.js.map +0 -1
  333. package/_esm/analyzer/createAccountActionByAction/spam.js +0 -54
  334. package/_esm/analyzer/createAccountActionByAction/spam.js.map +0 -1
  335. package/_esm/analyzer/createAccountActionByAction/trade.js +0 -59
  336. package/_esm/analyzer/createAccountActionByAction/trade.js.map +0 -1
  337. package/_esm/analyzer/createAccountActionByAction/transactionFee.js +0 -25
  338. package/_esm/analyzer/createAccountActionByAction/transactionFee.js.map +0 -1
  339. package/_esm/analyzer/createAccountActionByAction/transfer.js +0 -70
  340. package/_esm/analyzer/createAccountActionByAction/transfer.js.map +0 -1
  341. package/_esm/analyzer/createAccountActionByAction/withdraw.js +0 -34
  342. package/_esm/analyzer/createAccountActionByAction/withdraw.js.map +0 -1
  343. package/_esm/analyzer/createAccountActionByAction/withdrawWithBond.js +0 -24
  344. package/_esm/analyzer/createAccountActionByAction/withdrawWithBond.js.map +0 -1
  345. package/_esm/analyzer/json/generatorAnyLog.js +0 -159
  346. package/_esm/analyzer/json/generatorAnyLog.js.map +0 -1
  347. package/_esm/analyzer/json/generatorAnyTokenTransfer.js +0 -98
  348. package/_esm/analyzer/json/generatorAnyTokenTransfer.js.map +0 -1
  349. package/_esm/analyzer/json/generatorSpecificTokenTransfer.js +0 -339
  350. package/_esm/analyzer/json/generatorSpecificTokenTransfer.js.map +0 -1
  351. package/_types/analyzer/createAccountActionByAction/addLiquidity.d.ts +0 -59
  352. package/_types/analyzer/createAccountActionByAction/addLiquidity.d.ts.map +0 -1
  353. package/_types/analyzer/createAccountActionByAction/atomicArbitrage.d.ts +0 -59
  354. package/_types/analyzer/createAccountActionByAction/atomicArbitrage.d.ts.map +0 -1
  355. package/_types/analyzer/createAccountActionByAction/bridgeFrom.d.ts +0 -59
  356. package/_types/analyzer/createAccountActionByAction/bridgeFrom.d.ts.map +0 -1
  357. package/_types/analyzer/createAccountActionByAction/bridgeTo.d.ts +0 -59
  358. package/_types/analyzer/createAccountActionByAction/bridgeTo.d.ts.map +0 -1
  359. package/_types/analyzer/createAccountActionByAction/buyNft.d.ts +0 -59
  360. package/_types/analyzer/createAccountActionByAction/buyNft.d.ts.map +0 -1
  361. package/_types/analyzer/createAccountActionByAction/createAccountActionByAction.d.ts +0 -59
  362. package/_types/analyzer/createAccountActionByAction/createAccountActionByAction.d.ts.map +0 -1
  363. package/_types/analyzer/createAccountActionByAction/deposit.d.ts +0 -59
  364. package/_types/analyzer/createAccountActionByAction/deposit.d.ts.map +0 -1
  365. package/_types/analyzer/createAccountActionByAction/depositWithBond.d.ts +0 -59
  366. package/_types/analyzer/createAccountActionByAction/depositWithBond.d.ts.map +0 -1
  367. package/_types/analyzer/createAccountActionByAction/freeMintNft.d.ts +0 -53
  368. package/_types/analyzer/createAccountActionByAction/freeMintNft.d.ts.map +0 -1
  369. package/_types/analyzer/createAccountActionByAction/index.d.ts +0 -2
  370. package/_types/analyzer/createAccountActionByAction/index.d.ts.map +0 -1
  371. package/_types/analyzer/createAccountActionByAction/removeLiquidity.d.ts +0 -59
  372. package/_types/analyzer/createAccountActionByAction/removeLiquidity.d.ts.map +0 -1
  373. package/_types/analyzer/createAccountActionByAction/spam.d.ts +0 -59
  374. package/_types/analyzer/createAccountActionByAction/spam.d.ts.map +0 -1
  375. package/_types/analyzer/createAccountActionByAction/trade.d.ts +0 -59
  376. package/_types/analyzer/createAccountActionByAction/trade.d.ts.map +0 -1
  377. package/_types/analyzer/createAccountActionByAction/transactionFee.d.ts +0 -59
  378. package/_types/analyzer/createAccountActionByAction/transactionFee.d.ts.map +0 -1
  379. package/_types/analyzer/createAccountActionByAction/transfer.d.ts +0 -59
  380. package/_types/analyzer/createAccountActionByAction/transfer.d.ts.map +0 -1
  381. package/_types/analyzer/createAccountActionByAction/withdraw.d.ts +0 -59
  382. package/_types/analyzer/createAccountActionByAction/withdraw.d.ts.map +0 -1
  383. package/_types/analyzer/createAccountActionByAction/withdrawWithBond.d.ts +0 -59
  384. package/_types/analyzer/createAccountActionByAction/withdrawWithBond.d.ts.map +0 -1
  385. package/_types/analyzer/json/generatorAnyLog.d.ts +0 -55
  386. package/_types/analyzer/json/generatorAnyLog.d.ts.map +0 -1
  387. package/_types/analyzer/json/generatorAnyTokenTransfer.d.ts +0 -54
  388. package/_types/analyzer/json/generatorAnyTokenTransfer.d.ts.map +0 -1
  389. package/_types/analyzer/json/generatorSpecificTokenTransfer.d.ts +0 -55
  390. package/_types/analyzer/json/generatorSpecificTokenTransfer.d.ts.map +0 -1
  391. package/analyzer/createAccountActionByAction/addLiquidity.ts +0 -60
  392. package/analyzer/createAccountActionByAction/atomicArbitrage.ts +0 -115
  393. package/analyzer/createAccountActionByAction/bridgeFrom.ts +0 -61
  394. package/analyzer/createAccountActionByAction/bridgeTo.ts +0 -61
  395. package/analyzer/createAccountActionByAction/buyNft.ts +0 -106
  396. package/analyzer/createAccountActionByAction/createAccountActionByAction.ts +0 -181
  397. package/analyzer/createAccountActionByAction/deposit.ts +0 -64
  398. package/analyzer/createAccountActionByAction/depositWithBond.ts +0 -60
  399. package/analyzer/createAccountActionByAction/freeMintNft.ts +0 -54
  400. package/analyzer/createAccountActionByAction/index.ts +0 -1
  401. package/analyzer/createAccountActionByAction/removeLiquidity.ts +0 -60
  402. package/analyzer/createAccountActionByAction/spam.ts +0 -79
  403. package/analyzer/createAccountActionByAction/trade.ts +0 -105
  404. package/analyzer/createAccountActionByAction/transactionFee.ts +0 -51
  405. package/analyzer/createAccountActionByAction/transfer.ts +0 -95
  406. package/analyzer/createAccountActionByAction/withdraw.ts +0 -61
  407. package/analyzer/createAccountActionByAction/withdrawWithBond.ts +0 -60
  408. package/analyzer/json/generatorAnyLog.ts +0 -207
  409. package/analyzer/json/generatorAnyTokenTransfer.ts +0 -118
  410. package/analyzer/json/generatorSpecificTokenTransfer.ts +0 -425
@@ -0,0 +1,46 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { Erc1155Transfer, TransactionDecoded } from '../../../types'
3
+ import type { Erc1155RawComponent, Target } from '../types'
4
+
5
+ type GetErc1155RawComponentParameters<
6
+ Price extends CryptoCurrencyPrice | undefined,
7
+ > = {
8
+ readonly component: Erc1155RawComponent
9
+ readonly transaction: TransactionDecoded<Price>
10
+ } & Target<Price>
11
+
12
+ export const getErc1155RawComponent = <
13
+ Price extends CryptoCurrencyPrice | undefined,
14
+ >({
15
+ component,
16
+ transaction,
17
+ targetsErc1155 = [],
18
+ }: GetErc1155RawComponentParameters<Price>): Erc1155Transfer => {
19
+ const transfers =
20
+ component.target === true ? targetsErc1155 : transaction.erc1155Transfers
21
+ const filteredTransfers = transfers.filter((transfer) => {
22
+ if (component.from !== undefined && component.from !== transfer.from) {
23
+ return false
24
+ }
25
+ if (component.to !== undefined && component.to !== transfer.to) {
26
+ return false
27
+ }
28
+ if (
29
+ component.token !== undefined &&
30
+ component.token !== transfer.token.contractAddress
31
+ ) {
32
+ return false
33
+ }
34
+ if (component.tokenId !== undefined && component.tokenId !== transfer.id) {
35
+ return false
36
+ }
37
+ if (component.value !== undefined && component.value !== transfer.value) {
38
+ return false
39
+ }
40
+ return true
41
+ })
42
+ if (filteredTransfers.length <= component.index) {
43
+ throw new Error('filteredErc1155Transfers.length <= condition.index')
44
+ }
45
+ return filteredTransfers[component.index]
46
+ }
@@ -0,0 +1,129 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { Erc20Transfer, TransactionDecoded } from '../../../types'
3
+ import {
4
+ getAddressByAddressCondition,
5
+ getValueByValueCondition,
6
+ } from '../condition'
7
+ import type { Erc20Component, Target } from '../types'
8
+
9
+ type GetErc20ComponentParameters<
10
+ Price extends CryptoCurrencyPrice | undefined,
11
+ > = {
12
+ readonly component: Erc20Component
13
+ readonly transaction: TransactionDecoded<Price>
14
+ } & Target<Price>
15
+
16
+ export const getErc20Component = <
17
+ Price extends CryptoCurrencyPrice | undefined,
18
+ >({
19
+ component,
20
+ transaction,
21
+ targetsErc20 = [],
22
+ targetsErc721 = [],
23
+ targetsErc1155 = [],
24
+ targetsInternal = [],
25
+ targetsLog = [],
26
+ }: GetErc20ComponentParameters<Price>): readonly Erc20Transfer<Price>[] => {
27
+ const transfers =
28
+ component.target === true ? targetsErc20 : transaction.erc20Transfers
29
+ const filteredTransfers = transfers.filter((transfer) =>
30
+ isMatchErc20Component({
31
+ component,
32
+ transfer,
33
+ transaction,
34
+ targetsErc20,
35
+ targetsErc721,
36
+ targetsErc1155,
37
+ targetsInternal,
38
+ targetsLog,
39
+ }),
40
+ )
41
+ if (component.index === 'any') {
42
+ return filteredTransfers
43
+ } else {
44
+ if (filteredTransfers.length <= component.index) {
45
+ throw new Error('filteredTransfers.length <= condition.index')
46
+ }
47
+ return [filteredTransfers[component.index]]
48
+ }
49
+ }
50
+
51
+ type IsMatchErc20ComponentParameters<
52
+ Price extends CryptoCurrencyPrice | undefined,
53
+ > = {
54
+ readonly component: Erc20Component
55
+ readonly transfer: Erc20Transfer<Price>
56
+ readonly transaction: TransactionDecoded<Price>
57
+ } & Target<Price>
58
+
59
+ export const isMatchErc20Component = <
60
+ Price extends CryptoCurrencyPrice | undefined,
61
+ >({
62
+ component,
63
+ transfer,
64
+ transaction,
65
+ targetsErc20 = [],
66
+ targetsErc721 = [],
67
+ targetsErc1155 = [],
68
+ targetsInternal = [],
69
+ targetsLog = [],
70
+ }: IsMatchErc20ComponentParameters<Price>): boolean => {
71
+ if (component.from !== undefined) {
72
+ const value = getAddressByAddressCondition({
73
+ condition: component.from,
74
+ transaction,
75
+ targetsErc20,
76
+ targetsErc721,
77
+ targetsErc1155,
78
+ targetsInternal,
79
+ targetsLog,
80
+ })
81
+ if (value !== transfer.from) {
82
+ return false
83
+ }
84
+ }
85
+ if (component.to !== undefined) {
86
+ const value = getAddressByAddressCondition({
87
+ condition: component.to,
88
+ transaction,
89
+ targetsErc20,
90
+ targetsErc721,
91
+ targetsErc1155,
92
+ targetsInternal,
93
+ targetsLog,
94
+ })
95
+ if (value !== transfer.to) {
96
+ return false
97
+ }
98
+ }
99
+ if (component.token !== undefined) {
100
+ const value = getAddressByAddressCondition({
101
+ condition: component.token,
102
+ transaction,
103
+ targetsErc20,
104
+ targetsErc721,
105
+ targetsErc1155,
106
+ targetsInternal,
107
+ targetsLog,
108
+ })
109
+ if (value !== transfer.token.contractAddress) {
110
+ return false
111
+ }
112
+ }
113
+ if (component.value !== undefined) {
114
+ const value = getValueByValueCondition({
115
+ condition: component.value,
116
+ transaction,
117
+ targetsErc20,
118
+ targetsErc1155,
119
+ targetsInternal,
120
+ targetsLog,
121
+ })
122
+ if (value === 'plus' && transfer.value <= 0) {
123
+ return false
124
+ } else if (value !== 'plus' && value !== transfer.value) {
125
+ return false
126
+ }
127
+ }
128
+ return true
129
+ }
@@ -0,0 +1,43 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { Erc20Transfer, TransactionDecoded } from '../../../types'
3
+ import type { Erc20RawComponent, Target } from '../types'
4
+
5
+ type GetErc20RawComponentParameters<
6
+ Price extends CryptoCurrencyPrice | undefined,
7
+ > = {
8
+ readonly component: Erc20RawComponent
9
+ readonly transaction: TransactionDecoded<Price>
10
+ } & Target<Price>
11
+
12
+ export const getErc20RawComponent = <
13
+ Price extends CryptoCurrencyPrice | undefined,
14
+ >({
15
+ component,
16
+ transaction,
17
+ targetsErc20 = [],
18
+ }: GetErc20RawComponentParameters<Price>): Erc20Transfer<Price> => {
19
+ const transfers =
20
+ component.target === true ? targetsErc20 : transaction.erc20Transfers
21
+ const filteredTransfers = transfers.filter((transfer) => {
22
+ if (component.from !== undefined && component.from !== transfer.from) {
23
+ return false
24
+ }
25
+ if (component.to !== undefined && component.to !== transfer.to) {
26
+ return false
27
+ }
28
+ if (
29
+ component.token !== undefined &&
30
+ component.token !== transfer.token.contractAddress
31
+ ) {
32
+ return false
33
+ }
34
+ if (component.value !== undefined && component.value !== transfer.value) {
35
+ return false
36
+ }
37
+ return true
38
+ })
39
+ if (filteredTransfers.length <= component.index) {
40
+ throw new Error('filteredErc20Transfers.length <= condition.index')
41
+ }
42
+ return filteredTransfers[component.index]
43
+ }
@@ -0,0 +1,117 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { Erc721Transfer, TransactionDecoded } from '../../../types'
3
+ import { getAddressByAddressCondition } from '../condition'
4
+ import type { Erc721Component, Target } from '../types'
5
+
6
+ type GetErc721ComponentParameters<
7
+ Price extends CryptoCurrencyPrice | undefined,
8
+ > = {
9
+ readonly component: Erc721Component
10
+ readonly transaction: TransactionDecoded<Price>
11
+ } & Target<Price>
12
+
13
+ export const getErc721Component = <
14
+ Price extends CryptoCurrencyPrice | undefined,
15
+ >({
16
+ component,
17
+ transaction,
18
+ targetsErc20 = [],
19
+ targetsErc721 = [],
20
+ targetsErc1155 = [],
21
+ targetsInternal = [],
22
+ targetsLog = [],
23
+ }: GetErc721ComponentParameters<Price>): readonly Erc721Transfer[] => {
24
+ const transfers =
25
+ component.target === true ? targetsErc721 : transaction.erc721Transfers
26
+ const filteredTransfers = transfers.filter((transfer) =>
27
+ isMatchErc721Component({
28
+ component,
29
+ transfer,
30
+ transaction,
31
+ targetsErc20,
32
+ targetsErc721,
33
+ targetsErc1155,
34
+ targetsInternal,
35
+ targetsLog,
36
+ }),
37
+ )
38
+ if (component.index === 'any') {
39
+ return filteredTransfers
40
+ } else {
41
+ if (filteredTransfers.length <= component.index) {
42
+ throw new Error('filteredTransfers.length <= component.index')
43
+ }
44
+ return [filteredTransfers[component.index]]
45
+ }
46
+ }
47
+
48
+ type IsMatchErc721ComponentParameters<
49
+ Price extends CryptoCurrencyPrice | undefined,
50
+ > = {
51
+ readonly component: Erc721Component
52
+ readonly transfer: Erc721Transfer
53
+ readonly transaction: TransactionDecoded<Price>
54
+ } & Target<Price>
55
+
56
+ export const isMatchErc721Component = <
57
+ Price extends CryptoCurrencyPrice | undefined,
58
+ >({
59
+ component,
60
+ transfer,
61
+ transaction,
62
+ targetsErc20 = [],
63
+ targetsErc721 = [],
64
+ targetsErc1155 = [],
65
+ targetsInternal = [],
66
+ targetsLog = [],
67
+ }: IsMatchErc721ComponentParameters<Price>): boolean => {
68
+ if (component.from !== undefined) {
69
+ const value = getAddressByAddressCondition({
70
+ condition: component.from,
71
+ transaction,
72
+ targetsErc20,
73
+ targetsErc721,
74
+ targetsErc1155,
75
+ targetsInternal,
76
+ targetsLog,
77
+ })
78
+ if (value !== transfer.from) {
79
+ return false
80
+ }
81
+ }
82
+ if (component.to !== undefined) {
83
+ const value = getAddressByAddressCondition({
84
+ condition: component.to,
85
+ transaction,
86
+ targetsErc20,
87
+ targetsErc721,
88
+ targetsErc1155,
89
+ targetsInternal,
90
+ targetsLog,
91
+ })
92
+ if (value !== transfer.to) {
93
+ return false
94
+ }
95
+ }
96
+ if (component.token !== undefined) {
97
+ const value = getAddressByAddressCondition({
98
+ condition: component.token,
99
+ transaction,
100
+ targetsErc20,
101
+ targetsErc721,
102
+ targetsErc1155,
103
+ targetsInternal,
104
+ targetsLog,
105
+ })
106
+ if (value !== transfer.token.contractAddress) {
107
+ return false
108
+ }
109
+ }
110
+ if (
111
+ component.tokenId !== undefined &&
112
+ component.tokenId !== transfer.tokenId
113
+ ) {
114
+ return false
115
+ }
116
+ return true
117
+ }
@@ -0,0 +1,46 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { Erc721Transfer, TransactionDecoded } from '../../../types'
3
+ import type { Erc721RawComponent, Target } from '../types'
4
+
5
+ type GetErc721RawComponentParameters<
6
+ Price extends CryptoCurrencyPrice | undefined,
7
+ > = {
8
+ readonly component: Erc721RawComponent
9
+ readonly transaction: TransactionDecoded<Price>
10
+ } & Target<Price>
11
+
12
+ export const getErc721RawComponent = <
13
+ Price extends CryptoCurrencyPrice | undefined,
14
+ >({
15
+ component,
16
+ transaction,
17
+ targetsErc721 = [],
18
+ }: GetErc721RawComponentParameters<Price>): Erc721Transfer => {
19
+ const transfers =
20
+ component.target === true ? targetsErc721 : transaction.erc721Transfers
21
+ const filteredTransfers = transfers.filter((transfer) => {
22
+ if (component.from !== undefined && component.from !== transfer.from) {
23
+ return false
24
+ }
25
+ if (component.to !== undefined && component.to !== transfer.to) {
26
+ return false
27
+ }
28
+ if (
29
+ component.token !== undefined &&
30
+ component.token !== transfer.token.contractAddress
31
+ ) {
32
+ return false
33
+ }
34
+ if (
35
+ component.tokenId !== undefined &&
36
+ component.tokenId !== transfer.tokenId
37
+ ) {
38
+ return false
39
+ }
40
+ return true
41
+ })
42
+ if (filteredTransfers.length <= component.index) {
43
+ throw new Error('filteredErc721Transfers.length <= condition.index')
44
+ }
45
+ return filteredTransfers[component.index]
46
+ }
@@ -0,0 +1,62 @@
1
+ import { createBigDecimal, toStringBigDecimal } from '@0xtorch/big-decimal'
2
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
3
+ import type { Chain } from '../../../chains'
4
+ import type { TransactionDecoded } from '../../../types'
5
+ import { toLowerHex } from '../../../types'
6
+ import type { IdComponent, Target } from '../types'
7
+ import { getLogArgumentComponent } from './logArgument'
8
+
9
+ type CreateIdByIdComponentParameters<
10
+ Price extends CryptoCurrencyPrice | undefined,
11
+ > = {
12
+ readonly component: IdComponent
13
+ readonly transaction: TransactionDecoded<Price>
14
+ readonly chain: Chain
15
+ } & Target<Price>
16
+
17
+ export const createIdByIdComponent = <
18
+ Price extends CryptoCurrencyPrice | undefined,
19
+ >({
20
+ component,
21
+ transaction,
22
+ chain,
23
+ targetsLog = [],
24
+ }: CreateIdByIdComponentParameters<Price>): string => {
25
+ if (typeof component === 'string') {
26
+ return component
27
+ } else if (typeof component === 'number') {
28
+ return component.toString()
29
+ } else if (typeof component === 'bigint') {
30
+ return component.toString()
31
+ }
32
+ switch (component.type) {
33
+ case 'from': {
34
+ const address = toLowerHex(transaction.from)
35
+ return component.minify === true
36
+ ? `${address.slice(0, 6)}...${address.slice(-4)}`
37
+ : address
38
+ }
39
+ case 'to': {
40
+ if (transaction.to === null) {
41
+ return 'null'
42
+ }
43
+ const address = toLowerHex(transaction.to)
44
+ return component.minify === true
45
+ ? `${address.slice(0, 6)}...${address.slice(-4)}`
46
+ : address
47
+ }
48
+ case 'value': {
49
+ return toStringBigDecimal(
50
+ createBigDecimal(transaction.value, chain.nativeToken.decimals),
51
+ )
52
+ }
53
+ case 'log': {
54
+ const arguments_ = getLogArgumentComponent({
55
+ component,
56
+ transaction,
57
+ targetsLog,
58
+ })
59
+ return arguments_.map(String).join('')
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,117 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { InternalTransaction, TransactionDecoded } from '../../../types'
3
+ import {
4
+ getAddressByAddressCondition,
5
+ getValueByValueCondition,
6
+ } from '../condition'
7
+ import type { InternalComponent, Target } from '../types'
8
+
9
+ type GetInternalComponentParameters<
10
+ Price extends CryptoCurrencyPrice | undefined,
11
+ > = {
12
+ readonly component: InternalComponent
13
+ readonly transaction: TransactionDecoded<Price>
14
+ } & Target<Price>
15
+
16
+ export const getInternalComponent = <
17
+ Price extends CryptoCurrencyPrice | undefined,
18
+ >({
19
+ component,
20
+ transaction,
21
+ targetsErc20 = [],
22
+ targetsErc721 = [],
23
+ targetsErc1155 = [],
24
+ targetsInternal = [],
25
+ targetsLog = [],
26
+ }: GetInternalComponentParameters<Price>): readonly InternalTransaction<Price>[] => {
27
+ const internals =
28
+ component.target === true
29
+ ? targetsInternal
30
+ : transaction.internalTransactions
31
+ const filteredInternals = internals.filter((internal) =>
32
+ isMatchInternalComponent({
33
+ component,
34
+ internal,
35
+ transaction,
36
+ targetsErc20,
37
+ targetsErc721,
38
+ targetsErc1155,
39
+ targetsInternal,
40
+ targetsLog,
41
+ }),
42
+ )
43
+ if (component.index === 'any') {
44
+ return filteredInternals
45
+ } else {
46
+ if (filteredInternals.length <= component.index) {
47
+ throw new Error('filteredInternals.length <= component.index')
48
+ }
49
+ return [filteredInternals[component.index]]
50
+ }
51
+ }
52
+
53
+ type IsMatchInternalComponentParameters<
54
+ Price extends CryptoCurrencyPrice | undefined,
55
+ > = {
56
+ readonly component: InternalComponent
57
+ readonly internal: InternalTransaction<Price>
58
+ readonly transaction: TransactionDecoded<Price>
59
+ } & Target<Price>
60
+
61
+ export const isMatchInternalComponent = <
62
+ Price extends CryptoCurrencyPrice | undefined,
63
+ >({
64
+ component,
65
+ internal,
66
+ transaction,
67
+ targetsErc20 = [],
68
+ targetsErc721 = [],
69
+ targetsErc1155 = [],
70
+ targetsInternal = [],
71
+ targetsLog = [],
72
+ }: IsMatchInternalComponentParameters<Price>): boolean => {
73
+ if (component.from !== undefined) {
74
+ const value = getAddressByAddressCondition({
75
+ condition: component.from,
76
+ transaction,
77
+ targetsErc20,
78
+ targetsErc721,
79
+ targetsErc1155,
80
+ targetsInternal,
81
+ targetsLog,
82
+ })
83
+ if (value !== internal.from) {
84
+ return false
85
+ }
86
+ }
87
+ if (component.to !== undefined) {
88
+ const value = getAddressByAddressCondition({
89
+ condition: component.to,
90
+ transaction,
91
+ targetsErc20,
92
+ targetsErc721,
93
+ targetsErc1155,
94
+ targetsInternal,
95
+ targetsLog,
96
+ })
97
+ if (value !== internal.to) {
98
+ return false
99
+ }
100
+ }
101
+ if (component.value !== undefined) {
102
+ const value = getValueByValueCondition({
103
+ condition: component.value,
104
+ transaction,
105
+ targetsErc20,
106
+ targetsErc1155,
107
+ targetsInternal,
108
+ targetsLog,
109
+ })
110
+ if (value === 'plus' && internal.value <= 0) {
111
+ return false
112
+ } else if (value !== 'plus' && value !== internal.value) {
113
+ return false
114
+ }
115
+ }
116
+ return true
117
+ }
@@ -0,0 +1,39 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { InternalTransaction, TransactionDecoded } from '../../../types'
3
+ import type { InternalRawComponent, Target } from '../types'
4
+
5
+ type GetInternalComponentParameters<
6
+ Price extends CryptoCurrencyPrice | undefined,
7
+ > = {
8
+ readonly component: InternalRawComponent
9
+ readonly transaction: TransactionDecoded<Price>
10
+ } & Target<Price>
11
+
12
+ export const getInternalRawComponent = <
13
+ Price extends CryptoCurrencyPrice | undefined,
14
+ >({
15
+ component,
16
+ transaction,
17
+ targetsInternal = [],
18
+ }: GetInternalComponentParameters<Price>): InternalTransaction<Price> => {
19
+ const transfers =
20
+ component.target === true
21
+ ? targetsInternal
22
+ : transaction.internalTransactions
23
+ const filteredTransfers = transfers.filter((transfer) => {
24
+ if (component.from !== undefined && component.from !== transfer.from) {
25
+ return false
26
+ }
27
+ if (component.to !== undefined && component.to !== transfer.to) {
28
+ return false
29
+ }
30
+ if (component.value !== undefined && component.value !== transfer.value) {
31
+ return false
32
+ }
33
+ return true
34
+ })
35
+ if (filteredTransfers.length <= component.index) {
36
+ throw new Error('filteredInternalTransactions.length <= condition.index')
37
+ }
38
+ return filteredTransfers[component.index]
39
+ }
@@ -0,0 +1,99 @@
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { LogData, TransactionDecoded } from '../../../types'
3
+ import { getValueByLogArgumentValueCondition } from '../condition'
4
+ import type { LogArgumentComponent, Target } from '../types'
5
+
6
+ type GetLogArgumentComponentParameters<
7
+ Price extends CryptoCurrencyPrice | undefined,
8
+ > = {
9
+ readonly component: LogArgumentComponent
10
+ readonly transaction: TransactionDecoded<Price>
11
+ } & Target<Price>
12
+
13
+ export const getLogArgumentComponent = <
14
+ Price extends CryptoCurrencyPrice | undefined,
15
+ >({
16
+ component,
17
+ transaction,
18
+ targetsLog = [],
19
+ }: GetLogArgumentComponentParameters<Price>): readonly unknown[] => {
20
+ const logs = component.target === true ? targetsLog : transaction.logs
21
+ const filteredLogs = logs.filter((log) =>
22
+ isMatchLogArgumentComponent({
23
+ component,
24
+ log,
25
+ transaction,
26
+ targetsLog,
27
+ }),
28
+ )
29
+ if (component.index === 'any') {
30
+ return filteredLogs.map((log) => {
31
+ if (log.type !== 'decoded') {
32
+ throw new Error('log is not decoded')
33
+ }
34
+ if (log.log.args.length <= component.argIndex) {
35
+ throw new Error('log.log.args.length <= condition.argIndex')
36
+ }
37
+ return log.log.args[component.argIndex].value
38
+ })
39
+ } else {
40
+ if (filteredLogs.length <= component.index) {
41
+ throw new Error('filteredLogs.length <= condition.index')
42
+ }
43
+ const log = filteredLogs[component.index]
44
+ if (log.type !== 'decoded') {
45
+ throw new Error('log is not decoded')
46
+ }
47
+ if (log.log.args.length <= component.argIndex) {
48
+ throw new Error('log.log.args.length <= condition.argIndex')
49
+ }
50
+ return [log.log.args[component.argIndex].value]
51
+ }
52
+ }
53
+
54
+ type IsMatchLogArgumentComponentParameters<
55
+ Price extends CryptoCurrencyPrice | undefined,
56
+ > = {
57
+ readonly component: LogArgumentComponent
58
+ readonly log: LogData
59
+ readonly transaction: TransactionDecoded<Price>
60
+ } & Target<Price>
61
+
62
+ export const isMatchLogArgumentComponent = <
63
+ Price extends CryptoCurrencyPrice | undefined,
64
+ >({
65
+ component,
66
+ log,
67
+ transaction,
68
+ targetsLog = [],
69
+ }: IsMatchLogArgumentComponentParameters<Price>): boolean => {
70
+ if (
71
+ component.signature !== undefined &&
72
+ component.signature !== log.log.topics[0]
73
+ ) {
74
+ return false
75
+ }
76
+ if (
77
+ component.indexedCount !== undefined &&
78
+ component.indexedCount !== log.log.topics.length - 1
79
+ ) {
80
+ return false
81
+ }
82
+ if (component.args !== undefined) {
83
+ for (const { index, value: valueCondition } of component.args) {
84
+ const value = getValueByLogArgumentValueCondition({
85
+ condition: valueCondition,
86
+ transaction,
87
+ targetsLog,
88
+ })
89
+ if (log.type !== 'decoded' || log.log.args.length <= index) {
90
+ return false
91
+ }
92
+ const argument = String(log.log.args[index].value).toLowerCase()
93
+ if (argument !== value) {
94
+ return false
95
+ }
96
+ }
97
+ }
98
+ return true
99
+ }