@0xtorch/evm 0.0.10 → 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 +166 -158
  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 +167 -158
  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 +3 -3
  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 +229 -196
  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 +3 -3
  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
@@ -1,239 +1,143 @@
1
- import type { ActionType } from '@0xtorch/core'
2
- import type { LowerHex } from '../../types'
1
+ import type { CryptoCurrencyPrice } from '@0xtorch/core'
2
+ import type { z } from 'zod'
3
+ import type {
4
+ Erc1155Transfer,
5
+ Erc20Transfer,
6
+ Erc721Transfer,
7
+ InternalTransaction,
8
+ LogData,
9
+ } from '../../types'
10
+ import type {
11
+ actionGeneratorAnyLogAddressSchema,
12
+ actionGeneratorAnyLogAmountSchema,
13
+ actionGeneratorAnyLogSchema,
14
+ actionGeneratorAnyTokenTransferSchema,
15
+ actionGeneratorSpecificTokenTransferSchema,
16
+ actionTransferGeneratorFromTokenTransferSchema,
17
+ actionTransferGeneratorFromTokenTransferWithConditionSchema,
18
+ evmAnalyzerSchema,
19
+ parameterBaseSchema,
20
+ parameterSchema,
21
+ tokenTransferConditionAddressSchema,
22
+ } from './schemas'
23
+ import type {
24
+ actionGeneratorSchema,
25
+ addressConditionSchema,
26
+ commentComponentSchema,
27
+ erc1155ComponentSchema,
28
+ erc1155RawComponentSchema,
29
+ erc20ComponentSchema,
30
+ erc20RawComponentSchema,
31
+ erc721ComponentSchema,
32
+ erc721RawComponentSchema,
33
+ idComponentSchema,
34
+ internalComponentSchema,
35
+ internalRawComponentSchema,
36
+ logArgumentComponentSchema,
37
+ logArgumentRawComponentSchema,
38
+ logArgumentValueConditionSchema,
39
+ transferComponentSchema,
40
+ transferCustomAddressComponentSchema,
41
+ transferCustomAmountComponentSchema,
42
+ transferCustomAssetComponentSchema,
43
+ valueConditionSchema,
44
+ } from './schemas/generator'
3
45
 
4
46
  // normal action 変換用の mapper object
5
- export type AnalyzeRule = {
6
- readonly chainId: number | undefined
7
- readonly from: LowerHex[] | undefined
8
- readonly to: LowerHex[] | undefined
9
- readonly value: 'plus' | 'zero' | undefined
10
- readonly functionSignature: LowerHex
11
- readonly functionInterface: string | undefined
12
- readonly logsPatterns: readonly LogsPattern[]
13
- readonly internalsPatterns: readonly InternalsPattern[] | undefined
14
- readonly parameterMatchPatterns: readonly ParameterMatchPattern[] | undefined
15
- readonly generators: readonly ActionGenerator[]
16
- }
47
+ export type AnalyzeRule = z.infer<typeof evmAnalyzerSchema>
17
48
 
18
- type ParameterMatchPattern = {
19
- readonly base: ParameterBase
20
- readonly compare: ParameterIndex
21
- }
49
+ export type ParameterBase = z.infer<typeof parameterBaseSchema>
22
50
 
23
- export type ParameterBase =
24
- | ParameterIndexDefault
25
- | ParameterIndexFunction
26
- | ParameterBaseLog
27
- | ParameterBaseInternal
28
-
29
- type ParameterBaseLog = {
30
- readonly type: 'log'
31
- readonly signature: LowerHex
32
- readonly indexedCount: number
33
- readonly index: number
34
- readonly argIndex: number
35
- }
51
+ export type ParameterIndex = z.infer<typeof parameterSchema>
36
52
 
37
- type ParameterBaseInternal = {
38
- readonly type: 'internal'
39
- readonly index: number
40
- readonly key: 'from' | 'to' | 'value'
41
- }
53
+ // // 一旦 token transfer の index 指定で生成できるようにするが、後から他の方法でも生成できるようにする
54
+ export type ActionGenerator = z.infer<typeof actionGeneratorSchema>
42
55
 
