UNPKG

sails-js

Version:

Typescript library for working with Sails programs

29 lines (26 loc) 1.03 kB
import { ReplyCode } from '@gear-js/api'; function throwOnErrorReply(code, payload, specVersion, registry) { if (code.isSuccess) return; const replyCode = new ReplyCode(code.toU8a(), specVersion); if (!replyCode.isError) { throw new Error(`Unable to decode reply code. ${code.toU8a()}`); } const reason = replyCode.errorReason; if (reason.isExecution) { const error = reason.executionReason.isUserspacePanic ? new Error(registry.createType('String', payload).toString()) : new Error(reason.executionReason.explanation); throw error; } else if (reason.isUnavailableActor) { const error = reason.unavailableActorReason.isProgramExited ? new Error(`Program exited. Program inheritor is ${registry.createType('[u8;32]', payload).toHex()}`) : new Error(reason.unavailableActorReason.explanation); throw error; } else { throw new Error(reason.explanation); } } export { throwOnErrorReply };