@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
@@ -0,0 +1,128 @@
1
+ import { createBigDecimal } from '@0xtorch/big-decimal';
2
+ import { isHex, toLowerHex, } from '../../../../types';
3
+ import { createEvmAddressId } from '../../../../utils';
4
+ import { getAllValue } from './allValue';
5
+ import { checkTransferIsMatchErc20Pattern } from './erc20Pattern';
6
+ import { checkTransferIsMatchErc721Pattern } from './erc721Pattern';
7
+ import { checkTransferIsMatchErc1155Pattern } from './erc1155Pattern';
8
+ export const generateCustomTransfer = ({ schema, chain, transaction, relatedAddresses, }) => {
9
+ const fromText = schema.from === undefined
10
+ ? undefined
11
+ : getAllValue({
12
+ schema: schema.from,
13
+ transaction,
14
+ relatedAddresses,
15
+ });
16
+ const from = fromText === undefined || !isHex(fromText)
17
+ ? undefined
18
+ : createEvmAddressId({
19
+ chainId: transaction.chainId,
20
+ address: toLowerHex(fromText),
21
+ });
22
+ const toText = schema.to === undefined
23
+ ? undefined
24
+ : getAllValue({
25
+ schema: schema.to,
26
+ transaction,
27
+ relatedAddresses,
28
+ });
29
+ const to = toText === undefined || !isHex(toText)
30
+ ? undefined
31
+ : createEvmAddressId({
32
+ chainId: transaction.chainId,
33
+ address: toLowerHex(toText),
34
+ });
35
+ const { asset, decimals } = getAssetWithDecimals({
36
+ schema: schema.asset,
37
+ chain,
38
+ transaction,
39
+ relatedAddresses,
40
+ });
41
+ const amountText = getAllValue({
42
+ schema: schema.amount,
43
+ transaction,
44
+ relatedAddresses,
45
+ });
46
+ const amount = createBigDecimal(BigInt(amountText), decimals);
47
+ return {
48
+ direction: schema.direction,
49
+ from,
50
+ to,
51
+ asset,
52
+ amount,
53
+ };
54
+ };
55
+ const getAssetWithDecimals = ({ schema, chain, transaction, relatedAddresses, }) => {
56
+ switch (schema.type) {
57
+ case 'native': {
58
+ return {
59
+ asset: chain.nativeToken.currency,
60
+ decimals: chain.nativeToken.decimals,
61
+ };
62
+ }
63
+ case 'erc20': {
64
+ let currentIndex = -1;
65
+ for (const transfer of transaction.erc20Transfers) {
66
+ const matched = checkTransferIsMatchErc20Pattern({
67
+ transfer,
68
+ schema,
69
+ transaction,
70
+ relatedAddresses,
71
+ });
72
+ if (matched) {
73
+ currentIndex += 1;
74
+ if (currentIndex === schema.index) {
75
+ return {
76
+ asset: transfer.token.currency,
77
+ decimals: transfer.token.decimals,
78
+ };
79
+ }
80
+ }
81
+ }
82
+ throw new Error('Matched ERC20 transfer is not found');
83
+ }
84
+ case 'erc721': {
85
+ let currentIndex = -1;
86
+ for (const transfer of transaction.erc721Transfers) {
87
+ const matched = checkTransferIsMatchErc721Pattern({
88
+ transfer,
89
+ schema,
90
+ transaction,
91
+ relatedAddresses,
92
+ });
93
+ if (matched) {
94
+ currentIndex += 1;
95
+ if (currentIndex === schema.index) {
96
+ return {
97
+ asset: transfer.token,
98
+ decimals: 0,
99
+ };
100
+ }
101
+ }
102
+ }
103
+ throw new Error('Matched ERC721 transfer is not found');
104
+ }
105
+ case 'erc1155': {
106
+ let currentIndex = -1;
107
+ for (const transfer of transaction.erc1155Transfers) {
108
+ const matched = checkTransferIsMatchErc1155Pattern({
109
+ transfer,
110
+ schema,
111
+ transaction,
112
+ relatedAddresses,
113
+ });
114
+ if (matched) {
115
+ currentIndex += 1;
116
+ if (currentIndex === schema.index) {
117
+ return {
118
+ asset: transfer.token,
119
+ decimals: 0,
120
+ };
121
+ }
122
+ }
123
+ }
124
+ throw new Error('Matched ERC1155 transfer is not found');
125
+ }
126
+ }
127
+ };
128
+ //# sourceMappingURL=customTransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/customTransferGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { getAllValue } from './allValue';
2
+ import { checkValueIsArrayIn } from './arrayIn';
3
+ import { checkValueIsBetweenBigInt } from './betweenBigInt';
4
+ export const checkTransferIsMatchErc1155Pattern = ({ transfer, schema, transaction, relatedAddresses, }) => {
5
+ // address
6
+ if (schema.address !== undefined &&
7
+ !checkValueIsArrayIn({
8
+ value: transfer.address,
9
+ schema: schema.address,
10
+ transaction,
11
+ relatedAddresses,
12
+ })) {
13
+ return false;
14
+ }
15
+ // from
16
+ if (schema.from !== undefined &&
17
+ !checkValueIsArrayIn({
18
+ value: transfer.from,
19
+ schema: schema.from,
20
+ transaction,
21
+ relatedAddresses,
22
+ })) {
23
+ return false;
24
+ }
25
+ // to
26
+ if (schema.to !== undefined &&
27
+ !checkValueIsArrayIn({
28
+ value: transfer.to,
29
+ schema: schema.to,
30
+ transaction,
31
+ relatedAddresses,
32
+ })) {
33
+ return false;
34
+ }
35
+ // id
36
+ if (schema.id !== undefined &&
37
+ getAllValue({
38
+ schema: schema.id,
39
+ transaction,
40
+ relatedAddresses,
41
+ }) !== transfer.tokenId.toString()) {
42
+ return false;
43
+ }
44
+ // amount
45
+ if (schema.amount !== undefined) {
46
+ if (typeof schema.amount === 'string') {
47
+ if (transfer.value.toString() !== schema.amount) {
48
+ return false;
49
+ }
50
+ }
51
+ else {
52
+ switch (schema.amount.type) {
53
+ case 'between': {
54
+ if (!checkValueIsBetweenBigInt({
55
+ value: transfer.value,
56
+ schema: schema.amount,
57
+ })) {
58
+ return false;
59
+ }
60
+ break;
61
+ }
62
+ default: {
63
+ const value = getAllValue({
64
+ schema: schema.amount,
65
+ transaction,
66
+ relatedAddresses,
67
+ });
68
+ if (transfer.value.toString() !== value) {
69
+ return false;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return true;
76
+ };
77
+ //# sourceMappingURL=erc1155Pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc1155Pattern.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc1155Pattern.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAG3D,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,WAAW,EACX,gBAAgB,GAMjB,EAAW,EAAE;IACZ,UAAU;IACV,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO;IACP,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK;IACL,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK;IACL,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,WAAW,CAAC;YACV,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW;YACX,gBAAgB;SACjB,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAClC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,IACE,CAAC,yBAAyB,CAAC;wBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,CAAC,EACF,CAAC;wBACD,OAAO,KAAK,CAAA;oBACd,CAAC;oBACD,MAAK;gBACP,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,KAAK,GAAG,WAAW,CAAC;wBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,WAAW;wBACX,gBAAgB;qBACjB,CAAC,CAAA;oBACF,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;wBACxC,OAAO,KAAK,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { createBigDecimal } from '@0xtorch/big-decimal';
2
+ import { createEvmAddressId } from '../../../../utils';
3
+ import { checkTransferIsMatchErc1155Pattern } from './erc1155Pattern';
4
+ export const generateTransfersByErc1155Transfer = ({ schema, transaction, relatedAddresses, }) => {
5
+ const transfers = [];
6
+ let currentIndex = -1;
7
+ for (const transfer of transaction.erc1155Transfers) {
8
+ const matched = checkTransferIsMatchErc1155Pattern({
9
+ transfer,
10
+ schema,
11
+ transaction,
12
+ relatedAddresses,
13
+ });
14
+ if (matched) {
15
+ currentIndex += 1;
16
+ if (schema.index === undefined || currentIndex === schema.index) {
17
+ transfers.push({
18
+ direction: schema.direction,
19
+ from: createEvmAddressId({
20
+ chainId: transaction.chainId,
21
+ address: transfer.from,
22
+ }),
23
+ to: createEvmAddressId({
24
+ chainId: transaction.chainId,
25
+ address: transfer.to,
26
+ }),
27
+ asset: transfer.token,
28
+ amount: createBigDecimal(transfer.value),
29
+ });
30
+ }
31
+ if (currentIndex === schema.index) {
32
+ return transfers;
33
+ }
34
+ }
35
+ }
36
+ if (schema.index === undefined) {
37
+ return transfers;
38
+ }
39
+ throw new Error('Matched ERC1155 transfer is not found');
40
+ };
41
+ //# sourceMappingURL=erc1155TransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc1155TransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc1155TransferGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,kCAAkC,EAAE,MAAM,kBAAkB,CAAA;AAGrE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,EACjD,MAAM,EACN,WAAW,EACX,gBAAgB,GAKjB,EAAuB,EAAE;IACxB,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAA;IACrB,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,kCAAkC,CAAC;YACjD,QAAQ;YACR,MAAM;YACN,WAAW;YACX,gBAAgB;SACjB,CAAC,CAAA;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,IAAI,CAAC,CAAA;YACjB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChE,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,IAAI,EAAE,kBAAkB,CAAC;wBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,IAAI;qBACvB,CAAC;oBACF,EAAE,EAAE,kBAAkB,CAAC;wBACrB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE;qBACrB,CAAC;oBACF,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACzC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;AAC1D,CAAC,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { getAllValue } from './allValue';
2
+ import { checkValueIsArrayIn } from './arrayIn';
3
+ import { checkValueIsBetweenBigInt } from './betweenBigInt';
4
+ export const checkTransferIsMatchErc20Pattern = ({ transfer, schema, transaction, relatedAddresses, }) => {
5
+ // address
6
+ if (schema.address !== undefined &&
7
+ !checkValueIsArrayIn({
8
+ value: transfer.address,
9
+ schema: schema.address,
10
+ transaction,
11
+ relatedAddresses,
12
+ })) {
13
+ return false;
14
+ }
15
+ // from
16
+ if (schema.from !== undefined &&
17
+ !checkValueIsArrayIn({
18
+ value: transfer.from,
19
+ schema: schema.from,
20
+ transaction,
21
+ relatedAddresses,
22
+ })) {
23
+ return false;
24
+ }
25
+ // to
26
+ if (schema.to !== undefined &&
27
+ !checkValueIsArrayIn({
28
+ value: transfer.to,
29
+ schema: schema.to,
30
+ transaction,
31
+ relatedAddresses,
32
+ })) {
33
+ return false;
34
+ }
35
+ // amount
36
+ if (schema.amount !== undefined) {
37
+ if (typeof schema.amount === 'string') {
38
+ if (transfer.value.toString() !== schema.amount) {
39
+ return false;
40
+ }
41
+ }
42
+ else {
43
+ switch (schema.amount.type) {
44
+ case 'between': {
45
+ if (!checkValueIsBetweenBigInt({
46
+ value: transfer.value,
47
+ schema: schema.amount,
48
+ })) {
49
+ return false;
50
+ }
51
+ break;
52
+ }
53
+ default: {
54
+ const value = getAllValue({
55
+ schema: schema.amount,
56
+ transaction,
57
+ relatedAddresses,
58
+ });
59
+ if (transfer.value.toString() !== value) {
60
+ return false;
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ return true;
67
+ };
68
+ //# sourceMappingURL=erc20Pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20Pattern.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc20Pattern.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAG3D,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,EAC/C,QAAQ,EACR,MAAM,EACN,WAAW,EACX,gBAAgB,GAMjB,EAAW,EAAE;IACZ,UAAU;IACV,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO;IACP,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK;IACL,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3B,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,IACE,CAAC,yBAAyB,CAAC;wBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB,CAAC,EACF,CAAC;wBACD,OAAO,KAAK,CAAA;oBACd,CAAC;oBACD,MAAK;gBACP,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,KAAK,GAAG,WAAW,CAAC;wBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,WAAW;wBACX,gBAAgB;qBACjB,CAAC,CAAA;oBACF,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;wBACxC,OAAO,KAAK,CAAA;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { createBigDecimal } from '@0xtorch/big-decimal';
2
+ import { createEvmAddressId } from '../../../../utils';
3
+ import { checkTransferIsMatchErc20Pattern } from './erc20Pattern';
4
+ export const generateTransfersByErc20Transfer = ({ schema, transaction, relatedAddresses, }) => {
5
+ const transfers = [];
6
+ let currentIndex = -1;
7
+ for (const transfer of transaction.erc20Transfers) {
8
+ const matched = checkTransferIsMatchErc20Pattern({
9
+ transfer,
10
+ schema,
11
+ transaction,
12
+ relatedAddresses,
13
+ });
14
+ if (matched) {
15
+ currentIndex += 1;
16
+ if (schema.index === undefined || currentIndex === schema.index) {
17
+ transfers.push({
18
+ direction: schema.direction,
19
+ from: createEvmAddressId({
20
+ chainId: transaction.chainId,
21
+ address: transfer.from,
22
+ }),
23
+ to: createEvmAddressId({
24
+ chainId: transaction.chainId,
25
+ address: transfer.to,
26
+ }),
27
+ asset: transfer.token.currency,
28
+ amount: createBigDecimal(transfer.value, transfer.token.decimals),
29
+ });
30
+ }
31
+ if (currentIndex === schema.index) {
32
+ return transfers;
33
+ }
34
+ }
35
+ }
36
+ if (schema.index === undefined) {
37
+ return transfers;
38
+ }
39
+ throw new Error('Matched ERC20 transfer is not found');
40
+ };
41
+ //# sourceMappingURL=erc20TransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20TransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc20TransferGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAA;AAGjE,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,EAC/C,MAAM,EACN,WAAW,EACX,gBAAgB,GAKjB,EAAuB,EAAE;IACxB,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAA;IACrB,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,gCAAgC,CAAC;YAC/C,QAAQ;YACR,MAAM;YACN,WAAW;YACX,gBAAgB;SACjB,CAAC,CAAA;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,IAAI,CAAC,CAAA;YACjB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChE,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,IAAI,EAAE,kBAAkB,CAAC;wBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,IAAI;qBACvB,CAAC;oBACF,EAAE,EAAE,kBAAkB,CAAC;wBACrB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE;qBACrB,CAAC;oBACF,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;oBAC9B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;iBAClE,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;AACxD,CAAC,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { getAllValue } from './allValue';
2
+ import { checkValueIsArrayIn } from './arrayIn';
3
+ export const checkTransferIsMatchErc721Pattern = ({ transfer, schema, transaction, relatedAddresses, }) => {
4
+ // address
5
+ if (schema.address !== undefined &&
6
+ !checkValueIsArrayIn({
7
+ value: transfer.address,
8
+ schema: schema.address,
9
+ transaction,
10
+ relatedAddresses,
11
+ })) {
12
+ return false;
13
+ }
14
+ // from
15
+ if (schema.from !== undefined &&
16
+ !checkValueIsArrayIn({
17
+ value: transfer.from,
18
+ schema: schema.from,
19
+ transaction,
20
+ relatedAddresses,
21
+ })) {
22
+ return false;
23
+ }
24
+ // to
25
+ if (schema.to !== undefined &&
26
+ !checkValueIsArrayIn({
27
+ value: transfer.to,
28
+ schema: schema.to,
29
+ transaction,
30
+ relatedAddresses,
31
+ })) {
32
+ return false;
33
+ }
34
+ // id
35
+ if (schema.id !== undefined &&
36
+ getAllValue({
37
+ schema: schema.id,
38
+ transaction,
39
+ relatedAddresses,
40
+ }) !== transfer.tokenId.toString()) {
41
+ return false;
42
+ }
43
+ return true;
44
+ };
45
+ //# sourceMappingURL=erc721Pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc721Pattern.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc721Pattern.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG/C,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,EAChD,QAAQ,EACR,MAAM,EACN,WAAW,EACX,gBAAgB,GAMjB,EAAW,EAAE;IACZ,UAAU;IACV,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO;IACP,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK;IACL,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,CAAC,mBAAmB,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC,EAAE;YAClB,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW;YACX,gBAAgB;SACjB,CAAC,EACF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK;IACL,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,WAAW,CAAC;YACV,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW;YACX,gBAAgB;SACjB,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAClC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { createBigDecimal } from '@0xtorch/big-decimal';
2
+ import { createEvmAddressId } from '../../../../utils';
3
+ import { checkTransferIsMatchErc721Pattern } from './erc721Pattern';
4
+ export const generateTransfersByErc721Transfer = ({ schema, transaction, relatedAddresses, }) => {
5
+ const transfers = [];
6
+ let currentIndex = -1;
7
+ for (const transfer of transaction.erc721Transfers) {
8
+ const matched = checkTransferIsMatchErc721Pattern({
9
+ transfer,
10
+ schema,
11
+ transaction,
12
+ relatedAddresses,
13
+ });
14
+ if (matched) {
15
+ currentIndex += 1;
16
+ if (schema.index === undefined || currentIndex === schema.index) {
17
+ transfers.push({
18
+ direction: schema.direction,
19
+ from: createEvmAddressId({
20
+ chainId: transaction.chainId,
21
+ address: transfer.from,
22
+ }),
23
+ to: createEvmAddressId({
24
+ chainId: transaction.chainId,
25
+ address: transfer.to,
26
+ }),
27
+ asset: transfer.token,
28
+ amount: createBigDecimal(1n),
29
+ });
30
+ }
31
+ if (currentIndex === schema.index) {
32
+ return transfers;
33
+ }
34
+ }
35
+ }
36
+ if (schema.index === undefined) {
37
+ return transfers;
38
+ }
39
+ throw new Error('Matched ERC721 transfer is not found');
40
+ };
41
+ //# sourceMappingURL=erc721TransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc721TransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc721TransferGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAA;AAGnE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,EAChD,MAAM,EACN,WAAW,EACX,gBAAgB,GAKjB,EAAuB,EAAE;IACxB,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAA;IACrB,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,eAAe,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,iCAAiC,CAAC;YAChD,QAAQ;YACR,MAAM;YACN,WAAW;YACX,gBAAgB;SACjB,CAAC,CAAA;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,IAAI,CAAC,CAAA;YACjB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChE,SAAS,CAAC,IAAI,CAAC;oBACb,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,IAAI,EAAE,kBAAkB,CAAC;wBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,IAAI;qBACvB,CAAC;oBACF,EAAE,EAAE,kBAAkB,CAAC;wBACrB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE;qBACrB,CAAC;oBACF,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;iBAC7B,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,YAAY,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACzD,CAAC,CAAA"}
@@ -0,0 +1,177 @@
1
+ import { getAllValue } from './allValue';
2
+ import { checkTransferIsMatchErc20Pattern } from './erc20Pattern';
3
+ import { checkTransferIsMatchErc721Pattern } from './erc721Pattern';
4
+ import { checkTransferIsMatchErc1155Pattern } from './erc1155Pattern';
5
+ import { generateTransfers } from './transferGenerator';
6
+ export const generateActions = ({ chain, transaction, relatedAddresses, generator, source, }) => {
7
+ // target 取得
8
+ if (generator.target !== undefined) {
9
+ const actions = [];
10
+ switch (generator.target.type) {
11
+ case 'erc20': {
12
+ for (const transfer of transaction.erc20Transfers) {
13
+ if (!checkTransferIsMatchErc20Pattern({
14
+ transfer,
15
+ schema: generator.target,
16
+ transaction,
17
+ relatedAddresses,
18
+ })) {
19
+ continue;
20
+ }
21
+ actions.push(generateActionsWithTarget({
22
+ chain,
23
+ transaction,
24
+ relatedAddresses,
25
+ generator,
26
+ source,
27
+ erc20Target: transfer,
28
+ }));
29
+ }
30
+ break;
31
+ }
32
+ case 'erc721': {
33
+ for (const transfer of transaction.erc721Transfers) {
34
+ if (!checkTransferIsMatchErc721Pattern({
35
+ transfer,
36
+ schema: generator.target,
37
+ transaction,
38
+ relatedAddresses,
39
+ })) {
40
+ continue;
41
+ }
42
+ actions.push(generateActionsWithTarget({
43
+ chain,
44
+ transaction,
45
+ relatedAddresses,
46
+ generator,
47
+ source,
48
+ erc721Target: transfer,
49
+ }));
50
+ }
51
+ break;
52
+ }
53
+ case 'erc1155': {
54
+ for (const transfer of transaction.erc1155Transfers) {
55
+ if (!checkTransferIsMatchErc1155Pattern({
56
+ transfer,
57
+ schema: generator.target,
58
+ transaction,
59
+ relatedAddresses,
60
+ })) {
61
+ continue;
62
+ }
63
+ actions.push(generateActionsWithTarget({
64
+ chain,
65
+ transaction,
66
+ relatedAddresses,
67
+ generator,
68
+ source,
69
+ erc1155Target: transfer,
70
+ }));
71
+ }
72
+ break;
73
+ }
74
+ }
75
+ return actions;
76
+ }
77
+ // target 未指定の場合は単一 action 生成
78
+ return [
79
+ generateActionsWithTarget({
80
+ chain,
81
+ transaction,
82
+ relatedAddresses,
83
+ generator,
84
+ source,
85
+ }),
86
+ ];
87
+ };
88
+ const generateActionsWithTarget = ({ chain, transaction, relatedAddresses, generator, source, erc20Target, erc721Target, erc1155Target, }) => {
89
+ return {
90
+ source,
91
+ order: 0,
92
+ type: generator.type,
93
+ timestamp: transaction.timestamp,
94
+ evidence: 'contract',
95
+ comment: generator.comment === undefined
96
+ ? undefined
97
+ : getAllValue({
98
+ schema: generator.comment,
99
+ transaction,
100
+ relatedAddresses,
101
+ }),
102
+ app: transaction.to?.app ?? transaction.from.app,
103
+ transfers: generator.transfers.flatMap((schema) => generateTransfers({
104
+ schema,
105
+ chain,
106
+ transaction,
107
+ relatedAddresses,
108
+ erc20Target,
109
+ erc721Target,
110
+ erc1155Target,
111
+ })),
112
+ crossId: generator.crossId === undefined
113
+ ? undefined
114
+ : getAllValue({
115
+ schema: generator.crossId,
116
+ transaction,
117
+ relatedAddresses,
118
+ }),
119
+ crossType: generator.crossType,
120
+ loanId: generator.loanId === undefined
121
+ ? undefined
122
+ : getAllValue({
123
+ schema: generator.loanId,
124
+ transaction,
125
+ relatedAddresses,
126
+ }),
127
+ target: generateValueTarget({
128
+ transaction,
129
+ relatedAddresses,
130
+ schema: generator.valueTarget,
131
+ }),
132
+ };
133
+ };
134
+ const generateValueTarget = ({ transaction, relatedAddresses, schema, }) => {
135
+ if (schema === undefined) {
136
+ return undefined;
137
+ }
138
+ let currentIndex = -1;
139
+ switch (schema.type) {
140
+ case 'erc721': {
141
+ for (const transfer of transaction.erc721Transfers) {
142
+ const matched = checkTransferIsMatchErc721Pattern({
143
+ transfer,
144
+ schema: schema,
145
+ transaction,
146
+ relatedAddresses,
147
+ });
148
+ if (matched) {
149
+ currentIndex += 1;
150
+ if (currentIndex === schema.index) {
151
+ return transfer.token;
152
+ }
153
+ }
154
+ }
155
+ break;
156
+ }
157
+ case 'erc1155': {
158
+ for (const transfer of transaction.erc1155Transfers) {
159
+ const matched = checkTransferIsMatchErc1155Pattern({
160
+ transfer,
161
+ schema: schema,
162
+ transaction,
163
+ relatedAddresses,
164
+ });
165
+ if (matched) {
166
+ currentIndex += 1;
167
+ if (currentIndex === schema.index) {
168
+ return transfer.token;
169
+ }
170
+ }
171
+ }
172
+ break;
173
+ }
174
+ }
175
+ throw new Error('Matched ERC721 or ERC1155 transfer is not found');
176
+ };
177
+ //# sourceMappingURL=generateActions.js.map