43
- export type ParameterIndex =
44
- | ParameterIndexDefault
45
- | ParameterIndexFunction
46
- | ParameterIndexLog
47
- | ParameterIndexInternal
56
+ /** 指定した token type 全ての token transfer を個別に指定した action として生成する generator */
57
+ export type ActionGeneratorAnyTokenTransfer = z.infer<
58
+ typeof actionGeneratorAnyTokenTransferSchema
59
+ >
48
60
 
49
- type ParameterIndexDefault = {
50
- readonly type: 'from' | 'to' | 'value'
51
- }
52
- type ParameterIndexFunction = {
53
- readonly type: 'function'
54
- readonly argIndex: number
55
- }
56
- type ParameterIndexLog = {
57
- readonly type: 'log'
58
- readonly signature: LowerHex
59
- readonly indexedCount: number
60
- readonly index: 'some' | 'every' | number
61
- readonly argIndex: number
62
- }
63
- type ParameterIndexInternal = {
64
- readonly type: 'internal'
65
- readonly index: 'some' | 'every' | number
66
- readonly key: 'from' | 'to' | 'value'
67
- }
61
+ /** 指定した全ての log を個別に指定した action として生成する generator */
62
+ export type ActionGeneratorAnyLog = z.infer<typeof actionGeneratorAnyLogSchema>
68
63
 
69
- type LogsPattern = LogsPatternExact | LogsPatternPartial
70
- type LogsPatternExact = {
71
- readonly matchType: 'exact'
72
- readonly items: readonly {
73
- readonly signature: LowerHex
74
- readonly indexedCount: number
75
- readonly args:
76
- | readonly {
77
- readonly type: 'to-lower-string-value'
78
- readonly index: number
79
- readonly value: string
80
- }[]
81
- | undefined
82
- // TODO 別の log と同一の値か、みたいなところも理想としては条件として渡したい
83
- }[]
84
- }
85
- type LogsPatternPartial = {
86
- readonly matchType: 'partial'
87
- readonly signature: LowerHex
88
- readonly indexedCount: number
89
- /** undefined の場合は 1つ以上の任意の数の一致する log を持つ */
90
- readonly logCount: number | undefined
91
- readonly args:
92
- | readonly {
93
- readonly type: 'to-lower-string-value'
94
- readonly index: number
95
- readonly value: string
96
- }[]
97
- | undefined
98
- // TODO 別の log と同一の値か、みたいなところも理想としては条件として渡したい
99
- }
64
+ export type ActionGeneratorAnyLogAddress = z.infer<
65
+ typeof actionGeneratorAnyLogAddressSchema
66
+ >
100
67
 
101
- type InternalsPattern = InternalsPatternPartial
68
+ export type ActionGeneratorAnyLogAmount = z.infer<
69
+ typeof actionGeneratorAnyLogAmountSchema
70
+ >
102
71
 
103
- type InternalsPatternPartial = {
104
- readonly type: 'partial'
105
- readonly from: LowerHex | undefined
106
- readonly to: LowerHex | undefined
107
- readonly value: 'plus' | 'zero' | undefined
108
- /** undefined の場合は 1つ以上の任意の数の一致する internal transaction を持つ */
109
- readonly count: number | undefined
110
- }
72
+ /** 個別の token transfer 毎に指定した action を生成する generator */
73
+ export type ActionGeneratorSpecificTokenTransfer = z.infer<
74
+ typeof actionGeneratorSpecificTokenTransferSchema
75
+ >
111
76
 
112
- // 一旦 token transfer の index 指定で生成できるようにするが、後から他の方法でも生成できるようにする
113
- type ActionGenerator =
114
- | ActionGeneratorAnyTokenTransfer
115
- | ActionGeneratorAnyLog
116
- | ActionGeneratorSpecificTokenTransfer
77
+ export type ActionTransferGeneratorFromTokenTransfer = z.infer<
78
+ typeof actionTransferGeneratorFromTokenTransferSchema
79
+ >
117
80
 
