@0xtorch/evm 0.0.94 → 0.0.95
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 +23 -1
- package/_cjs/logic/analyzeTransaction/decodeTransaction/index.js.map +1 -1
- package/_esm/logic/analyzeTransaction/decodeTransaction/index.js +25 -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 +28 -2
- package/package.json +1 -1
|
@@ -48,9 +48,31 @@ const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAbis, fun
|
|
|
48
48
|
transfer,
|
|
49
49
|
nfts: nftsMap,
|
|
50
50
|
}));
|
|
51
|
+
const filteredErc20Transfers = [];
|
|
52
|
+
const zkSyncEraChainId = 324;
|
|
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
|
+
}
|
|
51
73
|
return {
|
|
52
74
|
...transaction,
|
|
53
|
-
erc20Transfers,
|
|
75
|
+
erc20Transfers: filteredErc20Transfers,
|
|
54
76
|
erc721Transfers,
|
|
55
77
|
erc1155Transfers,
|
|
56
78
|
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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"}
|
|
@@ -49,10 +49,34 @@ export const decodeTransaction = ({ transaction, addresses, erc20Tokens, eventAb
|
|
|
49
49
|
transfer,
|
|
50
50
|
nfts: nftsMap,
|
|
51
51
|
}));
|
|
52
|
+
// chain 毎固有の条件に応じて ERC20 transfer をフィルタリング
|
|
53
|
+
const filteredErc20Transfers = [];
|
|
54
|
+
const zkSyncEraChainId = 324;
|
|
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
|
+
}
|
|
52
76
|
// データを統合して TransactionDecoded に変形
|
|
53
77
|
return {
|
|
54
78
|
...transaction,
|
|
55
|
-
erc20Transfers,
|
|
79
|
+
erc20Transfers: filteredErc20Transfers,
|
|
56
80
|
erc721Transfers,
|
|
57
81
|
erc1155Transfers,
|
|
58
82
|
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,
|
|
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,EAAsB,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9E,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,kBAqGhC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Nft } from '@0xtorch/core'
|
|
2
|
-
import type { Erc20Token, LowerHex } from '../../../types'
|
|
2
|
+
import type { Erc20Token, Erc20TokenTransfer, LowerHex } from '../../../types'
|
|
3
3
|
import type { EvmAddress } from '../../../types/address'
|
|
4
4
|
import type { TransactionDecoded } from '../../../types/transactionDecoded'
|
|
5
5
|
import type { TransactionDetail } from '../../../types/transactionDetail'
|
|
@@ -93,10 +93,36 @@ export const decodeTransaction = ({
|
|
|
93
93
|
}),
|
|
94
94
|
)
|
|
95
95
|
|
|
96
|
+
// chain 毎固有の条件に応じて ERC20 transfer をフィルタリング
|
|
97
|
+
const filteredErc20Transfers: Erc20TokenTransfer[] = []
|
|
98
|
+
const zkSyncEraChainId = 324
|
|
99
|
+
// zkSync でのトランザクションの場合、fee 関連の transfer を除外・native transfer と同様の transfer を除外
|
|
100
|
+
if (transaction.chainId === zkSyncEraChainId) {
|
|
101
|
+
const feeAddress = '0x0000000000000000000000000000000000008001'
|
|
102
|
+
let ignoredNativeTransfer = false
|
|
103
|
+
for (const transfer of erc20Transfers) {
|
|
104
|
+
if (transfer.from === feeAddress || transfer.to === feeAddress) {
|
|
105
|
+
continue
|
|
106
|
+
}
|
|
107
|
+
if (
|
|
108
|
+
!ignoredNativeTransfer &&
|
|
109
|
+
transfer.from === transaction.from &&
|
|
110
|
+
transfer.to === transaction.to &&
|
|
111
|
+
transfer.value === transaction.value
|
|
112
|
+
) {
|
|
113
|
+
ignoredNativeTransfer = true
|
|
114
|
+
continue
|
|
115
|
+
}
|
|
116
|
+
filteredErc20Transfers.push(transfer)
|
|
117
|
+
}
|
|
118
|
+
} else {
|
|
119
|
+
filteredErc20Transfers.push(...erc20Transfers)
|
|
120
|
+
}
|
|
121
|
+
|
|
96
122
|
// データを統合して TransactionDecoded に変形
|
|
97
123
|
return {
|
|
98
124
|
...transaction,
|
|
99
|
-
erc20Transfers,
|
|
125
|
+
erc20Transfers: filteredErc20Transfers,
|
|
100
126
|
erc721Transfers,
|
|
101
127
|
erc1155Transfers,
|
|
102
128
|
from: fromAddress,
|