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.

231 lines (230 loc) 8.53 kB
import { Address, Hex } from 'viem'; import { RPCMethod, GenericRPCMessage, AppDefinition, RPCChannelStatus, TransferAllocation } from '.'; export interface AuthChallengeRequestParams { challenge_message: string; } export type AuthChallengeRPCRequestParams = AuthChallengeRequestParams; export interface AuthChallengeRequest extends GenericRPCMessage { method: RPCMethod.AuthChallenge; params: AuthChallengeRequestParams[]; } export type AuthVerifyRequestParams = { jwt: string; } | { challenge: string; }; export type AuthVerifyRPCRequestParams = AuthVerifyRequestParams; export interface AuthVerifyRequest extends GenericRPCMessage { method: RPCMethod.AuthVerify; params: AuthVerifyRequestParams[]; } export interface GetConfigRequest extends GenericRPCMessage { method: RPCMethod.GetConfig; params: []; } export interface GetLedgerBalancesRequestParams { participant: Address; account_id?: string; } export type GetLedgerBalancesRPCRequestParams = GetLedgerBalancesRequestParams; export interface GetLedgerBalancesRequest extends GenericRPCMessage { method: RPCMethod.GetLedgerBalances; params: [GetLedgerBalancesRequestParams]; } export interface GetLedgerEntriesRequestParams { account_id?: string; asset?: string; wallet?: Address; } export type GetLedgerEntriesRPCRequestParams = GetLedgerEntriesRequestParams; export interface GetLedgerEntriesRequest extends GenericRPCMessage { method: RPCMethod.GetLedgerEntries; params: [GetLedgerEntriesRequestParams]; } export declare enum TxType { Transfer = "transfer", Deposit = "deposit", Withdrawal = "withdrawal", AppDeposit = "app_deposit", AppWithdrawal = "app_withdrawal" } export interface GetLedgerTransactionsFilters { asset?: string; tx_type?: TxType; offset?: number; limit?: number; sort?: 'asc' | 'desc'; } export interface GetLedgerTransactionsRequestParams extends GetLedgerTransactionsFilters { account_id: string; } export type GetLedgerTransactionsRPCRequestParams = GetLedgerTransactionsRequestParams; export interface GetLedgerTransactionsRequest extends GenericRPCMessage { method: RPCMethod.GetLedgerTransactions; params: GetLedgerTransactionsRequestParams; } export interface GetUserTagRequestParams { } export type GetUserTagRPCRequestParams = GetUserTagRequestParams; export interface GetUserTagRequest extends GenericRPCMessage { method: RPCMethod.GetUserTag; params: []; } export type AppSessionAllocation = { participant: Address; asset: string; amount: string; }; export interface CreateAppSessionRequestParams { definition: AppDefinition; allocations: AppSessionAllocation[]; session_data?: string; } export type CreateAppSessionRPCRequestParams = CreateAppSessionRequestParams; export interface CreateAppSessionRequest extends GenericRPCMessage { method: RPCMethod.CreateAppSession; params: [CreateAppSessionRequestParams]; } export interface SubmitAppStateRequestParams { app_session_id: Hex; allocations: AppSessionAllocation[]; session_data?: string; } export type SubmitAppStateRPCRequestParams = SubmitAppStateRequestParams; export interface SubmitAppStateRequest extends GenericRPCMessage { method: RPCMethod.SubmitAppState; params: [SubmitAppStateRequestParams]; } export interface CloseAppSessionRequestParams { app_session_id: Hex; allocations: AppSessionAllocation[]; session_data?: string; } export type CloseAppSessionRPCRequestParams = CloseAppSessionRequestParams; export interface CloseAppSessionRequest extends GenericRPCMessage { method: RPCMethod.CloseAppSession; params: [CloseAppSessionRequestParams]; } export interface GetAppDefinitionRequestParams { app_session_id: Hex; } export type GetAppDefinitionRPCRequestParams = GetAppDefinitionRequestParams; export interface GetAppDefinitionRequest extends GenericRPCMessage { method: RPCMethod.GetAppDefinition; params: [GetAppDefinitionRequestParams]; } export interface GetAppSessionsRequestParams { participant: Address; status: RPCChannelStatus; } export type GetAppSessionsRPCRequestParams = GetAppSessionsRequestParams; export interface GetAppSessionsRequest extends GenericRPCMessage { method: RPCMethod.GetAppSessions; params: [GetAppSessionsRequestParams]; } export type ResizeChannelRequestParams = { channel_id: Hex; resize_amount?: bigint; allocate_amount?: bigint; funds_destination: Address; }; export type ResizeChannelRPCRequestParams = ResizeChannelRequestParams; export interface ResizeChannelRequest extends GenericRPCMessage { method: RPCMethod.ResizeChannel; params: [ResizeChannelRequestParams]; } export interface CloseChannelRequestParams { channel_id: Hex; funds_destination: Address; } export type CloseChannelRPCRequestParams = CloseChannelRequestParams; export interface CloseChannelRequest extends GenericRPCMessage { method: RPCMethod.CloseChannel; params: [CloseChannelRequestParams]; } export interface GetChannelsRequestParams { participant: Address; status: RPCChannelStatus; } export type GetChannelsRPCRequestParams = GetChannelsRequestParams; export interface GetChannelsRequest extends GenericRPCMessage { method: RPCMethod.GetChannels; params: [GetChannelsRequestParams]; } export interface GetRPCHistoryRequest extends GenericRPCMessage { method: RPCMethod.GetRPCHistory; params: []; } export interface GetAssetsRequestParams { chain_id?: number; } export type GetAssetsRPCRequestParams = GetAssetsRequestParams; export interface GetAssetsRequest extends GenericRPCMessage { method: RPCMethod.GetAssets; params: [GetAssetsRequestParams]; } export type Allowance = { asset: string; amount: string; }; export interface AuthRequestParams { wallet: Address; participant: Address; app_name: string; allowances: Allowance[]; expire: string; scope: string; application: Address; } export type AuthRequestRPCRequestParams = AuthRequestParams; export interface AuthRequest extends GenericRPCMessage { method: RPCMethod.AuthRequest; params: AuthRequestParams[]; } export interface MessageRequest extends GenericRPCMessage { method: RPCMethod.Message; params: any[]; } export interface PingRequest extends GenericRPCMessage { method: RPCMethod.Ping; params: []; } export interface PongRequest extends GenericRPCMessage { method: RPCMethod.Pong; params: []; } export interface TransferRequestParams { destination?: Address; destination_user_tag?: string; allocations: TransferAllocation[]; } export interface TransferRequest extends GenericRPCMessage { method: RPCMethod.Transfer; params: TransferRequestParams; } export type TransferRPCRequestParams = TransferRequestParams; export type RPCRequest = AuthChallengeRequest | AuthVerifyRequest | AuthRequest | GetConfigRequest | GetLedgerBalancesRequest | GetLedgerEntriesRequest | GetLedgerTransactionsRequest | GetUserTagRequest | CreateAppSessionRequest | SubmitAppStateRequest | CloseAppSessionRequest | GetAppDefinitionRequest | GetAppSessionsRequest | ResizeChannelRequest | CloseChannelRequest | GetChannelsRequest | GetRPCHistoryRequest | GetAssetsRequest | PingRequest | PongRequest | MessageRequest | TransferRequest; export type RPCRequestParamsByMethod = { [RPCMethod.AuthChallenge]: AuthChallengeRequestParams; [RPCMethod.AuthVerify]: AuthVerifyRequestParams; [RPCMethod.AuthRequest]: AuthRequestParams; [RPCMethod.GetConfig]: []; [RPCMethod.GetLedgerBalances]: GetLedgerBalancesRequestParams; [RPCMethod.GetLedgerEntries]: GetLedgerEntriesRequestParams; [RPCMethod.GetLedgerTransactions]: GetLedgerTransactionsRequestParams; [RPCMethod.GetUserTag]: []; [RPCMethod.CreateAppSession]: CreateAppSessionRequestParams; [RPCMethod.SubmitAppState]: SubmitAppStateRequestParams; [RPCMethod.CloseAppSession]: CloseAppSessionRequestParams; [RPCMethod.GetAppDefinition]: GetAppDefinitionRequestParams; [RPCMethod.GetAppSessions]: GetAppSessionsRequestParams; [RPCMethod.ResizeChannel]: ResizeChannelRequestParams; [RPCMethod.CloseChannel]: CloseChannelRequestParams; [RPCMethod.GetChannels]: GetChannelsRequestParams; [RPCMethod.GetRPCHistory]: []; [RPCMethod.GetAssets]: GetAssetsRequestParams; [RPCMethod.Ping]: []; [RPCMethod.Pong]: []; [RPCMethod.Message]: any[]; [RPCMethod.Transfer]: TransferRequestParams; };