@metamask-previews/transaction-controller 50.0.0-preview-39c90ec → 50.0.0-preview-2eeab776
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.
|
@@ -4,8 +4,8 @@ exports.getBatchSizeLimit = exports.getEIP7702UpgradeContractAddress = exports.g
|
|
|
4
4
|
const utils_1 = require("@metamask/utils");
|
|
5
5
|
const signature_1 = require("./signature.cjs");
|
|
6
6
|
const logger_1 = require("../logger.cjs");
|
|
7
|
-
exports.FEATURE_FLAG_TRANSACTIONS = '
|
|
8
|
-
exports.FEATURE_FLAG_EIP_7702 = '
|
|
7
|
+
exports.FEATURE_FLAG_TRANSACTIONS = 'confirmations_transactions';
|
|
8
|
+
exports.FEATURE_FLAG_EIP_7702 = 'confirmations_eip_7702';
|
|
9
9
|
const DEFAULT_BATCH_SIZE_LIMIT = 10;
|
|
10
10
|
const log = (0, utils_1.createModuleLogger)(logger_1.projectLogger, 'feature-flags');
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.cjs","sourceRoot":"","sources":["../../src/utils/feature-flags.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAE/D,+CAA+C;AAC/C,0CAA0C;AAG7B,QAAA,yBAAyB,GAAG,4BAA4B,CAAC;AACzD,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,MAAM,wBAAwB,GAAG,EAAE,CAAC;AA8BpC,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,sBAAa,EAAE,eAAe,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,YAAY,EAAE,CAAC,6BAAqB,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;AACtE,CAAC;AALD,8DAKC;AAED;;;;;;;GAOG;AACH,SAAgB,2BAA2B,CACzC,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,SAAS,GACb,YAAY,EAAE,CAAC,6BAAqB,CAAC,EAAE,SAAS,EAAE,CAChD,OAAO,CAAC,WAAW,EAAS,CAC7B,IAAI,EAAE,CAAC;IAEV,OAAO,SAAS;SACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,IAAA,4BAAgB,EACd,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,QAAQ,CAAC,SAAS,EAClB,SAAS,CACV,CACF;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AArBD,kEAqBC;AAED;;;;;;;GAOG;AACH,SAAgB,gCAAgC,CAC9C,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,OAAO,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAND,4EAMC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,CACL,YAAY,EAAE,CAAC,iCAAyB,CAAC,EAAE,cAAc;QACzD,wBAAwB,CACzB,CAAC;AACJ,CAAC;AARD,8CAQC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,SAAyC;IAEzC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CACjC,sCAAsC,CACvC,CAAC,kBAAkB,CAAC;IAErB,GAAG,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IAE7C,OAAO,YAAiD,CAAC;AAC3D,CAAC","sourcesContent":["import { createModuleLogger, type Hex } from '@metamask/utils';\n\nimport { isValidSignature } from './signature';\nimport { projectLogger } from '../logger';\nimport type { TransactionControllerMessenger } from '../TransactionController';\n\nexport const FEATURE_FLAG_TRANSACTIONS = '
|
|
1
|
+
{"version":3,"file":"feature-flags.cjs","sourceRoot":"","sources":["../../src/utils/feature-flags.ts"],"names":[],"mappings":";;;AAAA,2CAA+D;AAE/D,+CAA+C;AAC/C,0CAA0C;AAG7B,QAAA,yBAAyB,GAAG,4BAA4B,CAAC;AACzD,QAAA,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,MAAM,wBAAwB,GAAG,EAAE,CAAC;AA8BpC,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,sBAAa,EAAE,eAAe,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,YAAY,EAAE,CAAC,6BAAqB,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;AACtE,CAAC;AALD,8DAKC;AAED;;;;;;;GAOG;AACH,SAAgB,2BAA2B,CACzC,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,SAAS,GACb,YAAY,EAAE,CAAC,6BAAqB,CAAC,EAAE,SAAS,EAAE,CAChD,OAAO,CAAC,WAAW,EAAS,CAC7B,IAAI,EAAE,CAAC;IAEV,OAAO,SAAS;SACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,IAAA,4BAAgB,EACd,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,QAAQ,CAAC,SAAS,EAClB,SAAS,CACV,CACF;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AArBD,kEAqBC;AAED;;;;;;;GAOG;AACH,SAAgB,gCAAgC,CAC9C,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,OAAO,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAND,4EAMC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,CACL,YAAY,EAAE,CAAC,iCAAyB,CAAC,EAAE,cAAc;QACzD,wBAAwB,CACzB,CAAC;AACJ,CAAC;AARD,8CAQC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,SAAyC;IAEzC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CACjC,sCAAsC,CACvC,CAAC,kBAAkB,CAAC;IAErB,GAAG,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IAE7C,OAAO,YAAiD,CAAC;AAC3D,CAAC","sourcesContent":["import { createModuleLogger, type Hex } from '@metamask/utils';\n\nimport { isValidSignature } from './signature';\nimport { projectLogger } from '../logger';\nimport type { TransactionControllerMessenger } from '../TransactionController';\n\nexport const FEATURE_FLAG_TRANSACTIONS = 'confirmations_transactions';\nexport const FEATURE_FLAG_EIP_7702 = 'confirmations_eip_7702';\n\nconst DEFAULT_BATCH_SIZE_LIMIT = 10;\n\nexport type TransactionControllerFeatureFlags = {\n [FEATURE_FLAG_EIP_7702]?: {\n /**\n * All contracts that support EIP-7702 batch transactions.\n * Keyed by chain ID.\n * First entry in each array is the contract that standard EOAs will be upgraded to.\n */\n contracts?: Record<\n Hex,\n {\n /** Address of the smart contract. */\n address: Hex;\n\n /** Signature to verify the contract is authentic. */\n signature: Hex;\n }[]\n >;\n\n /** Chains enabled for EIP-7702 batch transactions. */\n supportedChains?: Hex[];\n };\n\n [FEATURE_FLAG_TRANSACTIONS]?: {\n /** Maximum number of transactions that can be in an external batch. */\n batchSizeLimit?: number;\n };\n};\n\nconst log = createModuleLogger(projectLogger, 'feature-flags');\n\n/**\n * Retrieves the supported EIP-7702 chains.\n *\n * @param messenger - The controller messenger instance.\n * @returns The supported chains.\n */\nexport function getEIP7702SupportedChains(\n messenger: TransactionControllerMessenger,\n): Hex[] {\n const featureFlags = getFeatureFlags(messenger);\n return featureFlags?.[FEATURE_FLAG_EIP_7702]?.supportedChains ?? [];\n}\n\n/**\n * Retrieves the supported EIP-7702 contract addresses for a given chain ID.\n *\n * @param chainId - The chain ID.\n * @param messenger - The controller messenger instance.\n * @param publicKey - The public key used to validate the contract authenticity.\n * @returns The supported contract addresses.\n */\nexport function getEIP7702ContractAddresses(\n chainId: Hex,\n messenger: TransactionControllerMessenger,\n publicKey: Hex,\n): Hex[] {\n const featureFlags = getFeatureFlags(messenger);\n\n const contracts =\n featureFlags?.[FEATURE_FLAG_EIP_7702]?.contracts?.[\n chainId.toLowerCase() as Hex\n ] ?? [];\n\n return contracts\n .filter((contract) =>\n isValidSignature(\n [contract.address, chainId],\n contract.signature,\n publicKey,\n ),\n )\n .map((contract) => contract.address);\n}\n\n/**\n * Retrieves the EIP-7702 upgrade contract address.\n *\n * @param chainId - The chain ID.\n * @param messenger - The controller messenger instance.\n * @param publicKey - The public key used to validate the contract authenticity.\n * @returns The upgrade contract address.\n */\nexport function getEIP7702UpgradeContractAddress(\n chainId: Hex,\n messenger: TransactionControllerMessenger,\n publicKey: Hex,\n): Hex | undefined {\n return getEIP7702ContractAddresses(chainId, messenger, publicKey)?.[0];\n}\n\n/**\n * Retrieves the batch size limit.\n * Defaults to 10 if not set.\n *\n * @param messenger - The controller messenger instance.\n * @returns The batch size limit.\n */\nexport function getBatchSizeLimit(\n messenger: TransactionControllerMessenger,\n): number {\n const featureFlags = getFeatureFlags(messenger);\n return (\n featureFlags?.[FEATURE_FLAG_TRANSACTIONS]?.batchSizeLimit ??\n DEFAULT_BATCH_SIZE_LIMIT\n );\n}\n\n/**\n * Retrieves the relevant feature flags from the remote feature flag controller.\n *\n * @param messenger - The messenger instance.\n * @returns The feature flags.\n */\nfunction getFeatureFlags(\n messenger: TransactionControllerMessenger,\n): TransactionControllerFeatureFlags {\n const featureFlags = messenger.call(\n 'RemoteFeatureFlagController:getState',\n ).remoteFeatureFlags;\n\n log('Retrieved feature flags', featureFlags);\n\n return featureFlags as TransactionControllerFeatureFlags;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Hex } from "@metamask/utils";
|
|
2
2
|
import type { TransactionControllerMessenger } from "../TransactionController.cjs";
|
|
3
|
-
export declare const FEATURE_FLAG_TRANSACTIONS = "
|
|
4
|
-
export declare const FEATURE_FLAG_EIP_7702 = "
|
|
3
|
+
export declare const FEATURE_FLAG_TRANSACTIONS = "confirmations_transactions";
|
|
4
|
+
export declare const FEATURE_FLAG_EIP_7702 = "confirmations_eip_7702";
|
|
5
5
|
export type TransactionControllerFeatureFlags = {
|
|
6
6
|
[FEATURE_FLAG_EIP_7702]?: {
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Hex } from "@metamask/utils";
|
|
2
2
|
import type { TransactionControllerMessenger } from "../TransactionController.mjs";
|
|
3
|
-
export declare const FEATURE_FLAG_TRANSACTIONS = "
|
|
4
|
-
export declare const FEATURE_FLAG_EIP_7702 = "
|
|
3
|
+
export declare const FEATURE_FLAG_TRANSACTIONS = "confirmations_transactions";
|
|
4
|
+
export declare const FEATURE_FLAG_EIP_7702 = "confirmations_eip_7702";
|
|
5
5
|
export type TransactionControllerFeatureFlags = {
|
|
6
6
|
[FEATURE_FLAG_EIP_7702]?: {
|
|
7
7
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createModuleLogger } from "@metamask/utils";
|
|
2
2
|
import { isValidSignature } from "./signature.mjs";
|
|
3
3
|
import { projectLogger } from "../logger.mjs";
|
|
4
|
-
export const FEATURE_FLAG_TRANSACTIONS = '
|
|
5
|
-
export const FEATURE_FLAG_EIP_7702 = '
|
|
4
|
+
export const FEATURE_FLAG_TRANSACTIONS = 'confirmations_transactions';
|
|
5
|
+
export const FEATURE_FLAG_EIP_7702 = 'confirmations_eip_7702';
|
|
6
6
|
const DEFAULT_BATCH_SIZE_LIMIT = 10;
|
|
7
7
|
const log = createModuleLogger(projectLogger, 'feature-flags');
|
|
8
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.mjs","sourceRoot":"","sources":["../../src/utils/feature-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAY,wBAAwB;AAE/D,OAAO,EAAE,gBAAgB,EAAE,wBAAoB;AAC/C,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAG1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,MAAM,wBAAwB,GAAG,EAAE,CAAC;AA8BpC,MAAM,GAAG,GAAG,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,YAAY,EAAE,CAAC,qBAAqB,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,SAAS,GACb,YAAY,EAAE,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAChD,OAAO,CAAC,WAAW,EAAS,CAC7B,IAAI,EAAE,CAAC;IAEV,OAAO,SAAS;SACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,gBAAgB,CACd,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,QAAQ,CAAC,SAAS,EAClB,SAAS,CACV,CACF;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,OAAO,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,CACL,YAAY,EAAE,CAAC,yBAAyB,CAAC,EAAE,cAAc;QACzD,wBAAwB,CACzB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,SAAyC;IAEzC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CACjC,sCAAsC,CACvC,CAAC,kBAAkB,CAAC;IAErB,GAAG,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IAE7C,OAAO,YAAiD,CAAC;AAC3D,CAAC","sourcesContent":["import { createModuleLogger, type Hex } from '@metamask/utils';\n\nimport { isValidSignature } from './signature';\nimport { projectLogger } from '../logger';\nimport type { TransactionControllerMessenger } from '../TransactionController';\n\nexport const FEATURE_FLAG_TRANSACTIONS = '
|
|
1
|
+
{"version":3,"file":"feature-flags.mjs","sourceRoot":"","sources":["../../src/utils/feature-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAY,wBAAwB;AAE/D,OAAO,EAAE,gBAAgB,EAAE,wBAAoB;AAC/C,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAG1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AACtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAE9D,MAAM,wBAAwB,GAAG,EAAE,CAAC;AA8BpC,MAAM,GAAG,GAAG,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,YAAY,EAAE,CAAC,qBAAqB,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEhD,MAAM,SAAS,GACb,YAAY,EAAE,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAChD,OAAO,CAAC,WAAW,EAAS,CAC7B,IAAI,EAAE,CAAC;IAEV,OAAO,SAAS;SACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnB,gBAAgB,CACd,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3B,QAAQ,CAAC,SAAS,EAClB,SAAS,CACV,CACF;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gCAAgC,CAC9C,OAAY,EACZ,SAAyC,EACzC,SAAc;IAEd,OAAO,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAyC;IAEzC,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,CACL,YAAY,EAAE,CAAC,yBAAyB,CAAC,EAAE,cAAc;QACzD,wBAAwB,CACzB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,SAAyC;IAEzC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CACjC,sCAAsC,CACvC,CAAC,kBAAkB,CAAC;IAErB,GAAG,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IAE7C,OAAO,YAAiD,CAAC;AAC3D,CAAC","sourcesContent":["import { createModuleLogger, type Hex } from '@metamask/utils';\n\nimport { isValidSignature } from './signature';\nimport { projectLogger } from '../logger';\nimport type { TransactionControllerMessenger } from '../TransactionController';\n\nexport const FEATURE_FLAG_TRANSACTIONS = 'confirmations_transactions';\nexport const FEATURE_FLAG_EIP_7702 = 'confirmations_eip_7702';\n\nconst DEFAULT_BATCH_SIZE_LIMIT = 10;\n\nexport type TransactionControllerFeatureFlags = {\n [FEATURE_FLAG_EIP_7702]?: {\n /**\n * All contracts that support EIP-7702 batch transactions.\n * Keyed by chain ID.\n * First entry in each array is the contract that standard EOAs will be upgraded to.\n */\n contracts?: Record<\n Hex,\n {\n /** Address of the smart contract. */\n address: Hex;\n\n /** Signature to verify the contract is authentic. */\n signature: Hex;\n }[]\n >;\n\n /** Chains enabled for EIP-7702 batch transactions. */\n supportedChains?: Hex[];\n };\n\n [FEATURE_FLAG_TRANSACTIONS]?: {\n /** Maximum number of transactions that can be in an external batch. */\n batchSizeLimit?: number;\n };\n};\n\nconst log = createModuleLogger(projectLogger, 'feature-flags');\n\n/**\n * Retrieves the supported EIP-7702 chains.\n *\n * @param messenger - The controller messenger instance.\n * @returns The supported chains.\n */\nexport function getEIP7702SupportedChains(\n messenger: TransactionControllerMessenger,\n): Hex[] {\n const featureFlags = getFeatureFlags(messenger);\n return featureFlags?.[FEATURE_FLAG_EIP_7702]?.supportedChains ?? [];\n}\n\n/**\n * Retrieves the supported EIP-7702 contract addresses for a given chain ID.\n *\n * @param chainId - The chain ID.\n * @param messenger - The controller messenger instance.\n * @param publicKey - The public key used to validate the contract authenticity.\n * @returns The supported contract addresses.\n */\nexport function getEIP7702ContractAddresses(\n chainId: Hex,\n messenger: TransactionControllerMessenger,\n publicKey: Hex,\n): Hex[] {\n const featureFlags = getFeatureFlags(messenger);\n\n const contracts =\n featureFlags?.[FEATURE_FLAG_EIP_7702]?.contracts?.[\n chainId.toLowerCase() as Hex\n ] ?? [];\n\n return contracts\n .filter((contract) =>\n isValidSignature(\n [contract.address, chainId],\n contract.signature,\n publicKey,\n ),\n )\n .map((contract) => contract.address);\n}\n\n/**\n * Retrieves the EIP-7702 upgrade contract address.\n *\n * @param chainId - The chain ID.\n * @param messenger - The controller messenger instance.\n * @param publicKey - The public key used to validate the contract authenticity.\n * @returns The upgrade contract address.\n */\nexport function getEIP7702UpgradeContractAddress(\n chainId: Hex,\n messenger: TransactionControllerMessenger,\n publicKey: Hex,\n): Hex | undefined {\n return getEIP7702ContractAddresses(chainId, messenger, publicKey)?.[0];\n}\n\n/**\n * Retrieves the batch size limit.\n * Defaults to 10 if not set.\n *\n * @param messenger - The controller messenger instance.\n * @returns The batch size limit.\n */\nexport function getBatchSizeLimit(\n messenger: TransactionControllerMessenger,\n): number {\n const featureFlags = getFeatureFlags(messenger);\n return (\n featureFlags?.[FEATURE_FLAG_TRANSACTIONS]?.batchSizeLimit ??\n DEFAULT_BATCH_SIZE_LIMIT\n );\n}\n\n/**\n * Retrieves the relevant feature flags from the remote feature flag controller.\n *\n * @param messenger - The messenger instance.\n * @returns The feature flags.\n */\nfunction getFeatureFlags(\n messenger: TransactionControllerMessenger,\n): TransactionControllerFeatureFlags {\n const featureFlags = messenger.call(\n 'RemoteFeatureFlagController:getState',\n ).remoteFeatureFlags;\n\n log('Retrieved feature flags', featureFlags);\n\n return featureFlags as TransactionControllerFeatureFlags;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/transaction-controller",
|
|
3
|
-
"version": "50.0.0-preview-
|
|
3
|
+
"version": "50.0.0-preview-2eeab776",
|
|
4
4
|
"description": "Stores transactions alongside their periodically updated statuses and manages interactions such as approval and cancellation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"MetaMask",
|