@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.
- package/_cjs/analyzer/analyze.js +23 -7
- package/_cjs/analyzer/analyze.js.map +1 -1
- package/_cjs/analyzer/index.js +3 -1
- package/_cjs/analyzer/index.js.map +1 -1
- package/_cjs/analyzer/transfer/analyze.js +11 -98
- package/_cjs/analyzer/transfer/analyze.js.map +1 -1
- package/_cjs/analyzer/utils/createTransfersByTransaction.js +52 -0
- package/_cjs/analyzer/utils/createTransfersByTransaction.js.map +1 -0
- package/_cjs/index.js +4 -3
- package/_cjs/index.js.map +1 -1
- package/_esm/analyzer/analyze.js +25 -8
- package/_esm/analyzer/analyze.js.map +1 -1
- package/_esm/analyzer/index.js +1 -0
- package/_esm/analyzer/index.js.map +1 -1
- package/_esm/analyzer/transfer/analyze.js +11 -98
- package/_esm/analyzer/transfer/analyze.js.map +1 -1
- package/_esm/analyzer/utils/createTransfersByTransaction.js +51 -0
- package/_esm/analyzer/utils/createTransfersByTransaction.js.map +1 -0
- package/_esm/index.js +1 -1
- package/_esm/index.js.map +1 -1
- package/_types/analyzer/analyze.d.ts.map +1 -1
- package/_types/analyzer/index.d.ts +1 -0
- package/_types/analyzer/index.d.ts.map +1 -1
- package/_types/analyzer/transfer/analyze.d.ts.map +1 -1
- package/_types/analyzer/utils/createTransfersByTransaction.d.ts +64 -0
- package/_types/analyzer/utils/createTransfersByTransaction.d.ts.map +1 -0
- package/_types/index.d.ts +1 -1
- package/_types/index.d.ts.map +1 -1
- package/analyzer/analyze.ts +32 -8
- package/analyzer/index.ts +1 -0
- package/analyzer/transfer/analyze.ts +11 -116
- package/analyzer/utils/createTransfersByTransaction.ts +89 -0
- package/index.ts +1 -0
- package/package.json +2 -2
package/_cjs/analyzer/analyze.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
30
|
+
];
|
|
31
|
+
for (const [index, analyze] of analyzes.entries()) {
|
|
32
|
+
const result = await analyze(parameters);
|
|
29
33
|
(0, utils_1.checkTimeout)(timeoutTimestamp);
|
|
30
|
-
if (
|
|
31
|
-
|
|
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,
|
|
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"}
|
package/_cjs/analyzer/index.js
CHANGED
|
@@ -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
|
|
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
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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":";;;AACA,wCAAgE;AAGhE,uCAAgD;AAChD,+CAA0D;
|
|
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.
|
|
4
|
-
exports.
|
|
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":";;;;;AAAA,+BAAiE;AAAxD,kGAAA,UAAU,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAE,iGAAA,SAAS,OAAA;AAAE,+FAAA,OAAO,OAAA;AACjD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/_esm/analyzer/analyze.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
30
|
+
];
|
|
31
|
+
for (const [index, analyze] of analyzes.entries()) {
|
|
32
|
+
const result = await analyze(parameters);
|
|
29
33
|
checkTimeout(timeoutTimestamp);
|
|
30
|
-
if (
|
|
31
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../analyzer/analyze.ts"],"names":[],"mappings":"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"}
|
package/_esm/analyzer/index.js
CHANGED
|
@@ -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 {
|
|
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
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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;
|
|
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;
|
|
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":"
|
|
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';
|
package/_types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/analyzer/analyze.ts
CHANGED
|
@@ -4,7 +4,8 @@ import type {
|
|
|
4
4
|
CryptoCurrencyPrice,
|
|
5
5
|
NormalAction,
|
|
6
6
|
} from '@0xtorch/core'
|
|
7
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
48
|
+
]
|
|
49
|
+
for (const [index, analyze] of analyzes.entries()) {
|
|
50
|
+
const result = await analyze(parameters)
|
|
43
51
|
checkTimeout(timeoutTimestamp)
|
|
44
|
-
if (
|
|
45
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xtorch/evm",
|
|
3
|
-
"version": "0.0.
|
|
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.
|
|
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"
|