@metamask-previews/transaction-controller 69.3.0-preview-2296abeaf → 69.3.0-preview-5da60b6
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 +4 -0
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/utils/first-time-interaction.cjs +3 -25
- package/dist/utils/first-time-interaction.cjs.map +1 -1
- package/dist/utils/first-time-interaction.d.cts.map +1 -1
- package/dist/utils/first-time-interaction.d.mts.map +1 -1
- package/dist/utils/first-time-interaction.mjs +1 -23
- package/dist/utils/first-time-interaction.mjs.map +1 -1
- package/dist/utils/recipient.cjs +31 -0
- package/dist/utils/recipient.cjs.map +1 -0
- package/dist/utils/recipient.d.cts +13 -0
- package/dist/utils/recipient.d.cts.map +1 -0
- package/dist/utils/recipient.d.mts +13 -0
- package/dist/utils/recipient.d.mts.map +1 -0
- package/dist/utils/recipient.mjs +27 -0
- package/dist/utils/recipient.mjs.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Export `getEffectiveRecipient` utility that returns the actual recipient of a transaction, decoding it from calldata for ERC-20/ERC-721/ERC-1155 token transfer methods where `txParams.to` is the token contract ([#9699](https://github.com/MetaMask/core/pull/9699))
|
|
13
|
+
|
|
10
14
|
## [69.3.0]
|
|
11
15
|
|
|
12
16
|
### Added
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateBatchId = exports.getAccountAddressRelationship = exports.HARDFORK = exports.CHAIN_IDS = exports.hasTransactionType = exports.normalizeTransactionParams = exports.isEIP1559Transaction = exports.updateEIP7702BatchData = exports.generateEIP7702BatchTransaction = exports.decodeAuthorizationSignature = exports.mergeGasFeeEstimates = exports.WalletDevice = exports.UserFeeLevel = exports.TransactionType = exports.TransactionStatus = exports.TransactionEnvelopeType = exports.TransactionContainerType = exports.SimulationTokenStandard = exports.SimulationErrorCode = exports.GasFeeEstimateType = exports.GasFeeEstimateLevel = exports.TransactionController = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
3
|
+
exports.generateBatchId = exports.getAccountAddressRelationship = exports.HARDFORK = exports.CHAIN_IDS = exports.getEffectiveRecipient = exports.hasTransactionType = exports.normalizeTransactionParams = exports.isEIP1559Transaction = exports.updateEIP7702BatchData = exports.generateEIP7702BatchTransaction = exports.decodeAuthorizationSignature = exports.mergeGasFeeEstimates = exports.WalletDevice = exports.UserFeeLevel = exports.TransactionType = exports.TransactionStatus = exports.TransactionEnvelopeType = exports.TransactionContainerType = exports.SimulationTokenStandard = exports.SimulationErrorCode = exports.GasFeeEstimateType = exports.GasFeeEstimateLevel = exports.TransactionController = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
4
4
|
var TransactionController_js_1 = require("./TransactionController.cjs");
|
|
5
5
|
Object.defineProperty(exports, "CANCEL_RATE", { enumerable: true, get: function () { return TransactionController_js_1.CANCEL_RATE; } });
|
|
6
6
|
Object.defineProperty(exports, "SPEED_UP_RATE", { enumerable: true, get: function () { return TransactionController_js_1.SPEED_UP_RATE; } });
|
|
@@ -27,6 +27,8 @@ Object.defineProperty(exports, "isEIP1559Transaction", { enumerable: true, get:
|
|
|
27
27
|
Object.defineProperty(exports, "normalizeTransactionParams", { enumerable: true, get: function () { return utils_js_1.normalizeTransactionParams; } });
|
|
28
28
|
var transaction_type_js_1 = require("./utils/transaction-type.cjs");
|
|
29
29
|
Object.defineProperty(exports, "hasTransactionType", { enumerable: true, get: function () { return transaction_type_js_1.hasTransactionType; } });
|
|
30
|
+
var recipient_js_1 = require("./utils/recipient.cjs");
|
|
31
|
+
Object.defineProperty(exports, "getEffectiveRecipient", { enumerable: true, get: function () { return recipient_js_1.getEffectiveRecipient; } });
|
|
30
32
|
var constants_js_1 = require("./constants.cjs");
|
|
31
33
|
Object.defineProperty(exports, "CHAIN_IDS", { enumerable: true, get: function () { return constants_js_1.CHAIN_IDS; } });
|
|
32
34
|
var prepare_js_1 = require("./utils/prepare.cjs");
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA4DA,wEAIoC;AAHlC,uHAAA,WAAW,OAAA;AACX,yHAAA,aAAa,OAAA;AACb,iIAAA,qBAAqB,OAAA;AAyDvB,wCAWoB;AAVlB,+GAAA,mBAAmB,OAAA;AACnB,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,oHAAA,wBAAwB,OAAA;AACxB,mHAAA,uBAAuB,OAAA;AACvB,6GAAA,iBAAiB,OAAA;AACjB,2GAAA,eAAe,OAAA;AACf,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AAEd,oDAA2D;AAAlD,mHAAA,oBAAoB,OAAA;AAC7B,kDAI4B;AAH1B,0HAAA,4BAA4B,OAAA;AAC5B,6HAAA,+BAA+B,OAAA;AAC/B,oHAAA,sBAAsB,OAAA;AAExB,8CAG0B;AAFxB,gHAAA,oBAAoB,OAAA;AACpB,sHAAA,0BAA0B,OAAA;AAE5B,oEAAiE;AAAxD,yHAAA,kBAAkB,OAAA;AAC3B,gDAA2C;AAAlC,yGAAA,SAAS,OAAA;AAClB,kDAA8C;AAArC,sGAAA,QAAQ,OAAA;AACjB,0DAAsE;AAA7D,gIAAA,6BAA6B,OAAA;AAKtC,8CAAmD;AAA1C,2GAAA,eAAe,OAAA","sourcesContent":["export type {\n MethodData,\n Result,\n TransactionControllerActions,\n TransactionControllerEvents,\n TransactionControllerGetStateAction,\n TransactionControllerPostTransactionBalanceUpdatedEvent,\n TransactionControllerSpeedupTransactionAddedEvent,\n TransactionControllerState,\n TransactionControllerStateChangeEvent,\n TransactionControllerTransactionApprovedEvent,\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerTransactionDroppedEvent,\n TransactionControllerTransactionFailedEvent,\n TransactionControllerTransactionFinishedEvent,\n TransactionControllerTransactionNewSwapApprovalEvent,\n TransactionControllerTransactionNewSwapEvent,\n TransactionControllerTransactionPublishingSkipped,\n TransactionControllerTransactionRejectedEvent,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionControllerMessenger,\n TransactionControllerOptions,\n} from './TransactionController.js';\nexport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerAddTransactionBatchAction,\n TransactionControllerConfirmExternalTransactionAction,\n TransactionControllerEmulateNewTransactionAction,\n TransactionControllerEmulateTransactionUpdateAction,\n TransactionControllerEstimateGasAction,\n TransactionControllerEstimateGasBatchAction,\n TransactionControllerGetGasFeeTokensAction,\n TransactionControllerGetNonceLockAction,\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateCustodialTransactionAction,\n TransactionControllerUpdateTransactionAction,\n TransactionControllerUpdateTransactionMetadataAction,\n TransactionControllerHandleMethodDataAction,\n TransactionControllerIsAtomicBatchSupportedAction,\n TransactionControllerStopTransactionAction,\n TransactionControllerSpeedUpTransactionAction,\n TransactionControllerEstimateGasBufferedAction,\n TransactionControllerUpdateEditableParamsAction,\n TransactionControllerSetTransactionActiveAction,\n TransactionControllerApproveTransactionsWithSameNonceAction,\n TransactionControllerEstimateGasFeeAction,\n TransactionControllerFailTransactionAction,\n TransactionControllerGetLayer1GasFeeAction,\n TransactionControllerClearUnapprovedTransactionsAction,\n TransactionControllerAbortTransactionSigningAction,\n TransactionControllerUpdateAtomicBatchDataAction,\n TransactionControllerWipeTransactionsAction,\n TransactionControllerUpdateSecurityAlertResponseAction,\n TransactionControllerUpdateTransactionGasFeesAction,\n TransactionControllerUpdatePreviousGasParamsAction,\n TransactionControllerUpdateSelectedGasFeeTokenAction,\n TransactionControllerUpdateRequiredTransactionIdsAction,\n} from './TransactionController-method-action-types.js';\nexport {\n CANCEL_RATE,\n SPEED_UP_RATE,\n TransactionController,\n} from './TransactionController.js';\nexport type {\n AddTransactionOptions,\n AfterAddHook,\n Authorization,\n AuthorizationList,\n BatchTransaction,\n BatchTransactionParams,\n BeforeSignHook,\n DappSuggestedGasFees,\n DefaultGasEstimates,\n FeeMarketEIP1559Values,\n FeeMarketGasFeeEstimateForLevel,\n FeeMarketGasFeeEstimates,\n GasFeeEstimates,\n GasFeeToken,\n GasPriceGasFeeEstimates,\n GasPriceValue,\n GetGasFeeTokensRequest,\n GetSimulationConfig,\n InferTransactionTypeResult,\n IsAtomicBatchSupportedRequest,\n IsAtomicBatchSupportedResult,\n IsAtomicBatchSupportedResultEntry,\n LegacyGasFeeEstimates,\n Log,\n MetamaskPayMetadata,\n NestedTransactionMetadata,\n NestedTransactionUpdate,\n PublishBatchHook,\n PublishBatchHookRequest,\n PublishBatchHookResult,\n PublishBatchHookTransaction,\n PublishHook,\n PublishHookResult,\n RequiredAsset,\n SavedGasFees,\n SecurityAlertResponse,\n SendFlowHistoryEntry,\n SimulationBalanceChange,\n SimulationData,\n SimulationError,\n SimulationToken,\n SimulationTokenBalanceChange,\n TransactionBatchMeta,\n TransactionBatchRequest,\n TransactionBatchResult,\n TransactionBatchSingleRequest,\n TransactionError,\n TransactionHistory,\n TransactionHistoryEntry,\n TransactionMeta,\n TransactionParams,\n TransactionReceipt,\n ValidateSecurityRequest,\n} from './types.js';\nexport {\n GasFeeEstimateLevel,\n GasFeeEstimateType,\n SimulationErrorCode,\n SimulationTokenStandard,\n TransactionContainerType,\n TransactionEnvelopeType,\n TransactionStatus,\n TransactionType,\n UserFeeLevel,\n WalletDevice,\n} from './types.js';\nexport { mergeGasFeeEstimates } from './utils/gas-flow.js';\nexport {\n decodeAuthorizationSignature,\n generateEIP7702BatchTransaction,\n updateEIP7702BatchData,\n} from './utils/eip7702.js';\nexport {\n isEIP1559Transaction,\n normalizeTransactionParams,\n} from './utils/utils.js';\nexport { hasTransactionType } from './utils/transaction-type.js';\nexport { CHAIN_IDS } from './constants.js';\nexport { HARDFORK } from './utils/prepare.js';\nexport { getAccountAddressRelationship } from './api/accounts-api.js';\nexport type {\n GetAccountAddressRelationshipRequest,\n AccountAddressRelationshipResult,\n} from './api/accounts-api.js';\nexport { generateBatchId } from './utils/batch.js';\n"]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA4DA,wEAIoC;AAHlC,uHAAA,WAAW,OAAA;AACX,yHAAA,aAAa,OAAA;AACb,iIAAA,qBAAqB,OAAA;AAyDvB,wCAWoB;AAVlB,+GAAA,mBAAmB,OAAA;AACnB,8GAAA,kBAAkB,OAAA;AAClB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,oHAAA,wBAAwB,OAAA;AACxB,mHAAA,uBAAuB,OAAA;AACvB,6GAAA,iBAAiB,OAAA;AACjB,2GAAA,eAAe,OAAA;AACf,wGAAA,YAAY,OAAA;AACZ,wGAAA,YAAY,OAAA;AAEd,oDAA2D;AAAlD,mHAAA,oBAAoB,OAAA;AAC7B,kDAI4B;AAH1B,0HAAA,4BAA4B,OAAA;AAC5B,6HAAA,+BAA+B,OAAA;AAC/B,oHAAA,sBAAsB,OAAA;AAExB,8CAG0B;AAFxB,gHAAA,oBAAoB,OAAA;AACpB,sHAAA,0BAA0B,OAAA;AAE5B,oEAAiE;AAAxD,yHAAA,kBAAkB,OAAA;AAC3B,sDAA6D;AAApD,qHAAA,qBAAqB,OAAA;AAC9B,gDAA2C;AAAlC,yGAAA,SAAS,OAAA;AAClB,kDAA8C;AAArC,sGAAA,QAAQ,OAAA;AACjB,0DAAsE;AAA7D,gIAAA,6BAA6B,OAAA;AAKtC,8CAAmD;AAA1C,2GAAA,eAAe,OAAA","sourcesContent":["export type {\n MethodData,\n Result,\n TransactionControllerActions,\n TransactionControllerEvents,\n TransactionControllerGetStateAction,\n TransactionControllerPostTransactionBalanceUpdatedEvent,\n TransactionControllerSpeedupTransactionAddedEvent,\n TransactionControllerState,\n TransactionControllerStateChangeEvent,\n TransactionControllerTransactionApprovedEvent,\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerTransactionDroppedEvent,\n TransactionControllerTransactionFailedEvent,\n TransactionControllerTransactionFinishedEvent,\n TransactionControllerTransactionNewSwapApprovalEvent,\n TransactionControllerTransactionNewSwapEvent,\n TransactionControllerTransactionPublishingSkipped,\n TransactionControllerTransactionRejectedEvent,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionControllerMessenger,\n TransactionControllerOptions,\n} from './TransactionController.js';\nexport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerAddTransactionBatchAction,\n TransactionControllerConfirmExternalTransactionAction,\n TransactionControllerEmulateNewTransactionAction,\n TransactionControllerEmulateTransactionUpdateAction,\n TransactionControllerEstimateGasAction,\n TransactionControllerEstimateGasBatchAction,\n TransactionControllerGetGasFeeTokensAction,\n TransactionControllerGetNonceLockAction,\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateCustodialTransactionAction,\n TransactionControllerUpdateTransactionAction,\n TransactionControllerUpdateTransactionMetadataAction,\n TransactionControllerHandleMethodDataAction,\n TransactionControllerIsAtomicBatchSupportedAction,\n TransactionControllerStopTransactionAction,\n TransactionControllerSpeedUpTransactionAction,\n TransactionControllerEstimateGasBufferedAction,\n TransactionControllerUpdateEditableParamsAction,\n TransactionControllerSetTransactionActiveAction,\n TransactionControllerApproveTransactionsWithSameNonceAction,\n TransactionControllerEstimateGasFeeAction,\n TransactionControllerFailTransactionAction,\n TransactionControllerGetLayer1GasFeeAction,\n TransactionControllerClearUnapprovedTransactionsAction,\n TransactionControllerAbortTransactionSigningAction,\n TransactionControllerUpdateAtomicBatchDataAction,\n TransactionControllerWipeTransactionsAction,\n TransactionControllerUpdateSecurityAlertResponseAction,\n TransactionControllerUpdateTransactionGasFeesAction,\n TransactionControllerUpdatePreviousGasParamsAction,\n TransactionControllerUpdateSelectedGasFeeTokenAction,\n TransactionControllerUpdateRequiredTransactionIdsAction,\n} from './TransactionController-method-action-types.js';\nexport {\n CANCEL_RATE,\n SPEED_UP_RATE,\n TransactionController,\n} from './TransactionController.js';\nexport type {\n AddTransactionOptions,\n AfterAddHook,\n Authorization,\n AuthorizationList,\n BatchTransaction,\n BatchTransactionParams,\n BeforeSignHook,\n DappSuggestedGasFees,\n DefaultGasEstimates,\n FeeMarketEIP1559Values,\n FeeMarketGasFeeEstimateForLevel,\n FeeMarketGasFeeEstimates,\n GasFeeEstimates,\n GasFeeToken,\n GasPriceGasFeeEstimates,\n GasPriceValue,\n GetGasFeeTokensRequest,\n GetSimulationConfig,\n InferTransactionTypeResult,\n IsAtomicBatchSupportedRequest,\n IsAtomicBatchSupportedResult,\n IsAtomicBatchSupportedResultEntry,\n LegacyGasFeeEstimates,\n Log,\n MetamaskPayMetadata,\n NestedTransactionMetadata,\n NestedTransactionUpdate,\n PublishBatchHook,\n PublishBatchHookRequest,\n PublishBatchHookResult,\n PublishBatchHookTransaction,\n PublishHook,\n PublishHookResult,\n RequiredAsset,\n SavedGasFees,\n SecurityAlertResponse,\n SendFlowHistoryEntry,\n SimulationBalanceChange,\n SimulationData,\n SimulationError,\n SimulationToken,\n SimulationTokenBalanceChange,\n TransactionBatchMeta,\n TransactionBatchRequest,\n TransactionBatchResult,\n TransactionBatchSingleRequest,\n TransactionError,\n TransactionHistory,\n TransactionHistoryEntry,\n TransactionMeta,\n TransactionParams,\n TransactionReceipt,\n ValidateSecurityRequest,\n} from './types.js';\nexport {\n GasFeeEstimateLevel,\n GasFeeEstimateType,\n SimulationErrorCode,\n SimulationTokenStandard,\n TransactionContainerType,\n TransactionEnvelopeType,\n TransactionStatus,\n TransactionType,\n UserFeeLevel,\n WalletDevice,\n} from './types.js';\nexport { mergeGasFeeEstimates } from './utils/gas-flow.js';\nexport {\n decodeAuthorizationSignature,\n generateEIP7702BatchTransaction,\n updateEIP7702BatchData,\n} from './utils/eip7702.js';\nexport {\n isEIP1559Transaction,\n normalizeTransactionParams,\n} from './utils/utils.js';\nexport { hasTransactionType } from './utils/transaction-type.js';\nexport { getEffectiveRecipient } from './utils/recipient.js';\nexport { CHAIN_IDS } from './constants.js';\nexport { HARDFORK } from './utils/prepare.js';\nexport { getAccountAddressRelationship } from './api/accounts-api.js';\nexport type {\n GetAccountAddressRelationshipRequest,\n AccountAddressRelationshipResult,\n} from './api/accounts-api.js';\nexport { generateBatchId } from './utils/batch.js';\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -7,6 +7,7 @@ export { mergeGasFeeEstimates } from "./utils/gas-flow.cjs";
|
|
|
7
7
|
export { decodeAuthorizationSignature, generateEIP7702BatchTransaction, updateEIP7702BatchData, } from "./utils/eip7702.cjs";
|
|
8
8
|
export { isEIP1559Transaction, normalizeTransactionParams, } from "./utils/utils.cjs";
|
|
9
9
|
export { hasTransactionType } from "./utils/transaction-type.cjs";
|
|
10
|
+
export { getEffectiveRecipient } from "./utils/recipient.cjs";
|
|
10
11
|
export { CHAIN_IDS } from "./constants.cjs";
|
|
11
12
|
export { HARDFORK } from "./utils/prepare.cjs";
|
|
12
13
|
export { getAccountAddressRelationship } from "./api/accounts-api.cjs";
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -7,6 +7,7 @@ export { mergeGasFeeEstimates } from "./utils/gas-flow.mjs";
|
|
|
7
7
|
export { decodeAuthorizationSignature, generateEIP7702BatchTransaction, updateEIP7702BatchData, } from "./utils/eip7702.mjs";
|
|
8
8
|
export { isEIP1559Transaction, normalizeTransactionParams, } from "./utils/utils.mjs";
|
|
9
9
|
export { hasTransactionType } from "./utils/transaction-type.mjs";
|
|
10
|
+
export { getEffectiveRecipient } from "./utils/recipient.mjs";
|
|
10
11
|
export { CHAIN_IDS } from "./constants.mjs";
|
|
11
12
|
export { HARDFORK } from "./utils/prepare.mjs";
|
|
12
13
|
export { getAccountAddressRelationship } from "./api/accounts-api.mjs";
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -4,6 +4,7 @@ export { mergeGasFeeEstimates } from "./utils/gas-flow.mjs";
|
|
|
4
4
|
export { decodeAuthorizationSignature, generateEIP7702BatchTransaction, updateEIP7702BatchData } from "./utils/eip7702.mjs";
|
|
5
5
|
export { isEIP1559Transaction, normalizeTransactionParams } from "./utils/utils.mjs";
|
|
6
6
|
export { hasTransactionType } from "./utils/transaction-type.mjs";
|
|
7
|
+
export { getEffectiveRecipient } from "./utils/recipient.mjs";
|
|
7
8
|
export { CHAIN_IDS } from "./constants.mjs";
|
|
8
9
|
export { HARDFORK } from "./utils/prepare.mjs";
|
|
9
10
|
export { getAccountAddressRelationship } from "./api/accounts-api.mjs";
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4DA,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,EACtB,oCAAmC;AAwDpC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACb,oBAAmB;AACpB,OAAO,EAAE,oBAAoB,EAAE,6BAA4B;AAC3D,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,sBAAsB,EACvB,4BAA2B;AAC5B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,0BAAyB;AAC1B,OAAO,EAAE,kBAAkB,EAAE,qCAAoC;AACjE,OAAO,EAAE,SAAS,EAAE,wBAAuB;AAC3C,OAAO,EAAE,QAAQ,EAAE,4BAA2B;AAC9C,OAAO,EAAE,6BAA6B,EAAE,+BAA8B;AAKtE,OAAO,EAAE,eAAe,EAAE,0BAAyB","sourcesContent":["export type {\n MethodData,\n Result,\n TransactionControllerActions,\n TransactionControllerEvents,\n TransactionControllerGetStateAction,\n TransactionControllerPostTransactionBalanceUpdatedEvent,\n TransactionControllerSpeedupTransactionAddedEvent,\n TransactionControllerState,\n TransactionControllerStateChangeEvent,\n TransactionControllerTransactionApprovedEvent,\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerTransactionDroppedEvent,\n TransactionControllerTransactionFailedEvent,\n TransactionControllerTransactionFinishedEvent,\n TransactionControllerTransactionNewSwapApprovalEvent,\n TransactionControllerTransactionNewSwapEvent,\n TransactionControllerTransactionPublishingSkipped,\n TransactionControllerTransactionRejectedEvent,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionControllerMessenger,\n TransactionControllerOptions,\n} from './TransactionController.js';\nexport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerAddTransactionBatchAction,\n TransactionControllerConfirmExternalTransactionAction,\n TransactionControllerEmulateNewTransactionAction,\n TransactionControllerEmulateTransactionUpdateAction,\n TransactionControllerEstimateGasAction,\n TransactionControllerEstimateGasBatchAction,\n TransactionControllerGetGasFeeTokensAction,\n TransactionControllerGetNonceLockAction,\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateCustodialTransactionAction,\n TransactionControllerUpdateTransactionAction,\n TransactionControllerUpdateTransactionMetadataAction,\n TransactionControllerHandleMethodDataAction,\n TransactionControllerIsAtomicBatchSupportedAction,\n TransactionControllerStopTransactionAction,\n TransactionControllerSpeedUpTransactionAction,\n TransactionControllerEstimateGasBufferedAction,\n TransactionControllerUpdateEditableParamsAction,\n TransactionControllerSetTransactionActiveAction,\n TransactionControllerApproveTransactionsWithSameNonceAction,\n TransactionControllerEstimateGasFeeAction,\n TransactionControllerFailTransactionAction,\n TransactionControllerGetLayer1GasFeeAction,\n TransactionControllerClearUnapprovedTransactionsAction,\n TransactionControllerAbortTransactionSigningAction,\n TransactionControllerUpdateAtomicBatchDataAction,\n TransactionControllerWipeTransactionsAction,\n TransactionControllerUpdateSecurityAlertResponseAction,\n TransactionControllerUpdateTransactionGasFeesAction,\n TransactionControllerUpdatePreviousGasParamsAction,\n TransactionControllerUpdateSelectedGasFeeTokenAction,\n TransactionControllerUpdateRequiredTransactionIdsAction,\n} from './TransactionController-method-action-types.js';\nexport {\n CANCEL_RATE,\n SPEED_UP_RATE,\n TransactionController,\n} from './TransactionController.js';\nexport type {\n AddTransactionOptions,\n AfterAddHook,\n Authorization,\n AuthorizationList,\n BatchTransaction,\n BatchTransactionParams,\n BeforeSignHook,\n DappSuggestedGasFees,\n DefaultGasEstimates,\n FeeMarketEIP1559Values,\n FeeMarketGasFeeEstimateForLevel,\n FeeMarketGasFeeEstimates,\n GasFeeEstimates,\n GasFeeToken,\n GasPriceGasFeeEstimates,\n GasPriceValue,\n GetGasFeeTokensRequest,\n GetSimulationConfig,\n InferTransactionTypeResult,\n IsAtomicBatchSupportedRequest,\n IsAtomicBatchSupportedResult,\n IsAtomicBatchSupportedResultEntry,\n LegacyGasFeeEstimates,\n Log,\n MetamaskPayMetadata,\n NestedTransactionMetadata,\n NestedTransactionUpdate,\n PublishBatchHook,\n PublishBatchHookRequest,\n PublishBatchHookResult,\n PublishBatchHookTransaction,\n PublishHook,\n PublishHookResult,\n RequiredAsset,\n SavedGasFees,\n SecurityAlertResponse,\n SendFlowHistoryEntry,\n SimulationBalanceChange,\n SimulationData,\n SimulationError,\n SimulationToken,\n SimulationTokenBalanceChange,\n TransactionBatchMeta,\n TransactionBatchRequest,\n TransactionBatchResult,\n TransactionBatchSingleRequest,\n TransactionError,\n TransactionHistory,\n TransactionHistoryEntry,\n TransactionMeta,\n TransactionParams,\n TransactionReceipt,\n ValidateSecurityRequest,\n} from './types.js';\nexport {\n GasFeeEstimateLevel,\n GasFeeEstimateType,\n SimulationErrorCode,\n SimulationTokenStandard,\n TransactionContainerType,\n TransactionEnvelopeType,\n TransactionStatus,\n TransactionType,\n UserFeeLevel,\n WalletDevice,\n} from './types.js';\nexport { mergeGasFeeEstimates } from './utils/gas-flow.js';\nexport {\n decodeAuthorizationSignature,\n generateEIP7702BatchTransaction,\n updateEIP7702BatchData,\n} from './utils/eip7702.js';\nexport {\n isEIP1559Transaction,\n normalizeTransactionParams,\n} from './utils/utils.js';\nexport { hasTransactionType } from './utils/transaction-type.js';\nexport { CHAIN_IDS } from './constants.js';\nexport { HARDFORK } from './utils/prepare.js';\nexport { getAccountAddressRelationship } from './api/accounts-api.js';\nexport type {\n GetAccountAddressRelationshipRequest,\n AccountAddressRelationshipResult,\n} from './api/accounts-api.js';\nexport { generateBatchId } from './utils/batch.js';\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4DA,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,EACtB,oCAAmC;AAwDpC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACb,oBAAmB;AACpB,OAAO,EAAE,oBAAoB,EAAE,6BAA4B;AAC3D,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,sBAAsB,EACvB,4BAA2B;AAC5B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,0BAAyB;AAC1B,OAAO,EAAE,kBAAkB,EAAE,qCAAoC;AACjE,OAAO,EAAE,qBAAqB,EAAE,8BAA6B;AAC7D,OAAO,EAAE,SAAS,EAAE,wBAAuB;AAC3C,OAAO,EAAE,QAAQ,EAAE,4BAA2B;AAC9C,OAAO,EAAE,6BAA6B,EAAE,+BAA8B;AAKtE,OAAO,EAAE,eAAe,EAAE,0BAAyB","sourcesContent":["export type {\n MethodData,\n Result,\n TransactionControllerActions,\n TransactionControllerEvents,\n TransactionControllerGetStateAction,\n TransactionControllerPostTransactionBalanceUpdatedEvent,\n TransactionControllerSpeedupTransactionAddedEvent,\n TransactionControllerState,\n TransactionControllerStateChangeEvent,\n TransactionControllerTransactionApprovedEvent,\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerTransactionDroppedEvent,\n TransactionControllerTransactionFailedEvent,\n TransactionControllerTransactionFinishedEvent,\n TransactionControllerTransactionNewSwapApprovalEvent,\n TransactionControllerTransactionNewSwapEvent,\n TransactionControllerTransactionPublishingSkipped,\n TransactionControllerTransactionRejectedEvent,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionControllerMessenger,\n TransactionControllerOptions,\n} from './TransactionController.js';\nexport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerAddTransactionBatchAction,\n TransactionControllerConfirmExternalTransactionAction,\n TransactionControllerEmulateNewTransactionAction,\n TransactionControllerEmulateTransactionUpdateAction,\n TransactionControllerEstimateGasAction,\n TransactionControllerEstimateGasBatchAction,\n TransactionControllerGetGasFeeTokensAction,\n TransactionControllerGetNonceLockAction,\n TransactionControllerGetTransactionsAction,\n TransactionControllerUpdateCustodialTransactionAction,\n TransactionControllerUpdateTransactionAction,\n TransactionControllerUpdateTransactionMetadataAction,\n TransactionControllerHandleMethodDataAction,\n TransactionControllerIsAtomicBatchSupportedAction,\n TransactionControllerStopTransactionAction,\n TransactionControllerSpeedUpTransactionAction,\n TransactionControllerEstimateGasBufferedAction,\n TransactionControllerUpdateEditableParamsAction,\n TransactionControllerSetTransactionActiveAction,\n TransactionControllerApproveTransactionsWithSameNonceAction,\n TransactionControllerEstimateGasFeeAction,\n TransactionControllerFailTransactionAction,\n TransactionControllerGetLayer1GasFeeAction,\n TransactionControllerClearUnapprovedTransactionsAction,\n TransactionControllerAbortTransactionSigningAction,\n TransactionControllerUpdateAtomicBatchDataAction,\n TransactionControllerWipeTransactionsAction,\n TransactionControllerUpdateSecurityAlertResponseAction,\n TransactionControllerUpdateTransactionGasFeesAction,\n TransactionControllerUpdatePreviousGasParamsAction,\n TransactionControllerUpdateSelectedGasFeeTokenAction,\n TransactionControllerUpdateRequiredTransactionIdsAction,\n} from './TransactionController-method-action-types.js';\nexport {\n CANCEL_RATE,\n SPEED_UP_RATE,\n TransactionController,\n} from './TransactionController.js';\nexport type {\n AddTransactionOptions,\n AfterAddHook,\n Authorization,\n AuthorizationList,\n BatchTransaction,\n BatchTransactionParams,\n BeforeSignHook,\n DappSuggestedGasFees,\n DefaultGasEstimates,\n FeeMarketEIP1559Values,\n FeeMarketGasFeeEstimateForLevel,\n FeeMarketGasFeeEstimates,\n GasFeeEstimates,\n GasFeeToken,\n GasPriceGasFeeEstimates,\n GasPriceValue,\n GetGasFeeTokensRequest,\n GetSimulationConfig,\n InferTransactionTypeResult,\n IsAtomicBatchSupportedRequest,\n IsAtomicBatchSupportedResult,\n IsAtomicBatchSupportedResultEntry,\n LegacyGasFeeEstimates,\n Log,\n MetamaskPayMetadata,\n NestedTransactionMetadata,\n NestedTransactionUpdate,\n PublishBatchHook,\n PublishBatchHookRequest,\n PublishBatchHookResult,\n PublishBatchHookTransaction,\n PublishHook,\n PublishHookResult,\n RequiredAsset,\n SavedGasFees,\n SecurityAlertResponse,\n SendFlowHistoryEntry,\n SimulationBalanceChange,\n SimulationData,\n SimulationError,\n SimulationToken,\n SimulationTokenBalanceChange,\n TransactionBatchMeta,\n TransactionBatchRequest,\n TransactionBatchResult,\n TransactionBatchSingleRequest,\n TransactionError,\n TransactionHistory,\n TransactionHistoryEntry,\n TransactionMeta,\n TransactionParams,\n TransactionReceipt,\n ValidateSecurityRequest,\n} from './types.js';\nexport {\n GasFeeEstimateLevel,\n GasFeeEstimateType,\n SimulationErrorCode,\n SimulationTokenStandard,\n TransactionContainerType,\n TransactionEnvelopeType,\n TransactionStatus,\n TransactionType,\n UserFeeLevel,\n WalletDevice,\n} from './types.js';\nexport { mergeGasFeeEstimates } from './utils/gas-flow.js';\nexport {\n decodeAuthorizationSignature,\n generateEIP7702BatchTransaction,\n updateEIP7702BatchData,\n} from './utils/eip7702.js';\nexport {\n isEIP1559Transaction,\n normalizeTransactionParams,\n} from './utils/utils.js';\nexport { hasTransactionType } from './utils/transaction-type.js';\nexport { getEffectiveRecipient } from './utils/recipient.js';\nexport { CHAIN_IDS } from './constants.js';\nexport { HARDFORK } from './utils/prepare.js';\nexport { getAccountAddressRelationship } from './api/accounts-api.js';\nexport type {\n GetAccountAddressRelationshipRequest,\n AccountAddressRelationshipResult,\n} from './api/accounts-api.js';\nexport { generateBatchId } from './utils/batch.js';\n"]}
|
|
@@ -4,30 +4,8 @@ exports.updateFirstTimeInteraction = void 0;
|
|
|
4
4
|
const utils_1 = require("@metamask/utils");
|
|
5
5
|
const accounts_api_js_1 = require("../api/accounts-api.cjs");
|
|
6
6
|
const logger_js_1 = require("../logger.cjs");
|
|
7
|
-
const
|
|
8
|
-
const transaction_type_js_1 = require("./transaction-type.cjs");
|
|
7
|
+
const recipient_js_1 = require("./recipient.cjs");
|
|
9
8
|
const validation_js_1 = require("./validation.cjs");
|
|
10
|
-
const TOKEN_TRANSFER_TYPES = [
|
|
11
|
-
types_js_1.TransactionType.tokenMethodTransfer,
|
|
12
|
-
types_js_1.TransactionType.tokenMethodTransferFrom,
|
|
13
|
-
types_js_1.TransactionType.tokenMethodSafeTransferFrom,
|
|
14
|
-
];
|
|
15
|
-
/**
|
|
16
|
-
* Returns the effective recipient for first-time-interaction checks (decoded from data for token transfers).
|
|
17
|
-
* Used when comparing existing transactions so we match by actual recipient, not txParams.to (the token
|
|
18
|
-
* contract for ERC20/ERC721/ERC1155 transfer methods).
|
|
19
|
-
*
|
|
20
|
-
* @param tx - Transaction meta with txParams and type
|
|
21
|
-
* @returns Effective recipient address, or undefined
|
|
22
|
-
*/
|
|
23
|
-
function getEffectiveRecipient(tx) {
|
|
24
|
-
const { data, to } = tx?.txParams ?? {};
|
|
25
|
-
if (data && TOKEN_TRANSFER_TYPES.includes(tx?.type)) {
|
|
26
|
-
const parsed = (0, transaction_type_js_1.decodeTransactionData)(data);
|
|
27
|
-
return (parsed?.args?._to ?? parsed?.args?.to ?? to);
|
|
28
|
-
}
|
|
29
|
-
return to;
|
|
30
|
-
}
|
|
31
9
|
/**
|
|
32
10
|
* Updates the first-time interaction status for a transaction.
|
|
33
11
|
*
|
|
@@ -46,7 +24,7 @@ async function updateFirstTimeInteraction({ existingTransactions, getTransaction
|
|
|
46
24
|
return;
|
|
47
25
|
}
|
|
48
26
|
const { chainId, id: transactionId, txParams: { from }, } = transactionMeta;
|
|
49
|
-
const recipient = getEffectiveRecipient(transactionMeta);
|
|
27
|
+
const recipient = (0, recipient_js_1.getEffectiveRecipient)(transactionMeta);
|
|
50
28
|
const request = {
|
|
51
29
|
chainId: (0, utils_1.hexToNumber)(chainId),
|
|
52
30
|
to: recipient,
|
|
@@ -57,7 +35,7 @@ async function updateFirstTimeInteraction({ existingTransactions, getTransaction
|
|
|
57
35
|
const existingTransaction = existingTransactions.find((tx) => tx.id !== transactionId &&
|
|
58
36
|
tx.chainId === chainId &&
|
|
59
37
|
tx.txParams?.from?.toLowerCase() === from?.toLowerCase() &&
|
|
60
|
-
getEffectiveRecipient(tx)?.toLowerCase() === recipientLower);
|
|
38
|
+
(0, recipient_js_1.getEffectiveRecipient)(tx)?.toLowerCase() === recipientLower);
|
|
61
39
|
// Skip API call only if we already have a tx with same from and same effective recipient (e.g. duplicate or pending).
|
|
62
40
|
// For token transfers (ERC20/ERC721/ERC1155), effective recipient is decoded from data; using txParams.to
|
|
63
41
|
// would wrongly match any send of the same token contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-time-interaction.cjs","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"first-time-interaction.cjs","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C,6DAAuE;AAEvE,6CAAoD;AAEpD,kDAAuD;AACvD,oDAAkD;AAkBlD;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,0BAA0B,CAAC,EAC/C,oBAAoB,EACpB,cAAc,EACd,6BAA6B,EAC7B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GACiB;IAClC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,EACJ,OAAO,EACP,EAAE,EAAE,aAAa,EACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,GACnB,GAAG,eAAe,CAAC;IAEpB,MAAM,SAAS,GAAG,IAAA,oCAAqB,EAAC,eAAe,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAyC;QACpD,OAAO,EAAE,IAAA,mBAAW,EAAC,OAAO,CAAC;QAC7B,EAAE,EAAE,SAAmB;QACvB,IAAI;KACL,CAAC;IAEF,IAAA,+BAAe,EAAC,SAAS,CAAC,CAAC;IAE3B,MAAM,cAAc,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC;IAChD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACnD,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,EAAE,KAAK,aAAa;QACvB,EAAE,CAAC,OAAO,KAAK,OAAO;QACtB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,WAAW,EAAE;QACxD,IAAA,oCAAqB,EAAC,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,cAAc,CAC9D,CAAC;IAEF,sHAAsH;IACtH,0GAA0G;IAC1G,2DAA2D;IAC3D,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAC3B,EAAE,IAAI,EAAE,8BAA8B,EAAE,aAAa,EAAE,YAAY,EAAE,EACrE,GAAG,EAAE,CAAC,IAAA,+CAA6B,EAAC,OAAO,CAAC,CAC7C,CAAC;QAEF,MAAM,sBAAsB,GAC1B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAEhD,MAAM,oBAAoB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAE3D,wBAAwB;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,IAAA,yBAAG,EACD,+DAA+D,EAC/D,aAAa,CACd,CAAC;YACF,OAAO;QACT,CAAC;QAED,iBAAiB,CACf;YACE,aAAa;YACb,IAAI,EAAE,8EAA8E;SACrF,EACD,CAAC,MAAM,EAAE,EAAE;YACT,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACzD,CAAC,CACF,CAAC;QAEF,IAAA,yBAAG,EAAC,gCAAgC,EAAE,aAAa,EAAE;YACnD,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,yBAAG,EACD,qFAAqF,EACrF,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AApFD,gEAoFC","sourcesContent":["import type { TraceContext, TraceCallback } from '@metamask/controller-utils';\nimport { hexToNumber } from '@metamask/utils';\n\nimport { getAccountAddressRelationship } from '../api/accounts-api.js';\nimport type { GetAccountAddressRelationshipRequest } from '../api/accounts-api.js';\nimport { projectLogger as log } from '../logger.js';\nimport type { TransactionMeta } from '../types.js';\nimport { getEffectiveRecipient } from './recipient.js';\nimport { validateParamTo } from './validation.js';\n\ntype UpdateFirstTimeInteractionRequest = {\n existingTransactions: TransactionMeta[];\n getTransaction: (transactionId: string) => TransactionMeta | undefined;\n isFirstTimeInteractionEnabled: () => boolean;\n trace: TraceCallback;\n traceContext?: TraceContext;\n transactionMeta: TransactionMeta;\n updateTransaction: (\n updateParams: {\n transactionId: string;\n note: string;\n },\n updater: (txMeta: TransactionMeta) => void,\n ) => void;\n};\n\n/**\n * Updates the first-time interaction status for a transaction.\n *\n * @param params - The parameters for updating first time interaction.\n * @param params.existingTransactions - The existing transactions.\n * @param params.getTransaction - Function to get a transaction by ID.\n * @param params.isFirstTimeInteractionEnabled - The function to check if first time interaction is enabled.\n * @param params.trace - The trace callback.\n * @param params.traceContext - The trace context.\n * @param params.transactionMeta - The transaction meta object.\n * @param params.updateTransaction - Function to update transaction internal state.\n * @returns Promise that resolves when the update is complete.\n */\nexport async function updateFirstTimeInteraction({\n existingTransactions,\n getTransaction,\n isFirstTimeInteractionEnabled,\n trace,\n traceContext,\n transactionMeta,\n updateTransaction,\n}: UpdateFirstTimeInteractionRequest): Promise<void> {\n if (!isFirstTimeInteractionEnabled()) {\n return;\n }\n\n const {\n chainId,\n id: transactionId,\n txParams: { from },\n } = transactionMeta;\n\n const recipient = getEffectiveRecipient(transactionMeta);\n\n const request: GetAccountAddressRelationshipRequest = {\n chainId: hexToNumber(chainId),\n to: recipient as string,\n from,\n };\n\n validateParamTo(recipient);\n\n const recipientLower = recipient?.toLowerCase();\n const existingTransaction = existingTransactions.find(\n (tx) =>\n tx.id !== transactionId &&\n tx.chainId === chainId &&\n tx.txParams?.from?.toLowerCase() === from?.toLowerCase() &&\n getEffectiveRecipient(tx)?.toLowerCase() === recipientLower,\n );\n\n // Skip API call only if we already have a tx with same from and same effective recipient (e.g. duplicate or pending).\n // For token transfers (ERC20/ERC721/ERC1155), effective recipient is decoded from data; using txParams.to\n // would wrongly match any send of the same token contract.\n if (existingTransaction) {\n return;\n }\n\n try {\n const { count } = await trace(\n { name: 'Account Address Relationship', parentContext: traceContext },\n () => getAccountAddressRelationship(request),\n );\n\n const isFirstTimeInteraction =\n count === undefined ? undefined : count === 0;\n\n const finalTransactionMeta = getTransaction(transactionId);\n\n /* istanbul ignore if */\n if (!finalTransactionMeta) {\n log(\n 'Cannot update first time interaction as transaction not found',\n transactionId,\n );\n return;\n }\n\n updateTransaction(\n {\n transactionId,\n note: 'TransactionController#updateFirstInteraction - Update first time interaction',\n },\n (txMeta) => {\n txMeta.isFirstTimeInteraction = isFirstTimeInteraction;\n },\n );\n\n log('Updated first time interaction', transactionId, {\n isFirstTimeInteraction,\n });\n } catch (error) {\n log(\n 'Error fetching account address relationship, skipping first time interaction update',\n error,\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-time-interaction.d.cts","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"first-time-interaction.d.cts","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,mCAAmC;AAM9E,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAoB;AAInD,KAAK,iCAAiC,GAAG;IACvC,oBAAoB,EAAE,eAAe,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IACvE,6BAA6B,EAAE,MAAM,OAAO,CAAC;IAC7C,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,CACjB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,KACvC,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAAC,EAC/C,oBAAoB,EACpB,cAAc,EACd,6BAA6B,EAC7B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,EAAE,iCAAiC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-time-interaction.d.mts","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"first-time-interaction.d.mts","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,mCAAmC;AAM9E,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAoB;AAInD,KAAK,iCAAiC,GAAG;IACvC,oBAAoB,EAAE,eAAe,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IACvE,6BAA6B,EAAE,MAAM,OAAO,CAAC;IAC7C,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,CACjB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,KACvC,IAAI,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAAC,EAC/C,oBAAoB,EACpB,cAAc,EACd,6BAA6B,EAC7B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,EAAE,iCAAiC,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EnD"}
|
|
@@ -1,30 +1,8 @@
|
|
|
1
1
|
import { hexToNumber } from "@metamask/utils";
|
|
2
2
|
import { getAccountAddressRelationship } from "../api/accounts-api.mjs";
|
|
3
3
|
import { projectLogger as log } from "../logger.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { decodeTransactionData } from "./transaction-type.mjs";
|
|
4
|
+
import { getEffectiveRecipient } from "./recipient.mjs";
|
|
6
5
|
import { validateParamTo } from "./validation.mjs";
|
|
7
|
-
const TOKEN_TRANSFER_TYPES = [
|
|
8
|
-
TransactionType.tokenMethodTransfer,
|
|
9
|
-
TransactionType.tokenMethodTransferFrom,
|
|
10
|
-
TransactionType.tokenMethodSafeTransferFrom,
|
|
11
|
-
];
|
|
12
|
-
/**
|
|
13
|
-
* Returns the effective recipient for first-time-interaction checks (decoded from data for token transfers).
|
|
14
|
-
* Used when comparing existing transactions so we match by actual recipient, not txParams.to (the token
|
|
15
|
-
* contract for ERC20/ERC721/ERC1155 transfer methods).
|
|
16
|
-
*
|
|
17
|
-
* @param tx - Transaction meta with txParams and type
|
|
18
|
-
* @returns Effective recipient address, or undefined
|
|
19
|
-
*/
|
|
20
|
-
function getEffectiveRecipient(tx) {
|
|
21
|
-
const { data, to } = tx?.txParams ?? {};
|
|
22
|
-
if (data && TOKEN_TRANSFER_TYPES.includes(tx?.type)) {
|
|
23
|
-
const parsed = decodeTransactionData(data);
|
|
24
|
-
return (parsed?.args?._to ?? parsed?.args?.to ?? to);
|
|
25
|
-
}
|
|
26
|
-
return to;
|
|
27
|
-
}
|
|
28
6
|
/**
|
|
29
7
|
* Updates the first-time interaction status for a transaction.
|
|
30
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-time-interaction.mjs","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"first-time-interaction.mjs","sourceRoot":"","sources":["../../src/utils/first-time-interaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,wBAAwB;AAE9C,OAAO,EAAE,6BAA6B,EAAE,gCAA+B;AAEvE,OAAO,EAAE,aAAa,IAAI,GAAG,EAAE,sBAAqB;AAEpD,OAAO,EAAE,qBAAqB,EAAE,wBAAuB;AACvD,OAAO,EAAE,eAAe,EAAE,yBAAwB;AAkBlD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,oBAAoB,EACpB,cAAc,EACd,6BAA6B,EAC7B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GACiB;IAClC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,EACJ,OAAO,EACP,EAAE,EAAE,aAAa,EACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,GACnB,GAAG,eAAe,CAAC;IAEpB,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAyC;QACpD,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;QAC7B,EAAE,EAAE,SAAmB;QACvB,IAAI;KACL,CAAC;IAEF,eAAe,CAAC,SAAS,CAAC,CAAC;IAE3B,MAAM,cAAc,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC;IAChD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACnD,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,EAAE,KAAK,aAAa;QACvB,EAAE,CAAC,OAAO,KAAK,OAAO;QACtB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,WAAW,EAAE;QACxD,qBAAqB,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,cAAc,CAC9D,CAAC;IAEF,sHAAsH;IACtH,0GAA0G;IAC1G,2DAA2D;IAC3D,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAC3B,EAAE,IAAI,EAAE,8BAA8B,EAAE,aAAa,EAAE,YAAY,EAAE,EACrE,GAAG,EAAE,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAC7C,CAAC;QAEF,MAAM,sBAAsB,GAC1B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAEhD,MAAM,oBAAoB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;QAE3D,wBAAwB;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,GAAG,CACD,+DAA+D,EAC/D,aAAa,CACd,CAAC;YACF,OAAO;QACT,CAAC;QAED,iBAAiB,CACf;YACE,aAAa;YACb,IAAI,EAAE,8EAA8E;SACrF,EACD,CAAC,MAAM,EAAE,EAAE;YACT,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACzD,CAAC,CACF,CAAC;QAEF,GAAG,CAAC,gCAAgC,EAAE,aAAa,EAAE;YACnD,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CACD,qFAAqF,EACrF,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import type { TraceContext, TraceCallback } from '@metamask/controller-utils';\nimport { hexToNumber } from '@metamask/utils';\n\nimport { getAccountAddressRelationship } from '../api/accounts-api.js';\nimport type { GetAccountAddressRelationshipRequest } from '../api/accounts-api.js';\nimport { projectLogger as log } from '../logger.js';\nimport type { TransactionMeta } from '../types.js';\nimport { getEffectiveRecipient } from './recipient.js';\nimport { validateParamTo } from './validation.js';\n\ntype UpdateFirstTimeInteractionRequest = {\n existingTransactions: TransactionMeta[];\n getTransaction: (transactionId: string) => TransactionMeta | undefined;\n isFirstTimeInteractionEnabled: () => boolean;\n trace: TraceCallback;\n traceContext?: TraceContext;\n transactionMeta: TransactionMeta;\n updateTransaction: (\n updateParams: {\n transactionId: string;\n note: string;\n },\n updater: (txMeta: TransactionMeta) => void,\n ) => void;\n};\n\n/**\n * Updates the first-time interaction status for a transaction.\n *\n * @param params - The parameters for updating first time interaction.\n * @param params.existingTransactions - The existing transactions.\n * @param params.getTransaction - Function to get a transaction by ID.\n * @param params.isFirstTimeInteractionEnabled - The function to check if first time interaction is enabled.\n * @param params.trace - The trace callback.\n * @param params.traceContext - The trace context.\n * @param params.transactionMeta - The transaction meta object.\n * @param params.updateTransaction - Function to update transaction internal state.\n * @returns Promise that resolves when the update is complete.\n */\nexport async function updateFirstTimeInteraction({\n existingTransactions,\n getTransaction,\n isFirstTimeInteractionEnabled,\n trace,\n traceContext,\n transactionMeta,\n updateTransaction,\n}: UpdateFirstTimeInteractionRequest): Promise<void> {\n if (!isFirstTimeInteractionEnabled()) {\n return;\n }\n\n const {\n chainId,\n id: transactionId,\n txParams: { from },\n } = transactionMeta;\n\n const recipient = getEffectiveRecipient(transactionMeta);\n\n const request: GetAccountAddressRelationshipRequest = {\n chainId: hexToNumber(chainId),\n to: recipient as string,\n from,\n };\n\n validateParamTo(recipient);\n\n const recipientLower = recipient?.toLowerCase();\n const existingTransaction = existingTransactions.find(\n (tx) =>\n tx.id !== transactionId &&\n tx.chainId === chainId &&\n tx.txParams?.from?.toLowerCase() === from?.toLowerCase() &&\n getEffectiveRecipient(tx)?.toLowerCase() === recipientLower,\n );\n\n // Skip API call only if we already have a tx with same from and same effective recipient (e.g. duplicate or pending).\n // For token transfers (ERC20/ERC721/ERC1155), effective recipient is decoded from data; using txParams.to\n // would wrongly match any send of the same token contract.\n if (existingTransaction) {\n return;\n }\n\n try {\n const { count } = await trace(\n { name: 'Account Address Relationship', parentContext: traceContext },\n () => getAccountAddressRelationship(request),\n );\n\n const isFirstTimeInteraction =\n count === undefined ? undefined : count === 0;\n\n const finalTransactionMeta = getTransaction(transactionId);\n\n /* istanbul ignore if */\n if (!finalTransactionMeta) {\n log(\n 'Cannot update first time interaction as transaction not found',\n transactionId,\n );\n return;\n }\n\n updateTransaction(\n {\n transactionId,\n note: 'TransactionController#updateFirstInteraction - Update first time interaction',\n },\n (txMeta) => {\n txMeta.isFirstTimeInteraction = isFirstTimeInteraction;\n },\n );\n\n log('Updated first time interaction', transactionId, {\n isFirstTimeInteraction,\n });\n } catch (error) {\n log(\n 'Error fetching account address relationship, skipping first time interaction update',\n error,\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEffectiveRecipient = void 0;
|
|
4
|
+
const types_js_1 = require("../types.cjs");
|
|
5
|
+
const transaction_type_js_1 = require("./transaction-type.cjs");
|
|
6
|
+
const TOKEN_TRANSFER_TYPES = [
|
|
7
|
+
types_js_1.TransactionType.tokenMethodTransfer,
|
|
8
|
+
types_js_1.TransactionType.tokenMethodTransferFrom,
|
|
9
|
+
types_js_1.TransactionType.tokenMethodSafeTransferFrom,
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Returns the effective recipient of a transaction.
|
|
13
|
+
* For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
|
|
14
|
+
* from the calldata since `txParams.to` is the token contract rather than the
|
|
15
|
+
* address receiving the tokens. For all other transaction types, `txParams.to`
|
|
16
|
+
* is returned as-is.
|
|
17
|
+
*
|
|
18
|
+
* @param transactionMeta - Transaction meta with txParams and type.
|
|
19
|
+
* @returns Effective recipient address, or undefined.
|
|
20
|
+
*/
|
|
21
|
+
function getEffectiveRecipient(transactionMeta) {
|
|
22
|
+
const { data, to } = transactionMeta?.txParams ?? {};
|
|
23
|
+
if (data &&
|
|
24
|
+
TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type)) {
|
|
25
|
+
const parsed = (0, transaction_type_js_1.decodeTransactionData)(data);
|
|
26
|
+
return (parsed?.args?._to ?? parsed?.args?.to ?? to);
|
|
27
|
+
}
|
|
28
|
+
return to;
|
|
29
|
+
}
|
|
30
|
+
exports.getEffectiveRecipient = getEffectiveRecipient;
|
|
31
|
+
//# sourceMappingURL=recipient.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient.cjs","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":";;;AAEA,2CAA8C;AAE9C,gEAA8D;AAE9D,MAAM,oBAAoB,GAAG;IAC3B,0BAAe,CAAC,mBAAmB;IACnC,0BAAe,CAAC,uBAAuB;IACvC,0BAAe,CAAC,2BAA2B;CAC5C,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,eAAgC;IAEhC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,eAAe,EAAE,QAAQ,IAAI,EAAE,CAAC;IACrD,IACE,IAAI;QACJ,oBAAoB,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAuB,CAAC,EACvE,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,2CAAqB,EAAC,IAAI,CAA2B,CAAC;QACrE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAuB,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAZD,sDAYC","sourcesContent":["import type { TransactionDescription } from '@ethersproject/abi';\n\nimport { TransactionType } from '../types.js';\nimport type { TransactionMeta } from '../types.js';\nimport { decodeTransactionData } from './transaction-type.js';\n\nconst TOKEN_TRANSFER_TYPES = [\n TransactionType.tokenMethodTransfer,\n TransactionType.tokenMethodTransferFrom,\n TransactionType.tokenMethodSafeTransferFrom,\n];\n\n/**\n * Returns the effective recipient of a transaction.\n * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded\n * from the calldata since `txParams.to` is the token contract rather than the\n * address receiving the tokens. For all other transaction types, `txParams.to`\n * is returned as-is.\n *\n * @param transactionMeta - Transaction meta with txParams and type.\n * @returns Effective recipient address, or undefined.\n */\nexport function getEffectiveRecipient(\n transactionMeta: TransactionMeta,\n): string | undefined {\n const { data, to } = transactionMeta?.txParams ?? {};\n if (\n data &&\n TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type as TransactionType)\n ) {\n const parsed = decodeTransactionData(data) as TransactionDescription;\n return (parsed?.args?._to ?? parsed?.args?.to ?? to) as string | undefined;\n }\n return to;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TransactionMeta } from "../types.cjs";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the effective recipient of a transaction.
|
|
4
|
+
* For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
|
|
5
|
+
* from the calldata since `txParams.to` is the token contract rather than the
|
|
6
|
+
* address receiving the tokens. For all other transaction types, `txParams.to`
|
|
7
|
+
* is returned as-is.
|
|
8
|
+
*
|
|
9
|
+
* @param transactionMeta - Transaction meta with txParams and type.
|
|
10
|
+
* @returns Effective recipient address, or undefined.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getEffectiveRecipient(transactionMeta: TransactionMeta): string | undefined;
|
|
13
|
+
//# sourceMappingURL=recipient.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient.d.cts","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAoB;AASnD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,eAAe,GAC/B,MAAM,GAAG,SAAS,CAUpB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TransactionMeta } from "../types.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the effective recipient of a transaction.
|
|
4
|
+
* For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
|
|
5
|
+
* from the calldata since `txParams.to` is the token contract rather than the
|
|
6
|
+
* address receiving the tokens. For all other transaction types, `txParams.to`
|
|
7
|
+
* is returned as-is.
|
|
8
|
+
*
|
|
9
|
+
* @param transactionMeta - Transaction meta with txParams and type.
|
|
10
|
+
* @returns Effective recipient address, or undefined.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getEffectiveRecipient(transactionMeta: TransactionMeta): string | undefined;
|
|
13
|
+
//# sourceMappingURL=recipient.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient.d.mts","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAoB;AASnD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,eAAe,GAC/B,MAAM,GAAG,SAAS,CAUpB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TransactionType } from "../types.mjs";
|
|
2
|
+
import { decodeTransactionData } from "./transaction-type.mjs";
|
|
3
|
+
const TOKEN_TRANSFER_TYPES = [
|
|
4
|
+
TransactionType.tokenMethodTransfer,
|
|
5
|
+
TransactionType.tokenMethodTransferFrom,
|
|
6
|
+
TransactionType.tokenMethodSafeTransferFrom,
|
|
7
|
+
];
|
|
8
|
+
/**
|
|
9
|
+
* Returns the effective recipient of a transaction.
|
|
10
|
+
* For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded
|
|
11
|
+
* from the calldata since `txParams.to` is the token contract rather than the
|
|
12
|
+
* address receiving the tokens. For all other transaction types, `txParams.to`
|
|
13
|
+
* is returned as-is.
|
|
14
|
+
*
|
|
15
|
+
* @param transactionMeta - Transaction meta with txParams and type.
|
|
16
|
+
* @returns Effective recipient address, or undefined.
|
|
17
|
+
*/
|
|
18
|
+
export function getEffectiveRecipient(transactionMeta) {
|
|
19
|
+
const { data, to } = transactionMeta?.txParams ?? {};
|
|
20
|
+
if (data &&
|
|
21
|
+
TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type)) {
|
|
22
|
+
const parsed = decodeTransactionData(data);
|
|
23
|
+
return (parsed?.args?._to ?? parsed?.args?.to ?? to);
|
|
24
|
+
}
|
|
25
|
+
return to;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=recipient.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient.mjs","sourceRoot":"","sources":["../../src/utils/recipient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,qBAAoB;AAE9C,OAAO,EAAE,qBAAqB,EAAE,+BAA8B;AAE9D,MAAM,oBAAoB,GAAG;IAC3B,eAAe,CAAC,mBAAmB;IACnC,eAAe,CAAC,uBAAuB;IACvC,eAAe,CAAC,2BAA2B;CAC5C,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,eAAgC;IAEhC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,eAAe,EAAE,QAAQ,IAAI,EAAE,CAAC;IACrD,IACE,IAAI;QACJ,oBAAoB,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAuB,CAAC,EACvE,CAAC;QACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAA2B,CAAC;QACrE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAuB,CAAC;IAC7E,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["import type { TransactionDescription } from '@ethersproject/abi';\n\nimport { TransactionType } from '../types.js';\nimport type { TransactionMeta } from '../types.js';\nimport { decodeTransactionData } from './transaction-type.js';\n\nconst TOKEN_TRANSFER_TYPES = [\n TransactionType.tokenMethodTransfer,\n TransactionType.tokenMethodTransferFrom,\n TransactionType.tokenMethodSafeTransferFrom,\n];\n\n/**\n * Returns the effective recipient of a transaction.\n * For ERC-20/ERC-721/ERC-1155 token transfer methods, the recipient is decoded\n * from the calldata since `txParams.to` is the token contract rather than the\n * address receiving the tokens. For all other transaction types, `txParams.to`\n * is returned as-is.\n *\n * @param transactionMeta - Transaction meta with txParams and type.\n * @returns Effective recipient address, or undefined.\n */\nexport function getEffectiveRecipient(\n transactionMeta: TransactionMeta,\n): string | undefined {\n const { data, to } = transactionMeta?.txParams ?? {};\n if (\n data &&\n TOKEN_TRANSFER_TYPES.includes(transactionMeta?.type as TransactionType)\n ) {\n const parsed = decodeTransactionData(data) as TransactionDescription;\n return (parsed?.args?._to ?? parsed?.args?.to ?? to) as string | undefined;\n }\n return to;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/transaction-controller",
|
|
3
|
-
"version": "69.3.0-preview-
|
|
3
|
+
"version": "69.3.0-preview-5da60b6",
|
|
4
4
|
"description": "Stores transactions alongside their periodically updated statuses and manages interactions such as approval and cancellation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ethereum",
|