UNPKG

@erc7824/nitrolite

Version:

The Nitrolite SDK empowers developers to build high-performance, scalable web3 applications using state channels. It's designed to provide near-instant transactions and significantly improved user experiences by minimizing direct blockchain interactions.

97 lines (96 loc) 7.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseTransferNotificationResponse = exports.parseTransferResponse = exports.parsePongResponse = exports.parsePingResponse = exports.parseChannelUpdateResponse = exports.parseChannelsUpdateResponse = exports.parseBalanceUpdateResponse = exports.parseMessageResponse = exports.parseAssetsResponse = exports.parseGetAssetsResponse = exports.parseGetRPCHistoryResponse = exports.parseGetChannelsResponse = exports.parseCloseChannelResponse = exports.parseResizeChannelResponse = exports.parseCreateChannelResponse = exports.parseGetAppSessionsResponse = exports.parseGetAppDefinitionResponse = exports.parseCloseAppSessionResponse = exports.parseSubmitAppStateResponse = exports.parseCreateAppSessionResponse = exports.parseGetUserTagResponse = exports.parseGetLedgerTransactionsResponse = exports.parseGetLedgerEntriesResponse = exports.parseGetLedgerBalancesResponse = exports.parseGetConfigResponse = exports.parseErrorResponse = exports.parseAuthRequestResponse = exports.parseAuthVerifyResponse = exports.parseAuthChallengeResponse = exports.parseAnyRPCResponse = void 0; const types_1 = require("../types"); const index_1 = require("./index"); const parseAnyRPCResponse = (response) => { try { const parsed = JSON.parse(response); if (!Array.isArray(parsed.res) || parsed.res.length !== 4) { throw new Error('Invalid RPC response format'); } const method = parsed.res[1]; const parse = index_1.paramsParsers[method]; if (!parse) { throw new Error(`No parser found for method ${method}`); } const params = parse(parsed.res[2]); const responseObj = { method, requestId: parsed.res[0], timestamp: parsed.res[3], signatures: parsed.sig || [], params, }; return responseObj; } catch (e) { throw new Error(`Failed to parse RPC response: ${e instanceof Error ? e.message : e}`); } }; exports.parseAnyRPCResponse = parseAnyRPCResponse; const _parseSpecificRPCResponse = (response, expectedMethod) => { const result = (0, exports.parseAnyRPCResponse)(response); if (result.method !== expectedMethod) { throw new Error(`Expected RPC method to be '${expectedMethod}', but received '${result.method}'`); } return result; }; const parseAuthChallengeResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.AuthChallenge); exports.parseAuthChallengeResponse = parseAuthChallengeResponse; const parseAuthVerifyResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.AuthVerify); exports.parseAuthVerifyResponse = parseAuthVerifyResponse; const parseAuthRequestResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.AuthRequest); exports.parseAuthRequestResponse = parseAuthRequestResponse; const parseErrorResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.Error); exports.parseErrorResponse = parseErrorResponse; const parseGetConfigResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetConfig); exports.parseGetConfigResponse = parseGetConfigResponse; const parseGetLedgerBalancesResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetLedgerBalances); exports.parseGetLedgerBalancesResponse = parseGetLedgerBalancesResponse; const parseGetLedgerEntriesResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetLedgerEntries); exports.parseGetLedgerEntriesResponse = parseGetLedgerEntriesResponse; const parseGetLedgerTransactionsResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetLedgerTransactions); exports.parseGetLedgerTransactionsResponse = parseGetLedgerTransactionsResponse; const parseGetUserTagResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetUserTag); exports.parseGetUserTagResponse = parseGetUserTagResponse; const parseCreateAppSessionResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.CreateAppSession); exports.parseCreateAppSessionResponse = parseCreateAppSessionResponse; const parseSubmitAppStateResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.SubmitAppState); exports.parseSubmitAppStateResponse = parseSubmitAppStateResponse; const parseCloseAppSessionResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.CloseAppSession); exports.parseCloseAppSessionResponse = parseCloseAppSessionResponse; const parseGetAppDefinitionResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetAppDefinition); exports.parseGetAppDefinitionResponse = parseGetAppDefinitionResponse; const parseGetAppSessionsResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetAppSessions); exports.parseGetAppSessionsResponse = parseGetAppSessionsResponse; const parseCreateChannelResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.CreateChannel); exports.parseCreateChannelResponse = parseCreateChannelResponse; const parseResizeChannelResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.ResizeChannel); exports.parseResizeChannelResponse = parseResizeChannelResponse; const parseCloseChannelResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.CloseChannel); exports.parseCloseChannelResponse = parseCloseChannelResponse; const parseGetChannelsResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetChannels); exports.parseGetChannelsResponse = parseGetChannelsResponse; const parseGetRPCHistoryResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetRPCHistory); exports.parseGetRPCHistoryResponse = parseGetRPCHistoryResponse; const parseGetAssetsResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.GetAssets); exports.parseGetAssetsResponse = parseGetAssetsResponse; const parseAssetsResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.Assets); exports.parseAssetsResponse = parseAssetsResponse; const parseMessageResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.Message); exports.parseMessageResponse = parseMessageResponse; const parseBalanceUpdateResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.BalanceUpdate); exports.parseBalanceUpdateResponse = parseBalanceUpdateResponse; const parseChannelsUpdateResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.ChannelsUpdate); exports.parseChannelsUpdateResponse = parseChannelsUpdateResponse; const parseChannelUpdateResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.ChannelUpdate); exports.parseChannelUpdateResponse = parseChannelUpdateResponse; const parsePingResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.Ping); exports.parsePingResponse = parsePingResponse; const parsePongResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.Pong); exports.parsePongResponse = parsePongResponse; const parseTransferResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.Transfer); exports.parseTransferResponse = parseTransferResponse; const parseTransferNotificationResponse = (raw) => _parseSpecificRPCResponse(raw, types_1.RPCMethod.TransferNotification); exports.parseTransferNotificationResponse = parseTransferNotificationResponse;