@metamask-previews/user-operation-controller 18.0.0-preview-913113cf → 18.0.0-preview-bb2f1fdd

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.
@@ -18,12 +18,12 @@ type PendingUserOperationPollingInput = {
18
18
  networkClientId: NetworkClientId;
19
19
  };
20
20
  declare const PendingUserOperationTracker_base: (abstract new (...args: any[]) => {
21
- "__#787886@#activeListeners": Record<string, (options: import("@metamask/utils").Json) => Promise<void>>;
21
+ "__#787877@#activeListeners": Record<string, (options: import("@metamask/utils").Json) => Promise<void>>;
22
22
  _getNetworkClientById(networkClientId: string): NetworkClient | undefined;
23
23
  _startPolling(input: PendingUserOperationPollingInput): void;
24
24
  _stopPollingByPollingTokenSetId(key: string): void;
25
- readonly "__#787879@#pollingTokenSets": Map<string, Set<string>>;
26
- "__#787879@#callbacks": Map<string, Set<(input: PendingUserOperationPollingInput) => void>>;
25
+ readonly "__#787870@#pollingTokenSets": Map<string, Set<string>>;
26
+ "__#787870@#callbacks": Map<string, Set<(input: PendingUserOperationPollingInput) => void>>;
27
27
  _executePoll(input: PendingUserOperationPollingInput): Promise<void>;
28
28
  startPolling(input: PendingUserOperationPollingInput): string;
29
29
  stopAllPolling(): void;
@@ -18,12 +18,12 @@ type PendingUserOperationPollingInput = {
18
18
  networkClientId: NetworkClientId;
19
19
  };
20
20
  declare const PendingUserOperationTracker_base: (abstract new (...args: any[]) => {
21
- "__#787886@#activeListeners": Record<string, (options: import("@metamask/utils").Json) => Promise<void>>;
21
+ "__#787877@#activeListeners": Record<string, (options: import("@metamask/utils").Json) => Promise<void>>;
22
22
  _getNetworkClientById(networkClientId: string): NetworkClient | undefined;
23
23
  _startPolling(input: PendingUserOperationPollingInput): void;
24
24
  _stopPollingByPollingTokenSetId(key: string): void;
25
- readonly "__#787879@#pollingTokenSets": Map<string, Set<string>>;
26
- "__#787879@#callbacks": Map<string, Set<(input: PendingUserOperationPollingInput) => void>>;
25
+ readonly "__#787870@#pollingTokenSets": Map<string, Set<string>>;
26
+ "__#787870@#callbacks": Map<string, Set<(input: PendingUserOperationPollingInput) => void>>;
27
27
  _executePoll(input: PendingUserOperationPollingInput): Promise<void>;
28
28
  startPolling(input: PendingUserOperationPollingInput): string;
29
29
  stopAllPolling(): void;
@@ -82,7 +82,6 @@ function getTransactionMetadata(metadata) {
82
82
  hash: transactionHash ?? undefined,
83
83
  id,
84
84
  isUserOperation: true,
85
- networkClientId: 'user-operation',
86
85
  origin,
87
86
  status,
88
87
  time,
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.cjs","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TransactionError,\n TransactionMeta,\n TransactionParams,\n} from '@metamask/transaction-controller';\nimport {\n TransactionStatus,\n UserFeeLevel,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { add0x, remove0x } from '@metamask/utils';\nimport BN from 'bn.js';\n\nimport { EMPTY_BYTES, VALUE_ZERO } from '../constants';\nimport { UserOperationStatus } from '../types';\nimport type { UserOperationMetadata } from '../types';\n\n/**\n * Converts a user operation metadata object into a transaction metadata object.\n * @param metadata - The user operation metadata object to convert.\n * @returns The equivalent transaction metadata object.\n */\nexport function getTransactionMetadata(\n metadata: UserOperationMetadata,\n): TransactionMeta | undefined {\n const {\n actualGasCost,\n actualGasUsed,\n baseFeePerGas,\n chainId,\n error: rawError,\n origin,\n transactionHash,\n id,\n swapsMetadata,\n time,\n transactionParams,\n transactionType,\n userFeeLevel: rawUserFeeLevel,\n userOperation,\n } = metadata;\n\n if (!transactionParams) {\n return undefined;\n }\n\n // effectiveGasPrice = actualGasCost / actualGasUsed\n const effectiveGasPrice =\n actualGasCost && actualGasUsed\n ? add0x(\n new BN(remove0x(actualGasCost), 16)\n .div(new BN(remove0x(actualGasUsed), 16))\n .toString(16),\n )\n : undefined;\n\n const error = (\n rawError\n ? {\n name: rawError.name,\n message: rawError.message,\n stack: rawError.stack,\n code: rawError.code,\n rpc: rawError.rpc,\n }\n : undefined\n ) as TransactionError;\n\n const status: TransactionStatus = {\n [UserOperationStatus.Unapproved]: TransactionStatus.unapproved,\n [UserOperationStatus.Approved]: TransactionStatus.approved,\n [UserOperationStatus.Signed]: TransactionStatus.signed,\n [UserOperationStatus.Submitted]: TransactionStatus.submitted,\n [UserOperationStatus.Confirmed]: TransactionStatus.confirmed,\n [UserOperationStatus.Failed]: TransactionStatus.failed,\n }[metadata.status];\n\n const gas = addHex(\n userOperation.preVerificationGas,\n userOperation.verificationGasLimit,\n userOperation.callGasLimit,\n );\n\n const hasPaymaster = userOperation.paymasterAndData !== EMPTY_BYTES;\n\n const maxFeePerGas = hasPaymaster ? VALUE_ZERO : userOperation.maxFeePerGas;\n\n const maxPriorityFeePerGas = hasPaymaster\n ? VALUE_ZERO\n : userOperation.maxPriorityFeePerGas;\n\n const nonce =\n userOperation.nonce === EMPTY_BYTES ? undefined : userOperation.nonce;\n\n const txParams = {\n ...transactionParams,\n from: userOperation.sender,\n gas,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n } as TransactionParams;\n\n // User operations only support EIP-1559 gas fee properties.\n delete txParams.gasPrice;\n\n const swaps = {\n approvalTxId: swapsMetadata?.approvalTxId ?? undefined,\n destinationTokenAddress:\n swapsMetadata?.destinationTokenAddress ?? undefined,\n destinationTokenAmount: swapsMetadata?.destinationTokenAmount ?? undefined,\n destinationTokenDecimals:\n swapsMetadata?.destinationTokenDecimals ?? undefined,\n destinationTokenSymbol: swapsMetadata?.destinationTokenSymbol ?? undefined,\n estimatedBaseFee: swapsMetadata?.estimatedBaseFee ?? undefined,\n sourceTokenAddress: swapsMetadata?.sourceTokenAddress ?? undefined,\n sourceTokenAmount: swapsMetadata?.sourceTokenAmount ?? undefined,\n sourceTokenDecimals: swapsMetadata?.sourceTokenDecimals ?? undefined,\n sourceTokenSymbol: swapsMetadata?.sourceTokenSymbol ?? undefined,\n swapAndSendRecipient: swapsMetadata?.swapAndSendRecipient ?? undefined,\n swapMetaData: swapsMetadata?.swapMetaData ?? undefined,\n swapTokenValue: swapsMetadata?.swapTokenValue ?? undefined,\n };\n\n const userFeeLevel = hasPaymaster ? UserFeeLevel.CUSTOM : rawUserFeeLevel;\n\n return {\n baseFeePerGas: (baseFeePerGas as Hex) ?? undefined,\n chainId: chainId as Hex,\n error,\n hash: transactionHash ?? undefined,\n id,\n isUserOperation: true,\n networkClientId: 'user-operation',\n origin,\n status,\n time,\n txParams,\n txReceipt: {\n effectiveGasPrice: effectiveGasPrice ?? undefined,\n gasUsed: actualGasUsed ?? undefined,\n },\n type: transactionType ?? undefined,\n userFeeLevel: userFeeLevel as string,\n ...swaps,\n };\n}\n\n/**\n * Adds the given hexadecimal values together.\n * @param values - The hexadecimal values to add together.\n * @returns The sum of the given hexadecimal values.\n */\nfunction addHex(...values: (string | undefined)[]) {\n const total = new BN(0);\n\n for (const value of values) {\n if (!value) {\n continue;\n }\n\n total.iadd(new BN(remove0x(value), 16));\n }\n\n return add0x(total.toString(16));\n}\n"]}
1
+ {"version":3,"file":"transaction.cjs","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TransactionError,\n TransactionMeta,\n TransactionParams,\n} from '@metamask/transaction-controller';\nimport {\n TransactionStatus,\n UserFeeLevel,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { add0x, remove0x } from '@metamask/utils';\nimport BN from 'bn.js';\n\nimport { EMPTY_BYTES, VALUE_ZERO } from '../constants';\nimport { UserOperationStatus } from '../types';\nimport type { UserOperationMetadata } from '../types';\n\n/**\n * Converts a user operation metadata object into a transaction metadata object.\n * @param metadata - The user operation metadata object to convert.\n * @returns The equivalent transaction metadata object.\n */\nexport function getTransactionMetadata(\n metadata: UserOperationMetadata,\n): TransactionMeta | undefined {\n const {\n actualGasCost,\n actualGasUsed,\n baseFeePerGas,\n chainId,\n error: rawError,\n origin,\n transactionHash,\n id,\n swapsMetadata,\n time,\n transactionParams,\n transactionType,\n userFeeLevel: rawUserFeeLevel,\n userOperation,\n } = metadata;\n\n if (!transactionParams) {\n return undefined;\n }\n\n // effectiveGasPrice = actualGasCost / actualGasUsed\n const effectiveGasPrice =\n actualGasCost && actualGasUsed\n ? add0x(\n new BN(remove0x(actualGasCost), 16)\n .div(new BN(remove0x(actualGasUsed), 16))\n .toString(16),\n )\n : undefined;\n\n const error = (\n rawError\n ? {\n name: rawError.name,\n message: rawError.message,\n stack: rawError.stack,\n code: rawError.code,\n rpc: rawError.rpc,\n }\n : undefined\n ) as TransactionError;\n\n const status: TransactionStatus = {\n [UserOperationStatus.Unapproved]: TransactionStatus.unapproved,\n [UserOperationStatus.Approved]: TransactionStatus.approved,\n [UserOperationStatus.Signed]: TransactionStatus.signed,\n [UserOperationStatus.Submitted]: TransactionStatus.submitted,\n [UserOperationStatus.Confirmed]: TransactionStatus.confirmed,\n [UserOperationStatus.Failed]: TransactionStatus.failed,\n }[metadata.status];\n\n const gas = addHex(\n userOperation.preVerificationGas,\n userOperation.verificationGasLimit,\n userOperation.callGasLimit,\n );\n\n const hasPaymaster = userOperation.paymasterAndData !== EMPTY_BYTES;\n\n const maxFeePerGas = hasPaymaster ? VALUE_ZERO : userOperation.maxFeePerGas;\n\n const maxPriorityFeePerGas = hasPaymaster\n ? VALUE_ZERO\n : userOperation.maxPriorityFeePerGas;\n\n const nonce =\n userOperation.nonce === EMPTY_BYTES ? undefined : userOperation.nonce;\n\n const txParams = {\n ...transactionParams,\n from: userOperation.sender,\n gas,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n } as TransactionParams;\n\n // User operations only support EIP-1559 gas fee properties.\n delete txParams.gasPrice;\n\n const swaps = {\n approvalTxId: swapsMetadata?.approvalTxId ?? undefined,\n destinationTokenAddress:\n swapsMetadata?.destinationTokenAddress ?? undefined,\n destinationTokenAmount: swapsMetadata?.destinationTokenAmount ?? undefined,\n destinationTokenDecimals:\n swapsMetadata?.destinationTokenDecimals ?? undefined,\n destinationTokenSymbol: swapsMetadata?.destinationTokenSymbol ?? undefined,\n estimatedBaseFee: swapsMetadata?.estimatedBaseFee ?? undefined,\n sourceTokenAddress: swapsMetadata?.sourceTokenAddress ?? undefined,\n sourceTokenAmount: swapsMetadata?.sourceTokenAmount ?? undefined,\n sourceTokenDecimals: swapsMetadata?.sourceTokenDecimals ?? undefined,\n sourceTokenSymbol: swapsMetadata?.sourceTokenSymbol ?? undefined,\n swapAndSendRecipient: swapsMetadata?.swapAndSendRecipient ?? undefined,\n swapMetaData: swapsMetadata?.swapMetaData ?? undefined,\n swapTokenValue: swapsMetadata?.swapTokenValue ?? undefined,\n };\n\n const userFeeLevel = hasPaymaster ? UserFeeLevel.CUSTOM : rawUserFeeLevel;\n\n return {\n baseFeePerGas: (baseFeePerGas as Hex) ?? undefined,\n chainId: chainId as Hex,\n error,\n hash: transactionHash ?? undefined,\n id,\n isUserOperation: true,\n origin,\n status,\n time,\n txParams,\n txReceipt: {\n effectiveGasPrice: effectiveGasPrice ?? undefined,\n gasUsed: actualGasUsed ?? undefined,\n },\n type: transactionType ?? undefined,\n userFeeLevel: userFeeLevel as string,\n ...swaps,\n };\n}\n\n/**\n * Adds the given hexadecimal values together.\n * @param values - The hexadecimal values to add together.\n * @returns The sum of the given hexadecimal values.\n */\nfunction addHex(...values: (string | undefined)[]) {\n const total = new BN(0);\n\n for (const value of values) {\n if (!value) {\n continue;\n }\n\n total.iadd(new BN(remove0x(value), 16));\n }\n\n return add0x(total.toString(16));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.cts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,yCAAyC;AAW1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,qBAAqB,GAC9B,eAAe,GAAG,SAAS,CA0H7B"}
1
+ {"version":3,"file":"transaction.d.cts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,yCAAyC;AAW1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,qBAAqB,GAC9B,eAAe,GAAG,SAAS,CAyH7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.mts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,yCAAyC;AAW1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,qBAAqB,GAC9B,eAAe,GAAG,SAAS,CA0H7B"}
1
+ {"version":3,"file":"transaction.d.mts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAEhB,yCAAyC;AAW1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,qBAAqB,GAC9B,eAAe,GAAG,SAAS,CAyH7B"}
@@ -83,7 +83,6 @@ export function getTransactionMetadata(metadata) {
83
83
  hash: transactionHash ?? undefined,
84
84
  id,
85
85
  isUserOperation: true,
86
- networkClientId: 'user-operation',
87
86
  origin,
88
87
  status,
89
88
  time,
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.mjs","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TransactionError,\n TransactionMeta,\n TransactionParams,\n} from '@metamask/transaction-controller';\nimport {\n TransactionStatus,\n UserFeeLevel,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { add0x, remove0x } from '@metamask/utils';\nimport BN from 'bn.js';\n\nimport { EMPTY_BYTES, VALUE_ZERO } from '../constants';\nimport { UserOperationStatus } from '../types';\nimport type { UserOperationMetadata } from '../types';\n\n/**\n * Converts a user operation metadata object into a transaction metadata object.\n * @param metadata - The user operation metadata object to convert.\n * @returns The equivalent transaction metadata object.\n */\nexport function getTransactionMetadata(\n metadata: UserOperationMetadata,\n): TransactionMeta | undefined {\n const {\n actualGasCost,\n actualGasUsed,\n baseFeePerGas,\n chainId,\n error: rawError,\n origin,\n transactionHash,\n id,\n swapsMetadata,\n time,\n transactionParams,\n transactionType,\n userFeeLevel: rawUserFeeLevel,\n userOperation,\n } = metadata;\n\n if (!transactionParams) {\n return undefined;\n }\n\n // effectiveGasPrice = actualGasCost / actualGasUsed\n const effectiveGasPrice =\n actualGasCost && actualGasUsed\n ? add0x(\n new BN(remove0x(actualGasCost), 16)\n .div(new BN(remove0x(actualGasUsed), 16))\n .toString(16),\n )\n : undefined;\n\n const error = (\n rawError\n ? {\n name: rawError.name,\n message: rawError.message,\n stack: rawError.stack,\n code: rawError.code,\n rpc: rawError.rpc,\n }\n : undefined\n ) as TransactionError;\n\n const status: TransactionStatus = {\n [UserOperationStatus.Unapproved]: TransactionStatus.unapproved,\n [UserOperationStatus.Approved]: TransactionStatus.approved,\n [UserOperationStatus.Signed]: TransactionStatus.signed,\n [UserOperationStatus.Submitted]: TransactionStatus.submitted,\n [UserOperationStatus.Confirmed]: TransactionStatus.confirmed,\n [UserOperationStatus.Failed]: TransactionStatus.failed,\n }[metadata.status];\n\n const gas = addHex(\n userOperation.preVerificationGas,\n userOperation.verificationGasLimit,\n userOperation.callGasLimit,\n );\n\n const hasPaymaster = userOperation.paymasterAndData !== EMPTY_BYTES;\n\n const maxFeePerGas = hasPaymaster ? VALUE_ZERO : userOperation.maxFeePerGas;\n\n const maxPriorityFeePerGas = hasPaymaster\n ? VALUE_ZERO\n : userOperation.maxPriorityFeePerGas;\n\n const nonce =\n userOperation.nonce === EMPTY_BYTES ? undefined : userOperation.nonce;\n\n const txParams = {\n ...transactionParams,\n from: userOperation.sender,\n gas,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n } as TransactionParams;\n\n // User operations only support EIP-1559 gas fee properties.\n delete txParams.gasPrice;\n\n const swaps = {\n approvalTxId: swapsMetadata?.approvalTxId ?? undefined,\n destinationTokenAddress:\n swapsMetadata?.destinationTokenAddress ?? undefined,\n destinationTokenAmount: swapsMetadata?.destinationTokenAmount ?? undefined,\n destinationTokenDecimals:\n swapsMetadata?.destinationTokenDecimals ?? undefined,\n destinationTokenSymbol: swapsMetadata?.destinationTokenSymbol ?? undefined,\n estimatedBaseFee: swapsMetadata?.estimatedBaseFee ?? undefined,\n sourceTokenAddress: swapsMetadata?.sourceTokenAddress ?? undefined,\n sourceTokenAmount: swapsMetadata?.sourceTokenAmount ?? undefined,\n sourceTokenDecimals: swapsMetadata?.sourceTokenDecimals ?? undefined,\n sourceTokenSymbol: swapsMetadata?.sourceTokenSymbol ?? undefined,\n swapAndSendRecipient: swapsMetadata?.swapAndSendRecipient ?? undefined,\n swapMetaData: swapsMetadata?.swapMetaData ?? undefined,\n swapTokenValue: swapsMetadata?.swapTokenValue ?? undefined,\n };\n\n const userFeeLevel = hasPaymaster ? UserFeeLevel.CUSTOM : rawUserFeeLevel;\n\n return {\n baseFeePerGas: (baseFeePerGas as Hex) ?? undefined,\n chainId: chainId as Hex,\n error,\n hash: transactionHash ?? undefined,\n id,\n isUserOperation: true,\n networkClientId: 'user-operation',\n origin,\n status,\n time,\n txParams,\n txReceipt: {\n effectiveGasPrice: effectiveGasPrice ?? undefined,\n gasUsed: actualGasUsed ?? undefined,\n },\n type: transactionType ?? undefined,\n userFeeLevel: userFeeLevel as string,\n ...swaps,\n };\n}\n\n/**\n * Adds the given hexadecimal values together.\n * @param values - The hexadecimal values to add together.\n * @returns The sum of the given hexadecimal values.\n */\nfunction addHex(...values: (string | undefined)[]) {\n const total = new BN(0);\n\n for (const value of values) {\n if (!value) {\n continue;\n }\n\n total.iadd(new BN(remove0x(value), 16));\n }\n\n return add0x(total.toString(16));\n}\n"]}
1
+ {"version":3,"file":"transaction.mjs","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TransactionError,\n TransactionMeta,\n TransactionParams,\n} from '@metamask/transaction-controller';\nimport {\n TransactionStatus,\n UserFeeLevel,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { add0x, remove0x } from '@metamask/utils';\nimport BN from 'bn.js';\n\nimport { EMPTY_BYTES, VALUE_ZERO } from '../constants';\nimport { UserOperationStatus } from '../types';\nimport type { UserOperationMetadata } from '../types';\n\n/**\n * Converts a user operation metadata object into a transaction metadata object.\n * @param metadata - The user operation metadata object to convert.\n * @returns The equivalent transaction metadata object.\n */\nexport function getTransactionMetadata(\n metadata: UserOperationMetadata,\n): TransactionMeta | undefined {\n const {\n actualGasCost,\n actualGasUsed,\n baseFeePerGas,\n chainId,\n error: rawError,\n origin,\n transactionHash,\n id,\n swapsMetadata,\n time,\n transactionParams,\n transactionType,\n userFeeLevel: rawUserFeeLevel,\n userOperation,\n } = metadata;\n\n if (!transactionParams) {\n return undefined;\n }\n\n // effectiveGasPrice = actualGasCost / actualGasUsed\n const effectiveGasPrice =\n actualGasCost && actualGasUsed\n ? add0x(\n new BN(remove0x(actualGasCost), 16)\n .div(new BN(remove0x(actualGasUsed), 16))\n .toString(16),\n )\n : undefined;\n\n const error = (\n rawError\n ? {\n name: rawError.name,\n message: rawError.message,\n stack: rawError.stack,\n code: rawError.code,\n rpc: rawError.rpc,\n }\n : undefined\n ) as TransactionError;\n\n const status: TransactionStatus = {\n [UserOperationStatus.Unapproved]: TransactionStatus.unapproved,\n [UserOperationStatus.Approved]: TransactionStatus.approved,\n [UserOperationStatus.Signed]: TransactionStatus.signed,\n [UserOperationStatus.Submitted]: TransactionStatus.submitted,\n [UserOperationStatus.Confirmed]: TransactionStatus.confirmed,\n [UserOperationStatus.Failed]: TransactionStatus.failed,\n }[metadata.status];\n\n const gas = addHex(\n userOperation.preVerificationGas,\n userOperation.verificationGasLimit,\n userOperation.callGasLimit,\n );\n\n const hasPaymaster = userOperation.paymasterAndData !== EMPTY_BYTES;\n\n const maxFeePerGas = hasPaymaster ? VALUE_ZERO : userOperation.maxFeePerGas;\n\n const maxPriorityFeePerGas = hasPaymaster\n ? VALUE_ZERO\n : userOperation.maxPriorityFeePerGas;\n\n const nonce =\n userOperation.nonce === EMPTY_BYTES ? undefined : userOperation.nonce;\n\n const txParams = {\n ...transactionParams,\n from: userOperation.sender,\n gas,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n } as TransactionParams;\n\n // User operations only support EIP-1559 gas fee properties.\n delete txParams.gasPrice;\n\n const swaps = {\n approvalTxId: swapsMetadata?.approvalTxId ?? undefined,\n destinationTokenAddress:\n swapsMetadata?.destinationTokenAddress ?? undefined,\n destinationTokenAmount: swapsMetadata?.destinationTokenAmount ?? undefined,\n destinationTokenDecimals:\n swapsMetadata?.destinationTokenDecimals ?? undefined,\n destinationTokenSymbol: swapsMetadata?.destinationTokenSymbol ?? undefined,\n estimatedBaseFee: swapsMetadata?.estimatedBaseFee ?? undefined,\n sourceTokenAddress: swapsMetadata?.sourceTokenAddress ?? undefined,\n sourceTokenAmount: swapsMetadata?.sourceTokenAmount ?? undefined,\n sourceTokenDecimals: swapsMetadata?.sourceTokenDecimals ?? undefined,\n sourceTokenSymbol: swapsMetadata?.sourceTokenSymbol ?? undefined,\n swapAndSendRecipient: swapsMetadata?.swapAndSendRecipient ?? undefined,\n swapMetaData: swapsMetadata?.swapMetaData ?? undefined,\n swapTokenValue: swapsMetadata?.swapTokenValue ?? undefined,\n };\n\n const userFeeLevel = hasPaymaster ? UserFeeLevel.CUSTOM : rawUserFeeLevel;\n\n return {\n baseFeePerGas: (baseFeePerGas as Hex) ?? undefined,\n chainId: chainId as Hex,\n error,\n hash: transactionHash ?? undefined,\n id,\n isUserOperation: true,\n origin,\n status,\n time,\n txParams,\n txReceipt: {\n effectiveGasPrice: effectiveGasPrice ?? undefined,\n gasUsed: actualGasUsed ?? undefined,\n },\n type: transactionType ?? undefined,\n userFeeLevel: userFeeLevel as string,\n ...swaps,\n };\n}\n\n/**\n * Adds the given hexadecimal values together.\n * @param values - The hexadecimal values to add together.\n * @returns The sum of the given hexadecimal values.\n */\nfunction addHex(...values: (string | undefined)[]) {\n const total = new BN(0);\n\n for (const value of values) {\n if (!value) {\n continue;\n }\n\n total.iadd(new BN(remove0x(value), 16));\n }\n\n return add0x(total.toString(16));\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/user-operation-controller",
3
- "version": "18.0.0-preview-913113cf",
3
+ "version": "18.0.0-preview-bb2f1fdd",
4
4
  "description": "Creates user operations and manages their life cycle",
5
5
  "keywords": [
6
6
  "MetaMask",