@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,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkTransferIsMatchErc20Pattern = void 0;
4
+ const allValue_1 = require("./allValue");
5
+ const arrayIn_1 = require("./arrayIn");
6
+ const betweenBigInt_1 = require("./betweenBigInt");
7
+ const checkTransferIsMatchErc20Pattern = ({ transfer, schema, transaction, relatedAddresses, }) => {
8
+ if (schema.address !== undefined &&
9
+ !(0, arrayIn_1.checkValueIsArrayIn)({
10
+ value: transfer.address,
11
+ schema: schema.address,
12
+ transaction,
13
+ relatedAddresses,
14
+ })) {
15
+ return false;
16
+ }
17
+ if (schema.from !== undefined &&
18
+ !(0, arrayIn_1.checkValueIsArrayIn)({
19
+ value: transfer.from,
20
+ schema: schema.from,
21
+ transaction,
22
+ relatedAddresses,
23
+ })) {
24
+ return false;
25
+ }
26
+ if (schema.to !== undefined &&
27
+ !(0, arrayIn_1.checkValueIsArrayIn)({
28
+ value: transfer.to,
29
+ schema: schema.to,
30
+ transaction,
31
+ relatedAddresses,
32
+ })) {
33
+ return false;
34
+ }
35
+ if (schema.amount !== undefined) {
36
+ if (typeof schema.amount === 'string') {
37
+ if (transfer.value.toString() !== schema.amount) {
38
+ return false;
39
+ }
40
+ }
41
+ else {
42
+ switch (schema.amount.type) {
43
+ case 'between': {
44
+ if (!(0, betweenBigInt_1.checkValueIsBetweenBigInt)({
45
+ value: transfer.value,
46
+ schema: schema.amount,
47
+ })) {
48
+ return false;
49
+ }
50
+ break;
51
+ }
52
+ default: {
53
+ const value = (0, allValue_1.getAllValue)({
54
+ schema: schema.amount,
55
+ transaction,
56
+ relatedAddresses,
57
+ });
58
+ if (transfer.value.toString() !== value) {
59
+ return false;
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ return true;
66
+ };
67
+ exports.checkTransferIsMatchErc20Pattern = checkTransferIsMatchErc20Pattern;
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,yCAAwC;AACxC,uCAA+C;AAC/C,mDAA2D;AAGpD,MAAM,gCAAgC,GAAG,CAAC,EAC/C,QAAQ,EACR,MAAM,EACN,WAAW,EACX,gBAAgB,GAMjB,EAAW,EAAE;IAEZ,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,IAAA,6BAAmB,EAAC;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;IAGD,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,CAAC,IAAA,6BAAmB,EAAC;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;IAGD,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,CAAC,IAAA,6BAAmB,EAAC;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;IAGD,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,IAAA,yCAAyB,EAAC;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,IAAA,sBAAW,EAAC;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;AApFY,QAAA,gCAAgC,oCAoF5C"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTransfersByErc20Transfer = void 0;
4
+ const big_decimal_1 = require("@0xtorch/big-decimal");
5
+ const utils_1 = require("../../../../utils");
6
+ const erc20Pattern_1 = require("./erc20Pattern");
7
+ const generateTransfersByErc20Transfer = ({ schema, transaction, relatedAddresses, }) => {
8
+ const transfers = [];
9
+ let currentIndex = -1;
10
+ for (const transfer of transaction.erc20Transfers) {
11
+ const matched = (0, erc20Pattern_1.checkTransferIsMatchErc20Pattern)({
12
+ transfer,
13
+ schema,
14
+ transaction,
15
+ relatedAddresses,
16
+ });
17
+ if (matched) {
18
+ currentIndex += 1;
19
+ if (schema.index === undefined || currentIndex === schema.index) {
20
+ transfers.push({
21
+ direction: schema.direction,
22
+ from: (0, utils_1.createEvmAddressId)({
23
+ chainId: transaction.chainId,
24
+ address: transfer.from,
25
+ }),
26
+ to: (0, utils_1.createEvmAddressId)({
27
+ chainId: transaction.chainId,
28
+ address: transfer.to,
29
+ }),
30
+ asset: transfer.token.currency,
31
+ amount: (0, big_decimal_1.createBigDecimal)(transfer.value, transfer.token.decimals),
32
+ });
33
+ }
34
+ if (currentIndex === schema.index) {
35
+ return transfers;
36
+ }
37
+ }
38
+ }
39
+ if (schema.index === undefined) {
40
+ return transfers;
41
+ }
42
+ throw new Error('Matched ERC20 transfer is not found');
43
+ };
44
+ exports.generateTransfersByErc20Transfer = generateTransfersByErc20Transfer;
45
+ //# sourceMappingURL=erc20TransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20TransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc20TransferGenerator.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAIvD,6CAAsD;AACtD,iDAAiE;AAG1D,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,IAAA,+CAAgC,EAAC;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,IAAA,0BAAkB,EAAC;wBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,IAAI;qBACvB,CAAC;oBACF,EAAE,EAAE,IAAA,0BAAkB,EAAC;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,IAAA,8BAAgB,EAAC,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;AA5CY,QAAA,gCAAgC,oCA4C5C"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkTransferIsMatchErc721Pattern = void 0;
4
+ const allValue_1 = require("./allValue");
5
+ const arrayIn_1 = require("./arrayIn");
6
+ const checkTransferIsMatchErc721Pattern = ({ transfer, schema, transaction, relatedAddresses, }) => {
7
+ if (schema.address !== undefined &&
8
+ !(0, arrayIn_1.checkValueIsArrayIn)({
9
+ value: transfer.address,
10
+ schema: schema.address,
11
+ transaction,
12
+ relatedAddresses,
13
+ })) {
14
+ return false;
15
+ }
16
+ if (schema.from !== undefined &&
17
+ !(0, arrayIn_1.checkValueIsArrayIn)({
18
+ value: transfer.from,
19
+ schema: schema.from,
20
+ transaction,
21
+ relatedAddresses,
22
+ })) {
23
+ return false;
24
+ }
25
+ if (schema.to !== undefined &&
26
+ !(0, arrayIn_1.checkValueIsArrayIn)({
27
+ value: transfer.to,
28
+ schema: schema.to,
29
+ transaction,
30
+ relatedAddresses,
31
+ })) {
32
+ return false;
33
+ }
34
+ if (schema.id !== undefined &&
35
+ (0, allValue_1.getAllValue)({
36
+ schema: schema.id,
37
+ transaction,
38
+ relatedAddresses,
39
+ }) !== transfer.tokenId.toString()) {
40
+ return false;
41
+ }
42
+ return true;
43
+ };
44
+ exports.checkTransferIsMatchErc721Pattern = checkTransferIsMatchErc721Pattern;
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,yCAAwC;AACxC,uCAA+C;AAGxC,MAAM,iCAAiC,GAAG,CAAC,EAChD,QAAQ,EACR,MAAM,EACN,WAAW,EACX,gBAAgB,GAMjB,EAAW,EAAE;IAEZ,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,IAAA,6BAAmB,EAAC;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;IAGD,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,CAAC,IAAA,6BAAmB,EAAC;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;IAGD,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,CAAC,IAAA,6BAAmB,EAAC;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;IAGD,IACE,MAAM,CAAC,EAAE,KAAK,SAAS;QACvB,IAAA,sBAAW,EAAC;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;AA/DY,QAAA,iCAAiC,qCA+D7C"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTransfersByErc721Transfer = void 0;
4
+ const big_decimal_1 = require("@0xtorch/big-decimal");
5
+ const utils_1 = require("../../../../utils");
6
+ const erc721Pattern_1 = require("./erc721Pattern");
7
+ const generateTransfersByErc721Transfer = ({ schema, transaction, relatedAddresses, }) => {
8
+ const transfers = [];
9
+ let currentIndex = -1;
10
+ for (const transfer of transaction.erc721Transfers) {
11
+ const matched = (0, erc721Pattern_1.checkTransferIsMatchErc721Pattern)({
12
+ transfer,
13
+ schema,
14
+ transaction,
15
+ relatedAddresses,
16
+ });
17
+ if (matched) {
18
+ currentIndex += 1;
19
+ if (schema.index === undefined || currentIndex === schema.index) {
20
+ transfers.push({
21
+ direction: schema.direction,
22
+ from: (0, utils_1.createEvmAddressId)({
23
+ chainId: transaction.chainId,
24
+ address: transfer.from,
25
+ }),
26
+ to: (0, utils_1.createEvmAddressId)({
27
+ chainId: transaction.chainId,
28
+ address: transfer.to,
29
+ }),
30
+ asset: transfer.token,
31
+ amount: (0, big_decimal_1.createBigDecimal)(1n),
32
+ });
33
+ }
34
+ if (currentIndex === schema.index) {
35
+ return transfers;
36
+ }
37
+ }
38
+ }
39
+ if (schema.index === undefined) {
40
+ return transfers;
41
+ }
42
+ throw new Error('Matched ERC721 transfer is not found');
43
+ };
44
+ exports.generateTransfersByErc721Transfer = generateTransfersByErc721Transfer;
45
+ //# sourceMappingURL=erc721TransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc721TransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/erc721TransferGenerator.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAIvD,6CAAsD;AACtD,mDAAmE;AAG5D,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,IAAA,iDAAiC,EAAC;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,IAAA,0BAAkB,EAAC;wBACvB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,IAAI;qBACvB,CAAC;oBACF,EAAE,EAAE,IAAA,0BAAkB,EAAC;wBACrB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,QAAQ,CAAC,EAAE;qBACrB,CAAC;oBACF,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,IAAA,8BAAgB,EAAC,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;AA5CY,QAAA,iCAAiC,qCA4C7C"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateActions = void 0;
4
+ const allValue_1 = require("./allValue");
5
+ const erc20Pattern_1 = require("./erc20Pattern");
6
+ const erc721Pattern_1 = require("./erc721Pattern");
7
+ const erc1155Pattern_1 = require("./erc1155Pattern");
8
+ const transferGenerator_1 = require("./transferGenerator");
9
+ const generateActions = ({ chain, transaction, relatedAddresses, generator, source, }) => {
10
+ if (generator.target !== undefined) {
11
+ const actions = [];
12
+ switch (generator.target.type) {
13
+ case 'erc20': {
14
+ for (const transfer of transaction.erc20Transfers) {
15
+ if (!(0, erc20Pattern_1.checkTransferIsMatchErc20Pattern)({
16
+ transfer,
17
+ schema: generator.target,
18
+ transaction,
19
+ relatedAddresses,
20
+ })) {
21
+ continue;
22
+ }
23
+ actions.push(generateActionsWithTarget({
24
+ chain,
25
+ transaction,
26
+ relatedAddresses,
27
+ generator,
28
+ source,
29
+ erc20Target: transfer,
30
+ }));
31
+ }
32
+ break;
33
+ }
34
+ case 'erc721': {
35
+ for (const transfer of transaction.erc721Transfers) {
36
+ if (!(0, erc721Pattern_1.checkTransferIsMatchErc721Pattern)({
37
+ transfer,
38
+ schema: generator.target,
39
+ transaction,
40
+ relatedAddresses,
41
+ })) {
42
+ continue;
43
+ }
44
+ actions.push(generateActionsWithTarget({
45
+ chain,
46
+ transaction,
47
+ relatedAddresses,
48
+ generator,
49
+ source,
50
+ erc721Target: transfer,
51
+ }));
52
+ }
53
+ break;
54
+ }
55
+ case 'erc1155': {
56
+ for (const transfer of transaction.erc1155Transfers) {
57
+ if (!(0, erc1155Pattern_1.checkTransferIsMatchErc1155Pattern)({
58
+ transfer,
59
+ schema: generator.target,
60
+ transaction,
61
+ relatedAddresses,
62
+ })) {
63
+ continue;
64
+ }
65
+ actions.push(generateActionsWithTarget({
66
+ chain,
67
+ transaction,
68
+ relatedAddresses,
69
+ generator,
70
+ source,
71
+ erc1155Target: transfer,
72
+ }));
73
+ }
74
+ break;
75
+ }
76
+ }
77
+ return actions;
78
+ }
79
+ return [
80
+ generateActionsWithTarget({
81
+ chain,
82
+ transaction,
83
+ relatedAddresses,
84
+ generator,
85
+ source,
86
+ }),
87
+ ];
88
+ };
89
+ exports.generateActions = generateActions;
90
+ const generateActionsWithTarget = ({ chain, transaction, relatedAddresses, generator, source, erc20Target, erc721Target, erc1155Target, }) => {
91
+ return {
92
+ source,
93
+ order: 0,
94
+ type: generator.type,
95
+ timestamp: transaction.timestamp,
96
+ evidence: 'contract',
97
+ comment: generator.comment === undefined
98
+ ? undefined
99
+ : (0, allValue_1.getAllValue)({
100
+ schema: generator.comment,
101
+ transaction,
102
+ relatedAddresses,
103
+ }),
104
+ app: transaction.to?.app ?? transaction.from.app,
105
+ transfers: generator.transfers.flatMap((schema) => (0, transferGenerator_1.generateTransfers)({
106
+ schema,
107
+ chain,
108
+ transaction,
109
+ relatedAddresses,
110
+ erc20Target,
111
+ erc721Target,
112
+ erc1155Target,
113
+ })),
114
+ crossId: generator.crossId === undefined
115
+ ? undefined
116
+ : (0, allValue_1.getAllValue)({
117
+ schema: generator.crossId,
118
+ transaction,
119
+ relatedAddresses,
120
+ }),
121
+ crossType: generator.crossType,
122
+ loanId: generator.loanId === undefined
123
+ ? undefined
124
+ : (0, allValue_1.getAllValue)({
125
+ schema: generator.loanId,
126
+ transaction,
127
+ relatedAddresses,
128
+ }),
129
+ target: generateValueTarget({
130
+ transaction,
131
+ relatedAddresses,
132
+ schema: generator.valueTarget,
133
+ }),
134
+ };
135
+ };
136
+ const generateValueTarget = ({ transaction, relatedAddresses, schema, }) => {
137
+ if (schema === undefined) {
138
+ return undefined;
139
+ }
140
+ let currentIndex = -1;
141
+ switch (schema.type) {
142
+ case 'erc721': {
143
+ for (const transfer of transaction.erc721Transfers) {
144
+ const matched = (0, erc721Pattern_1.checkTransferIsMatchErc721Pattern)({
145
+ transfer,
146
+ schema: schema,
147
+ transaction,
148
+ relatedAddresses,
149
+ });
150
+ if (matched) {
151
+ currentIndex += 1;
152
+ if (currentIndex === schema.index) {
153
+ return transfer.token;
154
+ }
155
+ }
156
+ }
157
+ break;
158
+ }
159
+ case 'erc1155': {
160
+ for (const transfer of transaction.erc1155Transfers) {
161
+ const matched = (0, erc1155Pattern_1.checkTransferIsMatchErc1155Pattern)({
162
+ transfer,
163
+ schema: schema,
164
+ transaction,
165
+ relatedAddresses,
166
+ });
167
+ if (matched) {
168
+ currentIndex += 1;
169
+ if (currentIndex === schema.index) {
170
+ return transfer.token;
171
+ }
172
+ }
173
+ }
174
+ break;
175
+ }
176
+ }
177
+ throw new Error('Matched ERC721 or ERC1155 transfer is not found');
178
+ };
179
+ //# sourceMappingURL=generateActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateActions.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/generateActions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createActionsByJsonAnalyzer = void 0;
4
+ const core_1 = require("@0xtorch/core");
5
+ const generateActions_1 = require("./generateActions");
6
+ const verifyTxSatisfiesCondition_1 = require("./verifyTxSatisfiesCondition");
7
+ const createActionsByJsonAnalyzer = ({ chain, transaction, relatedAddresses, accountIds, jsonAnalyzers, transfers, source, }) => {
8
+ for (const { condition, generators } of jsonAnalyzers) {
9
+ const verified = (0, verifyTxSatisfiesCondition_1.verifyTxSatisfiesCondition)({
10
+ transaction,
11
+ relatedAddresses,
12
+ condition,
13
+ });
14
+ if (!verified) {
15
+ continue;
16
+ }
17
+ const actions = [];
18
+ try {
19
+ for (const generator of generators) {
20
+ actions.push(...(0, generateActions_1.generateActions)({
21
+ chain,
22
+ transaction,
23
+ relatedAddresses,
24
+ source,
25
+ generator,
26
+ }));
27
+ }
28
+ }
29
+ catch (error) {
30
+ console.debug(error);
31
+ continue;
32
+ }
33
+ if (!(0, core_1.checkIfActionsIsValid)({ actions, accountIds, transfers })) {
34
+ continue;
35
+ }
36
+ return actions;
37
+ }
38
+ return undefined;
39
+ };
40
+ exports.createActionsByJsonAnalyzer = createActionsByJsonAnalyzer;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/index.ts"],"names":[],"mappings":";;;AAAA,wCAIsB;AAGtB,uDAAmD;AAEnD,6EAAyE;AAYlE,MAAM,2BAA2B,GAAG,CAAC,EAC1C,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,SAAS,EACT,MAAM,GACgC,EAAiC,EAAE;IAEzE,KAAK,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,aAAa,EAAE,CAAC;QAEtD,MAAM,QAAQ,GAAG,IAAA,uDAA0B,EAAC;YAC1C,WAAW;YACX,gBAAgB;YAChB,SAAS;SACV,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAQ;QACV,CAAC;QAID,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,IAAI,CAAC;YACH,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CACV,GAAG,IAAA,iCAAe,EAAC;oBACjB,KAAK;oBACL,WAAW;oBACX,gBAAgB;oBAChB,MAAM;oBACN,SAAS;iBACV,CAAC,CACH,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAGD,IAAI,CAAC,IAAA,4BAAqB,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;YAC/D,SAAQ;QACV,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAlDY,QAAA,2BAA2B,+BAkDvC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTransfersByInternalTransactions = void 0;
4
+ const big_decimal_1 = require("@0xtorch/big-decimal");
5
+ const utils_1 = require("../../../../utils");
6
+ const allValue_1 = require("./allValue");
7
+ const arrayIn_1 = require("./arrayIn");
8
+ const betweenBigInt_1 = require("./betweenBigInt");
9
+ const generateTransfersByInternalTransactions = ({ schema, chain, transaction, relatedAddresses, }) => {
10
+ const transfers = [];
11
+ let currentIndex = -1;
12
+ for (const internalTransaction of transaction.internalTransactions) {
13
+ const matched = checkInternalTransactionIsMatchPattern({
14
+ internalTransaction,
15
+ schema,
16
+ transaction,
17
+ relatedAddresses,
18
+ });
19
+ if (matched) {
20
+ currentIndex += 1;
21
+ if (schema.index === undefined || currentIndex === schema.index) {
22
+ transfers.push({
23
+ direction: schema.direction,
24
+ from: (0, utils_1.createEvmAddressId)({
25
+ chainId: transaction.chainId,
26
+ address: internalTransaction.from,
27
+ }),
28
+ to: internalTransaction.to === undefined
29
+ ? undefined
30
+ : (0, utils_1.createEvmAddressId)({
31
+ chainId: transaction.chainId,
32
+ address: internalTransaction.to,
33
+ }),
34
+ asset: chain.nativeToken.currency,
35
+ amount: (0, big_decimal_1.createBigDecimal)(internalTransaction.value, chain.nativeToken.decimals),
36
+ });
37
+ }
38
+ if (currentIndex === schema.index) {
39
+ return transfers;
40
+ }
41
+ }
42
+ }
43
+ if (schema.index === undefined) {
44
+ return transfers;
45
+ }
46
+ throw new Error('Matched internal transaction is not found');
47
+ };
48
+ exports.generateTransfersByInternalTransactions = generateTransfersByInternalTransactions;
49
+ const checkInternalTransactionIsMatchPattern = ({ internalTransaction, schema, transaction, relatedAddresses, }) => {
50
+ if (schema.from !== undefined &&
51
+ !(0, arrayIn_1.checkValueIsArrayIn)({
52
+ value: internalTransaction.from,
53
+ schema: schema.from,
54
+ transaction,
55
+ relatedAddresses,
56
+ })) {
57
+ return false;
58
+ }
59
+ if (schema.to !== undefined &&
60
+ !(0, arrayIn_1.checkValueIsArrayIn)({
61
+ value: internalTransaction.to ?? '',
62
+ schema: schema.to,
63
+ transaction,
64
+ relatedAddresses,
65
+ })) {
66
+ return false;
67
+ }
68
+ if (schema.value !== undefined) {
69
+ if (typeof schema.value === 'string') {
70
+ if (internalTransaction.value.toString() !== schema.value) {
71
+ return false;
72
+ }
73
+ }
74
+ else {
75
+ switch (schema.value.type) {
76
+ case 'between': {
77
+ if (!(0, betweenBigInt_1.checkValueIsBetweenBigInt)({
78
+ value: internalTransaction.value,
79
+ schema: schema.value,
80
+ })) {
81
+ return false;
82
+ }
83
+ break;
84
+ }
85
+ default: {
86
+ const value = (0, allValue_1.getAllValue)({
87
+ schema: schema.value,
88
+ transaction,
89
+ relatedAddresses,
90
+ });
91
+ if (internalTransaction.value.toString() !== value) {
92
+ return false;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
98
+ return true;
99
+ };
100
+ //# sourceMappingURL=internalTransferGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internalTransferGenerator.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/internalTransferGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getJoinValue = void 0;
4
+ const math_1 = require("./math");
5
+ const simpleValue_1 = require("./simpleValue");
6
+ const slice_1 = require("./slice");
7
+ const getJoinValue = ({ schema, transaction, relatedAddresses, }) => {
8
+ let joinValue = '';
9
+ for (const value of schema.values) {
10
+ if (typeof value === 'string') {
11
+ joinValue += value;
12
+ continue;
13
+ }
14
+ switch (value.type) {
15
+ case 'math': {
16
+ joinValue += (0, math_1.getMathValue)({
17
+ schema: value,
18
+ transaction,
19
+ relatedAddresses,
20
+ }).toString();
21
+ break;
22
+ }
23
+ case 'slice': {
24
+ joinValue += (0, slice_1.getSliceValue)({
25
+ schema: value,
26
+ transaction,
27
+ relatedAddresses,
28
+ });
29
+ break;
30
+ }
31
+ default: {
32
+ joinValue += (0, simpleValue_1.getSimpleValue)({
33
+ schema: value,
34
+ transaction,
35
+ relatedAddresses,
36
+ });
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ return joinValue;
42
+ };
43
+ exports.getJoinValue = getJoinValue;
44
+ //# sourceMappingURL=join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../../logic/analyzeTransaction/createActions/json/join.ts"],"names":[],"mappings":";;;AAEA,iCAAqC;AAErC,+CAA8C;AAC9C,mCAAuC;AAEhC,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,WAAW,EACX,gBAAgB,GAKjB,EAAU,EAAE;IACX,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,SAAS,IAAI,KAAK,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,CAAC,CAAC;gBAEZ,SAAS,IAAI,IAAA,mBAAY,EAAC;oBACxB,MAAM,EAAE,KAAK;oBACb,WAAW;oBACX,gBAAgB;iBACjB,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACb,MAAK;YACP,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBAEb,SAAS,IAAI,IAAA,qBAAa,EAAC;oBACzB,MAAM,EAAE,KAAK;oBACb,WAAW;oBACX,gBAAgB;iBACjB,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBAER,SAAS,IAAI,IAAA,4BAAc,EAAC;oBAC1B,MAAM,EAAE,KAAK;oBACb,WAAW;oBACX,gBAAgB;iBACjB,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AA9CY,QAAA,YAAY,gBA8CxB"}