@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
TypeScript
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;
};