@0xtorch/evm 0.0.74 → 0.0.76

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 (246) hide show
  1. package/.DS_Store +0 -0
  2. package/_cjs/index.js +6 -2
  3. package/_cjs/index.js.map +1 -1
  4. package/_cjs/logic/analyzeTransaction/createActions/fail.js +2 -7
  5. package/_cjs/logic/analyzeTransaction/createActions/fail.js.map +1 -1
  6. package/_cjs/logic/analyzeTransaction/createActions/gas.js +4 -4
  7. package/_cjs/logic/analyzeTransaction/createActions/gas.js.map +1 -1
  8. package/_cjs/logic/analyzeTransaction/createActions/index.js +27 -4
  9. package/_cjs/logic/analyzeTransaction/createActions/index.js.map +1 -1
  10. package/_cjs/logic/analyzeTransaction/createActions/json/addressIn.js +37 -0
  11. package/_cjs/logic/analyzeTransaction/createActions/json/addressIn.js.map +1 -0
  12. package/_cjs/logic/analyzeTransaction/createActions/json/allValue.js +28 -0
  13. package/_cjs/logic/analyzeTransaction/createActions/json/allValue.js.map +1 -0
  14. package/_cjs/logic/analyzeTransaction/createActions/json/arrayIn.js +30 -0
  15. package/_cjs/logic/analyzeTransaction/createActions/json/arrayIn.js.map +1 -0
  16. package/_cjs/logic/analyzeTransaction/createActions/json/betweenBigInt.js +14 -0
  17. package/_cjs/logic/analyzeTransaction/createActions/json/betweenBigInt.js.map +1 -0
  18. package/_cjs/logic/analyzeTransaction/createActions/json/customTransferGenerator.js +132 -0
  19. package/_cjs/logic/analyzeTransaction/createActions/json/customTransferGenerator.js.map +1 -0
  20. package/_cjs/logic/analyzeTransaction/createActions/json/erc1155Pattern.js +76 -0
  21. package/_cjs/logic/analyzeTransaction/createActions/json/erc1155Pattern.js.map +1 -0
  22. package/_cjs/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.js +45 -0
  23. package/_cjs/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.js.map +1 -0
  24. package/_cjs/logic/analyzeTransaction/createActions/json/erc20Pattern.js +68 -0
  25. package/_cjs/logic/analyzeTransaction/createActions/json/erc20Pattern.js.map +1 -0
  26. package/_cjs/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.js +45 -0
  27. package/_cjs/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.js.map +1 -0
  28. package/_cjs/logic/analyzeTransaction/createActions/json/erc721Pattern.js +45 -0
  29. package/_cjs/logic/analyzeTransaction/createActions/json/erc721Pattern.js.map +1 -0
  30. package/_cjs/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.js +45 -0
  31. package/_cjs/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.js.map +1 -0
  32. package/_cjs/logic/analyzeTransaction/createActions/json/generateActions.js +179 -0
  33. package/_cjs/logic/analyzeTransaction/createActions/json/generateActions.js.map +1 -0
  34. package/_cjs/logic/analyzeTransaction/createActions/json/index.js +41 -0
  35. package/_cjs/logic/analyzeTransaction/createActions/json/index.js.map +1 -0
  36. package/_cjs/logic/analyzeTransaction/createActions/json/internalTransferGenerator.js +100 -0
  37. package/_cjs/logic/analyzeTransaction/createActions/json/internalTransferGenerator.js.map +1 -0
  38. package/_cjs/logic/analyzeTransaction/createActions/json/join.js +44 -0
  39. package/_cjs/logic/analyzeTransaction/createActions/json/join.js.map +1 -0
  40. package/_cjs/logic/analyzeTransaction/createActions/json/math.js +80 -0
  41. package/_cjs/logic/analyzeTransaction/createActions/json/math.js.map +1 -0
  42. package/_cjs/logic/analyzeTransaction/createActions/json/schema.js +385 -0
  43. package/_cjs/logic/analyzeTransaction/createActions/json/schema.js.map +1 -0
  44. package/_cjs/logic/analyzeTransaction/createActions/json/simpleValue.js +253 -0
  45. package/_cjs/logic/analyzeTransaction/createActions/json/simpleValue.js.map +1 -0
  46. package/_cjs/logic/analyzeTransaction/createActions/json/slice.js +14 -0
  47. package/_cjs/logic/analyzeTransaction/createActions/json/slice.js.map +1 -0
  48. package/_cjs/logic/analyzeTransaction/createActions/json/transferGenerator.js +179 -0
  49. package/_cjs/logic/analyzeTransaction/createActions/json/transferGenerator.js.map +1 -0
  50. package/_cjs/logic/analyzeTransaction/createActions/json/type.js +3 -0
  51. package/_cjs/logic/analyzeTransaction/createActions/json/type.js.map +1 -0
  52. package/_cjs/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.js +492 -0
  53. package/_cjs/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.js.map +1 -0
  54. package/_cjs/logic/analyzeTransaction/createActions/spam.js +2 -2
  55. package/_cjs/logic/analyzeTransaction/createActions/spam.js.map +1 -1
  56. package/_cjs/logic/analyzeTransaction/createActions/utils/containsUrlOrDomain.js +0 -1
  57. package/_cjs/logic/analyzeTransaction/createActions/utils/containsUrlOrDomain.js.map +1 -1
  58. package/_cjs/logic/analyzeTransaction/createActions/utils/createDirection.js +5 -5
  59. package/_cjs/logic/analyzeTransaction/createActions/utils/createDirection.js.map +1 -1
  60. package/_cjs/logic/analyzeTransaction/createActions/utils/createTokenTransfers.js +82 -65
  61. package/_cjs/logic/analyzeTransaction/createActions/utils/createTokenTransfers.js.map +1 -1
  62. package/_cjs/logic/analyzeTransaction/decodeTransaction/decodeLog.js +2 -2
  63. package/_cjs/logic/analyzeTransaction/decodeTransaction/decodeLog.js.map +1 -1
  64. package/_cjs/logic/analyzeTransaction/getDataFromDatasource.js +3 -5
  65. package/_cjs/logic/analyzeTransaction/getDataFromDatasource.js.map +1 -1
  66. package/_cjs/logic/analyzeTransaction/index.js +4 -4
  67. package/_cjs/logic/analyzeTransaction/index.js.map +1 -1
  68. package/_esm/index.js +1 -0
  69. package/_esm/index.js.map +1 -1
  70. package/_esm/logic/analyzeTransaction/createActions/fail.js +2 -7
  71. package/_esm/logic/analyzeTransaction/createActions/fail.js.map +1 -1
  72. package/_esm/logic/analyzeTransaction/createActions/gas.js +5 -5
  73. package/_esm/logic/analyzeTransaction/createActions/gas.js.map +1 -1
  74. package/_esm/logic/analyzeTransaction/createActions/index.js +28 -6
  75. package/_esm/logic/analyzeTransaction/createActions/index.js.map +1 -1
  76. package/_esm/logic/analyzeTransaction/createActions/json/addressIn.js +33 -0
  77. package/_esm/logic/analyzeTransaction/createActions/json/addressIn.js.map +1 -0
  78. package/_esm/logic/analyzeTransaction/createActions/json/allValue.js +29 -0
  79. package/_esm/logic/analyzeTransaction/createActions/json/allValue.js.map +1 -0
  80. package/_esm/logic/analyzeTransaction/createActions/json/arrayIn.js +28 -0
  81. package/_esm/logic/analyzeTransaction/createActions/json/arrayIn.js.map +1 -0
  82. package/_esm/logic/analyzeTransaction/createActions/json/betweenBigInt.js +10 -0
  83. package/_esm/logic/analyzeTransaction/createActions/json/betweenBigInt.js.map +1 -0
  84. package/_esm/logic/analyzeTransaction/createActions/json/customTransferGenerator.js +128 -0
  85. package/_esm/logic/analyzeTransaction/createActions/json/customTransferGenerator.js.map +1 -0
  86. package/_esm/logic/analyzeTransaction/createActions/json/erc1155Pattern.js +77 -0
  87. package/_esm/logic/analyzeTransaction/createActions/json/erc1155Pattern.js.map +1 -0
  88. package/_esm/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.js +41 -0
  89. package/_esm/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.js.map +1 -0
  90. package/_esm/logic/analyzeTransaction/createActions/json/erc20Pattern.js +68 -0
  91. package/_esm/logic/analyzeTransaction/createActions/json/erc20Pattern.js.map +1 -0
  92. package/_esm/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.js +41 -0
  93. package/_esm/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.js.map +1 -0
  94. package/_esm/logic/analyzeTransaction/createActions/json/erc721Pattern.js +45 -0
  95. package/_esm/logic/analyzeTransaction/createActions/json/erc721Pattern.js.map +1 -0
  96. package/_esm/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.js +41 -0
  97. package/_esm/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.js.map +1 -0
  98. package/_esm/logic/analyzeTransaction/createActions/json/generateActions.js +177 -0
  99. package/_esm/logic/analyzeTransaction/createActions/json/generateActions.js.map +1 -0
  100. package/_esm/logic/analyzeTransaction/createActions/json/index.js +43 -0
  101. package/_esm/logic/analyzeTransaction/createActions/json/index.js.map +1 -0
  102. package/_esm/logic/analyzeTransaction/createActions/json/internalTransferGenerator.js +99 -0
  103. package/_esm/logic/analyzeTransaction/createActions/json/internalTransferGenerator.js.map +1 -0
  104. package/_esm/logic/analyzeTransaction/createActions/json/join.js +43 -0
  105. package/_esm/logic/analyzeTransaction/createActions/json/join.js.map +1 -0
  106. package/_esm/logic/analyzeTransaction/createActions/json/math.js +76 -0
  107. package/_esm/logic/analyzeTransaction/createActions/json/math.js.map +1 -0
  108. package/_esm/logic/analyzeTransaction/createActions/json/schema.js +389 -0
  109. package/_esm/logic/analyzeTransaction/createActions/json/schema.js.map +1 -0
  110. package/_esm/logic/analyzeTransaction/createActions/json/simpleValue.js +266 -0
  111. package/_esm/logic/analyzeTransaction/createActions/json/simpleValue.js.map +1 -0
  112. package/_esm/logic/analyzeTransaction/createActions/json/slice.js +10 -0
  113. package/_esm/logic/analyzeTransaction/createActions/json/slice.js.map +1 -0
  114. package/_esm/logic/analyzeTransaction/createActions/json/transferGenerator.js +178 -0
  115. package/_esm/logic/analyzeTransaction/createActions/json/transferGenerator.js.map +1 -0
  116. package/_esm/logic/analyzeTransaction/createActions/json/type.js +2 -0
  117. package/_esm/logic/analyzeTransaction/createActions/json/type.js.map +1 -0
  118. package/_esm/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.js +511 -0
  119. package/_esm/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.js.map +1 -0
  120. package/_esm/logic/analyzeTransaction/createActions/spam.js +3 -3
  121. package/_esm/logic/analyzeTransaction/createActions/spam.js.map +1 -1
  122. package/_esm/logic/analyzeTransaction/createActions/utils/containsUrlOrDomain.js +0 -1
  123. package/_esm/logic/analyzeTransaction/createActions/utils/containsUrlOrDomain.js.map +1 -1
  124. package/_esm/logic/analyzeTransaction/createActions/utils/createDirection.js +5 -5
  125. package/_esm/logic/analyzeTransaction/createActions/utils/createDirection.js.map +1 -1
  126. package/_esm/logic/analyzeTransaction/createActions/utils/createTokenTransfers.js +82 -65
  127. package/_esm/logic/analyzeTransaction/createActions/utils/createTokenTransfers.js.map +1 -1
  128. package/_esm/logic/analyzeTransaction/decodeTransaction/decodeLog.js +2 -2
  129. package/_esm/logic/analyzeTransaction/decodeTransaction/decodeLog.js.map +1 -1
  130. package/_esm/logic/analyzeTransaction/getDataFromDatasource.js +4 -6
  131. package/_esm/logic/analyzeTransaction/getDataFromDatasource.js.map +1 -1
  132. package/_esm/logic/analyzeTransaction/index.js +4 -4
  133. package/_esm/logic/analyzeTransaction/index.js.map +1 -1
  134. package/_types/index.d.ts +2 -0
  135. package/_types/index.d.ts.map +1 -1
  136. package/_types/logic/analyzeTransaction/createActions/fail.d.ts +3 -2
  137. package/_types/logic/analyzeTransaction/createActions/fail.d.ts.map +1 -1
  138. package/_types/logic/analyzeTransaction/createActions/gas.d.ts +3 -2
  139. package/_types/logic/analyzeTransaction/createActions/gas.d.ts.map +1 -1
  140. package/_types/logic/analyzeTransaction/createActions/general.d.ts +4 -4
  141. package/_types/logic/analyzeTransaction/createActions/general.d.ts.map +1 -1
  142. package/_types/logic/analyzeTransaction/createActions/index.d.ts +5 -3
  143. package/_types/logic/analyzeTransaction/createActions/index.d.ts.map +1 -1
  144. package/_types/logic/analyzeTransaction/createActions/json/addressIn.d.ts +10 -0
  145. package/_types/logic/analyzeTransaction/createActions/json/addressIn.d.ts.map +1 -0
  146. package/_types/logic/analyzeTransaction/createActions/json/allValue.d.ts +9 -0
  147. package/_types/logic/analyzeTransaction/createActions/json/allValue.d.ts.map +1 -0
  148. package/_types/logic/analyzeTransaction/createActions/json/arrayIn.d.ts +10 -0
  149. package/_types/logic/analyzeTransaction/createActions/json/arrayIn.d.ts.map +1 -0
  150. package/_types/logic/analyzeTransaction/createActions/json/betweenBigInt.d.ts +7 -0
  151. package/_types/logic/analyzeTransaction/createActions/json/betweenBigInt.d.ts.map +1 -0
  152. package/_types/logic/analyzeTransaction/createActions/json/customTransferGenerator.d.ts +12 -0
  153. package/_types/logic/analyzeTransaction/createActions/json/customTransferGenerator.d.ts.map +1 -0
  154. package/_types/logic/analyzeTransaction/createActions/json/erc1155Pattern.d.ts +10 -0
  155. package/_types/logic/analyzeTransaction/createActions/json/erc1155Pattern.d.ts.map +1 -0
  156. package/_types/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.d.ts +10 -0
  157. package/_types/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.d.ts.map +1 -0
  158. package/_types/logic/analyzeTransaction/createActions/json/erc20Pattern.d.ts +10 -0
  159. package/_types/logic/analyzeTransaction/createActions/json/erc20Pattern.d.ts.map +1 -0
  160. package/_types/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.d.ts +10 -0
  161. package/_types/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.d.ts.map +1 -0
  162. package/_types/logic/analyzeTransaction/createActions/json/erc721Pattern.d.ts +10 -0
  163. package/_types/logic/analyzeTransaction/createActions/json/erc721Pattern.d.ts.map +1 -0
  164. package/_types/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.d.ts +10 -0
  165. package/_types/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.d.ts.map +1 -0
  166. package/_types/logic/analyzeTransaction/createActions/json/generateActions.d.ts +14 -0
  167. package/_types/logic/analyzeTransaction/createActions/json/generateActions.d.ts.map +1 -0
  168. package/_types/logic/analyzeTransaction/createActions/json/index.d.ts +16 -0
  169. package/_types/logic/analyzeTransaction/createActions/json/index.d.ts.map +1 -0
  170. package/_types/logic/analyzeTransaction/createActions/json/internalTransferGenerator.d.ts +12 -0
  171. package/_types/logic/analyzeTransaction/createActions/json/internalTransferGenerator.d.ts.map +1 -0
  172. package/_types/logic/analyzeTransaction/createActions/json/join.d.ts +9 -0
  173. package/_types/logic/analyzeTransaction/createActions/json/join.d.ts.map +1 -0
  174. package/_types/logic/analyzeTransaction/createActions/json/math.d.ts +9 -0
  175. package/_types/logic/analyzeTransaction/createActions/json/math.d.ts.map +1 -0
  176. package/_types/logic/analyzeTransaction/createActions/json/schema.d.ts +658268 -0
  177. package/_types/logic/analyzeTransaction/createActions/json/schema.d.ts.map +1 -0
  178. package/_types/logic/analyzeTransaction/createActions/json/simpleValue.d.ts +9 -0
  179. package/_types/logic/analyzeTransaction/createActions/json/simpleValue.d.ts.map +1 -0
  180. package/_types/logic/analyzeTransaction/createActions/json/slice.d.ts +9 -0
  181. package/_types/logic/analyzeTransaction/createActions/json/slice.d.ts.map +1 -0
  182. package/_types/logic/analyzeTransaction/createActions/json/transferGenerator.d.ts +15 -0
  183. package/_types/logic/analyzeTransaction/createActions/json/transferGenerator.d.ts.map +1 -0
  184. package/_types/logic/analyzeTransaction/createActions/json/type.d.ts +6 -0
  185. package/_types/logic/analyzeTransaction/createActions/json/type.d.ts.map +1 -0
  186. package/_types/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.d.ts +10 -0
  187. package/_types/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.d.ts.map +1 -0
  188. package/_types/logic/analyzeTransaction/createActions/spam.d.ts +7 -5
  189. package/_types/logic/analyzeTransaction/createActions/spam.d.ts.map +1 -1
  190. package/_types/logic/analyzeTransaction/createActions/utils/containsUrlOrDomain.d.ts.map +1 -1
  191. package/_types/logic/analyzeTransaction/createActions/utils/createDirection.d.ts +5 -4
  192. package/_types/logic/analyzeTransaction/createActions/utils/createDirection.d.ts.map +1 -1
  193. package/_types/logic/analyzeTransaction/createActions/utils/createTokenTransfers.d.ts +3 -2
  194. package/_types/logic/analyzeTransaction/createActions/utils/createTokenTransfers.d.ts.map +1 -1
  195. package/_types/logic/analyzeTransaction/getDataFromDatasource.d.ts +11 -10
  196. package/_types/logic/analyzeTransaction/getDataFromDatasource.d.ts.map +1 -1
  197. package/_types/logic/analyzeTransaction/index.d.ts +8 -7
  198. package/_types/logic/analyzeTransaction/index.d.ts.map +1 -1
  199. package/_types/types/analyzeDataSource.d.ts +2 -3
  200. package/_types/types/analyzeDataSource.d.ts.map +1 -1
  201. package/_types/types/log.d.ts +2 -2
  202. package/_types/types/transactionDecoded.d.ts +38 -38
  203. package/_types/types/transactionDecoded.d.ts.map +1 -1
  204. package/_types/types/transactionDetail.d.ts +36 -36
  205. package/_types/types/transactionIndex.d.ts +5 -5
  206. package/analyzer/.DS_Store +0 -0
  207. package/chain/.DS_Store +0 -0
  208. package/client/.DS_Store +0 -0
  209. package/explorer/.DS_Store +0 -0
  210. package/index.ts +10 -0
  211. package/logic/analyzeTransaction/createActions/fail.ts +4 -8
  212. package/logic/analyzeTransaction/createActions/gas.ts +7 -6
  213. package/logic/analyzeTransaction/createActions/general.ts +4 -4
  214. package/logic/analyzeTransaction/createActions/index.ts +37 -9
  215. package/logic/analyzeTransaction/createActions/json/addressIn.ts +57 -0
  216. package/logic/analyzeTransaction/createActions/json/allValue.ts +41 -0
  217. package/logic/analyzeTransaction/createActions/json/arrayIn.ts +51 -0
  218. package/logic/analyzeTransaction/createActions/json/betweenBigInt.ts +18 -0
  219. package/logic/analyzeTransaction/createActions/json/customTransferGenerator.ts +166 -0
  220. package/logic/analyzeTransaction/createActions/json/erc1155Pattern.ts +108 -0
  221. package/logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.ts +53 -0
  222. package/logic/analyzeTransaction/createActions/json/erc20Pattern.ts +96 -0
  223. package/logic/analyzeTransaction/createActions/json/erc20TransferGenerator.ts +53 -0
  224. package/logic/analyzeTransaction/createActions/json/erc721Pattern.ts +74 -0
  225. package/logic/analyzeTransaction/createActions/json/erc721TransferGenerator.ts +53 -0
  226. package/logic/analyzeTransaction/createActions/json/generateActions.ts +248 -0
  227. package/logic/analyzeTransaction/createActions/json/index.ts +72 -0
  228. package/logic/analyzeTransaction/createActions/json/internalTransferGenerator.ts +141 -0
  229. package/logic/analyzeTransaction/createActions/json/join.ts +54 -0
  230. package/logic/analyzeTransaction/createActions/json/math.ts +96 -0
  231. package/logic/analyzeTransaction/createActions/json/schema.ts +554 -0
  232. package/logic/analyzeTransaction/createActions/json/simpleValue.ts +339 -0
  233. package/logic/analyzeTransaction/createActions/json/slice.ts +21 -0
  234. package/logic/analyzeTransaction/createActions/json/transferGenerator.ts +220 -0
  235. package/logic/analyzeTransaction/createActions/json/type.ts +8 -0
  236. package/logic/analyzeTransaction/createActions/json/verifyTxSatisfiesCondition.ts +731 -0
  237. package/logic/analyzeTransaction/createActions/spam.ts +9 -6
  238. package/logic/analyzeTransaction/createActions/tests/tx-1-0x5c1345e9b83106f657de5a20d75de3e9f56725697b4ef47cafd019c1fa944128.json +383 -0
  239. package/logic/analyzeTransaction/createActions/utils/containsUrlOrDomain.ts +0 -1
  240. package/logic/analyzeTransaction/createActions/utils/createDirection.ts +10 -8
  241. package/logic/analyzeTransaction/createActions/utils/createTokenTransfers.ts +96 -68
  242. package/logic/analyzeTransaction/decodeTransaction/decodeLog.ts +6 -3
  243. package/logic/analyzeTransaction/getDataFromDatasource.ts +14 -28
  244. package/logic/analyzeTransaction/index.ts +11 -10
  245. package/package.json +2 -2
  246. package/types/analyzeDataSource.ts +2 -2
