@0xtorch/evm 0.0.95 → 0.0.96
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/logic/analyzeTransaction/decodeTransaction/index.js +9 -1
- package/_cjs/logic/analyzeTransaction/decodeTransaction/index.js.map +1 -1
- package/_esm/logic/analyzeTransaction/decodeTransaction/index.js +11 -1
- package/_esm/logic/analyzeTransaction/decodeTransaction/index.js.map +1 -1
- package/_types/logic/analyzeTransaction/decodeTransaction/index.d.ts.map +1 -1
- package/logic/analyzeTransaction/decodeTransaction/index.ts +18 -2
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ const decodeLog_1 = require("./decodeLog");
|
|
|
6
6
|
const parseToErc20TokenTransfer_1 = require("./parseToErc20TokenTransfer");
|
|
7
7
|
const parseToErc721TokenTransfer_1 = require("./parseToErc721TokenTransfer");
|
|
8
8
|
const parseToErc1155TokenTransfer_1 = require("./parseToErc1155TokenTransfer");
|
|
9
|
+
const zkSyncEraChainId = 324;
|
|
9
10
|
const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAbis, functionAbis, nfts, }) => {
|
|
10
11
|
const fromAddress = addresses.find(({ address }) => address === transaction.from);
|
|
11
12
|
if (fromAddress === undefined) {
|
|
@@ -49,7 +50,6 @@ const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAbis, fun
|
|
|
49
50
|
nfts: nftsMap,
|
|
50
51
|
}));
|
|
51
52
|
const filteredErc20Transfers = [];
|
|
52
|
-
const zkSyncEraChainId = 324;
|
|
53
53
|
if (transaction.chainId === zkSyncEraChainId) {
|
|
54
54
|
const feeAddress = '0x0000000000000000000000000000000000008001';
|
|
55
55
|
let ignoredNativeTransfer = false;
|
|
@@ -70,8 +70,16 @@ const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAbis, fun
|
|
|
70
70
|
else {
|
|
71
71
|
filteredErc20Transfers.push(...erc20Transfers);
|
|
72
72
|
}
|
|
73
|
+
let filteredInternalTransactions;
|
|
74
|
+
if (transaction.chainId === zkSyncEraChainId) {
|
|
75
|
+
filteredInternalTransactions = [];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
filteredInternalTransactions = transaction.internalTransactions;
|
|
79
|
+
}
|
|
73
80
|
return {
|
|
74
81
|
...transaction,
|
|
82
|
+
internalTransactions: filteredInternalTransactions,
|
|
75
83
|
erc20Transfers: filteredErc20Transfers,
|
|
76
84
|
erc721Transfers,
|
|
77
85
|
erc1155Transfers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { decodeLog } from './decodeLog';
|
|
|
3
3
|
import { parseToErc20TokenTransfer } from './parseToErc20TokenTransfer';
|
|
4
4
|
import { parseToErc721TokenTransfer } from './parseToErc721TokenTransfer';
|
|
5
5
|
import { parseToErc1155TokenTransfer } from './parseToErc1155TokenTransfer';
|
|
6
|
+
const zkSyncEraChainId = 324;
|
|
6
7
|
export const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAbis, functionAbis, nfts, }) => {
|
|
7
8
|
// parse fetched data
|
|
8
9
|
const fromAddress = addresses.find(({ address }) => address === transaction.from);
|
|
@@ -51,7 +52,6 @@ export const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAb
|
|
|
51
52
|
}));
|
|
52
53
|
// chain 毎固有の条件に応じて ERC20 transfer をフィルタリング
|
|
53
54
|
const filteredErc20Transfers = [];
|
|
54
|
-
const zkSyncEraChainId = 324;
|
|
55
55
|
// zkSync でのトランザクションの場合、fee 関連の transfer を除外・native transfer と同様の transfer を除外
|
|
56
56
|
if (transaction.chainId === zkSyncEraChainId) {
|
|
57
57
|
const feeAddress = '0x0000000000000000000000000000000000008001';
|
|
@@ -73,9 +73,19 @@ export const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAb
|
|
|
73
73
|
else {
|
|
74
74
|
filteredErc20Transfers.push(...erc20Transfers);
|
|
75
75
|
}
|
|
76
|
+
// chain 毎固有の条件に応じて internal transaction をフィルタリング
|
|
77
|
+
let filteredInternalTransactions;
|
|
78
|
+
if (transaction.chainId === zkSyncEraChainId) {
|
|
79
|
+
// zkSync の場合 internal transaction は除外する
|
|
80
|
+
filteredInternalTransactions = [];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
filteredInternalTransactions = transaction.internalTransactions;
|
|
84
|
+
}
|
|
76
85
|
// データを統合して TransactionDecoded に変形
|
|
77
86
|
return {
|
|
78
87
|
...transaction,
|
|
88
|
+
internalTransactions: filteredInternalTransactions,
|
|
79
89
|
erc20Transfers: filteredErc20Transfers,
|
|
80
90
|
erc721Transfers,
|
|
81
91
|
erc1155Transfers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EACV,UAAU,EAGV,QAAQ,EACT,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AASzE,KAAK,2BAA2B,GAAG;IACjC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,SAAS,EAAE,SAAS,UAAU,EAAE,CAAA;IAChC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAA;IAClC,SAAS,EAAE,SAAS;QAClB,SAAS,EAAE,QAAQ,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,GAAG,EAAE,MAAM,CAAA;KACZ,EAAE,CAAA;IACH,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,IAAI,EAAE,SAAS,GAAG,EAAE,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,iBAAiB,4EAO3B,2BAA2B,KAAG,kBA8GhC,CAAA"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Nft } from '@0xtorch/core'
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
Erc20Token,
|
|
4
|
+
Erc20TokenTransfer,
|
|
5
|
+
InternalTransaction,
|
|
6
|
+
LowerHex,
|
|
7
|
+
} from '../../../types'
|
|
3
8
|
import type { EvmAddress } from '../../../types/address'
|
|
4
9
|
import type { TransactionDecoded } from '../../../types/transactionDecoded'
|
|
5
10
|
import type { TransactionDetail } from '../../../types/transactionDetail'
|
|
@@ -9,6 +14,8 @@ import { parseToErc20TokenTransfer } from './parseToErc20TokenTransfer'
|
|
|
9
14
|
import { parseToErc721TokenTransfer } from './parseToErc721TokenTransfer'
|
|
10
15
|
import { parseToErc1155TokenTransfer } from './parseToErc1155TokenTransfer'
|
|
11
16
|
|
|
17
|
+
const zkSyncEraChainId = 324
|
|
18
|
+
|
|
12
19
|
type DecodeTransactionParameters = {
|
|
13
20
|
transaction: TransactionDetail
|
|
14
21
|
addresses: readonly EvmAddress[]
|
|
@@ -95,7 +102,6 @@ export const decodeTransaction = ({
|
|
|
95
102
|
|
|
96
103
|
// chain 毎固有の条件に応じて ERC20 transfer をフィルタリング
|
|
97
104
|
const filteredErc20Transfers: Erc20TokenTransfer[] = []
|
|
98
|
-
const zkSyncEraChainId = 324
|
|
99
105
|
// zkSync でのトランザクションの場合、fee 関連の transfer を除外・native transfer と同様の transfer を除外
|
|
100
106
|
if (transaction.chainId === zkSyncEraChainId) {
|
|
101
107
|
const feeAddress = '0x0000000000000000000000000000000000008001'
|
|
@@ -119,9 +125,19 @@ export const decodeTransaction = ({
|
|
|
119
125
|
filteredErc20Transfers.push(...erc20Transfers)
|
|
120
126
|
}
|
|
121
127
|
|
|
128
|
+
// chain 毎固有の条件に応じて internal transaction をフィルタリング
|
|
129
|
+
let filteredInternalTransactions: InternalTransaction[]
|
|
130
|
+
if (transaction.chainId === zkSyncEraChainId) {
|
|
131
|
+
// zkSync の場合 internal transaction は除外する
|
|
132
|
+
filteredInternalTransactions = []
|
|
133
|
+
} else {
|
|
134
|
+
filteredInternalTransactions = transaction.internalTransactions
|
|
135
|
+
}
|
|
136
|
+
|
|
122
137
|
// データを統合して TransactionDecoded に変形
|
|
123
138
|
return {
|
|
124
139
|
...transaction,
|
|
140
|
+
internalTransactions: filteredInternalTransactions,
|
|
125
141
|
erc20Transfers: filteredErc20Transfers,
|
|
126
142
|
erc721Transfers,
|
|
127
143
|
erc1155Transfers,
|