1 | import { AppRegistry } from "./app";
|
2 | import { providers } from "ethers";
|
3 |
|
4 | import {
|
5 | Address,
|
6 | Bytes32,
|
7 | DecString,
|
8 | PublicIdentifier,
|
9 | StringMapping,
|
10 | Transaction,
|
11 | UrlString,
|
12 | } from "./basic";
|
13 | import { IChannelProvider } from "./channelProvider";
|
14 | import { IChannelSigner } from "./crypto";
|
15 | import { NodeResponses } from "./node";
|
16 | import { IMessagingService } from "./messaging";
|
17 | import { ILoggerService } from "./logger";
|
18 | import { IStoreService } from "./store";
|
19 | import { ConditionalTransferTypes } from "./transfers";
|
20 |
|
21 | export 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 |
|
32 | export 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 |
|
42 | export 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 | }
|