You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
9.0 KiB
200 lines
9.0 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.WaitForTransactionReceiptTimeoutError = exports.TransactionReceiptRevertedError = exports.TransactionReceiptNotFoundError = exports.TransactionNotFoundError = exports.TransactionExecutionError = exports.InvalidStorageKeySizeError = exports.InvalidSerializedTransactionError = exports.InvalidSerializedTransactionTypeError = exports.InvalidSerializableTransactionError = exports.InvalidLegacyVError = exports.FeeConflictError = void 0;
|
|
exports.prettyPrint = prettyPrint;
|
|
const formatEther_js_1 = require("../utils/unit/formatEther.js");
|
|
const formatGwei_js_1 = require("../utils/unit/formatGwei.js");
|
|
const base_js_1 = require("./base.js");
|
|
function prettyPrint(args) {
|
|
const entries = Object.entries(args)
|
|
.map(([key, value]) => {
|
|
if (value === undefined || value === false)
|
|
return null;
|
|
return [key, value];
|
|
})
|
|
.filter(Boolean);
|
|
const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);
|
|
return entries
|
|
.map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`)
|
|
.join('\n');
|
|
}
|
|
class FeeConflictError extends base_js_1.BaseError {
|
|
constructor() {
|
|
super([
|
|
'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',
|
|
'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',
|
|
].join('\n'), { name: 'FeeConflictError' });
|
|
}
|
|
}
|
|
exports.FeeConflictError = FeeConflictError;
|
|
class InvalidLegacyVError extends base_js_1.BaseError {
|
|
constructor({ v }) {
|
|
super(`Invalid \`v\` value "${v}". Expected 27 or 28.`, {
|
|
name: 'InvalidLegacyVError',
|
|
});
|
|
}
|
|
}
|
|
exports.InvalidLegacyVError = InvalidLegacyVError;
|
|
class InvalidSerializableTransactionError extends base_js_1.BaseError {
|
|
constructor({ transaction }) {
|
|
super('Cannot infer a transaction type from provided transaction.', {
|
|
metaMessages: [
|
|
'Provided Transaction:',
|
|
'{',
|
|
prettyPrint(transaction),
|
|
'}',
|
|
'',
|
|
'To infer the type, either provide:',
|
|
'- a `type` to the Transaction, or',
|
|
'- an EIP-1559 Transaction with `maxFeePerGas`, or',
|
|
'- an EIP-2930 Transaction with `gasPrice` & `accessList`, or',
|
|
'- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or',
|
|
'- an EIP-7702 Transaction with `authorizationList`, or',
|
|
'- a Legacy Transaction with `gasPrice`',
|
|
],
|
|
name: 'InvalidSerializableTransactionError',
|
|
});
|
|
}
|
|
}
|
|
exports.InvalidSerializableTransactionError = InvalidSerializableTransactionError;
|
|
class InvalidSerializedTransactionTypeError extends base_js_1.BaseError {
|
|
constructor({ serializedType }) {
|
|
super(`Serialized transaction type "${serializedType}" is invalid.`, {
|
|
name: 'InvalidSerializedTransactionType',
|
|
});
|
|
Object.defineProperty(this, "serializedType", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.serializedType = serializedType;
|
|
}
|
|
}
|
|
exports.InvalidSerializedTransactionTypeError = InvalidSerializedTransactionTypeError;
|
|
class InvalidSerializedTransactionError extends base_js_1.BaseError {
|
|
constructor({ attributes, serializedTransaction, type, }) {
|
|
const missing = Object.entries(attributes)
|
|
.map(([key, value]) => (typeof value === 'undefined' ? key : undefined))
|
|
.filter(Boolean);
|
|
super(`Invalid serialized transaction of type "${type}" was provided.`, {
|
|
metaMessages: [
|
|
`Serialized Transaction: "${serializedTransaction}"`,
|
|
missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',
|
|
].filter(Boolean),
|
|
name: 'InvalidSerializedTransactionError',
|
|
});
|
|
Object.defineProperty(this, "serializedTransaction", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
Object.defineProperty(this, "type", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.serializedTransaction = serializedTransaction;
|
|
this.type = type;
|
|
}
|
|
}
|
|
exports.InvalidSerializedTransactionError = InvalidSerializedTransactionError;
|
|
class InvalidStorageKeySizeError extends base_js_1.BaseError {
|
|
constructor({ storageKey }) {
|
|
super(`Size for storage key "${storageKey}" is invalid. Expected 32 bytes. Got ${Math.floor((storageKey.length - 2) / 2)} bytes.`, { name: 'InvalidStorageKeySizeError' });
|
|
}
|
|
}
|
|
exports.InvalidStorageKeySizeError = InvalidStorageKeySizeError;
|
|
class TransactionExecutionError extends base_js_1.BaseError {
|
|
constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {
|
|
const prettyArgs = prettyPrint({
|
|
chain: chain && `${chain?.name} (id: ${chain?.id})`,
|
|
from: account?.address,
|
|
to,
|
|
value: typeof value !== 'undefined' &&
|
|
`${(0, formatEther_js_1.formatEther)(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,
|
|
data,
|
|
gas,
|
|
gasPrice: typeof gasPrice !== 'undefined' && `${(0, formatGwei_js_1.formatGwei)(gasPrice)} gwei`,
|
|
maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&
|
|
`${(0, formatGwei_js_1.formatGwei)(maxFeePerGas)} gwei`,
|
|
maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&
|
|
`${(0, formatGwei_js_1.formatGwei)(maxPriorityFeePerGas)} gwei`,
|
|
nonce,
|
|
});
|
|
super(cause.shortMessage, {
|
|
cause,
|
|
docsPath,
|
|
metaMessages: [
|
|
...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),
|
|
'Request Arguments:',
|
|
prettyArgs,
|
|
].filter(Boolean),
|
|
name: 'TransactionExecutionError',
|
|
});
|
|
Object.defineProperty(this, "cause", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.cause = cause;
|
|
}
|
|
}
|
|
exports.TransactionExecutionError = TransactionExecutionError;
|
|
class TransactionNotFoundError extends base_js_1.BaseError {
|
|
constructor({ blockHash, blockNumber, blockTag, hash, index, }) {
|
|
let identifier = 'Transaction';
|
|
if (blockTag && index !== undefined)
|
|
identifier = `Transaction at block time "${blockTag}" at index "${index}"`;
|
|
if (blockHash && index !== undefined)
|
|
identifier = `Transaction at block hash "${blockHash}" at index "${index}"`;
|
|
if (blockNumber && index !== undefined)
|
|
identifier = `Transaction at block number "${blockNumber}" at index "${index}"`;
|
|
if (hash)
|
|
identifier = `Transaction with hash "${hash}"`;
|
|
super(`${identifier} could not be found.`, {
|
|
name: 'TransactionNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.TransactionNotFoundError = TransactionNotFoundError;
|
|
class TransactionReceiptNotFoundError extends base_js_1.BaseError {
|
|
constructor({ hash }) {
|
|
super(`Transaction receipt with hash "${hash}" could not be found. The Transaction may not be processed on a block yet.`, {
|
|
name: 'TransactionReceiptNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.TransactionReceiptNotFoundError = TransactionReceiptNotFoundError;
|
|
class TransactionReceiptRevertedError extends base_js_1.BaseError {
|
|
constructor({ receipt }) {
|
|
super(`Transaction with hash "${receipt.transactionHash}" reverted.`, {
|
|
metaMessages: [
|
|
'The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.',
|
|
' ',
|
|
'You can attempt to extract the revert reason by:',
|
|
'- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract',
|
|
'- using the `call` Action with raw `data`',
|
|
],
|
|
name: 'TransactionReceiptRevertedError',
|
|
});
|
|
Object.defineProperty(this, "receipt", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.receipt = receipt;
|
|
}
|
|
}
|
|
exports.TransactionReceiptRevertedError = TransactionReceiptRevertedError;
|
|
class WaitForTransactionReceiptTimeoutError extends base_js_1.BaseError {
|
|
constructor({ hash }) {
|
|
super(`Timed out while waiting for transaction with hash "${hash}" to be confirmed.`, { name: 'WaitForTransactionReceiptTimeoutError' });
|
|
}
|
|
}
|
|
exports.WaitForTransactionReceiptTimeoutError = WaitForTransactionReceiptTimeoutError;
|
|
//# sourceMappingURL=transaction.js.map
|