@0xtorch/evm 0.0.59 → 0.0.60

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 (34) hide show
  1. package/_cjs/analyzer/analyze.js +23 -7
  2. package/_cjs/analyzer/analyze.js.map +1 -1
  3. package/_cjs/analyzer/index.js +3 -1
  4. package/_cjs/analyzer/index.js.map +1 -1
  5. package/_cjs/analyzer/transfer/analyze.js +11 -98
  6. package/_cjs/analyzer/transfer/analyze.js.map +1 -1
  7. package/_cjs/analyzer/utils/createTransfersByTransaction.js +52 -0
  8. package/_cjs/analyzer/utils/createTransfersByTransaction.js.map +1 -0
  9. package/_cjs/index.js +4 -3
  10. package/_cjs/index.js.map +1 -1
  11. package/_esm/analyzer/analyze.js +25 -8
  12. package/_esm/analyzer/analyze.js.map +1 -1
  13. package/_esm/analyzer/index.js +1 -0
  14. package/_esm/analyzer/index.js.map +1 -1
  15. package/_esm/analyzer/transfer/analyze.js +11 -98
  16. package/_esm/analyzer/transfer/analyze.js.map +1 -1
  17. package/_esm/analyzer/utils/createTransfersByTransaction.js +51 -0
  18. package/_esm/analyzer/utils/createTransfersByTransaction.js.map +1 -0
  19. package/_esm/index.js +1 -1
  20. package/_esm/index.js.map +1 -1
  21. package/_types/analyzer/analyze.d.ts.map +1 -1
  22. package/_types/analyzer/index.d.ts +1 -0
  23. package/_types/analyzer/index.d.ts.map +1 -1
  24. package/_types/analyzer/transfer/analyze.d.ts.map +1 -1
  25. package/_types/analyzer/utils/createTransfersByTransaction.d.ts +64 -0
  26. package/_types/analyzer/utils/createTransfersByTransaction.d.ts.map +1 -0
  27. package/_types/index.d.ts +1 -1
  28. package/_types/index.d.ts.map +1 -1
  29. package/analyzer/analyze.ts +32 -8
  30. package/analyzer/index.ts +1 -0
  31. package/analyzer/transfer/analyze.ts +11 -116
  32. package/analyzer/utils/createTransfersByTransaction.ts +89 -0
  33. package/index.ts +1 -0
  34. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resetAccountActionsOrder = exports.analyze = void 0;
4
+ const core_1 = require("@0xtorch/core");
4
5
  const utils_1 = require("../utils");
5
6
  const axieMarketplace_1 = require("./axieMarketplace");
6
7
  const fail_1 = require("./fail");
@@ -8,6 +9,7 @@ const gasFee_1 = require("./gasFee");
8
9
  const seaport_1 = require("./seaport");
9
10
  const swap_1 = require("./swap");
10
11
  const transfer_1 = require("./transfer");
