UNPKG

@mutopad/connex-framework

Version:
25 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeRevertReason = void 0; const thor_devkit_1 = require("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' + (0, thor_devkit_1.keccak256)('Error(string)').toString('hex').slice(0, 8); const panicSelector = '0x' + (0, thor_devkit_1.keccak256)('Panic(uint256)').toString('hex').slice(0, 8); function decodeRevertReason(data) { try { if (data.startsWith(errorSelector)) { return thor_devkit_1.abi.decodeParameter('string', '0x' + data.slice(errorSelector.length)); } else if (data.startsWith(panicSelector)) { const decoded = thor_devkit_1.abi.decodeParameter('uint256', '0x' + data.slice(panicSelector.length)); return `Panic(0x${parseInt(decoded).toString(16).padStart(2, '0')})`; } return ''; } catch (_a) { return ''; } } exports.decodeRevertReason = decodeRevertReason; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJ0LXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXZlcnQtcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUU1Qyx1SEFBdUg7QUFDdkgsK0RBQStEO0FBRS9ELE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxJQUFBLHVCQUFTLEVBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDbkYsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLElBQUEsdUJBQVMsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRXBGLFNBQWdCLGtCQUFrQixDQUFDLElBQVk7SUFDM0MsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNoQyxPQUFPLGlCQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQVcsQ0FBQTtTQUMxRjthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN2QyxNQUFNLE9BQU8sR0FBRyxpQkFBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFXLENBQUE7WUFDakcsT0FBTyxXQUFXLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFBO1NBQ3ZFO1FBQ0QsT0FBTyxFQUFFLENBQUE7S0FDWjtJQUFDLFdBQU07UUFDSixPQUFPLEVBQUUsQ0FBQTtLQUNaO0FBQ0wsQ0FBQztBQVpELGdEQVlDIn0=