@metamask-previews/transaction-controller 41.1.0-preview-9cfbf21f → 41.1.0-preview-73fa7bfb
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 +0 -23
- package/dist/TransactionController.cjs +51 -57
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +13 -72
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +13 -72
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +51 -57
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/accounts-api.cjs +3 -48
- package/dist/api/accounts-api.cjs.map +1 -1
- package/dist/api/accounts-api.d.cts +0 -49
- package/dist/api/accounts-api.d.cts.map +1 -1
- package/dist/api/accounts-api.d.mts +0 -49
- package/dist/api/accounts-api.d.mts.map +1 -1
- package/dist/api/accounts-api.mjs +2 -46
- package/dist/api/accounts-api.mjs.map +1 -1
- package/dist/constants.cjs +85 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +84 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +84 -0
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +84 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/helpers/EtherscanRemoteTransactionSource.cjs +158 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.cjs.map +1 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.cts +16 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.cts.map +1 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.mts +16 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.mts.map +1 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.mjs +158 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.mjs.map +1 -0
- package/dist/helpers/IncomingTransactionHelper.cjs +142 -90
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +16 -10
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +16 -10
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +143 -91
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.cjs +70 -23
- package/dist/helpers/MultichainTrackingHelper.cjs.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.d.cts +14 -1
- package/dist/helpers/MultichainTrackingHelper.d.cts.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.d.mts +14 -1
- package/dist/helpers/MultichainTrackingHelper.d.mts.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.mjs +70 -23
- package/dist/helpers/MultichainTrackingHelper.mjs.map +1 -1
- package/dist/index.cjs +2 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +14 -21
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +14 -21
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/etherscan.cjs +116 -0
- package/dist/utils/etherscan.cjs.map +1 -0
- package/dist/utils/etherscan.d.cts +74 -0
- package/dist/utils/etherscan.d.cts.map +1 -0
- package/dist/utils/etherscan.d.mts +74 -0
- package/dist/utils/etherscan.d.mts.map +1 -0
- package/dist/utils/etherscan.mjs +110 -0
- package/dist/utils/etherscan.mjs.map +1 -0
- package/package.json +2 -2
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +0 -183
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +0 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts +0 -12
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +0 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts +0 -12
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +0 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +0 -183
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +0 -1
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const controller_utils_1 = require("@metamask/controller-utils");
|
|
3
|
+
exports.getAccountAddressRelationship = void 0;
|
|
5
4
|
const utils_1 = require("@metamask/utils");
|
|
6
5
|
const errors_1 = require("../errors.cjs");
|
|
7
6
|
const logger_1 = require("../logger.cjs");
|
|
8
|
-
const BASE_URL = `https://accounts.api.cx.metamask.io`;
|
|
9
|
-
const BASE_URL_ACCOUNTS = `${BASE_URL}/v1/accounts/`;
|
|
10
|
-
const CLIENT_HEADER = 'x-metamask-clientproduct';
|
|
11
|
-
const CLIENT_ID = 'metamask-transaction-controller';
|
|
12
7
|
const SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API = [
|
|
13
8
|
1,
|
|
14
9
|
10,
|
|
@@ -19,6 +14,7 @@ const SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API = [
|
|
|
19
14
|
59144,
|
|
20
15
|
534352, // Scroll
|
|
21
16
|
];
|
|
17
|
+
const BASE_URL = `https://accounts.api.cx.metamask.io`;
|
|
22
18
|
const log = (0, utils_1.createModuleLogger)(logger_1.projectLogger, 'accounts-api');
|
|
23
19
|
/**
|
|
24
20
|
* Fetch account address relationship from the accounts API.
|
|
@@ -33,10 +29,7 @@ async function getAccountAddressRelationship(request) {
|
|
|
33
29
|
}
|
|
34
30
|
const url = `${BASE_URL}/v1/networks/${chainId}/accounts/${from}/relationships/${to}`;
|
|
35
31
|
log('Getting account address relationship', { request, url });
|
|
36
|
-
const
|
|
37
|
-
[CLIENT_HEADER]: CLIENT_ID,
|
|
38
|
-
};
|
|
39
|
-
const response = await (0, controller_utils_1.successfulFetch)(url, { headers });
|
|
32
|
+
const response = await fetch(url);
|
|
40
33
|
if (response.status === 204) {
|
|
41
34
|
// The accounts API returns a 204 status code when there are no transactions with empty body
|
|
42
35
|
// imitating a count of 0
|
|
@@ -51,42 +44,4 @@ async function getAccountAddressRelationship(request) {
|
|
|
51
44
|
return responseJson;
|
|
52
45
|
}
|
|
53
46
|
exports.getAccountAddressRelationship = getAccountAddressRelationship;
|
|
54
|
-
/**
|
|
55
|
-
* Fetch account transactions from the accounts API.
|
|
56
|
-
* @param request - The request object.
|
|
57
|
-
* @returns The response object.
|
|
58
|
-
*/
|
|
59
|
-
async function getAccountTransactions(request) {
|
|
60
|
-
const { address, chainIds, cursor, endTimestamp, sortDirection, startTimestamp, } = request;
|
|
61
|
-
let url = `${BASE_URL_ACCOUNTS}${address}/transactions`;
|
|
62
|
-
const params = [];
|
|
63
|
-
if (chainIds) {
|
|
64
|
-
const network = chainIds.join(',');
|
|
65
|
-
params.push(`networks=${network}`);
|
|
66
|
-
}
|
|
67
|
-
if (startTimestamp) {
|
|
68
|
-
params.push(`startTimestamp=${startTimestamp}`);
|
|
69
|
-
}
|
|
70
|
-
if (endTimestamp) {
|
|
71
|
-
params.push(`endTimestamp=${endTimestamp}`);
|
|
72
|
-
}
|
|
73
|
-
if (cursor) {
|
|
74
|
-
params.push(`cursor=${cursor}`);
|
|
75
|
-
}
|
|
76
|
-
if (sortDirection) {
|
|
77
|
-
params.push(`sortDirection=${sortDirection}`);
|
|
78
|
-
}
|
|
79
|
-
if (params.length) {
|
|
80
|
-
url += `?${params.join('&')}`;
|
|
81
|
-
}
|
|
82
|
-
log('Getting account transactions', { request, url });
|
|
83
|
-
const headers = {
|
|
84
|
-
[CLIENT_HEADER]: CLIENT_ID,
|
|
85
|
-
};
|
|
86
|
-
const response = await (0, controller_utils_1.successfulFetch)(url, { headers });
|
|
87
|
-
const responseJson = await response.json();
|
|
88
|
-
log('Retrieved account transactions', responseJson);
|
|
89
|
-
return responseJson;
|
|
90
|
-
}
|
|
91
|
-
exports.getAccountTransactions = getAccountTransactions;
|
|
92
47
|
//# sourceMappingURL=accounts-api.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-api.cjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"accounts-api.cjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AAErD,0CAAsD;AACtD,0CAA0C;AAE1C,MAAM,wCAAwC,GAAG;IAC/C,CAAC;IACD,EAAE;IACF,EAAE;IACF,GAAG;IACH,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM,EAAE,SAAS;CAClB,CAAC;AA4CF,MAAM,QAAQ,GAAG,qCAAqC,CAAC;AAEvD,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,sBAAa,EAAE,cAAc,CAAC,CAAC;AAE9D;;;;GAIG;AACI,KAAK,UAAU,6BAA6B,CACjD,OAA6C;IAE7C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAEtC,IAAI,CAAC,wCAAwC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC/D,GAAG,CAAC,mDAAmD,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,IAAI,kCAAyB,CAAC,sBAAsB,CAAC,CAAC;KAC7D;IAED,MAAM,GAAG,GAAG,GAAG,QAAQ,gBAAgB,OAAO,aAAa,IAAI,kBAAkB,EAAE,EAAE,CAAC;IAEtF,GAAG,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;QAC3B,4FAA4F;QAC5F,yBAAyB;QACzB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrB;IAED,MAAM,YAAY,GAAqC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE7E,GAAG,CAAC,wCAAwC,EAAE,YAAY,CAAC,CAAC;IAE5D,IAAI,YAAY,CAAC,KAAK,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;QAC7C,MAAM,IAAI,kCAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACpD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAhCD,sEAgCC","sourcesContent":["import { createModuleLogger } from '@metamask/utils';\n\nimport { FirstTimeInteractionError } from '../errors';\nimport { projectLogger } from '../logger';\n\nconst SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API = [\n 1, // Ethereum Mainnet\n 10, // Optimism\n 56, // BSC\n 137, // Polygon\n 8453, // Base\n 42161, // Arbitrum\n 59144, // Linea\n 534352, // Scroll\n];\n\nexport type AccountAddressRelationshipResponse = {\n chainId?: number;\n count?: number;\n data?: {\n hash: string;\n timestamp: string;\n chainId: number;\n blockNumber: string;\n blockHash: string;\n gas: number;\n gasUsed: number;\n gasPrice: string;\n effectiveGasPrice: number;\n nonce: number;\n cumulativeGasUsed: number;\n methodId: string;\n value: string;\n to: string;\n from: string;\n };\n txHash?: string;\n};\n\nexport type AccountAddressRelationshipResult =\n AccountAddressRelationshipResponse & {\n error?: {\n code: string;\n message: string;\n };\n };\n\nexport type GetAccountAddressRelationshipRequest = {\n /** Chain ID of account relationship to check. */\n chainId: number;\n\n /** Recipient of the transaction. */\n to: string;\n\n /** Sender of the transaction. */\n from: string;\n};\n\nconst BASE_URL = `https://accounts.api.cx.metamask.io`;\n\nconst log = createModuleLogger(projectLogger, 'accounts-api');\n\n/**\n * Fetch account address relationship from the accounts API.\n * @param request - The request object.\n * @returns The raw response object from the API.\n */\nexport async function getAccountAddressRelationship(\n request: GetAccountAddressRelationshipRequest,\n): Promise<AccountAddressRelationshipResult> {\n const { chainId, from, to } = request;\n\n if (!SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API.includes(chainId)) {\n log('Unsupported chain ID for account relationship API', chainId);\n throw new FirstTimeInteractionError('Unsupported chain ID');\n }\n\n const url = `${BASE_URL}/v1/networks/${chainId}/accounts/${from}/relationships/${to}`;\n\n log('Getting account address relationship', { request, url });\n\n const response = await fetch(url);\n\n if (response.status === 204) {\n // The accounts API returns a 204 status code when there are no transactions with empty body\n // imitating a count of 0\n return { count: 0 };\n }\n\n const responseJson: AccountAddressRelationshipResult = await response.json();\n\n log('Retrieved account address relationship', responseJson);\n\n if (responseJson.error) {\n const { code, message } = responseJson.error;\n throw new FirstTimeInteractionError(message, code);\n }\n\n return responseJson;\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Hex } from "@metamask/utils";
|
|
2
1
|
export type AccountAddressRelationshipResponse = {
|
|
3
2
|
chainId?: number;
|
|
4
3
|
count?: number;
|
|
@@ -35,58 +34,10 @@ export type GetAccountAddressRelationshipRequest = {
|
|
|
35
34
|
/** Sender of the transaction. */
|
|
36
35
|
from: string;
|
|
37
36
|
};
|
|
38
|
-
export type TransactionResponse = {
|
|
39
|
-
hash: Hex;
|
|
40
|
-
timestamp: string;
|
|
41
|
-
chainId: number;
|
|
42
|
-
blockNumber: number;
|
|
43
|
-
blockHash: Hex;
|
|
44
|
-
gas: number;
|
|
45
|
-
gasUsed: number;
|
|
46
|
-
gasPrice: string;
|
|
47
|
-
effectiveGasPrice: string;
|
|
48
|
-
nonce: number;
|
|
49
|
-
cumulativeGasUsed: number;
|
|
50
|
-
methodId: null;
|
|
51
|
-
value: string;
|
|
52
|
-
to: string;
|
|
53
|
-
from: string;
|
|
54
|
-
isError: boolean;
|
|
55
|
-
valueTransfers: {
|
|
56
|
-
contractAddress: string;
|
|
57
|
-
decimal: number;
|
|
58
|
-
symbol: string;
|
|
59
|
-
from: string;
|
|
60
|
-
to: string;
|
|
61
|
-
amount: string;
|
|
62
|
-
}[];
|
|
63
|
-
};
|
|
64
|
-
export type GetAccountTransactionsRequest = {
|
|
65
|
-
address: Hex;
|
|
66
|
-
chainIds?: Hex[];
|
|
67
|
-
cursor?: string;
|
|
68
|
-
endTimestamp?: number;
|
|
69
|
-
sortDirection?: 'ASC' | 'DESC';
|
|
70
|
-
startTimestamp?: number;
|
|
71
|
-
};
|
|
72
|
-
export type GetAccountTransactionsResponse = {
|
|
73
|
-
data: TransactionResponse[];
|
|
74
|
-
pageInfo: {
|
|
75
|
-
count: number;
|
|
76
|
-
hasNextPage: boolean;
|
|
77
|
-
cursor?: string;
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
37
|
/**
|
|
81
38
|
* Fetch account address relationship from the accounts API.
|
|
82
39
|
* @param request - The request object.
|
|
83
40
|
* @returns The raw response object from the API.
|
|
84
41
|
*/
|
|
85
42
|
export declare function getAccountAddressRelationship(request: GetAccountAddressRelationshipRequest): Promise<AccountAddressRelationshipResult>;
|
|
86
|
-
/**
|
|
87
|
-
* Fetch account transactions from the accounts API.
|
|
88
|
-
* @param request - The request object.
|
|
89
|
-
* @returns The response object.
|
|
90
|
-
*/
|
|
91
|
-
export declare function getAccountTransactions(request: GetAccountTransactionsRequest): Promise<GetAccountTransactionsResponse>;
|
|
92
43
|
//# sourceMappingURL=accounts-api.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-api.d.cts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accounts-api.d.cts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAC1C,kCAAkC,GAAG;IACnC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEJ,MAAM,MAAM,oCAAoC,GAAG;IACjD,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IAEX,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAMF;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,gCAAgC,CAAC,CA8B3C"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Hex } from "@metamask/utils";
|
|
2
1
|
export type AccountAddressRelationshipResponse = {
|
|
3
2
|
chainId?: number;
|
|
4
3
|
count?: number;
|
|
@@ -35,58 +34,10 @@ export type GetAccountAddressRelationshipRequest = {
|
|
|
35
34
|
/** Sender of the transaction. */
|
|
36
35
|
from: string;
|
|
37
36
|
};
|
|
38
|
-
export type TransactionResponse = {
|
|
39
|
-
hash: Hex;
|
|
40
|
-
timestamp: string;
|
|
41
|
-
chainId: number;
|
|
42
|
-
blockNumber: number;
|
|
43
|
-
blockHash: Hex;
|
|
44
|
-
gas: number;
|
|
45
|
-
gasUsed: number;
|
|
46
|
-
gasPrice: string;
|
|
47
|
-
effectiveGasPrice: string;
|
|
48
|
-
nonce: number;
|
|
49
|
-
cumulativeGasUsed: number;
|
|
50
|
-
methodId: null;
|
|
51
|
-
value: string;
|
|
52
|
-
to: string;
|
|
53
|
-
from: string;
|
|
54
|
-
isError: boolean;
|
|
55
|
-
valueTransfers: {
|
|
56
|
-
contractAddress: string;
|
|
57
|
-
decimal: number;
|
|
58
|
-
symbol: string;
|
|
59
|
-
from: string;
|
|
60
|
-
to: string;
|
|
61
|
-
amount: string;
|
|
62
|
-
}[];
|
|
63
|
-
};
|
|
64
|
-
export type GetAccountTransactionsRequest = {
|
|
65
|
-
address: Hex;
|
|
66
|
-
chainIds?: Hex[];
|
|
67
|
-
cursor?: string;
|
|
68
|
-
endTimestamp?: number;
|
|
69
|
-
sortDirection?: 'ASC' | 'DESC';
|
|
70
|
-
startTimestamp?: number;
|
|
71
|
-
};
|
|
72
|
-
export type GetAccountTransactionsResponse = {
|
|
73
|
-
data: TransactionResponse[];
|
|
74
|
-
pageInfo: {
|
|
75
|
-
count: number;
|
|
76
|
-
hasNextPage: boolean;
|
|
77
|
-
cursor?: string;
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
37
|
/**
|
|
81
38
|
* Fetch account address relationship from the accounts API.
|
|
82
39
|
* @param request - The request object.
|
|
83
40
|
* @returns The raw response object from the API.
|
|
84
41
|
*/
|
|
85
42
|
export declare function getAccountAddressRelationship(request: GetAccountAddressRelationshipRequest): Promise<AccountAddressRelationshipResult>;
|
|
86
|
-
/**
|
|
87
|
-
* Fetch account transactions from the accounts API.
|
|
88
|
-
* @param request - The request object.
|
|
89
|
-
* @returns The response object.
|
|
90
|
-
*/
|
|
91
|
-
export declare function getAccountTransactions(request: GetAccountTransactionsRequest): Promise<GetAccountTransactionsResponse>;
|
|
92
43
|
//# sourceMappingURL=accounts-api.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-api.d.mts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accounts-api.d.mts","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAC1C,kCAAkC,GAAG;IACnC,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEJ,MAAM,MAAM,oCAAoC,GAAG;IACjD,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAEhB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IAEX,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAMF;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,gCAAgC,CAAC,CA8B3C"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import { successfulFetch } from "@metamask/controller-utils";
|
|
2
1
|
import { createModuleLogger } from "@metamask/utils";
|
|
3
2
|
import { FirstTimeInteractionError } from "../errors.mjs";
|
|
4
3
|
import { projectLogger } from "../logger.mjs";
|
|
5
|
-
const BASE_URL = `https://accounts.api.cx.metamask.io`;
|
|
6
|
-
const BASE_URL_ACCOUNTS = `${BASE_URL}/v1/accounts/`;
|
|
7
|
-
const CLIENT_HEADER = 'x-metamask-clientproduct';
|
|
8
|
-
const CLIENT_ID = 'metamask-transaction-controller';
|
|
9
4
|
const SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API = [
|
|
10
5
|
1,
|
|
11
6
|
10,
|
|
@@ -16,6 +11,7 @@ const SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API = [
|
|
|
16
11
|
59144,
|
|
17
12
|
534352, // Scroll
|
|
18
13
|
];
|
|
14
|
+
const BASE_URL = `https://accounts.api.cx.metamask.io`;
|
|
19
15
|
const log = createModuleLogger(projectLogger, 'accounts-api');
|
|
20
16
|
/**
|
|
21
17
|
* Fetch account address relationship from the accounts API.
|
|
@@ -30,10 +26,7 @@ export async function getAccountAddressRelationship(request) {
|
|
|
30
26
|
}
|
|
31
27
|
const url = `${BASE_URL}/v1/networks/${chainId}/accounts/${from}/relationships/${to}`;
|
|
32
28
|
log('Getting account address relationship', { request, url });
|
|
33
|
-
const
|
|
34
|
-
[CLIENT_HEADER]: CLIENT_ID,
|
|
35
|
-
};
|
|
36
|
-
const response = await successfulFetch(url, { headers });
|
|
29
|
+
const response = await fetch(url);
|
|
37
30
|
if (response.status === 204) {
|
|
38
31
|
// The accounts API returns a 204 status code when there are no transactions with empty body
|
|
39
32
|
// imitating a count of 0
|
|
@@ -47,41 +40,4 @@ export async function getAccountAddressRelationship(request) {
|
|
|
47
40
|
}
|
|
48
41
|
return responseJson;
|
|
49
42
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Fetch account transactions from the accounts API.
|
|
52
|
-
* @param request - The request object.
|
|
53
|
-
* @returns The response object.
|
|
54
|
-
*/
|
|
55
|
-
export async function getAccountTransactions(request) {
|
|
56
|
-
const { address, chainIds, cursor, endTimestamp, sortDirection, startTimestamp, } = request;
|
|
57
|
-
let url = `${BASE_URL_ACCOUNTS}${address}/transactions`;
|
|
58
|
-
const params = [];
|
|
59
|
-
if (chainIds) {
|
|
60
|
-
const network = chainIds.join(',');
|
|
61
|
-
params.push(`networks=${network}`);
|
|
62
|
-
}
|
|
63
|
-
if (startTimestamp) {
|
|
64
|
-
params.push(`startTimestamp=${startTimestamp}`);
|
|
65
|
-
}
|
|
66
|
-
if (endTimestamp) {
|
|
67
|
-
params.push(`endTimestamp=${endTimestamp}`);
|
|
68
|
-
}
|
|
69
|
-
if (cursor) {
|
|
70
|
-
params.push(`cursor=${cursor}`);
|
|
71
|
-
}
|
|
72
|
-
if (sortDirection) {
|
|
73
|
-
params.push(`sortDirection=${sortDirection}`);
|
|
74
|
-
}
|
|
75
|
-
if (params.length) {
|
|
76
|
-
url += `?${params.join('&')}`;
|
|
77
|
-
}
|
|
78
|
-
log('Getting account transactions', { request, url });
|
|
79
|
-
const headers = {
|
|
80
|
-
[CLIENT_HEADER]: CLIENT_ID,
|
|
81
|
-
};
|
|
82
|
-
const response = await successfulFetch(url, { headers });
|
|
83
|
-
const responseJson = await response.json();
|
|
84
|
-
log('Retrieved account transactions', responseJson);
|
|
85
|
-
return responseJson;
|
|
86
|
-
}
|
|
87
43
|
//# sourceMappingURL=accounts-api.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts-api.mjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"accounts-api.mjs","sourceRoot":"","sources":["../../src/api/accounts-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB;AAErD,OAAO,EAAE,yBAAyB,EAAE,sBAAkB;AACtD,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAE1C,MAAM,wCAAwC,GAAG;IAC/C,CAAC;IACD,EAAE;IACF,EAAE;IACF,GAAG;IACH,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM,EAAE,SAAS;CAClB,CAAC;AA4CF,MAAM,QAAQ,GAAG,qCAAqC,CAAC;AAEvD,MAAM,GAAG,GAAG,kBAAkB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA6C;IAE7C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAEtC,IAAI,CAAC,wCAAwC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC/D,GAAG,CAAC,mDAAmD,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,IAAI,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;KAC7D;IAED,MAAM,GAAG,GAAG,GAAG,QAAQ,gBAAgB,OAAO,aAAa,IAAI,kBAAkB,EAAE,EAAE,CAAC;IAEtF,GAAG,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;QAC3B,4FAA4F;QAC5F,yBAAyB;QACzB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrB;IAED,MAAM,YAAY,GAAqC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE7E,GAAG,CAAC,wCAAwC,EAAE,YAAY,CAAC,CAAC;IAE5D,IAAI,YAAY,CAAC,KAAK,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;QAC7C,MAAM,IAAI,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACpD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import { createModuleLogger } from '@metamask/utils';\n\nimport { FirstTimeInteractionError } from '../errors';\nimport { projectLogger } from '../logger';\n\nconst SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API = [\n 1, // Ethereum Mainnet\n 10, // Optimism\n 56, // BSC\n 137, // Polygon\n 8453, // Base\n 42161, // Arbitrum\n 59144, // Linea\n 534352, // Scroll\n];\n\nexport type AccountAddressRelationshipResponse = {\n chainId?: number;\n count?: number;\n data?: {\n hash: string;\n timestamp: string;\n chainId: number;\n blockNumber: string;\n blockHash: string;\n gas: number;\n gasUsed: number;\n gasPrice: string;\n effectiveGasPrice: number;\n nonce: number;\n cumulativeGasUsed: number;\n methodId: string;\n value: string;\n to: string;\n from: string;\n };\n txHash?: string;\n};\n\nexport type AccountAddressRelationshipResult =\n AccountAddressRelationshipResponse & {\n error?: {\n code: string;\n message: string;\n };\n };\n\nexport type GetAccountAddressRelationshipRequest = {\n /** Chain ID of account relationship to check. */\n chainId: number;\n\n /** Recipient of the transaction. */\n to: string;\n\n /** Sender of the transaction. */\n from: string;\n};\n\nconst BASE_URL = `https://accounts.api.cx.metamask.io`;\n\nconst log = createModuleLogger(projectLogger, 'accounts-api');\n\n/**\n * Fetch account address relationship from the accounts API.\n * @param request - The request object.\n * @returns The raw response object from the API.\n */\nexport async function getAccountAddressRelationship(\n request: GetAccountAddressRelationshipRequest,\n): Promise<AccountAddressRelationshipResult> {\n const { chainId, from, to } = request;\n\n if (!SUPPORTED_CHAIN_IDS_FOR_RELATIONSHIP_API.includes(chainId)) {\n log('Unsupported chain ID for account relationship API', chainId);\n throw new FirstTimeInteractionError('Unsupported chain ID');\n }\n\n const url = `${BASE_URL}/v1/networks/${chainId}/accounts/${from}/relationships/${to}`;\n\n log('Getting account address relationship', { request, url });\n\n const response = await fetch(url);\n\n if (response.status === 204) {\n // The accounts API returns a 204 status code when there are no transactions with empty body\n // imitating a count of 0\n return { count: 0 };\n }\n\n const responseJson: AccountAddressRelationshipResult = await response.json();\n\n log('Retrieved account address relationship', responseJson);\n\n if (responseJson.error) {\n const { code, message } = responseJson.error;\n throw new FirstTimeInteractionError(message, code);\n }\n\n return responseJson;\n}\n"]}
|
package/dist/constants.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ABI_SIMULATION_ERC721_LEGACY = exports.ABI_SIMULATION_ERC20_WRAPPED = exports.GAS_BUFFER_CHAIN_OVERRIDES = exports.CHAIN_IDS = void 0;
|
|
3
|
+
exports.ABI_SIMULATION_ERC721_LEGACY = exports.ABI_SIMULATION_ERC20_WRAPPED = exports.GAS_BUFFER_CHAIN_OVERRIDES = exports.ETHERSCAN_SUPPORTED_NETWORKS = exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = exports.DEFAULT_ETHERSCAN_DOMAIN = exports.CHAIN_IDS = void 0;
|
|
4
4
|
exports.CHAIN_IDS = {
|
|
5
5
|
MAINNET: '0x1',
|
|
6
6
|
GOERLI: '0x5',
|
|
@@ -33,6 +33,90 @@ exports.CHAIN_IDS = {
|
|
|
33
33
|
SCROLL: '0x82750',
|
|
34
34
|
SCROLL_SEPOLIA: '0x8274f',
|
|
35
35
|
};
|
|
36
|
+
exports.DEFAULT_ETHERSCAN_DOMAIN = 'etherscan.io';
|
|
37
|
+
exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = 'api';
|
|
38
|
+
exports.ETHERSCAN_SUPPORTED_NETWORKS = {
|
|
39
|
+
[exports.CHAIN_IDS.GOERLI]: {
|
|
40
|
+
domain: exports.DEFAULT_ETHERSCAN_DOMAIN,
|
|
41
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,
|
|
42
|
+
},
|
|
43
|
+
[exports.CHAIN_IDS.MAINNET]: {
|
|
44
|
+
domain: exports.DEFAULT_ETHERSCAN_DOMAIN,
|
|
45
|
+
subdomain: exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
|
|
46
|
+
},
|
|
47
|
+
[exports.CHAIN_IDS.SEPOLIA]: {
|
|
48
|
+
domain: exports.DEFAULT_ETHERSCAN_DOMAIN,
|
|
49
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,
|
|
50
|
+
},
|
|
51
|
+
[exports.CHAIN_IDS.LINEA_GOERLI]: {
|
|
52
|
+
domain: 'lineascan.build',
|
|
53
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,
|
|
54
|
+
},
|
|
55
|
+
[exports.CHAIN_IDS.LINEA_SEPOLIA]: {
|
|
56
|
+
domain: 'lineascan.build',
|
|
57
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,
|
|
58
|
+
},
|
|
59
|
+
[exports.CHAIN_IDS.LINEA_MAINNET]: {
|
|
60
|
+
domain: 'lineascan.build',
|
|
61
|
+
subdomain: exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
|
|
62
|
+
},
|
|
63
|
+
[exports.CHAIN_IDS.BSC]: {
|
|
64
|
+
domain: 'bscscan.com',
|
|
65
|
+
subdomain: exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
|
|
66
|
+
},
|
|
67
|
+
[exports.CHAIN_IDS.BSC_TESTNET]: {
|
|
68
|
+
domain: 'bscscan.com',
|
|
69
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,
|
|
70
|
+
},
|
|
71
|
+
[exports.CHAIN_IDS.OPTIMISM]: {
|
|
72
|
+
domain: exports.DEFAULT_ETHERSCAN_DOMAIN,
|
|
73
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-optimistic`,
|
|
74
|
+
},
|
|
75
|
+
[exports.CHAIN_IDS.OPTIMISM_SEPOLIA]: {
|
|
76
|
+
domain: exports.DEFAULT_ETHERSCAN_DOMAIN,
|
|
77
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia-optimistic`,
|
|
78
|
+
},
|
|
79
|
+
[exports.CHAIN_IDS.POLYGON]: {
|
|
80
|
+
domain: 'polygonscan.com',
|
|
81
|
+
subdomain: exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
|
|
82
|
+
},
|
|
83
|
+
[exports.CHAIN_IDS.POLYGON_TESTNET]: {
|
|
84
|
+
domain: 'polygonscan.com',
|
|
85
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-mumbai`,
|
|
86
|
+
},
|
|
87
|
+
[exports.CHAIN_IDS.AVALANCHE]: {
|
|
88
|
+
domain: 'snowtrace.io',
|
|
89
|
+
subdomain: exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
|
|
90
|
+
},
|
|
91
|
+
[exports.CHAIN_IDS.AVALANCHE_TESTNET]: {
|
|
92
|
+
domain: 'snowtrace.io',
|
|
93
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,
|
|
94
|
+
},
|
|
95
|
+
[exports.CHAIN_IDS.FANTOM]: {
|
|
96
|
+
domain: 'ftmscan.com',
|
|
97
|
+
subdomain: exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
|
|
98
|
+
},
|
|
99
|
+
[exports.CHAIN_IDS.FANTOM_TESTNET]: {
|
|
100
|
+
domain: 'ftmscan.com',
|
|
101
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,
|
|
102
|
+
},
|
|
103
|
+
[exports.CHAIN_IDS.MOONBEAM]: {
|
|
104
|
+
domain: 'moonscan.io',
|
|
105
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbeam`,
|
|
106
|
+
},
|
|
107
|
+
[exports.CHAIN_IDS.MOONBEAM_TESTNET]: {
|
|
108
|
+
domain: 'moonscan.io',
|
|
109
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbase`,
|
|
110
|
+
},
|
|
111
|
+
[exports.CHAIN_IDS.MOONRIVER]: {
|
|
112
|
+
domain: 'moonscan.io',
|
|
113
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonriver`,
|
|
114
|
+
},
|
|
115
|
+
[exports.CHAIN_IDS.GNOSIS]: {
|
|
116
|
+
domain: 'gnosisscan.io',
|
|
117
|
+
subdomain: `${exports.DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
36
120
|
exports.GAS_BUFFER_CHAIN_OVERRIDES = {
|
|
37
121
|
[exports.CHAIN_IDS.OPTIMISM]: 1,
|
|
38
122
|
[exports.CHAIN_IDS.OPTIMISM_SEPOLIA]: 1,
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,SAAS;IACvB,GAAG,EAAE,MAAM;IACX,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,OAAO;IACzB,KAAK,EAAE,MAAM;IACb,aAAa,EAAE,QAAQ;IACvB,gBAAgB,EAAE,UAAU;IAC5B,OAAO,EAAE,MAAM;IACf,eAAe,EAAE,SAAS;IAC1B,SAAS,EAAE,QAAQ;IACnB,iBAAiB,EAAE,QAAQ;IAC3B,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,OAAO;IACvB,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,OAAO;IACjB,gBAAgB,EAAE,OAAO;IACzB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,SAAS;CACjB,CAAC;AAEE,QAAA,0BAA0B,GAAG;IACxC,CAAC,iBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvB,CAAC,iBAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;CAChC,CAAC;AAEF,iEAAiE;AACpD,QAAA,4BAA4B,GAAG;IAC1C;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9C,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;SACjD;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;KACd;IACD;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YAChD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;SACjD;QACD,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,OAAO;KACd;CACF,CAAC;AAEF,iEAAiE;AACpD,QAAA,4BAA4B,GAAG;IAC1C;QACE,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd;CACF,CAAC","sourcesContent":["export const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0x1a4',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n SEPOLIA: '0xaa36a7',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n LINEA_MAINNET: '0xe708',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n GNOSIS: '0x64',\n ARBITRUM: '0xa4b1',\n ZKSYNC_ERA: '0x144',\n ZORA: '0x76adf1',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n} as const;\n\nexport const GAS_BUFFER_CHAIN_OVERRIDES = {\n [CHAIN_IDS.OPTIMISM]: 1,\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: 1,\n};\n\n/** Extract of the Wrapped ERC-20 ABI required for simulation. */\nexport const ABI_SIMULATION_ERC20_WRAPPED = [\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'wad', type: 'uint256' },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: false, name: 'wad', type: 'uint256' },\n ],\n name: 'Withdrawal',\n type: 'event',\n },\n];\n\n/** Extract of the legacy ERC-721 ABI required for simulation. */\nexport const ABI_SIMULATION_ERC721_LEGACY = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: '_from',\n type: 'address',\n },\n {\n indexed: false,\n name: '_to',\n type: 'address',\n },\n {\n indexed: false,\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n];\n"]}
|
|
1
|
+
{"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n BASE: '0x2105',\n BASE_TESTNET: '0x14a33',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_TESTNET: '0x1a4',\n OPBNB: '0xcc',\n OPBNB_TESTNET: '0x15eb',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n SEPOLIA: '0xaa36a7',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n LINEA_MAINNET: '0xe708',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n GNOSIS: '0x64',\n ARBITRUM: '0xa4b1',\n ZKSYNC_ERA: '0x144',\n ZORA: '0x76adf1',\n SCROLL: '0x82750',\n SCROLL_SEPOLIA: '0x8274f',\n} as const;\n\nexport const DEFAULT_ETHERSCAN_DOMAIN = 'etherscan.io';\nexport const DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = 'api';\n\nexport const ETHERSCAN_SUPPORTED_NETWORKS = {\n [CHAIN_IDS.GOERLI]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,\n },\n [CHAIN_IDS.MAINNET]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,\n },\n [CHAIN_IDS.LINEA_GOERLI]: {\n domain: 'lineascan.build',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,\n },\n [CHAIN_IDS.LINEA_SEPOLIA]: {\n domain: 'lineascan.build',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,\n },\n [CHAIN_IDS.LINEA_MAINNET]: {\n domain: 'lineascan.build',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC]: {\n domain: 'bscscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC_TESTNET]: {\n domain: 'bscscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.OPTIMISM]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-optimistic`,\n },\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia-optimistic`,\n },\n [CHAIN_IDS.POLYGON]: {\n domain: 'polygonscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.POLYGON_TESTNET]: {\n domain: 'polygonscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-mumbai`,\n },\n [CHAIN_IDS.AVALANCHE]: {\n domain: 'snowtrace.io',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.AVALANCHE_TESTNET]: {\n domain: 'snowtrace.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.FANTOM]: {\n domain: 'ftmscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.FANTOM_TESTNET]: {\n domain: 'ftmscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.MOONBEAM]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbeam`,\n },\n [CHAIN_IDS.MOONBEAM_TESTNET]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbase`,\n },\n [CHAIN_IDS.MOONRIVER]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonriver`,\n },\n [CHAIN_IDS.GNOSIS]: {\n domain: 'gnosisscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,\n },\n};\n\nexport const GAS_BUFFER_CHAIN_OVERRIDES = {\n [CHAIN_IDS.OPTIMISM]: 1,\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: 1,\n};\n\n/** Extract of the Wrapped ERC-20 ABI required for simulation. */\nexport const ABI_SIMULATION_ERC20_WRAPPED = [\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'wad', type: 'uint256' },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: false, name: 'wad', type: 'uint256' },\n ],\n name: 'Withdrawal',\n type: 'event',\n },\n];\n\n/** Extract of the legacy ERC-721 ABI required for simulation. */\nexport const ABI_SIMULATION_ERC721_LEGACY = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: '_from',\n type: 'address',\n },\n {\n indexed: false,\n name: '_to',\n type: 'address',\n },\n {\n indexed: false,\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n];\n"]}
|
package/dist/constants.d.cts
CHANGED
|
@@ -30,6 +30,90 @@ export declare const CHAIN_IDS: {
|
|
|
30
30
|
readonly SCROLL: "0x82750";
|
|
31
31
|
readonly SCROLL_SEPOLIA: "0x8274f";
|
|
32
32
|
};
|
|
33
|
+
export declare const DEFAULT_ETHERSCAN_DOMAIN = "etherscan.io";
|
|
34
|
+
export declare const DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = "api";
|
|
35
|
+
export declare const ETHERSCAN_SUPPORTED_NETWORKS: {
|
|
36
|
+
"0x5": {
|
|
37
|
+
domain: string;
|
|
38
|
+
subdomain: string;
|
|
39
|
+
};
|
|
40
|
+
"0x1": {
|
|
41
|
+
domain: string;
|
|
42
|
+
subdomain: string;
|
|
43
|
+
};
|
|
44
|
+
"0xaa36a7": {
|
|
45
|
+
domain: string;
|
|
46
|
+
subdomain: string;
|
|
47
|
+
};
|
|
48
|
+
"0xe704": {
|
|
49
|
+
domain: string;
|
|
50
|
+
subdomain: string;
|
|
51
|
+
};
|
|
52
|
+
"0xe705": {
|
|
53
|
+
domain: string;
|
|
54
|
+
subdomain: string;
|
|
55
|
+
};
|
|
56
|
+
"0xe708": {
|
|
57
|
+
domain: string;
|
|
58
|
+
subdomain: string;
|
|
59
|
+
};
|
|
60
|
+
"0x38": {
|
|
61
|
+
domain: string;
|
|
62
|
+
subdomain: string;
|
|
63
|
+
};
|
|
64
|
+
"0x61": {
|
|
65
|
+
domain: string;
|
|
66
|
+
subdomain: string;
|
|
67
|
+
};
|
|
68
|
+
"0xa": {
|
|
69
|
+
domain: string;
|
|
70
|
+
subdomain: string;
|
|
71
|
+
};
|
|
72
|
+
"0xaa37dc": {
|
|
73
|
+
domain: string;
|
|
74
|
+
subdomain: string;
|
|
75
|
+
};
|
|
76
|
+
"0x89": {
|
|
77
|
+
domain: string;
|
|
78
|
+
subdomain: string;
|
|
79
|
+
};
|
|
80
|
+
"0x13881": {
|
|
81
|
+
domain: string;
|
|
82
|
+
subdomain: string;
|
|
83
|
+
};
|
|
84
|
+
"0xa86a": {
|
|
85
|
+
domain: string;
|
|
86
|
+
subdomain: string;
|
|
87
|
+
};
|
|
88
|
+
"0xa869": {
|
|
89
|
+
domain: string;
|
|
90
|
+
subdomain: string;
|
|
91
|
+
};
|
|
92
|
+
"0xfa": {
|
|
93
|
+
domain: string;
|
|
94
|
+
subdomain: string;
|
|
95
|
+
};
|
|
96
|
+
"0xfa2": {
|
|
97
|
+
domain: string;
|
|
98
|
+
subdomain: string;
|
|
99
|
+
};
|
|
100
|
+
"0x504": {
|
|
101
|
+
domain: string;
|
|
102
|
+
subdomain: string;
|
|
103
|
+
};
|
|
104
|
+
"0x507": {
|
|
105
|
+
domain: string;
|
|
106
|
+
subdomain: string;
|
|
107
|
+
};
|
|
108
|
+
"0x505": {
|
|
109
|
+
domain: string;
|
|
110
|
+
subdomain: string;
|
|
111
|
+
};
|
|
112
|
+
"0x64": {
|
|
113
|
+
domain: string;
|
|
114
|
+
subdomain: string;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
33
117
|
export declare const GAS_BUFFER_CHAIN_OVERRIDES: {
|
|
34
118
|
"0xa": number;
|
|
35
119
|
"0xaa37dc": number;
|
package/dist/constants.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AAEX,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,4BAA4B;;;;;;;;;GAmBxC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,4BAA4B;;;;;;;;;GAuBxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AAEX,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AACvD,eAAO,MAAM,kCAAkC,QAAQ,CAAC;AAExD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFxC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,4BAA4B;;;;;;;;;GAmBxC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,4BAA4B;;;;;;;;;GAuBxC,CAAC"}
|