118
- /** 指定した token type 全ての token transfer を個別に指定した action として生成する generator */
119
- export type ActionGeneratorAnyTokenTransfer = {
120
- readonly type: 'any-token-transfer'
121
- readonly token: 'erc20' | 'erc721' | 'erc1155'
122
- readonly action: ActionType
123
- readonly comment: string | undefined
124
- readonly target: 'from' | 'to' | 'none'
125
- }
81
+ export type ActionTransferGeneratorFromTokenTransferWithCondition = z.infer<
82
+ typeof actionTransferGeneratorFromTokenTransferWithConditionSchema
83
+ >
126
84
 
127
- /** 指定した全ての log を個別に指定した action として生成する generator */
128
- export type ActionGeneratorAnyLog = {
129
- readonly type: 'any-log'
130
- readonly action: ActionType
131
- readonly comment: string | undefined
132
- readonly target: 'from' | 'to' | 'none'
133
- readonly signature: LowerHex
134
- readonly indexedCount: number
135
- readonly token: ActionGeneratorAnyLogToken
136
- readonly from: ActionGeneratorAnyLogAddress
137
- readonly to: ActionGeneratorAnyLogAddress
138
- readonly amount: ActionGeneratorAnyLogAmount
139
- }
85
+ export type TokenTransferConditionAddress = z.infer<
86
+ typeof tokenTransferConditionAddressSchema
87
+ >
140
88
 
141
- type ActionGeneratorAnyLogToken = ActionGeneratorAnyLogTokenNative
89
+ export type LogArgumentRawComponent = z.infer<
90
+ typeof logArgumentRawComponentSchema
91
+ >
142
92
 
143
- type ActionGeneratorAnyLogTokenNative = {
144
- readonly token: 'native'
145
- }
93
+ export type Erc20RawComponent = z.infer<typeof erc20RawComponentSchema>
146
94
 
147
- export type ActionGeneratorAnyLogAddress =
148
- | ActionGeneratorAnyLogAddressDefault
149
- | ActionGeneratorAnyLogAddressFixValue
150
- | ActionGeneratorAnyLogAddressTarget
151
- | ActionGeneratorAnyLogAddressLog
95
+ export type Erc721RawComponent = z.infer<typeof erc721RawComponentSchema>
152
96
 
153
- type ActionGeneratorAnyLogAddressDefault = {
154
- readonly type: 'from' | 'to'
155
- }
97
+ export type Erc1155RawComponent = z.infer<typeof erc1155RawComponentSchema>
156
98
 
157
- type ActionGeneratorAnyLogAddressFixValue = {
158
- readonly type: 'fix-value'
159
- readonly value: LowerHex
160
- }
99
+ export type InternalRawComponent = z.infer<typeof internalRawComponentSchema>
161
100
 
162
- type ActionGeneratorAnyLogAddressTarget = {
163
- readonly type: 'target'
164
- readonly argIndex: number
165
- }
101
+ export type LogArgumentComponent = z.infer<typeof logArgumentComponentSchema>
166
102
 
167
- type ActionGeneratorAnyLogAddressLog = {
168
- readonly type: 'log'
169
- readonly signature: LowerHex
170
- readonly indexedCount: number
171
- readonly index: number
172
- readonly argIndex: number
173
- }
103
+ export type Erc20Component = z.infer<typeof erc20ComponentSchema>
174
104
 
175
- export type ActionGeneratorAnyLogAmount =
176
- | ActionGeneratorAnyLogAmountDefault
177
- | ActionGeneratorAnyLogAmountFixValue
178
- | ActionGeneratorAnyLogAmountTarget
179
- | ActionGeneratorAnyLogAmountLog
105
+ export type Erc721Component = z.infer<typeof erc721ComponentSchema>
180
106
 
181
- type ActionGeneratorAnyLogAmountDefault = {
182
- readonly type: 'value'
183
- }
107
+ export type Erc1155Component = z.infer<typeof erc1155ComponentSchema>
184
108
 
185
- type ActionGeneratorAnyLogAmountFixValue = {
186
- readonly type: 'fix-value'
187
- readonly value: bigint
188
- }
109
+ export type InternalComponent = z.infer<typeof internalComponentSchema>
189
110
 
