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.
48 lines
1.8 KiB
48 lines
1.8 KiB
import { stringify } from '../utils/stringify.js';
|
|
import { BaseError } from './base.js';
|
|
import { getUrl } from './utils.js';
|
|
export class OffchainLookupError extends BaseError {
|
|
constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {
|
|
super(cause.shortMessage ||
|
|
'An error occurred while fetching for an offchain result.', {
|
|
cause,
|
|
metaMessages: [
|
|
...(cause.metaMessages || []),
|
|
cause.metaMessages?.length ? '' : [],
|
|
'Offchain Gateway Call:',
|
|
urls && [
|
|
' Gateway URL(s):',
|
|
...urls.map((url) => ` ${getUrl(url)}`),
|
|
],
|
|
` Sender: ${sender}`,
|
|
` Data: ${data}`,
|
|
` Callback selector: ${callbackSelector}`,
|
|
` Extra data: ${extraData}`,
|
|
].flat(),
|
|
name: 'OffchainLookupError',
|
|
});
|
|
}
|
|
}
|
|
export class OffchainLookupResponseMalformedError extends BaseError {
|
|
constructor({ result, url }) {
|
|
super('Offchain gateway response is malformed. Response data must be a hex value.', {
|
|
metaMessages: [
|
|
`Gateway URL: ${getUrl(url)}`,
|
|
`Response: ${stringify(result)}`,
|
|
],
|
|
name: 'OffchainLookupResponseMalformedError',
|
|
});
|
|
}
|
|
}
|
|
export class OffchainLookupSenderMismatchError extends BaseError {
|
|
constructor({ sender, to }) {
|
|
super('Reverted sender address does not match target contract address (`to`).', {
|
|
metaMessages: [
|
|
`Contract address: ${to}`,
|
|
`OffchainLookup sender address: ${sender}`,
|
|
],
|
|
name: 'OffchainLookupSenderMismatchError',
|
|
});
|
|
}
|
|
}
|
|
//# sourceMappingURL=ccip.js.map
|