UNPKG

3.35 kBPlain TextView Raw
1import { AppRegistry } from "./app";
2import { providers } from "ethers";
3
4import {
5 Address,
6 Bytes32,
7 DecString,
8 PublicIdentifier,
9 StringMapping,
10 Transaction,
11 UrlString,
12} from "./basic";
13import { IChannelProvider } from "./channelProvider";
14import { IChannelSigner } from "./crypto";
15import { NodeResponses } from "./node";
16import { IMessagingService } from "./messaging";
17import { ILoggerService } from "./logger";
18import { IStoreService } from "./store";
19import { ConditionalTransferTypes } from "./transfers";
20
21export interface AsyncNodeInitializationParameters extends NodeInitializationParameters {
22 ethProvider: providers.JsonRpcProvider;
23 chainId: number;
24 messaging: IMessagingService;
25 messagingUrl?: string;
26 store?: IStoreService;
27 signer?: IChannelSigner;
28 channelProvider?: IChannelProvider;
29 skipSync?: boolean;
30}
31
32export interface NodeInitializationParameters {
33 chainId: number;
34 nodeUrl: string;
35 messaging: IMessagingService;
36 logger?: ILoggerService;
37 userIdentifier?: Address;
38 nodeIdentifier?: Address;
39 channelProvider?: IChannelProvider;
40}
41
42export interface INodeApiClient {
43 nodeUrl: UrlString;
44 chainId: number;
45 messaging: IMessagingService;
46 latestSwapRates: StringMapping;
47 log: ILoggerService;
48 userIdentifier: PublicIdentifier | undefined;
49 nodeIdentifier: PublicIdentifier | undefined;
50 config: NodeResponses.GetConfig | undefined;
51 channelProvider: IChannelProvider | undefined;
52 acquireLock(lockName: string): Promise<string>;
53 releaseLock(lockName: string, lockValue: string): Promise<void>;
54 appRegistry(
55 appDetails?:
56 | {
57 name: string;
58 chainId: number;
59 }
60 | { appDefinitionAddress: Address },
61 ): Promise<AppRegistry>;
62 getConfig(): Promise<NodeResponses.GetConfig>;
63 createChannel(): Promise<NodeResponses.CreateChannel>;
64 clientCheckIn(): Promise<void>;
65 getChannel(): Promise<NodeResponses.GetChannel>;
66 getLatestSwapRate(from: Address, to: Address): Promise<DecString>;
67 getRebalanceProfile(assetId?: Address): Promise<NodeResponses.GetRebalanceProfile>;
68 getHashLockTransfer(
69 lockHash: Bytes32,
70 assetId?: Address,
71 ): Promise<NodeResponses.GetHashLockTransfer>;
72 installPendingTransfers(): Promise<NodeResponses.GetPendingAsyncTransfers>;
73 getTransferHistory(userAddress?: Address): Promise<NodeResponses.GetTransferHistory>;
74 getLatestWithdrawal(): Promise<Transaction>;
75 installConditionalTransferReceiverApp(
76 paymentId: string,
77 conditionType: ConditionalTransferTypes,
78 ): Promise<NodeResponses.InstallConditionalTransferReceiverApp>;
79 requestCollateral(assetId: Address): Promise<NodeResponses.RequestCollateral | void>;
80 fetchLinkedTransfer(paymentId: Bytes32): Promise<NodeResponses.GetLinkedTransfer>;
81 fetchSignedTransfer(paymentId: Bytes32): Promise<NodeResponses.GetSignedTransfer>;
82 fetchGraphTransfer(paymentId: Bytes32): Promise<NodeResponses.GetSignedTransfer>;
83 resolveLinkedTransfer(paymentId: Bytes32): Promise<NodeResponses.ResolveLinkedTransfer>;
84 resolveSignedTransfer(paymentId: Bytes32): Promise<NodeResponses.ResolveSignedTransfer>;
85 restoreState(userAddress: Address): Promise<NodeResponses.ChannelRestore>;
86 subscribeToSwapRates(from: Address, to: Address, callback: any): Promise<void>;
87 unsubscribeFromSwapRates(from: Address, to: Address): Promise<void>;
88}