12
+ const createTransfersByTransaction_1 = require("./utils/createTransfersByTransaction");
11
13
  const analyze = async (parameters, config) => {
12
14
  const timeoutTimestamp = Date.now() + (config?.timeout === undefined ? 60_000 : config.timeout);
13
15
  const mut_normalActions = [];
@@ -18,20 +20,34 @@ const analyze = async (parameters, config) => {
18
20
  mut_normalActions.push(...gasFeeActions.actions);
19
21
  mut_accountActions.push(...gasFeeActions.accountActions);
20
22
  }
21
- for (const analyze of [
23
+ const accountIds = new Set(parameters.accountAddresses.map((address) => (0, utils_1.createEvmAddressId)({ chainId: parameters.chain.id, address })));
24
+ const analyzes = [
22
25
  fail_1.analyzeFail,
23
26
  swap_1.analyzeSwap,
24
27
  seaport_1.analyzeSeaport,
25
28
  axieMarketplace_1.analyzeAxieMarketplace,
26
29
  transfer_1.analyzeTransfer,
27
- ]) {
28
- const actions = await analyze(parameters);
30
+ ];
31
+ for (const [index, analyze] of analyzes.entries()) {
32
+ const result = await analyze(parameters);
29
33
  (0, utils_1.checkTimeout)(timeoutTimestamp);
30
- if (actions !== undefined) {
31
- mut_normalActions.push(...actions.actions);
32
- mut_accountActions.push(...actions.accountActions);
33
- break;
34
+ if (result === undefined) {
35
+ continue;
34
36
  }
37
+ if (index !== 0 && index < analyzes.length - 1) {
38
+ const transfers = (0, createTransfersByTransaction_1.createTransfersByTransaction)(parameters.chain, parameters.transaction);
39
+ const isValid = (0, core_1.checkIfAccountActionsIsValid)({
40
+ accountIds,
41
+ transfers,
42
+ accountActions: result.accountActions,
43
+ });
44
+ if (!isValid) {
45
+ continue;
46
+ }
47
+ }
48
+ mut_normalActions.push(...result.actions);
49
+ mut_accountActions.push(...result.accountActions);
50
+ break;
35
51
  }
36
52
  return {
37
53
  actions: mut_normalActions,
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":";;;AAMA,oCAAuC;AACvC,uDAA0D;AAC1D,iCAAoC;AACpC,qCAAwC;AACxC,uCAA0C;AAC1C,iCAAoC;AACpC,yCAA4C;AAGrC,MAAM,OAAO,GAAG,KAAK,EAC1B,UAAoC,EACpC,MAAe,EACa,EAAE;IAC9B,MAAM,gBAAgB,GACpB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAGxE,MAAM,iBAAiB,GAAmB,EAAE,CAAA;IAC5C,MAAM,kBAAkB,GAAoB,EAAE,CAAA;IAE9C,MAAM,aAAa,GAAG,MAAM,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAA;IACrD,IAAA,oBAAY,EAAC,gBAAgB,CAAC,CAAA;IAC9B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,iBAAiB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QAChD,kBAAkB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;IAC1D,CAAC;IAGD,KAAK,MAAM,OAAO,IAAI;QACpB,kBAAW;QACX,kBAAW;QACX,wBAAc;QACd,wCAAsB;QACtB,0BAAe;KAChB,EAAE,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,IAAA,oBAAY,EAAC,gBAAgB,CAAC,CAAA;QAC9B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,iBAAiB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1C,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;YAClD,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,cAAc,EAAE,IAAA,gCAAwB,EAAC,kBAAkB,CAAC;KAC7D,CAAA;AACH,CAAC,CAAA;AAvCY,QAAA,OAAO,WAuCnB;AAEM,MAAM,wBAAwB,GAAG,CACtC,OAAiC,EACP,EAAE,CAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,GAAG,MAAM;IACT,KAAK,EAAE,KAAK;CACb,CAAC,CAAC,CAAA;AANQ,QAAA,wBAAwB,4BAMhC"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":";;;AAMA,wCAA4D;AAC5D,oCAA2D;AAC3D,uDAA0D;AAC1D,iCAAoC;AACpC,qCAAwC;AACxC,uCAA0C;AAC1C,iCAAoC;AACpC,yCAA4C;AAE5C,uFAAmF;AAE5E,MAAM,OAAO,GAAG,KAAK,EAC1B,UAAoC,EACpC,MAAe,EACa,EAAE;IAC9B,MAAM,gBAAgB,GACpB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAGxE,MAAM,iBAAiB,GAAmB,EAAE,CAAA;IAC5C,MAAM,kBAAkB,GAAoB,EAAE,CAAA;IAE9C,MAAM,aAAa,GAAG,MAAM,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAA;IACrD,IAAA,oBAAY,EAAC,gBAAgB,CAAC,CAAA;IAC9B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,iBAAiB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QAChD,kBAAkB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;IAC1D,CAAC;IAGD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,IAAA,0BAAkB,EAAC,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAC9D,CACF,CAAA;IACD,MAAM,QAAQ,GAAG;QACf,kBAAW;QACX,kBAAW;QACX,wBAAc;QACd,wCAAsB;QACtB,0BAAe;KAChB,CAAA;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;QACxC,IAAA,oBAAY,EAAC,gBAAgB,CAAC,CAAA;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAE/C,MAAM,SAAS,GAAG,IAAA,2DAA4B,EAC5C,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,WAAW,CACvB,CAAA;YACD,MAAM,OAAO,GAAG,IAAA,mCAA4B,EAAC;gBAC3C,UAAU;gBACV,SAAS;gBACT,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAA;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAQ;YACV,CAAC;QACH,CAAC;QACD,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QACzC,kBAAkB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;QACjD,MAAK;IACP,CAAC;IAED,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,cAAc,EAAE,IAAA,gCAAwB,EAAC,kBAAkB,CAAC;KAC7D,CAAA;AACH,CAAC,CAAA;AA7DY,QAAA,OAAO,WA6DnB;AAEM,MAAM,wBAAwB,GAAG,CACtC,OAAiC,EACP,EAAE,CAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,GAAG,MAAM;IACT,KAAK,EAAE,KAAK;CACb,CAAC,CAAC,CAAA;AANQ,QAAA,wBAAwB,4BAMhC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeTransfer = exports.analyzeSwap = exports.analyzeSeaport = exports.evmAnalyzersSchema = exports.createAnalyzeByJsonRule = exports.analyzeGasFee = exports.analyzeFail = exports.analyzeAxieMarketplace = exports.analyzer = exports.analyze = void 0;
3
+ exports.createTransfersByTransaction = exports.analyzeTransfer = exports.analyzeSwap = exports.analyzeSeaport = exports.evmAnalyzersSchema = exports.createAnalyzeByJsonRule = exports.analyzeGasFee = exports.analyzeFail = exports.analyzeAxieMarketplace = exports.analyzer = exports.analyze = void 0;
4
4
  var analyze_1 = require("./analyze");
5
5
  Object.defineProperty(exports, "analyze", { enumerable: true, get: function () { return analyze_1.analyze; } });
6
6
  var analyzer_1 = require("./analyzer");
@@ -20,4 +20,6 @@ var swap_1 = require("./swap");
20
20
  Object.defineProperty(exports, "analyzeSwap", { enumerable: true, get: function () { return swap_1.analyzeSwap; } });
21
21
  var transfer_1 = require("./transfer");
22
22
  Object.defineProperty(exports, "analyzeTransfer", { enumerable: true, get: function () { return transfer_1.analyzeTransfer; } });
23
+ var createTransfersByTransaction_1 = require("./utils/createTransfersByTransaction");
24
+ Object.defineProperty(exports, "createTransfersByTransaction", { enumerable: true, get: function () { return createTransfersByTransaction_1.createTransfersByTransaction; } });
23
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../analyzer/index.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qDAA0D;AAAjD,yHAAA,sBAAsB,OAAA;AAC/B,+BAAoC;AAA3B,mGAAA,WAAW,OAAA;AACpB,mCAAwC;AAA/B,uGAAA,aAAa,OAAA;AACtB,+BAAoE;AAA3D,+GAAA,uBAAuB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AACpD,qCAA0C;AAAjC,yGAAA,cAAc,OAAA;AACvB,+BAAoC;AAA3B,mGAAA,WAAW,OAAA;AACpB,uCAA4C;AAAnC,2GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../analyzer/index.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qDAA0D;AAAjD,yHAAA,sBAAsB,OAAA;AAC/B,+BAAoC;AAA3B,mGAAA,WAAW,OAAA;AACpB,mCAAwC;AAA/B,uGAAA,aAAa,OAAA;AACtB,+BAAoE;AAA3D,+GAAA,uBAAuB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AACpD,qCAA0C;AAAjC,yGAAA,cAAc,OAAA;AACvB,+BAAoC;AAA3B,mGAAA,WAAW,OAAA;AACpB,uCAA4C;AAAnC,2GAAA,eAAe,OAAA;AAExB,qFAAmF;AAA1E,4IAAA,4BAA4B,OAAA"}
@@ -4,7 +4,7 @@ exports.analyzeTransfer = void 0;
4
4
  const core_1 = require("@0xtorch/core");
5
5
  const utils_1 = require("../../utils");
6
6
  const create_1 = require("../../utils/create");
7
- const transfer_1 = require("../parsers/transfer");
7
+ const createTransfersByTransaction_1 = require("../utils/createTransfersByTransaction");
8
8
  const analyzeTransfer = ({ chain, transaction, accountAddresses, }) => {
9
9
  const normalActions = generateNormalActions(chain, transaction);
10
10
  if (normalActions.length === 0) {
@@ -31,102 +31,15 @@ const analyzeTransfer = ({ chain, transaction, accountAddresses, }) => {
31
31
  };
32
32
  exports.analyzeTransfer = analyzeTransfer;
33
33
  const generateNormalActions = (chain, transaction) => {
34
- const { to, value, block, internalTransactions, erc20Transfers, erc721Transfers, erc1155Transfers, app, } = transaction;
35
- const mut_actions = [];
36
- if (value > 0 && to !== null) {
37
- mut_actions.push({
38
- type: 'NormalAction',
39
- action: 'transfer',
40
- evidence: 'none',
41
- timestamp: Number(block.timestamp) * 1000,
42
- comment: undefined,
43
- app,
44
- transfers: [
45
- (0, transfer_1.parseTransactionValueToActionTransferNone)({
46
- chain,
47
- transaction,
48
- }),
49
- ],
50
- });
51
- }
52
- for (const internalTx of internalTransactions.filter(({ value }) => value > 0)) {
53
- if (internalTx.to === undefined) {
54
- continue;
55
- }
56
- mut_actions.push({
57
- type: 'NormalAction',
58
- action: 'transfer',
59
- evidence: 'none',
60
- timestamp: Number(block.timestamp) * 1000,
61
- comment: undefined,
62
- app,
63
- transfers: [
64
- (0, transfer_1.parseInternalTransactionToActionTransferNone)({
65
- chain,
66
- internalTransaction: internalTx,
67
- }),
68
- ],
69
- });
70
- }
71
- for (const transfer of [
72
- ...erc20Transfers,
73
- ...erc721Transfers,
74
- ...erc1155Transfers,
75
- ].sort((a, b) => a.logIndex - b.logIndex)) {
76
- switch (transfer.type) {
77
- case 'Erc20Transfer': {
78
- mut_actions.push({
79
- type: 'NormalAction',
80
- action: 'transfer',
81
- evidence: 'none',
82
- timestamp: Number(block.timestamp) * 1000,
83
- comment: undefined,
84
- app,
85
- transfers: [
86
- (0, transfer_1.parseErc20TransferToActionTransferNone)({
87
- chainId: chain.id,
88
- transfer,
89
- }),
90
- ],
91
- });
92
- break;
93
- }
94
- case 'Erc721Transfer': {
95
- mut_actions.push({
96
- type: 'NormalAction',
97
- action: 'transfer',
98
- evidence: 'none',
99
- timestamp: Number(block.timestamp) * 1000,
100
- comment: undefined,
101
- app,
102
- transfers: [
103
- (0, transfer_1.parseErc721TransferToActionTransferNone)({
104
- chainId: chain.id,
105
- transfer,
106
- }),
107
- ],
108
- });
109
- break;
110
- }
111
- case 'Erc1155Transfer': {
112
- mut_actions.push({
113
- type: 'NormalAction',
114
- action: 'transfer',
115
- evidence: 'none',
116
- timestamp: Number(block.timestamp) * 1000,
117
- comment: undefined,
118
- app,
119
- transfers: [
120
- (0, transfer_1.parseErc1155TransferToActionTransferNone)({
121
- chainId: chain.id,
122
- transfer,
123
- }),
124
- ],
125
- });
126
- break;
127
- }
128
- }
129
- }
130
- return mut_actions;
34
+ const transfers = (0, createTransfersByTransaction_1.createTransfersByTransaction)(chain, transaction);
35
+ return transfers.map((transfer) => ({
36
+ type: 'NormalAction',
37
+ action: 'transfer',
38
+ evidence: 'none',
39
+ timestamp: Number(transaction.block.timestamp) * 1000,
40
+ comment: undefined,
41
+ app: transaction.app,
42
+ transfers: [transfer],
43
+ }));
131
44
  };
132
45
  //# sourceMappingURL=analyze.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../analyzer/transfer/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../analyzer/transfer/analyze.ts"],"names":[],"mappings":";;;AACA,wCAAgE;AAGhE,uCAAgD;AAChD,+CAA0D;AAE1D,wFAAoF;AAE7E,MAAM,eAAe,GAAG,CAAgD,EAC7E,KAAK,EACL,WAAW,EACX,gBAAgB,GACS,EAA0C,EAAE;IAErE,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAC/D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;SACnB,CAAC,CAAA;IACJ,CAAC;IAGD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,IAAA,0BAAkB,EAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CACnD,CACF,CAAA;IACD,MAAM,MAAM,GAAG,IAAA,8BAAqB,EAAC;QACnC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,IAAA,uCAAgC,EAAC;QACtD,MAAM;QACN,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACrC,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,UAAU;KACzB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAA;AACJ,CAAC,CAAA;AAnCY,QAAA,eAAe,mBAmC3B;AAED,MAAM,qBAAqB,GAAG,CAC5B,KAAY,EACZ,WAAsC,EACd,EAAE;IAC1B,MAAM,SAAS,GAAG,IAAA,2DAA4B,EAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAClE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;QACrD,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAC,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTransfersByTransaction = void 0;
4
+ const transfer_1 = require("../parsers/transfer");
5
+ const createTransfersByTransaction = (chain, transaction) => {
6
+ const { to, value, internalTransactions, erc20Transfers, erc721Transfers, erc1155Transfers, } = transaction;
7
+ const mut_transfers = [];
8
+ if (value > 0 && to !== null) {
9
+ mut_transfers.push((0, transfer_1.parseTransactionValueToActionTransferNone)({ chain, transaction }));
10
+ }
11
+ for (const internalTransaction of internalTransactions.filter(({ value }) => value > 0)) {
12
+ if (internalTransaction.to === undefined) {
13
+ continue;
14
+ }
15
+ mut_transfers.push((0, transfer_1.parseInternalTransactionToActionTransferNone)({
16
+ chain,
17
+ internalTransaction,
18
+ }));
19
+ }
20
+ for (const transfer of [
21
+ ...erc20Transfers,
22
+ ...erc721Transfers,
23
+ ...erc1155Transfers,
24
+ ].sort((a, b) => a.logIndex - b.logIndex)) {
25
+ switch (transfer.type) {
26
+ case 'Erc20Transfer': {
27
+ mut_transfers.push((0, transfer_1.parseErc20TransferToActionTransferNone)({
28
+ chainId: chain.id,
29
+ transfer,
30
+ }));
31
+ break;
32
+ }
33
+ case 'Erc721Transfer': {
34
+ mut_transfers.push((0, transfer_1.parseErc721TransferToActionTransferNone)({
35
+ chainId: chain.id,
36
+ transfer,
37
+ }));
38
+ break;
39
+ }
40
+ case 'Erc1155Transfer': {
41
+ mut_transfers.push((0, transfer_1.parseErc1155TransferToActionTransferNone)({
42
+ chainId: chain.id,
43
+ transfer,
44
+ }));
45
+ break;
46
+ }
47
+ }
48
+ }
49
+ return mut_transfers;
50
+ };
51
+ exports.createTransfersByTransaction = createTransfersByTransaction;
52
+ //# sourceMappingURL=createTransfersByTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransfersByTransaction.js","sourceRoot":"","sources":["../../../analyzer/utils/createTransfersByTransaction.ts"],"names":[],"mappings":";;;AAGA,kDAM4B;AAErB,MAAM,4BAA4B,GAAG,CAG1C,KAAY,EACZ,WAAsC,EACjB,EAAE;IACvB,MAAM,EACJ,EAAE,EACF,KAAK,EACL,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,GAAG,WAAW,CAAA;IAEf,MAAM,aAAa,GAAe,EAAE,CAAA;IAGpC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC7B,aAAa,CAAC,IAAI,CAChB,IAAA,oDAAyC,EAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAClE,CAAA;IACH,CAAC;IAGD,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,CAAC,MAAM,CAC3D,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CACzB,EAAE,CAAC;QACF,IAAI,mBAAmB,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACzC,SAAQ;QACV,CAAC;QACD,aAAa,CAAC,IAAI,CAChB,IAAA,uDAA4C,EAAC;YAC3C,KAAK;YACL,mBAAmB;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAGD,KAAK,MAAM,QAAQ,IAAI;QACrB,GAAG,cAAc;QACjB,GAAG,eAAe;QAClB,GAAG,gBAAgB;KACpB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,aAAa,CAAC,IAAI,CAChB,IAAA,iDAAsC,EAAC;oBACrC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;iBACT,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,aAAa,CAAC,IAAI,CAChB,IAAA,kDAAuC,EAAC;oBACtC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;iBACT,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,aAAa,CAAC,IAAI,CAChB,IAAA,mDAAwC,EAAC;oBACvC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;iBACT,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AA7EY,QAAA,4BAA4B,gCA6ExC"}
package/_cjs/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOptimismChain = exports.createOasysChainCustom = exports.createOasysChain = exports.createMoonriverChainCustom = exports.createMoonriverChain = exports.createMoonbeamChainCustom = exports.createMoonbeamChain = exports.createMetisChainCustom = exports.createMantleChainCustom = exports.createMantaPacificChainCustom = exports.createMantaPacificChain = exports.createLineaChainCustom = exports.createLineaChain = exports.createFantomChainCustom = exports.createFantomChain = exports.createEthereumChainCustom = exports.createEthereumChain = exports.createBscChainCustom = exports.createBscChain = exports.createBaseChainCustom = exports.createBaseChain = exports.createAvalancheCChainCustom = exports.createAvalancheCChain = exports.createAstarChainCustom = exports.createAstarChain = exports.createArbitrumOneChainCustom = exports.createArbitrumOneChain = exports.bscWebsocketRpcUrls = exports.bscHttpRpcs = exports.baseWebsocketRpcUrls = exports.baseHttpRpcs = exports.avalancheCWebsocketRpcUrls = exports.avalancheCHttpRpcs = exports.astarWebsocketRpcUrls = exports.astarHttpRpcs = exports.arbitrumOneWebsocketRpcUrls = exports.arbitrumOneHttpRpcs = exports.evmAnalyzersSchema = exports.createAnalyzeByJsonRule = exports.analyzer = exports.analyzeTransfer = exports.analyzeSwap = exports.analyzeSeaport = exports.analyzeGasFee = exports.analyzeFail = exports.analyzeAxieMarketplace = exports.wethAbi = exports.erc721Abi = exports.erc20Abi = exports.erc1155Abi = void 0;
4
- exports.isErc1155NftId = exports.createEvmCurrencyId = exports.createEvmAddressId = exports.createEvmActionSource = exports.createErc721NftId = exports.createErc1155NftId = exports.evmAddressSchema = exports.evmAddressPremitiveSchema = exports.toLowerHex = exports.parsedLogSchema = exports.isHex = exports.getTransactionDetail = exports.createRoninExplorer = exports.createEtherscan = exports.createBlockscout = exports.parseErc721TransferLogs = exports.parseErc20TransferLogs = exports.parseErc1155TransferSingleLogs = exports.decoder = exports.createViemClient = exports.roninWebsocketRpcUrls = exports.roninHttpRpcs = exports.polygonPosWebsocketRpcUrls = exports.polygonPosHttpRpcs = exports.optimismWebsocketRpcUrls = exports.optimismHttpRpcs = exports.oasysWebsocketRpcUrls = exports.oasysHttpRpcs = exports.moonriverWebsocketRpcUrls = exports.moonriverHttpRpcs = exports.moonbeamWebsocketRpcUrls = exports.moonbeamHttpRpcs = exports.metisWebsocketRpcUrls = exports.metisHttpRpcs = exports.mantleWebsocketRpcUrls = exports.mantleHttpRpcs = exports.mantaPacificWebsocketRpcUrls = exports.mantaPacificHttpRpcs = exports.lineaWebsocketRpcUrls = exports.lineaHttpRpcs = exports.getBlockOfTimestampByDefillama = exports.fantomWebsocketRpcUrls = exports.fantomHttpRpcs = exports.ethereumWebsocketRpcUrls = exports.ethereumHttpRpcs = exports.createRoninChainCustom = exports.createRoninChain = exports.createPolygonPosChainCustom = exports.createPolygonPosChain = exports.createOptimismChainCustom = void 0;
5
- exports.isErc721NftId = void 0;
3
+ exports.createOasysChainCustom = exports.createOasysChain = exports.createMoonriverChainCustom = exports.createMoonriverChain = exports.createMoonbeamChainCustom = exports.createMoonbeamChain = exports.createMetisChainCustom = exports.createMantleChainCustom = exports.createMantaPacificChainCustom = exports.createMantaPacificChain = exports.createLineaChainCustom = exports.createLineaChain = exports.createFantomChainCustom = exports.createFantomChain = exports.createEthereumChainCustom = exports.createEthereumChain = exports.createBscChainCustom = exports.createBscChain = exports.createBaseChainCustom = exports.createBaseChain = exports.createAvalancheCChainCustom = exports.createAvalancheCChain = exports.createAstarChainCustom = exports.createAstarChain = exports.createArbitrumOneChainCustom = exports.createArbitrumOneChain = exports.bscWebsocketRpcUrls = exports.bscHttpRpcs = exports.baseWebsocketRpcUrls = exports.baseHttpRpcs = exports.avalancheCWebsocketRpcUrls = exports.avalancheCHttpRpcs = exports.astarWebsocketRpcUrls = exports.astarHttpRpcs = exports.arbitrumOneWebsocketRpcUrls = exports.arbitrumOneHttpRpcs = exports.evmAnalyzersSchema = exports.createTransfersByTransaction = exports.createAnalyzeByJsonRule = exports.analyzer = exports.analyzeTransfer = exports.analyzeSwap = exports.analyzeSeaport = exports.analyzeGasFee = exports.analyzeFail = exports.analyzeAxieMarketplace = exports.wethAbi = exports.erc721Abi = exports.erc20Abi = exports.erc1155Abi = void 0;
4
+ exports.createEvmCurrencyId = exports.createEvmAddressId = exports.createEvmActionSource = exports.createErc721NftId = exports.createErc1155NftId = exports.evmAddressSchema = exports.evmAddressPremitiveSchema = exports.toLowerHex = exports.parsedLogSchema = exports.isHex = exports.getTransactionDetail = exports.createRoninExplorer = exports.createEtherscan = exports.createBlockscout = exports.parseErc721TransferLogs = exports.parseErc20TransferLogs = exports.parseErc1155TransferSingleLogs = exports.decoder = exports.createViemClient = exports.roninWebsocketRpcUrls = exports.roninHttpRpcs = exports.polygonPosWebsocketRpcUrls = exports.polygonPosHttpRpcs = exports.optimismWebsocketRpcUrls = exports.optimismHttpRpcs = exports.oasysWebsocketRpcUrls = exports.oasysHttpRpcs = exports.moonriverWebsocketRpcUrls = exports.moonriverHttpRpcs = exports.moonbeamWebsocketRpcUrls = exports.moonbeamHttpRpcs = exports.metisWebsocketRpcUrls = exports.metisHttpRpcs = exports.mantleWebsocketRpcUrls = exports.mantleHttpRpcs = exports.mantaPacificWebsocketRpcUrls = exports.mantaPacificHttpRpcs = exports.lineaWebsocketRpcUrls = exports.lineaHttpRpcs = exports.getBlockOfTimestampByDefillama = exports.fantomWebsocketRpcUrls = exports.fantomHttpRpcs = exports.ethereumWebsocketRpcUrls = exports.ethereumHttpRpcs = exports.createRoninChainCustom = exports.createRoninChain = exports.createPolygonPosChainCustom = exports.createPolygonPosChain = exports.createOptimismChainCustom = exports.createOptimismChain = void 0;
5
+ exports.isErc721NftId = exports.isErc1155NftId = void 0;
6
6
  var abis_1 = require("./abis");
7
7
  Object.defineProperty(exports, "erc1155Abi", { enumerable: true, get: function () { return abis_1.erc1155Abi; } });
8
8
  Object.defineProperty(exports, "erc20Abi", { enumerable: true, get: function () { return abis_1.erc20Abi; } });
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "analyzeSwap", { enumerable: true, get: function
17
17
  Object.defineProperty(exports, "analyzeTransfer", { enumerable: true, get: function () { return analyzer_1.analyzeTransfer; } });
18
18
  Object.defineProperty(exports, "analyzer", { enumerable: true, get: function () { return analyzer_1.analyzer; } });
19
19
  Object.defineProperty(exports, "createAnalyzeByJsonRule", { enumerable: true, get: function () { return analyzer_1.createAnalyzeByJsonRule; } });
20
+ Object.defineProperty(exports, "createTransfersByTransaction", { enumerable: true, get: function () { return analyzer_1.createTransfersByTransaction; } });
20
21
  Object.defineProperty(exports, "evmAnalyzersSchema", { enumerable: true, get: function () { return analyzer_1.evmAnalyzersSchema; } });
21
22
  var chains_1 = require("./chains");
22
23
  Object.defineProperty(exports, "arbitrumOneHttpRpcs", { enumerable: true, get: function () { return chains_1.arbitrumOneHttpRpcs; } });
package/_cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import { checkTimeout } from '../utils';
1
+ import { checkIfAccountActionsIsValid } from '@0xtorch/core';
2
+ import { checkTimeout, createEvmAddressId } from '../utils';
2
3
  import { analyzeAxieMarketplace } from './axieMarketplace';
3
4
  import { analyzeFail } from './fail';
4
5
  import { analyzeGasFee } from './gasFee';
5
6
  import { analyzeSeaport } from './seaport';
6
7
  import { analyzeSwap } from './swap';
7
8
  import { analyzeTransfer } from './transfer';
9
+ import { createTransfersByTransaction } from './utils/createTransfersByTransaction';
8
10
  export const analyze = async (parameters, config) => {
9
11
  const timeoutTimestamp = Date.now() + (config?.timeout === undefined ? 60_000 : config.timeout);
10
12
  // every
@@ -18,20 +20,35 @@ export const analyze = async (parameters, config) => {
18
20
  mut_accountActions.push(...gasFeeActions.accountActions);
19
21
  }
20
22
  // [some]
21
- for (const analyze of [
23
+ const accountIds = new Set(parameters.accountAddresses.map((address) => createEvmAddressId({ chainId: parameters.chain.id, address })));
24
+ const analyzes = [
22
25
  analyzeFail,
23
26
  analyzeSwap,
24
27
  analyzeSeaport,
25
28
  analyzeAxieMarketplace,
26
29
  analyzeTransfer,
27
- ]) {
28
- const actions = await analyze(parameters);
30
+ ];
31
+ for (const [index, analyze] of analyzes.entries()) {
32
+ const result = await analyze(parameters);
29
33
  checkTimeout(timeoutTimestamp);
30
- if (actions !== undefined) {
31
- mut_normalActions.push(...actions.actions);
32
- mut_accountActions.push(...actions.accountActions);
33
- break;
34
+ if (result === undefined) {
35
+ continue;
34
36
  }
37
+ if (index !== 0 && index < analyzes.length - 1) {
38
+ // fail, transfer 以外の場合、accountActions が正常か検証
39
+ const transfers = createTransfersByTransaction(parameters.chain, parameters.transaction);
40
+ const isValid = checkIfAccountActionsIsValid({
41
+ accountIds,
42
+ transfers,
43
+ accountActions: result.accountActions,
44
+ });
45
+ if (!isValid) {
46
+ continue;
47
+ }
48
+ }
49
+ mut_normalActions.push(...result.actions);
50
+ mut_accountActions.push(...result.accountActions);
51
+ break;
35
52
  }
36
53
  return {
37
54
  actions: mut_normalActions,
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,UAAoC,EACpC,MAAe,EACa,EAAE;IAC9B,MAAM,gBAAgB,GACpB,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAExE,QAAQ;IACR,MAAM,iBAAiB,GAAmB,EAAE,CAAA;IAC5C,MAAM,kBAAkB,GAAoB,EAAE,CAAA;IAC9C,UAAU;IACV,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;IACrD,YAAY,CAAC,gBAAgB,CAAC,CAAA;IAC9B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,iBAAiB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QAChD,kBAAkB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS;IACT,KAAK,MAAM,OAAO,IAAI;QACpB,WAAW;QACX,WAAW;QACX,cAAc;QACd,sBAAsB;QACtB,eAAe;KAChB,EAAE,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QAC9B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,iBAAiB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1C,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;YAClD,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,cAAc,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;KAC7D,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAiC,EACP,EAAE,CAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,GAAG,MAAM;IACT,KAAK,EAAE,KAAK;CACb,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export { createAnalyzeByJsonRule, evmAnalyzersSchema } from './json';
7
7
  export { analyzeSeaport } from './seaport';
8
8
  export { analyzeSwap } from './swap';
9
9
  export { analyzeTransfer } from './transfer';
10
+ export { createTransfersByTransaction } from './utils/createTransfersByTransaction';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { createEvidenceNoneAccountActions } from '@0xtorch/core';
2
2
  import { createEvmAddressId } from '../../utils';
3
3
  import { createEvmActionSource } from '../../utils/create';
4
- import { parseErc1155TransferToActionTransferNone, parseErc20TransferToActionTransferNone, parseErc721TransferToActionTransferNone, parseInternalTransactionToActionTransferNone, parseTransactionValueToActionTransferNone, } from '../parsers/transfer';
4
+ import { createTransfersByTransaction } from '../utils/createTransfersByTransaction';
5
5
  export const analyzeTransfer = ({ chain, transaction, accountAddresses, }) => {
6
6
  // 全ての native token(include internalTx),erc20,721,1155 transfer を transfer action として normal action 作成
7
7
  const normalActions = generateNormalActions(chain, transaction);
@@ -29,102 +29,15 @@ export const analyzeTransfer = ({ chain, transaction, accountAddresses, }) => {
29
29
  });
30
30
  };
31
31
  const generateNormalActions = (chain, transaction) => {
32
- const { to, value, block, internalTransactions, erc20Transfers, erc721Transfers, erc1155Transfers, app, } = transaction;
33
- const mut_actions = [];
34
- if (value > 0 && to !== null) {
35
- mut_actions.push({
36
- type: 'NormalAction',
37
- action: 'transfer',
38
- evidence: 'none',
39
- timestamp: Number(block.timestamp) * 1000,
40
- comment: undefined,
41
- app,
42
- transfers: [
43
- parseTransactionValueToActionTransferNone({
44
- chain,
45
- transaction,
46
- }),
47
- ],
48
- });
49
- }
50
- for (const internalTx of internalTransactions.filter(({ value }) => value > 0)) {
51
- if (internalTx.to === undefined) {
52
- continue;
53
- }
54
- mut_actions.push({
55
- type: 'NormalAction',
56
- action: 'transfer',
57
- evidence: 'none',
58
- timestamp: Number(block.timestamp) * 1000,
59
- comment: undefined,
60
- app,
61
- transfers: [
62
- parseInternalTransactionToActionTransferNone({
63
- chain,
64
- internalTransaction: internalTx,
65
- }),
66
- ],
67
- });
68
- }
69
- for (const transfer of [
70
- ...erc20Transfers,
71
- ...erc721Transfers,
72
- ...erc1155Transfers,
73
- ].sort((a, b) => a.logIndex - b.logIndex)) {
74
- switch (transfer.type) {
75
- case 'Erc20Transfer': {
76
- mut_actions.push({
77
- type: 'NormalAction',
78
- action: 'transfer',
79
- evidence: 'none',
80
- timestamp: Number(block.timestamp) * 1000,
81
- comment: undefined,
82
- app,
83
- transfers: [
84
- parseErc20TransferToActionTransferNone({
85
- chainId: chain.id,
86
- transfer,
87
- }),
88
- ],
89
- });
90
- break;
91
- }
92
- case 'Erc721Transfer': {
93
- mut_actions.push({
94
- type: 'NormalAction',
95
- action: 'transfer',
96
- evidence: 'none',
97
- timestamp: Number(block.timestamp) * 1000,
98
- comment: undefined,
99
- app,
100
- transfers: [
101
- parseErc721TransferToActionTransferNone({
102
- chainId: chain.id,
103
- transfer,
104
- }),
105
- ],
106
- });
107
- break;
108
- }
109
- case 'Erc1155Transfer': {
110
- mut_actions.push({
111
- type: 'NormalAction',
112
- action: 'transfer',
113
- evidence: 'none',
114
- timestamp: Number(block.timestamp) * 1000,
115
- comment: undefined,
116
- app,
117
- transfers: [
118
- parseErc1155TransferToActionTransferNone({
119
- chainId: chain.id,
120
- transfer,
121
- }),
122
- ],
123
- });
124
- break;
125
- }
126
- }
127
- }
128
- return mut_actions;
32
+ const transfers = createTransfersByTransaction(chain, transaction);
33
+ return transfers.map((transfer) => ({
34
+ type: 'NormalAction',
35
+ action: 'transfer',
36
+ evidence: 'none',
37
+ timestamp: Number(transaction.block.timestamp) * 1000,
38
+ comment: undefined,
39
+ app: transaction.app,
40
+ transfers: [transfer],
41
+ }));
129
42
  };
130
43
  //# sourceMappingURL=analyze.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../analyzer/transfer/analyze.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAGhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACL,wCAAwC,EACxC,sCAAsC,EACtC,uCAAuC,EACvC,4CAA4C,EAC5C,yCAAyC,GAC1C,MAAM,qBAAqB,CAAA;AAG5B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAgD,EAC7E,KAAK,EACL,WAAW,EACX,gBAAgB,GACS,EAA0C,EAAE;IACrE,sGAAsG;IACtG,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAC/D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CACnD,CACF,CAAA;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,gCAAgC,CAAC;QACtD,MAAM;QACN,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACrC,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,UAAU;KACzB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAC5B,KAAY,EACZ,WAAsC,EACd,EAAE;IAC1B,MAAM,EACJ,EAAE,EACF,KAAK,EACL,KAAK,EACL,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,GAAG,GACJ,GAAG,WAAW,CAAA;IACf,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;YACzC,OAAO,EAAE,SAAS;YAClB,GAAG;YACH,SAAS,EAAE;gBACT,yCAAyC,CAAC;oBACxC,KAAK;oBACL,WAAW;iBACZ,CAAC;aACH;SACF,CAAC,CAAA;IACJ,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,oBAAoB,CAAC,MAAM,CAClD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CACzB,EAAE,CAAC;QACF,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAChC,SAAQ;QACV,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;YACzC,OAAO,EAAE,SAAS;YAClB,GAAG;YACH,SAAS,EAAE;gBACT,4CAA4C,CAAC;oBAC3C,KAAK;oBACL,mBAAmB,EAAE,UAAU;iBAChC,CAAC;aACH;SACF,CAAC,CAAA;IACJ,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI;QACrB,GAAG,cAAc;QACjB,GAAG,eAAe;QAClB,GAAG,gBAAgB;KACpB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;oBACzC,OAAO,EAAE,SAAS;oBAClB,GAAG;oBACH,SAAS,EAAE;wBACT,sCAAsC,CAAC;4BACrC,OAAO,EAAE,KAAK,CAAC,EAAE;4BACjB,QAAQ;yBACT,CAAC;qBACH;iBACF,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;oBACzC,OAAO,EAAE,SAAS;oBAClB,GAAG;oBACH,SAAS,EAAE;wBACT,uCAAuC,CAAC;4BACtC,OAAO,EAAE,KAAK,CAAC,EAAE;4BACjB,QAAQ;yBACT,CAAC;qBACH;iBACF,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,MAAM;oBAChB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;oBACzC,OAAO,EAAE,SAAS;oBAClB,GAAG;oBACH,SAAS,EAAE;wBACT,wCAAwC,CAAC;4BACvC,OAAO,EAAE,KAAK,CAAC,EAAE;4BACjB,QAAQ;yBACT,CAAC;qBACH;iBACF,CAAC,CAAA;gBACF,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../analyzer/transfer/analyze.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAA;AAGhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AAEpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAgD,EAC7E,KAAK,EACL,WAAW,EACX,gBAAgB,GACS,EAA0C,EAAE;IACrE,sGAAsG;IACtG,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAC/D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/B,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CACnD,CACF,CAAA;IACD,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC,CAAA;IACF,MAAM,cAAc,GAAG,gCAAgC,CAAC;QACtD,MAAM;QACN,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QACrC,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,UAAU;KACzB,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAC5B,KAAY,EACZ,WAAsC,EACd,EAAE;IAC1B,MAAM,SAAS,GAAG,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IAClE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;QACrD,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAC,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { parseErc1155TransferToActionTransferNone, parseErc20TransferToActionTransferNone, parseErc721TransferToActionTransferNone, parseInternalTransactionToActionTransferNone, parseTransactionValueToActionTransferNone, } from '../parsers/transfer';
2
+ export const createTransfersByTransaction = (chain, transaction) => {
3
+ const { to, value, internalTransactions, erc20Transfers, erc721Transfers, erc1155Transfers, } = transaction;
4
+ const mut_transfers = [];
5
+ // value
6
+ if (value > 0 && to !== null) {
7
+ mut_transfers.push(parseTransactionValueToActionTransferNone({ chain, transaction }));
8
+ }
9
+ // internal transaction
10
+ for (const internalTransaction of internalTransactions.filter(({ value }) => value > 0)) {
11
+ if (internalTransaction.to === undefined) {
12
+ continue;
13
+ }
14
+ mut_transfers.push(parseInternalTransactionToActionTransferNone({
15
+ chain,
16
+ internalTransaction,
17
+ }));
18
+ }
19
+ // ERC20,721,1155 transfer
20
+ for (const transfer of [
21
+ ...erc20Transfers,
22
+ ...erc721Transfers,
23
+ ...erc1155Transfers,
24
+ ].sort((a, b) => a.logIndex - b.logIndex)) {
25
+ switch (transfer.type) {
26
+ case 'Erc20Transfer': {
27
+ mut_transfers.push(parseErc20TransferToActionTransferNone({
28
+ chainId: chain.id,
29
+ transfer,
30
+ }));
31
+ break;
32
+ }
33
+ case 'Erc721Transfer': {
34
+ mut_transfers.push(parseErc721TransferToActionTransferNone({
35
+ chainId: chain.id,
36
+ transfer,
37
+ }));
38
+ break;
39
+ }
40
+ case 'Erc1155Transfer': {
41
+ mut_transfers.push(parseErc1155TransferToActionTransferNone({
42
+ chainId: chain.id,
43
+ transfer,
44
+ }));
45
+ break;
46
+ }
47
+ }
48
+ }
49
+ return mut_transfers;
50
+ };
51
+ //# sourceMappingURL=createTransfersByTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransfersByTransaction.js","sourceRoot":"","sources":["../../../analyzer/utils/createTransfersByTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,wCAAwC,EACxC,sCAAsC,EACtC,uCAAuC,EACvC,4CAA4C,EAC5C,yCAAyC,GAC1C,MAAM,qBAAqB,CAAA;AAE5B,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAG1C,KAAY,EACZ,WAAsC,EACjB,EAAE;IACvB,MAAM,EACJ,EAAE,EACF,KAAK,EACL,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,GAAG,WAAW,CAAA;IAEf,MAAM,aAAa,GAAe,EAAE,CAAA;IAEpC,QAAQ;IACR,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAC7B,aAAa,CAAC,IAAI,CAChB,yCAAyC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAClE,CAAA;IACH,CAAC;IAED,uBAAuB;IACvB,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,CAAC,MAAM,CAC3D,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CACzB,EAAE,CAAC;QACF,IAAI,mBAAmB,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACzC,SAAQ;QACV,CAAC;QACD,aAAa,CAAC,IAAI,CAChB,4CAA4C,CAAC;YAC3C,KAAK;YACL,mBAAmB;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,QAAQ,IAAI;QACrB,GAAG,cAAc;QACjB,GAAG,eAAe;QAClB,GAAG,gBAAgB;KACpB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,aAAa,CAAC,IAAI,CAChB,sCAAsC,CAAC;oBACrC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;iBACT,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,aAAa,CAAC,IAAI,CAChB,uCAAuC,CAAC;oBACtC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;iBACT,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,aAAa,CAAC,IAAI,CAChB,wCAAwC,CAAC;oBACvC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,QAAQ;iBACT,CAAC,CACH,CAAA;gBACD,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA"}
package/_esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { erc1155Abi, erc20Abi, erc721Abi, wethAbi } from './abis';
2
- export { analyzeAxieMarketplace, analyzeFail, analyzeGasFee, analyzeSeaport, analyzeSwap, analyzeTransfer, analyzer, createAnalyzeByJsonRule, evmAnalyzersSchema, } from './analyzer';
2
+ export { analyzeAxieMarketplace, analyzeFail, analyzeGasFee, analyzeSeaport, analyzeSwap, analyzeTransfer, analyzer, createAnalyzeByJsonRule, createTransfersByTransaction, evmAnalyzersSchema, } from './analyzer';
3
3
  export { arbitrumOneHttpRpcs, arbitrumOneWebsocketRpcUrls, astarHttpRpcs, astarWebsocketRpcUrls, avalancheCHttpRpcs, avalancheCWebsocketRpcUrls, baseHttpRpcs, baseWebsocketRpcUrls, bscHttpRpcs, bscWebsocketRpcUrls, createArbitrumOneChain, createArbitrumOneChainCustom, createAstarChain, createAstarChainCustom, createAvalancheCChain, createAvalancheCChainCustom, createBaseChain, createBaseChainCustom, createBscChain, createBscChainCustom, createEthereumChain, createEthereumChainCustom, createFantomChain, createFantomChainCustom, createLineaChain, createLineaChainCustom, createMantaPacificChain, createMantaPacificChainCustom, createMantleChainCustom, createMetisChainCustom, createMoonbeamChain, createMoonbeamChainCustom, createMoonriverChain, createMoonriverChainCustom, createOasysChain, createOasysChainCustom, createOptimismChain, createOptimismChainCustom, createPolygonPosChain, createPolygonPosChainCustom, createRoninChain, createRoninChainCustom, ethereumHttpRpcs, ethereumWebsocketRpcUrls, fantomHttpRpcs, fantomWebsocketRpcUrls, getBlockOfTimestampByDefillama, lineaHttpRpcs, lineaWebsocketRpcUrls, mantaPacificHttpRpcs, mantaPacificWebsocketRpcUrls, mantleHttpRpcs, mantleWebsocketRpcUrls, metisHttpRpcs, metisWebsocketRpcUrls, moonbeamHttpRpcs, moonbeamWebsocketRpcUrls, moonriverHttpRpcs, moonriverWebsocketRpcUrls, oasysHttpRpcs, oasysWebsocketRpcUrls, optimismHttpRpcs, optimismWebsocketRpcUrls, polygonPosHttpRpcs, polygonPosWebsocketRpcUrls, roninHttpRpcs, roninWebsocketRpcUrls, } from './chains';
4
4
  export { createViemClient } from './clients';
5
5
  export { decoder, parseErc1155TransferSingleLogs, parseErc20TransferLogs, parseErc721TransferLogs, } from './decoder';
package/_esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,qBAAqB,GACtB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EACL,OAAO,EACP,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAqB5D,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAE7E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,qBAAqB,GACtB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EACL,OAAO,EACP,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAqB5D,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAE7E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EAGP,MAAM,eAAe,CAAA;AAQtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEnE,eAAO,MAAM,OAAO;;;;;;;;8DAET,MAAM,KACd,QAAQ,iBAAiB,CAoC3B,CAAA;AAED,eAAO,MAAM,wBAAwB,YAC1B,SAAS,aAAa,EAAE,KAChC,SAAS,aAAa,EAIpB,CAAA"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EAGP,MAAM,eAAe,CAAA;AAStB,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAGnE,eAAO,MAAM,OAAO;;;;;;;;8DAET,MAAM,KACd,QAAQ,iBAAiB,CA0D3B,CAAA;AAED,eAAO,MAAM,wBAAwB,YAC1B,SAAS,aAAa,EAAE,KAChC,SAAS,aAAa,EAIpB,CAAA"}
@@ -8,4 +8,5 @@ export { analyzeSeaport } from './seaport';
8
8
  export { analyzeSwap } from './swap';
9
9
  export { analyzeTransfer } from './transfer';
10
10
  export type { AnalyzeParameters, AnalyzeReturnType, Analyzer } from './types';
11
+ export { createTransfersByTransaction } from './utils/createTransfersByTransaction';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../analyzer/transfer/analyze.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEpE,eAAO,MAAM,eAAe;;;;;;;;uFAIE,QAAQ,iBAAiB,GAAG,SAAS,CA+BlE,CAAA"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../analyzer/transfer/analyze.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGpE,eAAO,MAAM,eAAe;;;;;;;;uFAIE,QAAQ,iBAAiB,GAAG,SAAS,CA+BlE,CAAA"}
@@ -0,0 +1,64 @@
1
+ import type { Transfer } from '@0xtorch/core';
2
+ import type { Chain } from '../../chains';
3
+ import type { TransactionDecoded } from '../../types';
4
+ export declare const createTransfersByTransaction: <Price extends {
5
+ cryptoCurrencyId: string;
6
+ fiatCurrencyId: string;
7
+ price: {
8
+ value: bigint;
9
+ decimals: number;
10
+ };
11
+ timestamp: number;
12
+ } | undefined>(chain: Chain, transaction: {
13
+ readonly chainId: number;
14
+ transactionHash: `0x${string}`;
15
+ status: "success" | "reverted";
16
+ value: bigint;
17
+ readonly type: "legacy" | "eip2930" | "eip1559" | "eip4844" | "eip7702";
18
+ blockHash: `0x${string}`;
19
+ blockNumber: bigint;
20
+ transactionIndex: number;
21
+ yParity?: number | undefined;
22
+ from: `0x${string}`;
23
+ gas: bigint;
24
+ hash: `0x${string}`;
25
+ input: `0x${string}`;
26
+ nonce: number;
27
+ r: `0x${string}`;
28
+ s: `0x${string}`;
29
+ to: `0x${string}` | null;
30
+ typeHex: `0x${string}` | null;
31
+ v: bigint;
32
+ accessList?: import("viem").AccessList | undefined;
33
+ authorizationList?: import("viem/experimental").SignedAuthorizationList | undefined;
34
+ blobVersionedHashes?: readonly `0x${string}`[] | undefined;
35
+ gasPrice?: bigint | undefined;
36
+ maxFeePerBlobGas?: bigint | undefined;
37
+ maxFeePerGas?: bigint | undefined;
38
+ maxPriorityFeePerGas?: bigint | undefined;
39
+ blobGasPrice?: bigint | undefined;
40
+ blobGasUsed?: bigint | undefined;
41
+ contractAddress: `0x${string}` | null | undefined;
42
+ cumulativeGasUsed: bigint;
43
+ effectiveGasPrice: bigint;
44
+ gasUsed: bigint;
45
+ logsBloom: `0x${string}`;
46
+ root?: `0x${string}` | undefined;
47
+ readonly block: import("viem").Block<bigint, false, "latest" | "earliest" | "safe" | "finalized">;
48
+ readonly function: import("../../types/input").InputFunction | undefined;
49
+ readonly internalTransactions: readonly import("../../types").InternalTransaction<Price>[];
50
+ readonly erc20Transfers: readonly import("../../types").Erc20Transfer<Price>[];
51
+ readonly erc721Transfers: readonly import("../../types").Erc721Transfer[];
52
+ readonly erc1155Transfers: readonly import("../../types").Erc1155Transfer[];
53
+ readonly logs: readonly import("../../types").LogData[];
54
+ readonly app: {
55
+ description: string | undefined;
56
+ website: string | undefined;
57
+ icon: string | undefined;
58
+ id: string;
59
+ name: string;
60
+ categories: ("bridge" | "cex" | "cross-chain" | "dex" | "gaming" | "lending" | "nft-marketplace" | "other")[];
61
+ } | undefined;
62
+ readonly nativeTokenPrice: Price;
63
+ }) => readonly Transfer[];
64
+ //# sourceMappingURL=createTransfersByTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransfersByTransaction.d.ts","sourceRoot":"","sources":["../../../analyzer/utils/createTransfersByTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AASrD,eAAO,MAAM,4BAA4B;;;;;;;;sBAGhC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEX,SAAS,QAAQ,EAwEnB,CAAA"}
package/_types/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { erc1155Abi, erc20Abi, erc721Abi, wethAbi } from './abis';
2
- export { analyzeAxieMarketplace, analyzeFail, analyzeGasFee, analyzeSeaport, analyzeSwap, analyzeTransfer, analyzer, createAnalyzeByJsonRule, evmAnalyzersSchema, } from './analyzer';
2
+ export { analyzeAxieMarketplace, analyzeFail, analyzeGasFee, analyzeSeaport, analyzeSwap, analyzeTransfer, analyzer, createAnalyzeByJsonRule, createTransfersByTransaction, evmAnalyzersSchema, } from './analyzer';
3
3
  export type { AnalyzeParameters, AnalyzeReturnType, Analyzer } from './analyzer';
4
4
  export type { AppDataSource } from './apps';
5
5
  export { arbitrumOneHttpRpcs, arbitrumOneWebsocketRpcUrls, astarHttpRpcs, astarWebsocketRpcUrls, avalancheCHttpRpcs, avalancheCWebsocketRpcUrls, baseHttpRpcs, baseWebsocketRpcUrls, bscHttpRpcs, bscWebsocketRpcUrls, createArbitrumOneChain, createArbitrumOneChainCustom, createAstarChain, createAstarChainCustom, createAvalancheCChain, createAvalancheCChainCustom, createBaseChain, createBaseChainCustom, createBscChain, createBscChainCustom, createEthereumChain, createEthereumChainCustom, createFantomChain, createFantomChainCustom, createLineaChain, createLineaChainCustom, createMantaPacificChain, createMantaPacificChainCustom, createMantleChainCustom, createMetisChainCustom, createMoonbeamChain, createMoonbeamChainCustom, createMoonriverChain, createMoonriverChainCustom, createOasysChain, createOasysChainCustom, createOptimismChain, createOptimismChainCustom, createPolygonPosChain, createPolygonPosChainCustom, createRoninChain, createRoninChainCustom, ethereumHttpRpcs, ethereumWebsocketRpcUrls, fantomHttpRpcs, fantomWebsocketRpcUrls, getBlockOfTimestampByDefillama, lineaHttpRpcs, lineaWebsocketRpcUrls, mantaPacificHttpRpcs, mantaPacificWebsocketRpcUrls, mantleHttpRpcs, mantleWebsocketRpcUrls, metisHttpRpcs, metisWebsocketRpcUrls, moonbeamHttpRpcs, moonbeamWebsocketRpcUrls, moonriverHttpRpcs, moonriverWebsocketRpcUrls, oasysHttpRpcs, oasysWebsocketRpcUrls, optimismHttpRpcs, optimismWebsocketRpcUrls, polygonPosHttpRpcs, polygonPosWebsocketRpcUrls, roninHttpRpcs, roninWebsocketRpcUrls, } from './chains';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,qBAAqB,GACtB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EACL,OAAO,EACP,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,GAAG,EACH,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ import type {
4
4
  CryptoCurrencyPrice,
5
5
  NormalAction,
6
6
  } from '@0xtorch/core'
7
- import { checkTimeout } from '../utils'
7
+ import { checkIfAccountActionsIsValid } from '@0xtorch/core'
8
+ import { checkTimeout, createEvmAddressId } from '../utils'
8
9
  import { analyzeAxieMarketplace } from './axieMarketplace'
9
10
  import { analyzeFail } from './fail'
10
11
  import { analyzeGasFee } from './gasFee'
@@ -12,6 +13,7 @@ import { analyzeSeaport } from './seaport'
12
13
  import { analyzeSwap } from './swap'
13
14
  import { analyzeTransfer } from './transfer'
14
15
  import type { AnalyzeParameters, AnalyzeReturnType } from './types'
16
+ import { createTransfersByTransaction } from './utils/createTransfersByTransaction'
15
17
 
16
18
  export const analyze = async <Price extends CryptoCurrencyPrice | undefined>(
17
19
  parameters: AnalyzeParameters<Price>,
@@ -32,20 +34,42 @@ export const analyze = async <Price extends CryptoCurrencyPrice | undefined>(
32
34
  }
33
35
 
34
36
  // [some]
35
- for (const analyze of [
37
+ const accountIds = new Set(
38
+ parameters.accountAddresses.map((address) =>
39
+ createEvmAddressId({ chainId: parameters.chain.id, address }),
40
+ ),
41
+ )
42
+ const analyzes = [
36
43
  analyzeFail,
37
44
  analyzeSwap,
38
45
  analyzeSeaport,
39
46
  analyzeAxieMarketplace,
40
47
  analyzeTransfer,
41
- ]) {
42
- const actions = await analyze(parameters)
48
+ ]
49
+ for (const [index, analyze] of analyzes.entries()) {
50
+ const result = await analyze(parameters)
43
51
  checkTimeout(timeoutTimestamp)
44
- if (actions !== undefined) {
45
- mut_normalActions.push(...actions.actions)
46
- mut_accountActions.push(...actions.accountActions)
47
- break
52
+ if (result === undefined) {
53
+ continue
48
54
  }
55
+ if (index !== 0 && index < analyzes.length - 1) {
56
+ // fail, transfer 以外の場合、accountActions が正常か検証
57
+ const transfers = createTransfersByTransaction(
58
+ parameters.chain,
59
+ parameters.transaction,
60
+ )
61
+ const isValid = checkIfAccountActionsIsValid({
62
+ accountIds,
63
+ transfers,
64
+ accountActions: result.accountActions,
65
+ })
66
+ if (!isValid) {
67
+ continue
68
+ }
69
+ }
70
+ mut_normalActions.push(...result.actions)
71
+ mut_accountActions.push(...result.accountActions)
72
+ break
49
73
  }
50
74
 
51
75
  return {
package/analyzer/index.ts CHANGED
@@ -8,3 +8,4 @@ export { analyzeSeaport } from './seaport'
8
8
  export { analyzeSwap } from './swap'
9
9
  export { analyzeTransfer } from './transfer'
10
10
  export type { AnalyzeParameters, AnalyzeReturnType, Analyzer } from './types'
11
+ export { createTransfersByTransaction } from './utils/createTransfersByTransaction'
@@ -4,14 +4,8 @@ import type { Chain } from '../../chains'
4
4
  import type { TransactionDecoded } from '../../types'
5
5
  import { createEvmAddressId } from '../../utils'
6
6
  import { createEvmActionSource } from '../../utils/create'
7
- import {
8
- parseErc1155TransferToActionTransferNone,
9
- parseErc20TransferToActionTransferNone,
10
- parseErc721TransferToActionTransferNone,
11
- parseInternalTransactionToActionTransferNone,
12
- parseTransactionValueToActionTransferNone,
13
- } from '../parsers/transfer'
14
7
  import type { AnalyzeParameters, AnalyzeReturnType } from '../types'
8
+ import { createTransfersByTransaction } from '../utils/createTransfersByTransaction'
15
9
 
16
10
  export const analyzeTransfer = <Price extends CryptoCurrencyPrice | undefined>({
17
11
  chain,
@@ -54,113 +48,14 @@ const generateNormalActions = <Price extends CryptoCurrencyPrice | undefined>(
54
48
  chain: Chain,
55
49
  transaction: TransactionDecoded<Price>,
56
50
  ): NormalActionTransfer[] => {
57
- const {
58
- to,
59
- value,
60
- block,
61
- internalTransactions,
62
- erc20Transfers,
63
- erc721Transfers,
64
- erc1155Transfers,
65
- app,
66
- } = transaction
67
- const mut_actions: NormalActionTransfer[] = []
68
- if (value > 0 && to !== null) {
69
- mut_actions.push({
70
- type: 'NormalAction',
71
- action: 'transfer',
72
- evidence: 'none',
73
- timestamp: Number(block.timestamp) * 1000,
74
- comment: undefined,
75
- app,
76
- transfers: [
77
- parseTransactionValueToActionTransferNone({
78
- chain,
79
- transaction,
80
- }),
81
- ],
82
- })
83
- }
84
- for (const internalTx of internalTransactions.filter(
85
- ({ value }) => value > 0,
86
- )) {
87
- if (internalTx.to === undefined) {
88
- continue
89
- }
90
-
91
- mut_actions.push({
92
- type: 'NormalAction',
93
- action: 'transfer',
94
- evidence: 'none',
95
- timestamp: Number(block.timestamp) * 1000,
96
- comment: undefined,
97
- app,
98
- transfers: [
99
- parseInternalTransactionToActionTransferNone({
100
- chain,
101
- internalTransaction: internalTx,
102
- }),
103
- ],
104
- })
105
- }
106
- for (const transfer of [
107
- ...erc20Transfers,
108
- ...erc721Transfers,
109
- ...erc1155Transfers,
110
- ].sort((a, b) => a.logIndex - b.logIndex)) {
111
- switch (transfer.type) {
112
- case 'Erc20Transfer': {
113
- mut_actions.push({
114
- type: 'NormalAction',
115
- action: 'transfer',
116
- evidence: 'none',
117
- timestamp: Number(block.timestamp) * 1000,
118
- comment: undefined,
119
- app,
120
- transfers: [
121
- parseErc20TransferToActionTransferNone({
122
- chainId: chain.id,
123
- transfer,
124
- }),
125
- ],
126
- })
127
- break
128
- }
129
- case 'Erc721Transfer': {
130
- mut_actions.push({
131
- type: 'NormalAction',
132
- action: 'transfer',
133
- evidence: 'none',
134
- timestamp: Number(block.timestamp) * 1000,
135
- comment: undefined,
136
- app,
137
- transfers: [
138
- parseErc721TransferToActionTransferNone({
139
- chainId: chain.id,
140
- transfer,
141
- }),
142
- ],
143
- })
144
- break
145
- }
146
- case 'Erc1155Transfer': {
147
- mut_actions.push({
148
- type: 'NormalAction',
149
- action: 'transfer',
150
- evidence: 'none',
151
- timestamp: Number(block.timestamp) * 1000,
152
- comment: undefined,
153
- app,
154
- transfers: [
155
- parseErc1155TransferToActionTransferNone({
156
- chainId: chain.id,
157
- transfer,
158
- }),
159
- ],
160
- })
161
- break
162
- }
163
- }
164
- }
165
- return mut_actions
51
+ const transfers = createTransfersByTransaction(chain, transaction)
52
+ return transfers.map((transfer) => ({
53
+ type: 'NormalAction',
54
+ action: 'transfer',
55
+ evidence: 'none',
56
+ timestamp: Number(transaction.block.timestamp) * 1000,
57
+ comment: undefined,
58
+ app: transaction.app,
59
+ transfers: [transfer],
60
+ }))
166
61
  }
@@ -0,0 +1,89 @@
1
+ import type { CryptoCurrencyPrice, Transfer } from '@0xtorch/core'
2
+ import type { Chain } from '../../chains'
3
+ import type { TransactionDecoded } from '../../types'
4
+ import {
5
+ parseErc1155TransferToActionTransferNone,
6
+ parseErc20TransferToActionTransferNone,
7
+ parseErc721TransferToActionTransferNone,
8
+ parseInternalTransactionToActionTransferNone,
9
+ parseTransactionValueToActionTransferNone,
10
+ } from '../parsers/transfer'
11
+
12
+ export const createTransfersByTransaction = <
13
+ Price extends CryptoCurrencyPrice | undefined,
14
+ >(
15
+ chain: Chain,
16
+ transaction: TransactionDecoded<Price>,
17
+ ): readonly Transfer[] => {
18
+ const {
19
+ to,
20
+ value,
21
+ internalTransactions,
22
+ erc20Transfers,
23
+ erc721Transfers,
24
+ erc1155Transfers,
25
+ } = transaction
26
+
27
+ const mut_transfers: Transfer[] = []
28
+
29
+ // value
30
+ if (value > 0 && to !== null) {
31
+ mut_transfers.push(
32
+ parseTransactionValueToActionTransferNone({ chain, transaction }),
33
+ )
34
+ }
35
+
36
+ // internal transaction
37
+ for (const internalTransaction of internalTransactions.filter(
38
+ ({ value }) => value > 0,
39
+ )) {
40
+ if (internalTransaction.to === undefined) {
41
+ continue
42
+ }
43
+ mut_transfers.push(
44
+ parseInternalTransactionToActionTransferNone({
45
+ chain,
46
+ internalTransaction,
47
+ }),
48
+ )
49
+ }
50
+
51
+ // ERC20,721,1155 transfer
52
+ for (const transfer of [
53
+ ...erc20Transfers,
54
+ ...erc721Transfers,
55
+ ...erc1155Transfers,
56
+ ].sort((a, b) => a.logIndex - b.logIndex)) {
57
+ switch (transfer.type) {
58
+ case 'Erc20Transfer': {
59
+ mut_transfers.push(
60
+ parseErc20TransferToActionTransferNone({
61
+ chainId: chain.id,
62
+ transfer,
63
+ }),
64
+ )
65
+ break
66
+ }
67
+ case 'Erc721Transfer': {
68
+ mut_transfers.push(
69
+ parseErc721TransferToActionTransferNone({
70
+ chainId: chain.id,
71
+ transfer,
72
+ }),
73
+ )
74
+ break
75
+ }
76
+ case 'Erc1155Transfer': {
77
+ mut_transfers.push(
78
+ parseErc1155TransferToActionTransferNone({
79
+ chainId: chain.id,
80
+ transfer,
81
+ }),
82
+ )
83
+ break
84
+ }
85
+ }
86
+ }
87
+
88
+ return mut_transfers
89
+ }
package/index.ts CHANGED
@@ -8,6 +8,7 @@ export {
8
8
  analyzeTransfer,
9
9
  analyzer,
10
10
  createAnalyzeByJsonRule,
11
+ createTransfersByTransaction,
11
12
  evmAnalyzersSchema,
12
13
  } from './analyzer'
13
14
  export type { AnalyzeParameters, AnalyzeReturnType, Analyzer } from './analyzer'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/evm",
3
- "version": "0.0.59",
3
+ "version": "0.0.60",
4
4
  "description": "Cryptorch EVM extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "dependencies": {
40
40
  "@0xtorch/big-decimal": "^0.0.10",
41
- "@0xtorch/core": "^0.0.34",
41
+ "@0xtorch/core": "^0.0.35",
42
42
  "@supercharge/promise-pool": "^3.1.1",
43
43
  "viem": "^2.17.3",
44
44
  "zod": "^3.23.8"