@0xtorch/evm 0.0.94 → 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.
@@ -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) {
@@ -48,9 +49,38 @@ const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAbis, fun
48
49
  transfer,
49
50
  nfts: nftsMap,
50
51
  }));
52
+ const filteredErc20Transfers = [];
53
+ if (transaction.chainId === zkSyncEraChainId) {
54
+ const feeAddress = '0x0000000000000000000000000000000000008001';
55
+ let ignoredNativeTransfer = false;
56
+ for (const transfer of erc20Transfers) {
57
+ if (transfer.from === feeAddress || transfer.to === feeAddress) {
58
+ continue;
59
+ }
60
+ if (!ignoredNativeTransfer &&
61
+ transfer.from === transaction.from &&
62
+ transfer.to === transaction.to &&
63
+ transfer.value === transaction.value) {
64
+ ignoredNativeTransfer = true;
65
+ continue;
66
+ }
67
+ filteredErc20Transfers.push(transfer);
68
+ }
69
+ }
70
+ else {
71
+ filteredErc20Transfers.push(...erc20Transfers);
72
+ }
73
+ let filteredInternalTransactions;
74
+ if (transaction.chainId === zkSyncEraChainId) {
75
+ filteredInternalTransactions = [];
76
+ }
77
+ else {
78
+ filteredInternalTransactions = transaction.internalTransactions;
79
+ }
51
80
  return {
52
81
  ...transaction,
53
- erc20Transfers,
82
+ internalTransactions: filteredInternalTransactions,
83
+ erc20Transfers: filteredErc20Transfers,
54
84
  erc721Transfers,
55
85
  erc1155Transfers,
56
86
  from: fromAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"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"}
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);
@@ -49,10 +50,43 @@ export const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAb
49
50
  transfer,
50
51
  nfts: nftsMap,
51
52
  }));
53
+ // chain 毎固有の条件に応じて ERC20 transfer をフィルタリング
54
+ const filteredErc20Transfers = [];
55
+ // zkSync でのトランザクションの場合、fee 関連の transfer を除外・native transfer と同様の transfer を除外
56
+ if (transaction.chainId === zkSyncEraChainId) {
57
+ const feeAddress = '0x0000000000000000000000000000000000008001';
58
+ let ignoredNativeTransfer = false;
59
+ for (const transfer of erc20Transfers) {
60
+ if (transfer.from === feeAddress || transfer.to === feeAddress) {
61
+ continue;
62
+ }
63
+ if (!ignoredNativeTransfer &&
64
+ transfer.from === transaction.from &&
65
+ transfer.to === transaction.to &&
66
+ transfer.value === transaction.value) {
67
+ ignoredNativeTransfer = true;
68
+ continue;
69
+ }
70
+ filteredErc20Transfers.push(transfer);
71
+ }
72
+ }
73
+ else {
74
+ filteredErc20Transfers.push(...erc20Transfers);
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
+ }
52
85
  // データを統合して TransactionDecoded に変形
53
86
  return {
54
87
  ...transaction,
55
- erc20Transfers,
88
+ internalTransactions: filteredInternalTransactions,
89
+ erc20Transfers: filteredErc20Transfers,
56
90
  erc721Transfers,
57
91
  erc1155Transfers,
58
92
  from: fromAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../logic/analyzeTransaction/decodeTransaction/index.ts"],"names":[],"mappings":"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"}
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,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1D,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;AAOzE,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,kBA2EhC,CAAA"}
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 { Erc20Token, LowerHex } from '../../../types'
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[]
@@ -93,10 +100,45 @@ export const decodeTransaction = ({
93
100
  }),
94
101
  )
95
102
 
103
+ // chain 毎固有の条件に応じて ERC20 transfer をフィルタリング
104
+ const filteredErc20Transfers: Erc20TokenTransfer[] = []
105
+ // zkSync でのトランザクションの場合、fee 関連の transfer を除外・native transfer と同様の transfer を除外
106
+ if (transaction.chainId === zkSyncEraChainId) {
107
+ const feeAddress = '0x0000000000000000000000000000000000008001'
108
+ let ignoredNativeTransfer = false
109
+ for (const transfer of erc20Transfers) {
110
+ if (transfer.from === feeAddress || transfer.to === feeAddress) {
111
+ continue
112
+ }
113
+ if (
114
+ !ignoredNativeTransfer &&
115
+ transfer.from === transaction.from &&
116
+ transfer.to === transaction.to &&
117
+ transfer.value === transaction.value
118
+ ) {
119
+ ignoredNativeTransfer = true
120
+ continue
121
+ }
122
+ filteredErc20Transfers.push(transfer)
123
+ }
124
+ } else {
125
+ filteredErc20Transfers.push(...erc20Transfers)
126
+ }
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
+
96
137
  // データを統合して TransactionDecoded に変形
97
138
  return {
98
139
  ...transaction,
99
- erc20Transfers,
140
+ internalTransactions: filteredInternalTransactions,
141
+ erc20Transfers: filteredErc20Transfers,
100
142
  erc721Transfers,
101
143
  erc1155Transfers,
102
144
  from: fromAddress,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/evm",
3
- "version": "0.0.94",
3
+ "version": "0.0.96",
4
4
  "description": "Cryptorch EVM extension",
5
5
  "keywords": [
6
6
  "cryptorch",