190
- type ActionGeneratorAnyLogAmountTarget = {
191
- readonly type: 'target'
192
- readonly argIndex: number
193
- }
111
+ export type CommentComponent = z.infer<typeof commentComponentSchema>
194
112
 
195
- type ActionGeneratorAnyLogAmountLog = {
196
- readonly type: 'log'
197
- readonly signature: LowerHex
198
- readonly indexedCount: number
199
- readonly index: number
200
- readonly argIndex: number
201
- }
113
+ export type IdComponent = z.infer<typeof idComponentSchema>
202
114
 
203
- /** 個別の token transfer 毎に指定した action を生成する generator */
204
- export type ActionGeneratorSpecificTokenTransfer = {
205
- readonly type: 'specific-token-transfer'
206
- readonly action: ActionType
207
- readonly comment: string | undefined
208
- readonly transfers: readonly ActionTransferGenerator[]
209
- }
115
+ export type AddressCondition = z.infer<typeof addressConditionSchema>
210
116
 
211
- type ActionTransferGenerator =
212
- | ActionTransferGeneratorFromTokenTransfer
213
- | ActionTransferGeneratorFromTokenTransferWithCondition
117
+ export type ValueCondition = z.infer<typeof valueConditionSchema>
214
118
 
215
- export type ActionTransferGeneratorFromTokenTransfer = {
216
- readonly type: 'token-transfer'
217
- readonly token: 'erc20' | 'erc721' | 'erc1155' | 'value' | 'internal'
218
- readonly transferIndex: 'any' | number
219
- readonly target: 'from' | 'to' | 'none'
220
- }
119
+ export type LogArgumentValueCondition = z.infer<
120
+ typeof logArgumentValueConditionSchema
121
+ >
221
122
 
222
- export type ActionTransferGeneratorFromTokenTransferWithCondition = {
223
- readonly type: 'token-transfer-with-condition'
224
- readonly token: 'erc20' | 'erc721' | 'erc1155' | 'internal'
225
- readonly conditions: readonly TokenTransferCondition[]
226
- readonly target: 'from' | 'to' | 'none'
227
- }
123
+ export type TransferCustomAddressComponent = z.infer<
124
+ typeof transferCustomAddressComponentSchema
125
+ >
228
126
 
229
- type TokenTransferCondition = TokenTransferConditionAddress
127
+ export type TransferCustomAssetComponent = z.infer<
128
+ typeof transferCustomAssetComponentSchema
129
+ >
230
130
 
231
- export type TokenTransferConditionAddress = {
232
- readonly type: 'from' | 'to'
233
- readonly condition: ConditionAddress
234
- }
131
+ export type TransferCustomAmountComponent = z.infer<
132
+ typeof transferCustomAmountComponentSchema
133
+ >
235
134
 
