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.
350 lines
15 KiB
350 lines
15 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.UnsupportedPackedAbiType = exports.InvalidDefinitionTypeError = exports.InvalidArrayError = exports.InvalidAbiDecodingTypeError = exports.InvalidAbiEncodingTypeError = exports.DecodeLogTopicsMismatch = exports.DecodeLogDataMismatch = exports.BytesSizeMismatchError = exports.AbiItemAmbiguityError = exports.AbiFunctionSignatureNotFoundError = exports.AbiFunctionOutputsNotFoundError = exports.AbiFunctionNotFoundError = exports.AbiEventNotFoundError = exports.AbiEventSignatureNotFoundError = exports.AbiEventSignatureEmptyTopicsError = exports.AbiErrorSignatureNotFoundError = exports.AbiErrorNotFoundError = exports.AbiErrorInputsNotFoundError = exports.AbiEncodingLengthMismatchError = exports.AbiEncodingBytesSizeMismatchError = exports.AbiEncodingArrayLengthMismatchError = exports.AbiDecodingZeroDataError = exports.AbiDecodingDataSizeTooSmallError = exports.AbiDecodingDataSizeInvalidError = exports.AbiConstructorParamsNotFoundError = exports.AbiConstructorNotFoundError = void 0;
|
|
const formatAbiItem_js_1 = require("../utils/abi/formatAbiItem.js");
|
|
const size_js_1 = require("../utils/data/size.js");
|
|
const base_js_1 = require("./base.js");
|
|
class AbiConstructorNotFoundError extends base_js_1.BaseError {
|
|
constructor({ docsPath }) {
|
|
super([
|
|
'A constructor was not found on the ABI.',
|
|
'Make sure you are using the correct ABI and that the constructor exists on it.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiConstructorNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiConstructorNotFoundError = AbiConstructorNotFoundError;
|
|
class AbiConstructorParamsNotFoundError extends base_js_1.BaseError {
|
|
constructor({ docsPath }) {
|
|
super([
|
|
'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',
|
|
'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiConstructorParamsNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiConstructorParamsNotFoundError = AbiConstructorParamsNotFoundError;
|
|
class AbiDecodingDataSizeInvalidError extends base_js_1.BaseError {
|
|
constructor({ data, size }) {
|
|
super([
|
|
`Data size of ${size} bytes is invalid.`,
|
|
'Size must be in increments of 32 bytes (size % 32 === 0).',
|
|
].join('\n'), {
|
|
metaMessages: [`Data: ${data} (${size} bytes)`],
|
|
name: 'AbiDecodingDataSizeInvalidError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiDecodingDataSizeInvalidError = AbiDecodingDataSizeInvalidError;
|
|
class AbiDecodingDataSizeTooSmallError extends base_js_1.BaseError {
|
|
constructor({ data, params, size, }) {
|
|
super([`Data size of ${size} bytes is too small for given parameters.`].join('\n'), {
|
|
metaMessages: [
|
|
`Params: (${(0, formatAbiItem_js_1.formatAbiParams)(params, { includeName: true })})`,
|
|
`Data: ${data} (${size} bytes)`,
|
|
],
|
|
name: 'AbiDecodingDataSizeTooSmallError',
|
|
});
|
|
Object.defineProperty(this, "data", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
Object.defineProperty(this, "params", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
Object.defineProperty(this, "size", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.data = data;
|
|
this.params = params;
|
|
this.size = size;
|
|
}
|
|
}
|
|
exports.AbiDecodingDataSizeTooSmallError = AbiDecodingDataSizeTooSmallError;
|
|
class AbiDecodingZeroDataError extends base_js_1.BaseError {
|
|
constructor() {
|
|
super('Cannot decode zero data ("0x") with ABI parameters.', {
|
|
name: 'AbiDecodingZeroDataError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiDecodingZeroDataError = AbiDecodingZeroDataError;
|
|
class AbiEncodingArrayLengthMismatchError extends base_js_1.BaseError {
|
|
constructor({ expectedLength, givenLength, type, }) {
|
|
super([
|
|
`ABI encoding array length mismatch for type ${type}.`,
|
|
`Expected length: ${expectedLength}`,
|
|
`Given length: ${givenLength}`,
|
|
].join('\n'), { name: 'AbiEncodingArrayLengthMismatchError' });
|
|
}
|
|
}
|
|
exports.AbiEncodingArrayLengthMismatchError = AbiEncodingArrayLengthMismatchError;
|
|
class AbiEncodingBytesSizeMismatchError extends base_js_1.BaseError {
|
|
constructor({ expectedSize, value }) {
|
|
super(`Size of bytes "${value}" (bytes${(0, size_js_1.size)(value)}) does not match expected size (bytes${expectedSize}).`, { name: 'AbiEncodingBytesSizeMismatchError' });
|
|
}
|
|
}
|
|
exports.AbiEncodingBytesSizeMismatchError = AbiEncodingBytesSizeMismatchError;
|
|
class AbiEncodingLengthMismatchError extends base_js_1.BaseError {
|
|
constructor({ expectedLength, givenLength, }) {
|
|
super([
|
|
'ABI encoding params/values length mismatch.',
|
|
`Expected length (params): ${expectedLength}`,
|
|
`Given length (values): ${givenLength}`,
|
|
].join('\n'), { name: 'AbiEncodingLengthMismatchError' });
|
|
}
|
|
}
|
|
exports.AbiEncodingLengthMismatchError = AbiEncodingLengthMismatchError;
|
|
class AbiErrorInputsNotFoundError extends base_js_1.BaseError {
|
|
constructor(errorName, { docsPath }) {
|
|
super([
|
|
`Arguments (\`args\`) were provided to "${errorName}", but "${errorName}" on the ABI does not contain any parameters (\`inputs\`).`,
|
|
'Cannot encode error result without knowing what the parameter types are.',
|
|
'Make sure you are using the correct ABI and that the inputs exist on it.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiErrorInputsNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiErrorInputsNotFoundError = AbiErrorInputsNotFoundError;
|
|
class AbiErrorNotFoundError extends base_js_1.BaseError {
|
|
constructor(errorName, { docsPath } = {}) {
|
|
super([
|
|
`Error ${errorName ? `"${errorName}" ` : ''}not found on ABI.`,
|
|
'Make sure you are using the correct ABI and that the error exists on it.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiErrorNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiErrorNotFoundError = AbiErrorNotFoundError;
|
|
class AbiErrorSignatureNotFoundError extends base_js_1.BaseError {
|
|
constructor(signature, { docsPath }) {
|
|
super([
|
|
`Encoded error signature "${signature}" not found on ABI.`,
|
|
'Make sure you are using the correct ABI and that the error exists on it.',
|
|
`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiErrorSignatureNotFoundError',
|
|
});
|
|
Object.defineProperty(this, "signature", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.signature = signature;
|
|
}
|
|
}
|
|
exports.AbiErrorSignatureNotFoundError = AbiErrorSignatureNotFoundError;
|
|
class AbiEventSignatureEmptyTopicsError extends base_js_1.BaseError {
|
|
constructor({ docsPath }) {
|
|
super('Cannot extract event signature from empty topics.', {
|
|
docsPath,
|
|
name: 'AbiEventSignatureEmptyTopicsError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiEventSignatureEmptyTopicsError = AbiEventSignatureEmptyTopicsError;
|
|
class AbiEventSignatureNotFoundError extends base_js_1.BaseError {
|
|
constructor(signature, { docsPath }) {
|
|
super([
|
|
`Encoded event signature "${signature}" not found on ABI.`,
|
|
'Make sure you are using the correct ABI and that the event exists on it.',
|
|
`You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiEventSignatureNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiEventSignatureNotFoundError = AbiEventSignatureNotFoundError;
|
|
class AbiEventNotFoundError extends base_js_1.BaseError {
|
|
constructor(eventName, { docsPath } = {}) {
|
|
super([
|
|
`Event ${eventName ? `"${eventName}" ` : ''}not found on ABI.`,
|
|
'Make sure you are using the correct ABI and that the event exists on it.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiEventNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiEventNotFoundError = AbiEventNotFoundError;
|
|
class AbiFunctionNotFoundError extends base_js_1.BaseError {
|
|
constructor(functionName, { docsPath } = {}) {
|
|
super([
|
|
`Function ${functionName ? `"${functionName}" ` : ''}not found on ABI.`,
|
|
'Make sure you are using the correct ABI and that the function exists on it.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiFunctionNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiFunctionNotFoundError = AbiFunctionNotFoundError;
|
|
class AbiFunctionOutputsNotFoundError extends base_js_1.BaseError {
|
|
constructor(functionName, { docsPath }) {
|
|
super([
|
|
`Function "${functionName}" does not contain any \`outputs\` on ABI.`,
|
|
'Cannot decode function result without knowing what the parameter types are.',
|
|
'Make sure you are using the correct ABI and that the function exists on it.',
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiFunctionOutputsNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiFunctionOutputsNotFoundError = AbiFunctionOutputsNotFoundError;
|
|
class AbiFunctionSignatureNotFoundError extends base_js_1.BaseError {
|
|
constructor(signature, { docsPath }) {
|
|
super([
|
|
`Encoded function signature "${signature}" not found on ABI.`,
|
|
'Make sure you are using the correct ABI and that the function exists on it.',
|
|
`You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,
|
|
].join('\n'), {
|
|
docsPath,
|
|
name: 'AbiFunctionSignatureNotFoundError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiFunctionSignatureNotFoundError = AbiFunctionSignatureNotFoundError;
|
|
class AbiItemAmbiguityError extends base_js_1.BaseError {
|
|
constructor(x, y) {
|
|
super('Found ambiguous types in overloaded ABI items.', {
|
|
metaMessages: [
|
|
`\`${x.type}\` in \`${(0, formatAbiItem_js_1.formatAbiItem)(x.abiItem)}\`, and`,
|
|
`\`${y.type}\` in \`${(0, formatAbiItem_js_1.formatAbiItem)(y.abiItem)}\``,
|
|
'',
|
|
'These types encode differently and cannot be distinguished at runtime.',
|
|
'Remove one of the ambiguous items in the ABI.',
|
|
],
|
|
name: 'AbiItemAmbiguityError',
|
|
});
|
|
}
|
|
}
|
|
exports.AbiItemAmbiguityError = AbiItemAmbiguityError;
|
|
class BytesSizeMismatchError extends base_js_1.BaseError {
|
|
constructor({ expectedSize, givenSize, }) {
|
|
super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {
|
|
name: 'BytesSizeMismatchError',
|
|
});
|
|
}
|
|
}
|
|
exports.BytesSizeMismatchError = BytesSizeMismatchError;
|
|
class DecodeLogDataMismatch extends base_js_1.BaseError {
|
|
constructor({ abiItem, data, params, size, }) {
|
|
super([
|
|
`Data size of ${size} bytes is too small for non-indexed event parameters.`,
|
|
].join('\n'), {
|
|
metaMessages: [
|
|
`Params: (${(0, formatAbiItem_js_1.formatAbiParams)(params, { includeName: true })})`,
|
|
`Data: ${data} (${size} bytes)`,
|
|
],
|
|
name: 'DecodeLogDataMismatch',
|
|
});
|
|
Object.defineProperty(this, "abiItem", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
Object.defineProperty(this, "data", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
Object.defineProperty(this, "params", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
Object.defineProperty(this, "size", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.abiItem = abiItem;
|
|
this.data = data;
|
|
this.params = params;
|
|
this.size = size;
|
|
}
|
|
}
|
|
exports.DecodeLogDataMismatch = DecodeLogDataMismatch;
|
|
class DecodeLogTopicsMismatch extends base_js_1.BaseError {
|
|
constructor({ abiItem, param, }) {
|
|
super([
|
|
`Expected a topic for indexed event parameter${param.name ? ` "${param.name}"` : ''} on event "${(0, formatAbiItem_js_1.formatAbiItem)(abiItem, { includeName: true })}".`,
|
|
].join('\n'), { name: 'DecodeLogTopicsMismatch' });
|
|
Object.defineProperty(this, "abiItem", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
this.abiItem = abiItem;
|
|
}
|
|
}
|
|
exports.DecodeLogTopicsMismatch = DecodeLogTopicsMismatch;
|
|
class InvalidAbiEncodingTypeError extends base_js_1.BaseError {
|
|
constructor(type, { docsPath }) {
|
|
super([
|
|
`Type "${type}" is not a valid encoding type.`,
|
|
'Please provide a valid ABI type.',
|
|
].join('\n'), { docsPath, name: 'InvalidAbiEncodingType' });
|
|
}
|
|
}
|
|
exports.InvalidAbiEncodingTypeError = InvalidAbiEncodingTypeError;
|
|
class InvalidAbiDecodingTypeError extends base_js_1.BaseError {
|
|
constructor(type, { docsPath }) {
|
|
super([
|
|
`Type "${type}" is not a valid decoding type.`,
|
|
'Please provide a valid ABI type.',
|
|
].join('\n'), { docsPath, name: 'InvalidAbiDecodingType' });
|
|
}
|
|
}
|
|
exports.InvalidAbiDecodingTypeError = InvalidAbiDecodingTypeError;
|
|
class InvalidArrayError extends base_js_1.BaseError {
|
|
constructor(value) {
|
|
super([`Value "${value}" is not a valid array.`].join('\n'), {
|
|
name: 'InvalidArrayError',
|
|
});
|
|
}
|
|
}
|
|
exports.InvalidArrayError = InvalidArrayError;
|
|
class InvalidDefinitionTypeError extends base_js_1.BaseError {
|
|
constructor(type) {
|
|
super([
|
|
`"${type}" is not a valid definition type.`,
|
|
'Valid types: "function", "event", "error"',
|
|
].join('\n'), { name: 'InvalidDefinitionTypeError' });
|
|
}
|
|
}
|
|
exports.InvalidDefinitionTypeError = InvalidDefinitionTypeError;
|
|
class UnsupportedPackedAbiType extends base_js_1.BaseError {
|
|
constructor(type) {
|
|
super(`Type "${type}" is not supported for packed encoding.`, {
|
|
name: 'UnsupportedPackedAbiType',
|
|
});
|
|
}
|
|
}
|
|
exports.UnsupportedPackedAbiType = UnsupportedPackedAbiType;
|
|
//# sourceMappingURL=abi.js.map
|