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.

236 lines (235 loc) 9.06 kB
import { Address, Hex } from 'viem'; import { RPCMethod, GenericRPCMessage, RPCChannelStatus, RPCChannelUpdate, RPCNetworkInfo, RPCBalance, RPCLedgerEntry, RPCAppSession, RPCHistoryEntry, RPCAsset, RPCTransaction, RPCChannelUpdateWithWallet, RPCChannelOperation, RPCChannel, RPCSessionKey } from '.'; export interface AuthChallengeResponse extends GenericRPCMessage { method: RPCMethod.AuthChallenge; params: { challengeMessage: string; }; } export interface ErrorResponse extends GenericRPCMessage { method: RPCMethod.Error; params: { error: string; }; } export interface GetConfigResponse extends GenericRPCMessage { method: RPCMethod.GetConfig; params: { brokerAddress: Address; networks: RPCNetworkInfo[]; }; } export interface GetLedgerBalancesResponse extends GenericRPCMessage { method: RPCMethod.GetLedgerBalances; params: { ledgerBalances: RPCBalance[]; }; } export interface GetLedgerEntriesResponse extends GenericRPCMessage { method: RPCMethod.GetLedgerEntries; params: { ledgerEntries: RPCLedgerEntry[]; }; } export interface GetLedgerTransactionsResponse extends GenericRPCMessage { method: RPCMethod.GetLedgerTransactions; params: { ledgerTransactions: RPCTransaction[]; }; } export interface GetUserTagResponse extends GenericRPCMessage { method: RPCMethod.GetUserTag; params: { tag: string; }; } export interface GetSessionKeysResponse extends GenericRPCMessage { method: RPCMethod.GetSessionKeys; params: { sessionKeys: RPCSessionKey[]; }; } export interface RevokeSessionKeyResponse extends GenericRPCMessage { method: RPCMethod.RevokeSessionKey; params: { sessionKey: Address; }; } export interface CreateAppSessionResponse extends GenericRPCMessage { method: RPCMethod.CreateAppSession; params: { appSessionId: Hex; version: number; status: RPCChannelStatus; }; } export interface SubmitAppStateResponse extends GenericRPCMessage { method: RPCMethod.SubmitAppState; params: { appSessionId: Hex; version: number; status: RPCChannelStatus; }; } export interface CloseAppSessionResponse extends GenericRPCMessage { method: RPCMethod.CloseAppSession; params: { appSessionId: Hex; version: number; status: RPCChannelStatus; }; } export interface GetAppDefinitionResponse extends GenericRPCMessage { method: RPCMethod.GetAppDefinition; params: { protocol: string; participants: Address[]; weights: number[]; quorum: number; challenge: number; nonce: number; }; } export interface GetAppSessionsResponse extends GenericRPCMessage { method: RPCMethod.GetAppSessions; params: { appSessions: RPCAppSession[]; }; } export interface CreateChannelResponse extends GenericRPCMessage { method: RPCMethod.CreateChannel; params: RPCChannelOperation & { channel: RPCChannel; }; } export interface ResizeChannelResponse extends GenericRPCMessage { method: RPCMethod.ResizeChannel; params: RPCChannelOperation; } export interface CloseChannelResponse extends GenericRPCMessage { method: RPCMethod.CloseChannel; params: RPCChannelOperation; } export interface GetChannelsResponse extends GenericRPCMessage { method: RPCMethod.GetChannels; params: { channels: RPCChannelUpdateWithWallet[]; }; } export interface GetRPCHistoryResponse extends GenericRPCMessage { method: RPCMethod.GetRPCHistory; params: { rpcEntries: RPCHistoryEntry[]; }; } export interface GetAssetsResponse extends GenericRPCMessage { method: RPCMethod.GetAssets; params: { assets: RPCAsset[]; }; } export interface AssetsResponse extends GenericRPCMessage { method: RPCMethod.Assets; params: { assets: RPCAsset[]; }; } export interface AuthVerifyResponse extends GenericRPCMessage { method: RPCMethod.AuthVerify; params: { address: Address; sessionKey: Address; success: boolean; jwtToken?: string; }; } export interface AuthRequestResponse extends GenericRPCMessage { method: RPCMethod.AuthRequest; params: { challengeMessage: string; }; } export interface MessageResponse extends GenericRPCMessage { method: RPCMethod.Message; params: {}; } export interface BalanceUpdateResponse extends GenericRPCMessage { method: RPCMethod.BalanceUpdate; params: { balanceUpdates: RPCBalance[]; }; } export interface ChannelsUpdateResponse extends GenericRPCMessage { method: RPCMethod.ChannelsUpdate; params: { channels: RPCChannelUpdate[]; }; } export interface ChannelUpdateResponse extends GenericRPCMessage { method: RPCMethod.ChannelUpdate; params: RPCChannelUpdate; } export interface PingResponse extends GenericRPCMessage { method: RPCMethod.Ping; params: {}; } export interface PongResponse extends GenericRPCMessage { method: RPCMethod.Pong; params: {}; } export interface TransferResponse extends GenericRPCMessage { method: RPCMethod.Transfer; params: { transactions: RPCTransaction[]; }; } export interface CleanupSessionKeyCacheResponse extends GenericRPCMessage { method: RPCMethod.CleanupSessionKeyCache; params: {}; } export interface TransferNotificationResponse extends GenericRPCMessage { method: RPCMethod.TransferNotification; params: { transactions: RPCTransaction[]; }; } export type AuthChallengeResponseParams = AuthChallengeResponse['params']; export type AuthVerifyResponseParams = AuthVerifyResponse['params']; export type ErrorResponseParams = ErrorResponse['params']; export type GetConfigResponseParams = GetConfigResponse['params']; export type GetLedgerBalancesResponseParams = GetLedgerBalancesResponse['params']; export type GetLedgerEntriesResponseParams = GetLedgerEntriesResponse['params']; export type GetLedgerTransactionsResponseParams = GetLedgerTransactionsResponse['params']; export type GetUserTagResponseParams = GetUserTagResponse['params']; export type GetSessionKeysResponseParams = GetSessionKeysResponse['params']; export type RevokeSessionKeyResponseParams = RevokeSessionKeyResponse['params']; export type CreateAppSessionResponseParams = CreateAppSessionResponse['params']; export type SubmitAppStateResponseParams = SubmitAppStateResponse['params']; export type CloseAppSessionResponseParams = CloseAppSessionResponse['params']; export type GetAppDefinitionResponseParams = GetAppDefinitionResponse['params']; export type GetAppSessionsResponseParams = GetAppSessionsResponse['params']; export type CreateChannelResponseParams = CreateChannelResponse['params']; export type ResizeChannelResponseParams = ResizeChannelResponse['params']; export type CloseChannelResponseParams = CloseChannelResponse['params']; export type GetChannelsResponseParams = GetChannelsResponse['params']; export type GetRPCHistoryResponseParams = GetRPCHistoryResponse['params']; export type GetAssetsResponseParams = GetAssetsResponse['params']; export type AssetsResponseParams = AssetsResponse['params']; export type AuthRequestResponseParams = AuthRequestResponse['params']; export type MessageResponseParams = MessageResponse['params']; export type BalanceUpdateResponseParams = BalanceUpdateResponse['params']; export type ChannelsUpdateResponseParams = ChannelsUpdateResponse['params']; export type ChannelUpdateResponseParams = ChannelUpdateResponse['params']; export type PingResponseParams = PingResponse['params']; export type PongResponseParams = PongResponse['params']; export type TransferResponseParams = TransferResponse['params']; export type CleanupSessionKeyCacheResponseParams = CleanupSessionKeyCacheResponse['params']; export type TransferNotificationResponseParams = TransferNotificationResponse['params']; export type RPCResponse = AuthChallengeResponse | AuthVerifyResponse | AuthRequestResponse | ErrorResponse | GetConfigResponse | GetLedgerBalancesResponse | GetLedgerEntriesResponse | GetLedgerTransactionsResponse | GetUserTagResponse | GetSessionKeysResponse | RevokeSessionKeyResponse | CreateAppSessionResponse | SubmitAppStateResponse | CloseAppSessionResponse | GetAppDefinitionResponse | GetAppSessionsResponse | CreateChannelResponse | ResizeChannelResponse | CloseChannelResponse | GetChannelsResponse | GetRPCHistoryResponse | GetAssetsResponse | AssetsResponse | PingResponse | PongResponse | TransferResponse | CleanupSessionKeyCacheResponse | MessageResponse | BalanceUpdateResponse | ChannelsUpdateResponse | ChannelUpdateResponse | TransferNotificationResponse; export type ExtractResponseByMethod<M extends RPCMethod> = Extract<RPCResponse, { method: M; }>; export type RPCResponseParams = ExtractResponseByMethod<RPCMethod>['params']; export type RPCResponseParamsByMethod = { [M in RPCMethod]: ExtractResponseByMethod<M>['params']; };