@@ -1,6 +1,7 @@
1
1
  import { createBigDecimal } from '@0xtorch/big-decimal'
2
2
  import type { Transfer } from '@0xtorch/core'
3
3
  import type { Chain } from '../../../../chain'
4
+ import type { LowerHex } from '../../../../types'
4
5
  import type { TransactionDecoded } from '../../../../types/transactionDecoded'
5
6
  import { createEvmAddressId } from '../../../../utils'
6
7
  import { createDirection } from './createDirection'
@@ -8,37 +9,43 @@ import { createDirection } from './createDirection'
8
9
  type CreateTokenTransfersParameters = {
9
10
  chain: Chain
10
11
  transaction: TransactionDecoded
11
- accountIds: Set<string>
12
+ relatedAddresses: Set<LowerHex>
12
13
  }
13
14
 
14
15
  export const createTokenTransfers = ({
15
16
  chain,
16
17
  transaction,
17
- accountIds,
18
+ relatedAddresses,
18
19
  }: CreateTokenTransfersParameters): readonly Transfer[] => {
19
20
  const transfers: Transfer[] = []
20
21
 
21
22
  // value
22
23
  if (transaction.value > 0n) {
23
- const from = createEvmAddressId({
24
- chainId: transaction.chainId,
25
- address: transaction.from.address,
26
- })
27
- const to =
28
- transaction.to === undefined
29
- ? undefined
30
- : createEvmAddressId({
31
- chainId: transaction.chainId,
32
- address: transaction.to.address,
33
- })
34
- if (accountIds.has(from) || (to !== undefined && accountIds.has(to))) {
24
+ if (
25
+ relatedAddresses.has(transaction.from.address) ||
26
+ (transaction.to !== undefined &&
27
+ relatedAddresses.has(transaction.to.address))
28
+ ) {
35
29
  transfers.push({
36
- from,
37
- to,
30
+ from: createEvmAddressId({
31
+ chainId: transaction.chainId,
32
+ address: transaction.from.address,
33
+ }),
34
+ to:
35
+ transaction.to === undefined
36
+ ? undefined
37
+ : createEvmAddressId({
38
+ chainId: transaction.chainId,
39
+ address: transaction.to.address,
40
+ }),
38
41
  price: undefined,
39
42
  asset: chain.nativeToken.currency,
40
43
  amount: createBigDecimal(transaction.value, chain.nativeToken.decimals),
41
- direction: createDirection({ from, to, accountIds }),
44
+ direction: createDirection({
45
+ from: transaction.from.address,
46
+ to: transaction.to?.address,
47
+ relatedAddresses,
48
+ }),
42
49
  })
43
50
  }
44
51
  }
@@ -48,30 +55,36 @@ export const createTokenTransfers = ({
48
55
  if (internalTransaction.value <= 0n) {
49
56
  continue
50
57
  }
51
- const from = createEvmAddressId({
52
- chainId: transaction.chainId,
53
- address: internalTransaction.from,
54
- })
55
- const to =
56
- internalTransaction.to === undefined
57
- ? undefined
58
- : createEvmAddressId({
59
- chainId: transaction.chainId,
60
- address: internalTransaction.to,
61
- })
62
- if (!accountIds.has(from) && (to === undefined || !accountIds.has(to))) {
58
+ if (
59
+ !relatedAddresses.has(internalTransaction.from) &&
60
+ (internalTransaction.to === undefined ||
61
+ !relatedAddresses.has(internalTransaction.to))
62
+ ) {
63
63
  continue
64
64
  }
65
65
  transfers.push({
66
- from,
67
- to,
66
+ from: createEvmAddressId({
67
+ chainId: transaction.chainId,
68
+ address: internalTransaction.from,
69
+ }),
70
+ to:
71
+ internalTransaction.to === undefined
72
+ ? undefined
73
+ : createEvmAddressId({
74
+ chainId: transaction.chainId,
75
+ address: internalTransaction.to,
76
+ }),
68
77
  price: undefined,
69
78
  asset: chain.nativeToken.currency,
70
79
  amount: createBigDecimal(
71
80
  internalTransaction.value,
72
81
  chain.nativeToken.decimals,
73
82
  ),
74
- direction: createDirection({ from, to, accountIds }),
83
+ direction: createDirection({
84
+ from: internalTransaction.from,
85
+ to: internalTransaction.to,
86
+ relatedAddresses,
87
+ }),
75
88
  })
76
89
  }
77
90
 
@@ -80,50 +93,60 @@ export const createTokenTransfers = ({
80
93
  if (erc20Transfer.value === 0n) {
81
94
  continue
82
95
  }
83
- const from = createEvmAddressId({
84
- chainId: transaction.chainId,
85
- address: erc20Transfer.from,
86
- })
87
- const to = createEvmAddressId({
88
- chainId: transaction.chainId,
89
- address: erc20Transfer.to,
90
- })
91
- if (!accountIds.has(from) && !accountIds.has(to)) {
96
+ if (
97
+ !relatedAddresses.has(erc20Transfer.from) &&
98
+ !relatedAddresses.has(erc20Transfer.to)
99
+ ) {
92
100
  continue
93
101
  }
94
102
  transfers.push({
95
- from,
96
- to,
103
+ from: createEvmAddressId({
104
+ chainId: transaction.chainId,
105
+ address: erc20Transfer.from,
106
+ }),
107
+ to: createEvmAddressId({
108
+ chainId: transaction.chainId,
109
+ address: erc20Transfer.to,
110
+ }),
97
111
  price: undefined,
98
112
  asset: erc20Transfer.token.currency,
99
113
  amount: createBigDecimal(
100
114
  erc20Transfer.value,
101
115
  erc20Transfer.token.decimals,
102
116
  ),
103
- direction: createDirection({ from, to, accountIds }),
117
+ direction: createDirection({
118
+ from: erc20Transfer.from,
119
+ to: erc20Transfer.to,
120
+ relatedAddresses,
121
+ }),
104
122
  })
105
123
  }
106
124
 
107
125
  // erc721 transfers
108
126
  for (const erc721Transfer of transaction.erc721Transfers) {
109
- const from = createEvmAddressId({
110
- chainId: transaction.chainId,
111
- address: erc721Transfer.from,
112
- })
113
- const to = createEvmAddressId({
114
- chainId: transaction.chainId,
115
- address: erc721Transfer.to,
116
- })
117
- if (!accountIds.has(from) && !accountIds.has(to)) {
127
+ if (
128
+ !relatedAddresses.has(erc721Transfer.from) &&
129
+ !relatedAddresses.has(erc721Transfer.to)
130
+ ) {
118
131
  continue
119
132
  }
120
133
  transfers.push({
121
- from,
122
- to,
134
+ from: createEvmAddressId({
135
+ chainId: transaction.chainId,
136
+ address: erc721Transfer.from,
137
+ }),
138
+ to: createEvmAddressId({
139
+ chainId: transaction.chainId,
140
+ address: erc721Transfer.to,
141
+ }),
123
142
  price: undefined,
124
143
  asset: erc721Transfer.token,
125
144
  amount: createBigDecimal(1n),
126
- direction: createDirection({ from, to, accountIds }),
145
+ direction: createDirection({
146
+ from: erc721Transfer.from,
147
+ to: erc721Transfer.to,
148
+ relatedAddresses,
149
+ }),
127
150
  })
128
151
  }
129
152
 
@@ -132,24 +155,29 @@ export const createTokenTransfers = ({
132
155
  if (erc1155Transfer.value === 0n) {
133
156
  continue
134
157
  }
135
- const from = createEvmAddressId({
136
- chainId: transaction.chainId,
137
- address: erc1155Transfer.from,
138
- })
139
- const to = createEvmAddressId({
140
- chainId: transaction.chainId,
141
- address: erc1155Transfer.to,
142
- })
143
- if (!accountIds.has(from) && !accountIds.has(to)) {
158
+ if (
159
+ !relatedAddresses.has(erc1155Transfer.from) &&
160
+ !relatedAddresses.has(erc1155Transfer.to)
161
+ ) {
144
162
  continue
145
163
  }
146
164
  transfers.push({
147
- from,
148
- to,
165
+ from: createEvmAddressId({
166
+ chainId: transaction.chainId,
167
+ address: erc1155Transfer.from,
168
+ }),
169
+ to: createEvmAddressId({
170
+ chainId: transaction.chainId,
171
+ address: erc1155Transfer.to,
172
+ }),
149
173
  price: undefined,
150
174
  asset: erc1155Transfer.token,
151
175
  amount: createBigDecimal(erc1155Transfer.value),
152
- direction: createDirection({ from, to, accountIds }),
176
+ direction: createDirection({
177
+ from: erc1155Transfer.from,
178
+ to: erc1155Transfer.to,
179
+ relatedAddresses,
180
+ }),
153
181
  })
154
182
  }
155
183
 
@@ -92,10 +92,13 @@ const decodeInputByEventAbi = (log: Log, abiText: string): Log | undefined => {
92
92
  }
93
93
  }
94
94
 
95
- const createLogArgs = (args: Record<string, unknown>, abiItem: AbiEventType) =>
96
- abiItem.inputs.map(({ indexed, name, type }) => ({
95
+ const createLogArgs = (
96
+ args: Record<string, unknown> | unknown[],
97
+ abiItem: AbiEventType,
98
+ ) =>
99
+ abiItem.inputs.map(({ indexed, name, type }, index) => ({
97
100
  indexed: indexed ?? false,
98
101
  name: name ?? '',
99
102
  type: type,
100
- value: args[name ?? ''],
103
+ value: Array.isArray(args) ? args[index] : args[name ?? ''],
101
104
  }))
@@ -3,36 +3,32 @@ import type { Erc20Token, LowerHex } from '../../types'
3
3
  import type { EvmAddress } from '../../types/address'
4
4
  import type { AnalyzeDataSource } from '../../types/analyzeDataSource'
5
5
  import type { TransactionDetail } from '../../types/transactionDetail'
6
- import {
7
- createErc721NftId,
8
- createErc1155NftId,
9
- createEvmAddressId,
10
- } from '../../utils'
6
+ import { createErc721NftId, createErc1155NftId } from '../../utils'
7
+ import type { JsonAnalyzer } from './createActions/json/type'
11
8
 
12
9
  type GetDataFromDatasourceParameters = {
13
- transaction: TransactionDetail
14
- datasource: AnalyzeDataSource
15
- accountIds: Set<string>
10
+ readonly transaction: TransactionDetail
11
+ readonly datasource: AnalyzeDataSource
12
+ readonly relatedAddresses: Set<LowerHex>
16
13
  }
17
14
 
18
15
  type GetDataFromDatasourceReturnTypes = {
19
- addresses: readonly EvmAddress[]
20
- erc20Tokens: readonly Erc20Token[]
21
- eventAbis: readonly {
16
+ readonly addresses: readonly EvmAddress[]
17
+ readonly erc20Tokens: readonly Erc20Token[]
18
+ readonly eventAbis: readonly {
22
19
  signature: LowerHex
23
20
  indexedCount: number
24
21
  abi: string
25
22
  }[]
26
- functionAbis: readonly string[]
27
- // TODO
28
- jsonAnalyzers: readonly unknown[]
29
- nfts: readonly Nft[]
23
+ readonly functionAbis: readonly string[]
24
+ readonly jsonAnalyzers: readonly JsonAnalyzer[]
25
+ readonly nfts: readonly Nft[]
30
26
  }
31
27
 
32
28
  export const getDataFromDatasource = async ({
33
29
  transaction,
34
30
  datasource,
35
- accountIds,
31
+ relatedAddresses,
36
32
  }: GetDataFromDatasourceParameters): Promise<GetDataFromDatasourceReturnTypes> => {
37
33
  // Fetch data from datasource
38
34
  const erc20TransferAddresses = new Set(
@@ -42,12 +38,7 @@ export const getDataFromDatasource = async ({
42
38
  ...transaction.erc721Transfers
43
39
  .filter(
44
40
  ({ from, to }) =>
45
- accountIds.has(
46
- createEvmAddressId({ chainId: transaction.chainId, address: from }),
47
- ) ||
48
- accountIds.has(
49
- createEvmAddressId({ chainId: transaction.chainId, address: to }),
50
- ),
41
+ relatedAddresses.has(from) || relatedAddresses.has(to),
51
42
  )
52
43
  .map(({ address, tokenId }) =>
53
44
  createErc721NftId({ chainId: transaction.chainId, address, tokenId }),
@@ -55,12 +46,7 @@ export const getDataFromDatasource = async ({
55
46
  ...transaction.erc1155Transfers
56
47
  .filter(
57
48
  ({ from, to }) =>
58
- accountIds.has(
59
- createEvmAddressId({ chainId: transaction.chainId, address: from }),
60
- ) ||
61
- accountIds.has(
62
- createEvmAddressId({ chainId: transaction.chainId, address: to }),
63
- ),
49
+ relatedAddresses.has(from) || relatedAddresses.has(to),
64
50
  )
65
51
  .map(({ address, tokenId }) =>
66
52
  createErc1155NftId({ chainId: transaction.chainId, address, tokenId }),
@@ -1,5 +1,6 @@
1
1
  import type { Action } from '@0xtorch/core'
2
2
  import type { Chain } from '../../chain'
3
+ import type { LowerHex } from '../../types'
3
4
  import type { AnalyzeDataSource } from '../../types/analyzeDataSource'
4
5
  import type { TransactionDecoded } from '../../types/transactionDecoded'
5
6
  import type { TransactionDetail } from '../../types/transactionDetail'
@@ -8,24 +9,24 @@ import { decodeTransaction } from './decodeTransaction'
8
9
  import { getDataFromDatasource } from './getDataFromDatasource'
9
10
 
10
11
  type AnalyzeTransactionParameters = {
11
- chain: Chain
12
- transaction: TransactionDetail
13
- datasource: AnalyzeDataSource
14
- accountIds: string[]
12
+ readonly chain: Chain
13
+ readonly transaction: TransactionDetail
14
+ readonly datasource: AnalyzeDataSource
15
+ readonly relatedAddresses: readonly LowerHex[]
15
16
  }
16
17
 
17
18
  type AnalyzeTransactionReturnTypes = {
18
- transaction: TransactionDecoded
19
- actions: readonly Action[]
19
+ readonly transaction: TransactionDecoded
20
+ readonly actions: readonly Action[]
20
21
  }
21
22
 
22
23
  export const analyzeTransaction = async ({
23
24
  chain,
24
25
  transaction,
25
26
  datasource,
26
- accountIds,
27
+ relatedAddresses,
27
28
  }: AnalyzeTransactionParameters): Promise<AnalyzeTransactionReturnTypes> => {
28
- const accountIdSet = new Set(accountIds)
29
+ const addressSet = new Set(relatedAddresses)
29
30
  const {
30
31
  addresses,
31
32
  erc20Tokens,
@@ -36,7 +37,7 @@ export const analyzeTransaction = async ({
36
37
  } = await getDataFromDatasource({
37
38
  transaction,
38
39
  datasource,
39
- accountIds: accountIdSet,
40
+ relatedAddresses: addressSet,
40
41
  })
41
42
 
42
43
  const transactionDecoded = decodeTransaction({
@@ -51,7 +52,7 @@ export const analyzeTransaction = async ({
51
52
  const actions = createActions({
52
53
  chain,
53
54
  transaction: transactionDecoded,
54
- accountIds: accountIdSet,
55
+ relatedAddresses: addressSet,
55
56
  jsonAnalyzers,
56
57
  })
57
58
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/evm",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "description": "Cryptorch EVM extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "dependencies": {
40
40
  "@0xtorch/big-decimal": "^0.0.10",
41
- "@0xtorch/core": "^0.0.44",
41
+ "@0xtorch/core": "^0.0.46",
42
42
  "abitype": "^1.0.6",
43
43
  "viem": "^2.21.7",
44
44
  "zod": "^3.23.8"
@@ -1,4 +1,5 @@
1
1
  import type { Nft } from '@0xtorch/core'
2
+ import type { JsonAnalyzer } from '../logic/analyzeTransaction/createActions/json/type'
2
3
  import type { EvmAddress } from './address'
3
4
  import type { Erc20Token } from './erc20'
4
5
  import type { LowerHex } from './hex'
@@ -30,10 +31,9 @@ type GetFunctionAbi = (parameters: {
30
31
  functionId: LowerHex
31
32
  }) => Promise<string[]>
32
33
 
33
- // TODO JSON Analyzer の型・schema を改めて定義して、それを使う
34
34
  type GetJsonAnalyzer = (parameters: {
35
35
  functionId: LowerHex
36
- }) => Promise<{ functionId: string }[]>
36
+ }) => Promise<JsonAnalyzer[]>
37
37
 
38
38
  type GetNfts = (parameters: {
39
39
  // TODO EVM NFT ID の専用型にした方が良さそう