@metamask/transaction-controller 8.0.0 → 9.0.0
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/CHANGELOG.md +44 -1
- package/dist/EtherscanRemoteTransactionSource.d.ts +15 -0
- package/dist/EtherscanRemoteTransactionSource.d.ts.map +1 -0
- package/dist/EtherscanRemoteTransactionSource.js +99 -0
- package/dist/EtherscanRemoteTransactionSource.js.map +1 -0
- package/dist/IncomingTransactionHelper.d.ts +24 -0
- package/dist/IncomingTransactionHelper.d.ts.map +1 -0
- package/dist/IncomingTransactionHelper.js +188 -0
- package/dist/IncomingTransactionHelper.js.map +1 -0
- package/dist/TransactionController.d.ts +58 -232
- package/dist/TransactionController.d.ts.map +1 -1
- package/dist/TransactionController.js +198 -311
- package/dist/TransactionController.js.map +1 -1
- package/dist/constants.d.ts +119 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +124 -0
- package/dist/constants.js.map +1 -0
- package/dist/etherscan.d.ts +65 -0
- package/dist/etherscan.d.ts.map +1 -0
- package/dist/etherscan.js +116 -0
- package/dist/etherscan.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +265 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +29 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +13 -23
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +20 -77
- package/dist/utils.js.map +1 -1
- package/package.json +5 -6
- package/dist/mocks/txsMock.d.ts +0 -64
- package/dist/mocks/txsMock.d.ts.map +0 -1
- package/dist/mocks/txsMock.js +0 -516
- package/dist/mocks/txsMock.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Hardfork
|
|
2
|
+
import { Hardfork } from '@ethereumjs/common';
|
|
3
3
|
import type { TypedTransaction } from '@ethereumjs/tx';
|
|
4
4
|
import type { AddApprovalRequest } from '@metamask/approval-controller';
|
|
5
5
|
import type { BaseConfig, BaseState, RestrictedControllerMessenger } from '@metamask/base-controller';
|
|
6
6
|
import { BaseController } from '@metamask/base-controller';
|
|
7
7
|
import type { BlockTracker, NetworkState, Provider } from '@metamask/network-controller';
|
|
8
|
-
import type { Hex } from '@metamask/utils';
|
|
9
8
|
import { EventEmitter } from 'events';
|
|
9
|
+
import type { Transaction, TransactionMeta, WalletDevice } from './types';
|
|
10
10
|
export declare const HARDFORK = Hardfork.London;
|
|
11
11
|
/**
|
|
12
12
|
* @type Result
|
|
@@ -26,35 +26,6 @@ export interface FetchAllOptions {
|
|
|
26
26
|
fromBlock?: string;
|
|
27
27
|
etherscanApiKey?: string;
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* @type Transaction
|
|
31
|
-
*
|
|
32
|
-
* Transaction representation
|
|
33
|
-
* @property chainId - Network ID as per EIP-155
|
|
34
|
-
* @property data - Data to pass with this transaction
|
|
35
|
-
* @property from - Address to send this transaction from
|
|
36
|
-
* @property gas - Gas to send with this transaction
|
|
37
|
-
* @property gasPrice - Price of gas with this transaction
|
|
38
|
-
* @property gasUsed - Gas used in the transaction
|
|
39
|
-
* @property nonce - Unique number to prevent replay attacks
|
|
40
|
-
* @property to - Address to send this transaction to
|
|
41
|
-
* @property value - Value associated with this transaction
|
|
42
|
-
*/
|
|
43
|
-
export interface Transaction {
|
|
44
|
-
chainId?: Hex;
|
|
45
|
-
data?: string;
|
|
46
|
-
from: string;
|
|
47
|
-
gas?: string;
|
|
48
|
-
gasPrice?: string;
|
|
49
|
-
gasUsed?: string;
|
|
50
|
-
nonce?: string;
|
|
51
|
-
to?: string;
|
|
52
|
-
value?: string;
|
|
53
|
-
maxFeePerGas?: string;
|
|
54
|
-
maxPriorityFeePerGas?: string;
|
|
55
|
-
estimatedBaseFee?: string;
|
|
56
|
-
estimateGasError?: string;
|
|
57
|
-
}
|
|
58
29
|
export interface GasPriceValue {
|
|
59
30
|
gasPrice: string;
|
|
60
31
|
}
|
|
@@ -62,115 +33,6 @@ export interface FeeMarketEIP1559Values {
|
|
|
62
33
|
maxFeePerGas: string;
|
|
63
34
|
maxPriorityFeePerGas: string;
|
|
64
35
|
}
|
|
65
|
-
/**
|
|
66
|
-
* The status of the transaction. Each status represents the state of the transaction internally
|
|
67
|
-
* in the wallet. Some of these correspond with the state of the transaction on the network, but
|
|
68
|
-
* some are wallet-specific.
|
|
69
|
-
*/
|
|
70
|
-
export declare enum TransactionStatus {
|
|
71
|
-
approved = "approved",
|
|
72
|
-
cancelled = "cancelled",
|
|
73
|
-
confirmed = "confirmed",
|
|
74
|
-
failed = "failed",
|
|
75
|
-
rejected = "rejected",
|
|
76
|
-
signed = "signed",
|
|
77
|
-
submitted = "submitted",
|
|
78
|
-
unapproved = "unapproved"
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Options for wallet device.
|
|
82
|
-
*/
|
|
83
|
-
export declare enum WalletDevice {
|
|
84
|
-
MM_MOBILE = "metamask_mobile",
|
|
85
|
-
MM_EXTENSION = "metamask_extension",
|
|
86
|
-
OTHER = "other_device"
|
|
87
|
-
}
|
|
88
|
-
declare type TransactionMetaBase = {
|
|
89
|
-
isTransfer?: boolean;
|
|
90
|
-
transferInformation?: {
|
|
91
|
-
symbol: string;
|
|
92
|
-
contractAddress: string;
|
|
93
|
-
decimals: number;
|
|
94
|
-
};
|
|
95
|
-
id: string;
|
|
96
|
-
networkID?: string;
|
|
97
|
-
chainId?: Hex;
|
|
98
|
-
origin?: string;
|
|
99
|
-
rawTransaction?: string;
|
|
100
|
-
time: number;
|
|
101
|
-
toSmartContract?: boolean;
|
|
102
|
-
transaction: Transaction;
|
|
103
|
-
transactionHash?: string;
|
|
104
|
-
blockNumber?: string;
|
|
105
|
-
deviceConfirmedOn?: WalletDevice;
|
|
106
|
-
verifiedOnBlockchain?: boolean;
|
|
107
|
-
};
|
|
108
|
-
/**
|
|
109
|
-
* @type TransactionMeta
|
|
110
|
-
*
|
|
111
|
-
* TransactionMeta representation
|
|
112
|
-
* @property error - Synthesized error information for failed transactions
|
|
113
|
-
* @property id - Generated UUID associated with this transaction
|
|
114
|
-
* @property networkID - Network code as per EIP-155 for this transaction
|
|
115
|
-
* @property origin - Origin this transaction was sent from
|
|
116
|
-
* @property deviceConfirmedOn - string to indicate what device the transaction was confirmed
|
|
117
|
-
* @property rawTransaction - Hex representation of the underlying transaction
|
|
118
|
-
* @property status - String status of this transaction
|
|
119
|
-
* @property time - Timestamp associated with this transaction
|
|
120
|
-
* @property toSmartContract - Whether transaction recipient is a smart contract
|
|
121
|
-
* @property transaction - Underlying Transaction object
|
|
122
|
-
* @property transactionHash - Hash of a successful transaction
|
|
123
|
-
* @property blockNumber - Number of the block where the transaction has been included
|
|
124
|
-
*/
|
|
125
|
-
export declare type TransactionMeta = ({
|
|
126
|
-
status: Exclude<TransactionStatus, TransactionStatus.failed>;
|
|
127
|
-
} & TransactionMetaBase) | ({
|
|
128
|
-
status: TransactionStatus.failed;
|
|
129
|
-
error: Error;
|
|
130
|
-
} & TransactionMetaBase);
|
|
131
|
-
/**
|
|
132
|
-
* @type EtherscanTransactionMeta
|
|
133
|
-
*
|
|
134
|
-
* EtherscanTransactionMeta representation
|
|
135
|
-
* @property blockNumber - Number of the block where the transaction has been included
|
|
136
|
-
* @property timeStamp - Timestamp associated with this transaction
|
|
137
|
-
* @property hash - Hash of a successful transaction
|
|
138
|
-
* @property nonce - Nonce of the transaction
|
|
139
|
-
* @property blockHash - Hash of the block where the transaction has been included
|
|
140
|
-
* @property transactionIndex - Etherscan internal index for this transaction
|
|
141
|
-
* @property from - Address to send this transaction from
|
|
142
|
-
* @property to - Address to send this transaction to
|
|
143
|
-
* @property gas - Gas to send with this transaction
|
|
144
|
-
* @property gasPrice - Price of gas with this transaction
|
|
145
|
-
* @property isError - Synthesized error information for failed transactions
|
|
146
|
-
* @property txreceipt_status - Receipt status for this transaction
|
|
147
|
-
* @property input - input of the transaction
|
|
148
|
-
* @property contractAddress - Address of the contract
|
|
149
|
-
* @property cumulativeGasUsed - Amount of gas used
|
|
150
|
-
* @property confirmations - Number of confirmations
|
|
151
|
-
*/
|
|
152
|
-
export interface EtherscanTransactionMeta {
|
|
153
|
-
blockNumber: string;
|
|
154
|
-
timeStamp: string;
|
|
155
|
-
hash: string;
|
|
156
|
-
nonce: string;
|
|
157
|
-
blockHash: string;
|
|
158
|
-
transactionIndex: string;
|
|
159
|
-
from: string;
|
|
160
|
-
to: string;
|
|
161
|
-
value: string;
|
|
162
|
-
gas: string;
|
|
163
|
-
gasPrice: string;
|
|
164
|
-
cumulativeGasUsed: string;
|
|
165
|
-
gasUsed: string;
|
|
166
|
-
isError: string;
|
|
167
|
-
txreceipt_status: string;
|
|
168
|
-
input: string;
|
|
169
|
-
contractAddress: string;
|
|
170
|
-
confirmations: string;
|
|
171
|
-
tokenDecimal: string;
|
|
172
|
-
tokenSymbol: string;
|
|
173
|
-
}
|
|
174
36
|
/**
|
|
175
37
|
* @type TransactionConfig
|
|
176
38
|
*
|
|
@@ -207,6 +69,9 @@ export interface TransactionState extends BaseState {
|
|
|
207
69
|
methodData: {
|
|
208
70
|
[key: string]: MethodData;
|
|
209
71
|
};
|
|
72
|
+
lastFetchedBlockNumbers: {
|
|
73
|
+
[key: string]: number;
|
|
74
|
+
};
|
|
210
75
|
}
|
|
211
76
|
/**
|
|
212
77
|
* Multiplier used to determine a transaction's increased gas fee during cancellation
|
|
@@ -240,19 +105,9 @@ export declare class TransactionController extends BaseController<TransactionCon
|
|
|
240
105
|
private readonly mutex;
|
|
241
106
|
private readonly getNetworkState;
|
|
242
107
|
private readonly messagingSystem;
|
|
108
|
+
private readonly incomingTransactionHelper;
|
|
243
109
|
private failTransaction;
|
|
244
110
|
private registryLookup;
|
|
245
|
-
/**
|
|
246
|
-
* Normalizes the transaction information from etherscan
|
|
247
|
-
* to be compatible with the TransactionMeta interface.
|
|
248
|
-
*
|
|
249
|
-
* @param txMeta - The transaction.
|
|
250
|
-
* @param currentNetworkID - The current network ID.
|
|
251
|
-
* @param currentChainId - The current chain ID.
|
|
252
|
-
* @returns The normalized transaction.
|
|
253
|
-
*/
|
|
254
|
-
private normalizeTx;
|
|
255
|
-
private readonly normalizeTokenTx;
|
|
256
111
|
/**
|
|
257
112
|
* EventEmitter instance used to listen to specific transactional events
|
|
258
113
|
*/
|
|
@@ -269,20 +124,33 @@ export declare class TransactionController extends BaseController<TransactionCon
|
|
|
269
124
|
* Creates a TransactionController instance.
|
|
270
125
|
*
|
|
271
126
|
* @param options - The controller options.
|
|
127
|
+
* @param options.blockTracker - The block tracker used to poll for new blocks data.
|
|
272
128
|
* @param options.getNetworkState - Gets the state of the network controller.
|
|
129
|
+
* @param options.getSelectedAddress - Gets the address of the currently selected account.
|
|
130
|
+
* @param options.incomingTransactions - Configuration options for incoming transaction support.
|
|
131
|
+
* @param options.incomingTransactions.apiKey - An optional API key to use when fetching remote transaction data.
|
|
132
|
+
* @param options.incomingTransactions.includeTokenTransfers - Whether or not to include ERC20 token transfers.
|
|
133
|
+
* @param options.incomingTransactions.isEnabled - Whether or not incoming transaction retrieval is enabled.
|
|
134
|
+
* @param options.incomingTransactions.updateTransactions - Whether or not to update local transactions using remote transaction data.
|
|
135
|
+
* @param options.messenger - The controller messenger.
|
|
273
136
|
* @param options.onNetworkStateChange - Allows subscribing to network controller state changes.
|
|
274
137
|
* @param options.provider - The provider used to create the underlying EthQuery instance.
|
|
275
|
-
* @param options.blockTracker - The block tracker used to poll for new blocks data.
|
|
276
|
-
* @param options.messenger - The controller messenger.
|
|
277
138
|
* @param config - Initial options used to configure this controller.
|
|
278
139
|
* @param state - Initial state to set on this controller.
|
|
279
140
|
*/
|
|
280
|
-
constructor({
|
|
141
|
+
constructor({ blockTracker, getNetworkState, getSelectedAddress, incomingTransactions, messenger, onNetworkStateChange, provider, }: {
|
|
142
|
+
blockTracker: BlockTracker;
|
|
281
143
|
getNetworkState: () => NetworkState;
|
|
144
|
+
getSelectedAddress: () => string;
|
|
145
|
+
incomingTransactions: {
|
|
146
|
+
apiKey?: string;
|
|
147
|
+
includeTokenTransfers?: boolean;
|
|
148
|
+
isEnabled?: () => boolean;
|
|
149
|
+
updateTransactions?: boolean;
|
|
150
|
+
};
|
|
151
|
+
messenger: TransactionControllerMessenger;
|
|
282
152
|
onNetworkStateChange: (listener: (state: NetworkState) => void) => void;
|
|
283
153
|
provider: Provider;
|
|
284
|
-
blockTracker: BlockTracker;
|
|
285
|
-
messenger: TransactionControllerMessenger;
|
|
286
154
|
}, config?: Partial<TransactionConfig>, state?: Partial<TransactionState>);
|
|
287
155
|
/**
|
|
288
156
|
* Starts a new polling interval.
|
|
@@ -303,22 +171,24 @@ export declare class TransactionController extends BaseController<TransactionCon
|
|
|
303
171
|
* if not provided. If A `<tx.id>:unapproved` hub event will be emitted once added.
|
|
304
172
|
*
|
|
305
173
|
* @param transaction - The transaction object to add.
|
|
306
|
-
* @param
|
|
307
|
-
* @param deviceConfirmedOn - An enum to indicate what device
|
|
174
|
+
* @param opts - Additional options to control how the transaction is added.
|
|
175
|
+
* @param opts.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
|
|
176
|
+
* @param opts.origin - The origin of the transaction request, such as a dApp hostname.
|
|
177
|
+
* @param opts.requireApproval - Whether the transaction requires approval by the user, defaults to true unless explicitly disabled.
|
|
308
178
|
* @returns Object containing a promise resolving to the transaction hash if approved.
|
|
309
179
|
*/
|
|
310
|
-
addTransaction(transaction: Transaction, origin
|
|
311
|
-
|
|
180
|
+
addTransaction(transaction: Transaction, { deviceConfirmedOn, origin, requireApproval, }?: {
|
|
181
|
+
deviceConfirmedOn?: WalletDevice;
|
|
182
|
+
origin?: string;
|
|
183
|
+
requireApproval?: boolean | undefined;
|
|
184
|
+
}): Promise<Result>;
|
|
185
|
+
startIncomingTransactionPolling(): void;
|
|
186
|
+
stopIncomingTransactionPolling(): void;
|
|
187
|
+
updateIncomingTransactions(): Promise<void>;
|
|
312
188
|
/**
|
|
313
|
-
*
|
|
314
|
-
* specifying which chain, network, hardfork and EIPs to support for
|
|
315
|
-
* a transaction. By referencing this configuration, and analyzing the fields
|
|
316
|
-
* specified in txParams, @ethereumjs/tx is able to determine which EIP-2718
|
|
317
|
-
* transaction type to use.
|
|
318
|
-
*
|
|
319
|
-
* @returns {Common} common configuration object
|
|
189
|
+
* Creates approvals for all unapproved transactions persisted.
|
|
320
190
|
*/
|
|
321
|
-
|
|
191
|
+
initApprovals(): void;
|
|
322
192
|
/**
|
|
323
193
|
* Attempts to cancel a transaction based on its ID by setting its status to "rejected"
|
|
324
194
|
* and emitting a `<tx.id>:finished` hub event.
|
|
@@ -365,18 +235,12 @@ export declare class TransactionController extends BaseController<TransactionCon
|
|
|
365
235
|
*
|
|
366
236
|
* @param ignoreNetwork - Determines whether to wipe all transactions, or just those on the
|
|
367
237
|
* current network. If `true`, all transactions are wiped.
|
|
238
|
+
* @param address - If specified, only transactions originating from this address will be
|
|
239
|
+
* wiped on current network.
|
|
368
240
|
*/
|
|
369
|
-
wipeTransactions(ignoreNetwork?: boolean): void;
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
* returned, but the `fromBlock` option can be given to filter just for transactions from a
|
|
373
|
-
* specific block onward.
|
|
374
|
-
*
|
|
375
|
-
* @param address - The address to fetch the transactions for.
|
|
376
|
-
* @param opt - Object containing optional data, fromBlock and Etherscan API key.
|
|
377
|
-
* @returns The block number of the latest incoming transaction.
|
|
378
|
-
*/
|
|
379
|
-
fetchAll(address: string, opt?: FetchAllOptions): Promise<string | void>;
|
|
241
|
+
wipeTransactions(ignoreNetwork?: boolean, address?: string): void;
|
|
242
|
+
startIncomingTransactionProcessing(): void;
|
|
243
|
+
stopIncomingTransactionProcessing(): void;
|
|
380
244
|
private processApproval;
|
|
381
245
|
/**
|
|
382
246
|
* Approves a transaction and updates it's status in state. If this is not a
|
|
@@ -440,63 +304,25 @@ export declare class TransactionController extends BaseController<TransactionCon
|
|
|
440
304
|
* @returns Whether the transaction has failed.
|
|
441
305
|
*/
|
|
442
306
|
private checkTxReceiptStatusIsFailed;
|
|
443
|
-
/**
|
|
444
|
-
* Method to verify the state of transactions using Etherscan as a source of truth.
|
|
445
|
-
*
|
|
446
|
-
* @param remoteTxs - Transactions to reconcile that are from a remote source.
|
|
447
|
-
* @param localTxs - Transactions to reconcile that are local.
|
|
448
|
-
* @returns A tuple containing a boolean indicating whether or not an update was required, and the updated transaction.
|
|
449
|
-
*/
|
|
450
|
-
private etherscanTransactionStateReconciler;
|
|
451
|
-
/**
|
|
452
|
-
* Get all transactions that are in the remote transactions array
|
|
453
|
-
* but not in the local transactions array.
|
|
454
|
-
*
|
|
455
|
-
* @param remoteTxs - Array of transactions from remote source.
|
|
456
|
-
* @param localTxs - Array of transactions stored locally.
|
|
457
|
-
* @returns The new transactions.
|
|
458
|
-
*/
|
|
459
|
-
private getNewTransactions;
|
|
460
|
-
/**
|
|
461
|
-
* Get all the transactions that are locally outdated with respect
|
|
462
|
-
* to a remote source (etherscan or blockchain). The returned array
|
|
463
|
-
* contains the transactions with the updated data.
|
|
464
|
-
*
|
|
465
|
-
* @param remoteTxs - Array of transactions from remote source.
|
|
466
|
-
* @param localTxs - Array of transactions stored locally.
|
|
467
|
-
* @returns The updated transactions.
|
|
468
|
-
*/
|
|
469
|
-
private getUpdatedTransactions;
|
|
470
|
-
/**
|
|
471
|
-
* Verifies if a local transaction is outdated with respect to the remote transaction.
|
|
472
|
-
*
|
|
473
|
-
* @param remoteTx - The remote transaction from Etherscan.
|
|
474
|
-
* @param localTx - The local transaction.
|
|
475
|
-
* @returns Whether the transaction is outdated.
|
|
476
|
-
*/
|
|
477
|
-
private isTransactionOutdated;
|
|
478
|
-
/**
|
|
479
|
-
* Verifies if the status of a local transaction is outdated with respect to the remote transaction.
|
|
480
|
-
*
|
|
481
|
-
* @param remoteTxHash - Remote transaction hash.
|
|
482
|
-
* @param localTxHash - Local transaction hash.
|
|
483
|
-
* @param remoteTxStatus - Remote transaction status.
|
|
484
|
-
* @param localTxStatus - Local transaction status.
|
|
485
|
-
* @returns Whether the status is outdated.
|
|
486
|
-
*/
|
|
487
|
-
private isStatusOutdated;
|
|
488
|
-
/**
|
|
489
|
-
* Verifies if the gas data of a local transaction is outdated with respect to the remote transaction.
|
|
490
|
-
*
|
|
491
|
-
* @param remoteGasUsed - Remote gas used in the transaction.
|
|
492
|
-
* @param localGasUsed - Local gas used in the transaction.
|
|
493
|
-
* @returns Whether the gas data is outdated.
|
|
494
|
-
*/
|
|
495
|
-
private isGasDataOutdated;
|
|
496
307
|
private requestApproval;
|
|
497
308
|
private getTransaction;
|
|
498
309
|
private getApprovalId;
|
|
499
310
|
private isTransactionCompleted;
|
|
311
|
+
private getChainAndNetworkId;
|
|
312
|
+
private prepareUnsignedEthTx;
|
|
313
|
+
/**
|
|
314
|
+
* `@ethereumjs/tx` uses `@ethereumjs/common` as a configuration tool for
|
|
315
|
+
* specifying which chain, network, hardfork and EIPs to support for
|
|
316
|
+
* a transaction. By referencing this configuration, and analyzing the fields
|
|
317
|
+
* specified in txParams, @ethereumjs/tx is able to determine which EIP-2718
|
|
318
|
+
* transaction type to use.
|
|
319
|
+
*
|
|
320
|
+
* @returns common configuration object
|
|
321
|
+
*/
|
|
322
|
+
private getCommonConfiguration;
|
|
323
|
+
private onIncomingTransactions;
|
|
324
|
+
private onUpdatedLastFetchedBlockNumbers;
|
|
325
|
+
private generateDappSuggestedGasFees;
|
|
500
326
|
}
|
|
501
327
|
export default TransactionController;
|
|
502
328
|
//# sourceMappingURL=TransactionController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionController.d.ts","sourceRoot":"","sources":["../src/TransactionController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"TransactionController.d.ts","sourceRoot":"","sources":["../src/TransactionController.ts"],"names":[],"mappings":"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"}
|