236
- type ConditionAddress =
237
- | ActionGeneratorAnyLogAddressDefault
238
- | ActionGeneratorAnyLogAddressFixValue
239
- | ActionGeneratorAnyLogAddressLog
135
+ export type TransferComponent = z.infer<typeof transferComponentSchema>
136
+
137
+ export type Target<Price extends CryptoCurrencyPrice | undefined> = {
138
+ readonly targetsErc20?: readonly Erc20Transfer<Price>[]
139
+ readonly targetsErc721?: readonly Erc721Transfer[]
140
+ readonly targetsErc1155?: readonly Erc1155Transfer[]
141
+ readonly targetsInternal?: readonly InternalTransaction<Price>[]
142
+ readonly targetsLog?: readonly LogData[]
143
+ }
@@ -0,0 +1,301 @@
1
+ import { createBigDecimal } from '@0xtorch/big-decimal'
2
+ import type {
3
+ CryptoCurrencyPrice,
4
+ TransferCryptoCurrencyIn,
5
+ TransferCryptoCurrencyNone,
6
+ TransferCryptoCurrencyOut,
7
+ TransferNftIn,
8
+ TransferNftNone,
9
+ TransferNftOut,
10
+ } from '@0xtorch/core'
11
+ import type { Chain } from '../../chains'
12
+ import type {
13
+ Erc1155Transfer,
14
+ Erc20Transfer,
15
+ Erc721Transfer,
16
+ InternalTransaction,
17
+ TransactionDecoded,
18
+ } from '../../types'
19
+ import { toLowerHex } from '../../types'
20
+ import { createEvmAddressId } from '../../utils'
21
+
22
+ type ParseTransactionValueToActionTransferParameters = {
23
+ readonly chain: Chain
24
+ readonly transaction: TransactionDecoded<CryptoCurrencyPrice | undefined>
25
+ }
26
+
27
+ const parseTransactionValueToActionTransfer = ({
28
+ chain,
29
+ transaction: { from, to, value, nativeTokenPrice },
30
+ }: ParseTransactionValueToActionTransferParameters): Omit<
31
+ | TransferCryptoCurrencyIn
32
+ | TransferCryptoCurrencyOut
33
+ | TransferCryptoCurrencyNone,
34
+ 'direction'
35
+ > => ({
36
+ from: createEvmAddressId({
37
+ chainId: chain.id,
38
+ address: toLowerHex(from),
39
+ }),
40
+ to: createEvmAddressId({
41
+ chainId: chain.id,
42
+ address: to === null ? '0x' : toLowerHex(to),
43
+ }),
44
+ price: nativeTokenPrice,
45
+ asset: chain.nativeToken.currency,
46
+ amount: createBigDecimal(value, chain.nativeToken.decimals),
47
+ })
48
+
49
+ export const parseTransactionValueToActionTransferIn = ({
50
+ chain,
51
+ transaction,
52
+ }: ParseTransactionValueToActionTransferParameters): TransferCryptoCurrencyIn => ({
53
+ ...parseTransactionValueToActionTransfer({ chain, transaction }),
54
+ direction: 'in',
55
+ })
56
+
57
+ export const parseTransactionValueToActionTransferOut = ({
58
+ chain,
59
+ transaction,
60
+ }: ParseTransactionValueToActionTransferParameters): TransferCryptoCurrencyOut => ({
61
+ ...parseTransactionValueToActionTransfer({ chain, transaction }),
62
+ direction: 'out',
63
+ })
64
+
65
+ export const parseTransactionValueToActionTransferNone = ({
66
+ chain,
67
+ transaction,
68
+ }: ParseTransactionValueToActionTransferParameters): TransferCryptoCurrencyNone => ({
69
+ ...parseTransactionValueToActionTransfer({ chain, transaction }),
70
+ direction: 'none',
71
+ })
72
+
73
+ type ParseTransactionGasToActionTransferParameters = {
74
+ readonly chain: Chain
75
+ readonly transaction: TransactionDecoded<CryptoCurrencyPrice | undefined>
76
+ }
77
+
78
+ const parseTransactionGasToActionTransfer = ({
79
+ chain,
80
+ transaction: { from, gasUsed, effectiveGasPrice, nativeTokenPrice },
81
+ }: ParseTransactionGasToActionTransferParameters): Omit<
82
+ | TransferCryptoCurrencyIn
83
+ | TransferCryptoCurrencyOut
84
+ | TransferCryptoCurrencyNone,
85
+ 'direction'
86
+ > => ({
87
+ from: createEvmAddressId({
88
+ chainId: chain.id,
89
+ address: toLowerHex(from),
90
+ }),
91
+ to: undefined,
92
+ price: nativeTokenPrice,
93
+ asset: chain.nativeToken.currency,
94
+ amount: createBigDecimal(
95
+ gasUsed * effectiveGasPrice,
96
+ chain.nativeToken.decimals,
97
+ ),
98
+ })
99
+
100
+ export const parseTransactionGasToActionTransferOut = ({
101
+ chain,
102
+ transaction,
103
+ }: ParseTransactionGasToActionTransferParameters): TransferCryptoCurrencyOut => ({
104
+ ...parseTransactionGasToActionTransfer({ chain, transaction }),
105
+ direction: 'out',
106
+ })
107
+
108
+ export const parseTransactionGasToActionTransferNone = ({
109
+ chain,
110
+ transaction,
111
+ }: ParseTransactionGasToActionTransferParameters): TransferCryptoCurrencyNone => ({
112
+ ...parseTransactionGasToActionTransfer({ chain, transaction }),
113
+ direction: 'none',
114
+ })
115
+
116
+ type ParseInternalTransactionToActionTransferParameters = {
117
+ readonly chain: Chain
118
+ readonly internalTransaction: InternalTransaction<
119
+ CryptoCurrencyPrice | undefined
120
+ >
121
+ }
122
+
123
+ const parseInternalTransactionToActionTransfer = ({
124
+ chain,
125
+ internalTransaction,
126
+ }: ParseInternalTransactionToActionTransferParameters): Omit<
127
+ | TransferCryptoCurrencyIn
128
+ | TransferCryptoCurrencyOut
129
+ | TransferCryptoCurrencyNone,
130
+ 'direction'
131
+ > => ({
132
+ from: createEvmAddressId({
133
+ chainId: chain.id,
134
+ address: internalTransaction.from,
135
+ }),
136
+ to: createEvmAddressId({
137
+ chainId: chain.id,
138
+ address: internalTransaction.to ?? '0x',
139
+ }),
140
+ price: internalTransaction.price,
141
+ asset: internalTransaction.currency,
142
+ amount: createBigDecimal(
143
+ internalTransaction.value,
144
+ chain.nativeToken.decimals,
145
+ ),
146
+ })
147
+
148
+ export const parseInternalTransactionToActionTransferIn = ({
149
+ chain,
150
+ internalTransaction,
151
+ }: ParseInternalTransactionToActionTransferParameters): TransferCryptoCurrencyIn => ({
152
+ ...parseInternalTransactionToActionTransfer({ chain, internalTransaction }),
153
+ direction: 'in',
154
+ })
155
+
156
+ export const parseInternalTransactionToActionTransferOut = ({
157
+ chain,
158
+ internalTransaction,
159
+ }: ParseInternalTransactionToActionTransferParameters): TransferCryptoCurrencyOut => ({
160
+ ...parseInternalTransactionToActionTransfer({ chain, internalTransaction }),
161
+ direction: 'out',
162
+ })
163
+
164
+ export const parseInternalTransactionToActionTransferNone = ({
165
+ chain,
166
+ internalTransaction,
167
+ }: ParseInternalTransactionToActionTransferParameters): TransferCryptoCurrencyNone => ({
168
+ ...parseInternalTransactionToActionTransfer({ chain, internalTransaction }),
169
+ direction: 'none',
170
+ })
171
+
172
+ type ParseErc20TransferToActionTransferParameters = {
173
+ readonly chainId: number
174
+ readonly transfer: Erc20Transfer<CryptoCurrencyPrice | undefined>
175
+ }
176
+
177
+ const parseErc20TransferToActionTransfer = ({
178
+ chainId,
179
+ transfer,
180
+ }: ParseErc20TransferToActionTransferParameters): Omit<
181
+ | TransferCryptoCurrencyIn
182
+ | TransferCryptoCurrencyOut
183
+ | TransferCryptoCurrencyNone,
184
+ 'direction'
185
+ > => ({
186
+ from: createEvmAddressId({ chainId, address: transfer.from }),
187
+ to: createEvmAddressId({ chainId, address: transfer.to }),
188
+ price: transfer.price,
189
+ asset: transfer.token.currency,
190
+ amount: createBigDecimal(transfer.value, transfer.token.decimals),
191
+ })
192
+
193
+ export const parseErc20TransferToActionTransferIn = ({
194
+ chainId,
195
+ transfer,
196
+ }: ParseErc20TransferToActionTransferParameters): TransferCryptoCurrencyIn => ({
197
+ ...parseErc20TransferToActionTransfer({ chainId, transfer }),
198
+ direction: 'in',
199
+ })
200
+
201
+ export const parseErc20TransferToActionTransferOut = ({
202
+ chainId,
203
+ transfer,
204
+ }: ParseErc20TransferToActionTransferParameters): TransferCryptoCurrencyOut => ({
205
+ ...parseErc20TransferToActionTransfer({ chainId, transfer }),
206
+ direction: 'out',
207
+ })
208
+
209
+ export const parseErc20TransferToActionTransferNone = ({
210
+ chainId,
211
+ transfer,
212
+ }: ParseErc20TransferToActionTransferParameters): TransferCryptoCurrencyNone => ({
213
+ ...parseErc20TransferToActionTransfer({ chainId, transfer }),
214
+ direction: 'none',
215
+ })
216
+
217
+ type ParseErc721TransferToActionTransferParameters = {
218
+ readonly chainId: number
219
+ readonly transfer: Erc721Transfer
220
+ }
221
+
222
+ const parseErc721TransferToActionTransfer = ({
223
+ chainId,
224
+ transfer,
225
+ }: ParseErc721TransferToActionTransferParameters): Omit<
226
+ TransferNftIn | TransferNftOut | TransferNftNone,
227
+ 'direction'
228
+ > => ({
229
+ from: createEvmAddressId({ chainId, address: transfer.from }),
230
+ to: createEvmAddressId({ chainId, address: transfer.to }),
231
+ price: undefined,
232
+ asset: transfer.nft,
233
+ amount: createBigDecimal(1n),
234
+ })
235
+
236
+ export const parseErc721TransferToActionTransferIn = ({
237
+ chainId,
238
+ transfer,
239
+ }: ParseErc721TransferToActionTransferParameters): TransferNftIn => ({
240
+ ...parseErc721TransferToActionTransfer({ chainId, transfer }),
241
+ direction: 'in',
242
+ })
243
+
244
+ export const parseErc721TransferToActionTransferOut = ({
245
+ chainId,
246
+ transfer,
247
+ }: ParseErc721TransferToActionTransferParameters): TransferNftOut => ({
248
+ ...parseErc721TransferToActionTransfer({ chainId, transfer }),
249
+ direction: 'out',
250
+ })
251
+
252
+ export const parseErc721TransferToActionTransferNone = ({
253
+ chainId,
254
+ transfer,
255
+ }: ParseErc721TransferToActionTransferParameters): TransferNftNone => ({
256
+ ...parseErc721TransferToActionTransfer({ chainId, transfer }),
257
+ direction: 'none',
258
+ })
259
+
260
+ type ParseErc1155TransferToActionTransferParameters = {
261
+ readonly chainId: number
262
+ readonly transfer: Erc1155Transfer
263
+ }
264
+
265
+ const parseErc1155TransferToActionTransfer = ({
266
+ chainId,
267
+ transfer,
268
+ }: ParseErc1155TransferToActionTransferParameters): Omit<
269
+ TransferNftIn | TransferNftOut | TransferNftNone,
270
+ 'direction'
271
+ > => ({
272
+ from: createEvmAddressId({ chainId, address: transfer.from }),
273
+ to: createEvmAddressId({ chainId, address: transfer.to }),
274
+ price: undefined,
275
+ asset: transfer.nft,
276
+ amount: createBigDecimal(transfer.value),
277
+ })
278
+
279
+ export const parseErc1155TransferToActionTransferIn = ({
280
+ chainId,
281
+ transfer,
282
+ }: ParseErc1155TransferToActionTransferParameters): TransferNftIn => ({
283
+ ...parseErc1155TransferToActionTransfer({ chainId, transfer }),
284
+ direction: 'in',
285
+ })
286
+
287
+ export const parseErc1155TransferToActionTransferOut = ({
288
+ chainId,
289
+ transfer,
290
+ }: ParseErc1155TransferToActionTransferParameters): TransferNftOut => ({
291
+ ...parseErc1155TransferToActionTransfer({ chainId, transfer }),
292
+ direction: 'out',
293
+ })
294
+
295
+ export const parseErc1155TransferToActionTransferNone = ({
296
+ chainId,
297
+ transfer,
298
+ }: ParseErc1155TransferToActionTransferParameters): TransferNftNone => ({
299
+ ...parseErc1155TransferToActionTransfer({ chainId, transfer }),
300
+ direction: 'none',
301
+ })