UNPKG

@mutopad/connex-framework

Version:
21 lines 2.25 kB
import { abi, keccak256 } from 'thor-devkit'; // https://docs.soliditylang.org/en/v0.8.16/control-structures.html#error-handling-assert-require-revert-and-exceptions // builtin errors in solidity, Error(string) and Panic(uint256) const errorSelector = '0x' + keccak256('Error(string)').toString('hex').slice(0, 8); const panicSelector = '0x' + keccak256('Panic(uint256)').toString('hex').slice(0, 8); export function decodeRevertReason(data) { try { if (data.startsWith(errorSelector)) { return abi.decodeParameter('string', '0x' + data.slice(errorSelector.length)); } else if (data.startsWith(panicSelector)) { const decoded = abi.decodeParameter('uint256', '0x' + data.slice(panicSelector.length)); return `Panic(0x${parseInt(decoded).toString(16).padStart(2, '0')})`; } return ''; } catch (_a) { return ''; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJ0LXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXZlcnQtcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTVDLHVIQUF1SDtBQUN2SCwrREFBK0Q7QUFFL0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRixNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFcEYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVk7SUFDM0MsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBVyxDQUFBO1NBQzFGO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBVyxDQUFBO1lBQ2pHLE9BQU8sV0FBVyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQTtTQUN2RTtRQUNELE9BQU8sRUFBRSxDQUFBO0tBQ1o7SUFBQyxXQUFNO1FBQ0osT0FBTyxFQUFFLENBQUE7S0FDWjtBQUNMLENBQUMifQ==