@xelis/sdk 0.10.12 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,30 +1,34 @@
1
- import { MessageEvent } from 'ws';
1
+ import { RPCEvent, RPCEventResult } from './types';
2
2
  import * as types from './types';
3
3
  import { WSRPC } from '../rpc/websocket';
4
+ export interface DaemonEventsData {
5
+ [RPCEvent.NewBlock]: types.Block & RPCEventResult;
6
+ [RPCEvent.BlockOrdered]: types.BlockOrdered & RPCEventResult;
7
+ [RPCEvent.BlockOrphaned]: types.BlockOrphaned & RPCEventResult;
8
+ [RPCEvent.StableHeightChanged]: types.StableHeightChanged & RPCEventResult;
9
+ [RPCEvent.StableTopoHeightChanged]: types.StableTopoHeightChanged & RPCEventResult;
10
+ [RPCEvent.TransactionOrphaned]: types.TransactionResponse & RPCEventResult;
11
+ [RPCEvent.TransactionAddedInMempool]: types.MempoolTransactionSummary & RPCEventResult;
12
+ [RPCEvent.TransactionExecuted]: types.TransactionExecuted & RPCEventResult;
13
+ [RPCEvent.InvokeContract]: types.InvokeContract & RPCEventResult;
14
+ [RPCEvent.ContractTransfer]: types.ContractTransfer & RPCEventResult;
15
+ [RPCEvent.ContractEvent]: types.ContractEvent & RPCEventResult;
16
+ [RPCEvent.DeployContract]: types.NewContract & RPCEventResult;
17
+ [RPCEvent.NewAsset]: types.AssetWithData & RPCEventResult;
18
+ [RPCEvent.PeerConnected]: types.Peer & RPCEventResult;
19
+ [RPCEvent.PeerDisconnected]: number & RPCEventResult;
20
+ [RPCEvent.PeerStateUpdated]: types.Peer & RPCEventResult;
21
+ [RPCEvent.PeerPeerListUpdated]: types.PeerPeerListUpdated & RPCEventResult;
22
+ [RPCEvent.PeerPeerDisconnected]: types.PeerPeerDisconnected & RPCEventResult;
23
+ [RPCEvent.NewBlockTemplate]: types.GetBlockTemplateResult & RPCEventResult;
24
+ }
4
25
  export declare class DaemonMethods {
5
26
  ws: WSRPC;
6
27
  prefix: string;
7
28
  constructor(ws: WSRPC, prefix?: string);
8
29
  dataCall<T>(method: string, params?: any): Promise<T>;
9
- onNewBlock(onData: (msgEvent: MessageEvent, data?: types.Block & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
10
- onBlockOrdered(onData: (msgEvent: MessageEvent, data?: types.BlockOrdered & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
11
- onBlockOrphaned(onData: (msgEvent: MessageEvent, data?: types.BlockOrphaned & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
12
- onStableHeightChanged(onData: (msgEvent: MessageEvent, data?: types.StableHeightChanged & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
13
- onStableTopoHeightChanged(onData: (msgEvent: MessageEvent, data?: types.StableTopoHeightChanged & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
14
- onTransactionOrphaned(onData: (msgEvent: MessageEvent, data?: types.TransactionResponse & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
15
- onTransactionAddedInMempool(onData: (msgEvent: MessageEvent, data?: types.MempoolTransactionSummary & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
16
- onTransactionExecuted(onData: (msgEvent: MessageEvent, data?: types.TransactionExecuted & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
17
- onInvokeContract(contract: string, onData: (msgEvent: MessageEvent, data?: types.InvokeContract & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
18
- onContractTransfer(address: string, onData: (msgEvent: MessageEvent, data?: types.ContractTransfer & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
19
- onContractEvent(contract: string, id: number, onData: (msgEvent: MessageEvent, data?: types.ContractEvent & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
20
- onDeployContract(onData: (msgEvent: MessageEvent, data?: types.NewContract & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
21
- onNewAsset(onData: (msgEvent: MessageEvent, data?: types.AssetWithData & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
22
- onPeerConnected(onData: (msgEvent: MessageEvent, data?: types.Peer & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
23
- onPeerDisconnected(onData: (msgEvent: MessageEvent, data?: number & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
24
- onPeerStateUpdated(onData: (msgEvent: MessageEvent, data?: types.Peer & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
25
- onPeerPeerListUpdated(onData: (msgEvent: MessageEvent, data?: types.PeerPeerListUpdated & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
26
- onPeerPeerDisconnected(onData: (msgEvent: MessageEvent, data?: types.PeerPeerDisconnected & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
27
- onNewBlockTemplate(onData: (msgEvent: MessageEvent, data?: types.GetBlockTemplateResult & types.RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
30
+ closeListener<K extends keyof DaemonEventsData>(event: K, listener: (data?: DaemonEventsData[K], err?: Error) => void): void;
31
+ listen<K extends keyof DaemonEventsData>(event: K, listener: (data?: DaemonEventsData[K], err?: Error) => void): void;
28
32
  getVersion(): Promise<string>;
29
33
  getHeight(): Promise<number>;
30
34
  getTopoheight(): Promise<number>;
@@ -96,6 +100,6 @@ export declare class DaemonMethods {
96
100
  }
97
101
  export declare class WS extends WSRPC {
98
102
  methods: DaemonMethods;
99
- constructor();
103
+ constructor(endpoint: string);
100
104
  }
101
105
  export default WS;
@@ -4,7 +4,7 @@ import DaemonWS from '../daemon/websocket';
4
4
  import { RPCEvent } from '../daemon/types';
5
5
  export declare const INITIATING = -1;
6
6
  interface NodeSocket {
7
- daemon: DaemonWS;
7
+ daemon?: DaemonWS;
8
8
  err?: Error;
9
9
  readyState: number;
10
10
  }
@@ -16,7 +16,7 @@ export declare const NodeSocketProvider: (props: PropsWithChildren<NodeSocketPro
16
16
  interface NodeSocketSubscribeProps<T> {
17
17
  event: RPCEvent;
18
18
  onLoad: () => void;
19
- onData: (msgEvent: MessageEvent, data?: T, err?: Error | undefined) => void;
19
+ onData: (event?: MessageEvent, data?: T, err?: Error | undefined) => void;
20
20
  }
21
21
  export declare const useNodeSocketSubscribe: ({ event, onLoad, onData }: NodeSocketSubscribeProps<any>, dependencies: React.DependencyList) => void;
22
22
  export declare const useNodeSocket: () => NodeSocket;
@@ -1,34 +1,26 @@
1
1
  /// <reference types="node" />
2
+ import { RPCRequest } from "./types";
2
3
  import { ClientOptions, MessageEvent } from 'ws';
3
4
  import WebSocket from 'isomorphic-ws';
4
5
  import { ClientRequestArgs } from 'http';
5
- import { RPCRequest } from './types';
6
- export type EventWithParams = {
7
- [event: string]: {};
8
- };
9
- export type EventKey = string | EventWithParams;
10
6
  export type IdRefObj = {
11
7
  id?: number;
12
8
  };
9
+ export type EventDataListener = (data?: any, err?: Error) => void;
10
+ type EventData = {
11
+ onMessage: (event: MessageEvent) => void;
12
+ listeners: EventDataListener[];
13
+ };
13
14
  export declare class WSRPC {
14
- endpoint: string;
15
- socket?: WebSocket;
16
- timeout: number;
17
- unsubscribeSuspense: number;
18
- reconnectOnConnectionLoss: boolean;
19
- maxConnectionTries: number;
20
- options?: ClientOptions | ClientRequestArgs;
21
- connectionTries: number;
15
+ socket: WebSocket;
22
16
  methodIdIncrement: number;
23
- private events;
24
- constructor(options?: ClientOptions | ClientRequestArgs);
25
- connect(endpoint: string): Promise<unknown>;
26
- tryReconnect(): void;
27
- close(): void;
28
- private clearEvent;
29
- closeAllListens(event: EventKey): Promise<void>;
30
- listenEvent<T>(event: EventKey, onData: (msgEvent: MessageEvent, data?: T, err?: Error) => void): Promise<() => Promise<void>>;
31
- batchCall(requests: RPCRequest[]): Promise<any[]>;
17
+ callTimeout: number;
18
+ events: Map<string, EventData>;
19
+ constructor(endpoint: string, options?: ClientOptions | ClientRequestArgs);
20
+ closeListener(event: string, listener: EventDataListener): Promise<void>;
21
+ listen(event: string, listener: EventDataListener): Promise<void>;
32
22
  rawCall<T>(id: number, body: string): Promise<T>;
33
23
  dataCall<T>(method: string, params?: any, idRefObj?: IdRefObj): Promise<T>;
24
+ batchCall(requests: RPCRequest[]): Promise<any[]>;
34
25
  }
26
+ export {};
@@ -1,22 +1,26 @@
1
1
  import { WSRPC } from '../rpc/websocket';
2
- import { MessageEvent } from 'ws';
3
2
  import { RPCEventResult } from '../daemon/types';
4
3
  import * as daemonTypes from '../daemon/types';
4
+ import { RPCEvent } from './types';
5
5
  import * as types from './types';
6
6
  import { Element } from '../data/element';
7
+ export interface WalletEventsData {
8
+ [RPCEvent.NewTopoheight]: types.NewTopoheightResult & RPCEventResult;
9
+ [RPCEvent.NewAsset]: daemonTypes.AssetWithData & RPCEventResult;
10
+ [RPCEvent.NewTransaction]: types.TransactionEntry & RPCEventResult;
11
+ [RPCEvent.BalanceChanged]: types.BalanceChangedResult & RPCEventResult;
12
+ [RPCEvent.Rescan]: types.RescanResult & RPCEventResult;
13
+ [RPCEvent.HistorySynced]: types.HistorySyncedResult & RPCEventResult;
14
+ [RPCEvent.Online]: RPCEventResult;
15
+ [RPCEvent.Offline]: RPCEventResult;
16
+ }
7
17
  export declare class WalletMethods {
8
18
  ws: WSRPC;
9
19
  prefix: string;
10
20
  constructor(ws: WSRPC, prefix?: string);
11
21
  dataCall<T>(method: string, params?: any): Promise<T>;
12
- onNewTopoheight(onData: (msgEvent: MessageEvent, data?: types.NewTopoheightResult & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
13
- onNewAsset(onData: (msgEvent: MessageEvent, data?: daemonTypes.AssetWithData & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
14
- onNewTransaction(onData: (msgEvent: MessageEvent, data?: types.TransactionEntry & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
15
- onBalanceChanged(onData: (msgEvent: MessageEvent, data?: types.BalanceChangedResult & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
16
- onRescan(onData: (msgEvent: MessageEvent, data?: types.RescanResult & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
17
- onHistorySynced(onData: (msgEvent: MessageEvent, data?: types.HistorySyncedResult & RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
18
- onOnline(onData: (msgEvent: MessageEvent, data?: RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
19
- onOffline(onData: (msgEvent: MessageEvent, data?: RPCEventResult, err?: Error) => void): Promise<() => Promise<void>>;
22
+ closeListener<K extends keyof WalletEventsData>(event: K, listener: (data?: WalletEventsData[K], err?: Error) => void): void;
23
+ listen<K extends keyof WalletEventsData>(event: K, listener: (data?: WalletEventsData[K], err?: Error) => void): void;
20
24
  getVersion(): Promise<string>;
21
25
  getNetwork(): Promise<string>;
22
26
  getNonce(): Promise<number>;
@@ -62,6 +66,6 @@ export declare class WalletMethods {
62
66
  }
63
67
  export declare class WS extends WSRPC {
64
68
  methods: WalletMethods;
65
- constructor(username: string, password: string);
69
+ constructor(endpoint: string, username: string, password: string);
66
70
  }
67
71
  export default WS;
@@ -5,7 +5,7 @@ import { ApplicationData } from './types';
5
5
  export declare class WS extends WSRPC {
6
6
  daemon: DaemonMethods;
7
7
  wallet: WalletMethods;
8
- constructor();
8
+ constructor(endpoint: string);
9
9
  authorize(app: ApplicationData): Promise<unknown>;
10
10
  }
11
11
  export default WS;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.10.12",
2
+ "version": "0.11.1",
3
3
  "name": "@xelis/sdk",
4
4
  "description": "Xelis software development kit for JS",
5
5
  "exports": {