@mutopad/connex-framework
Version:
A library implements VeChain Connex interface
25 lines • 2.45 kB
JavaScript
;
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=