@xelis/sdk 0.11.25 → 0.11.26

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.
@@ -103,7 +103,8 @@ var RPCEvent;
103
103
  RPCEvent["TransactionAddedInMempool"] = "transaction_added_in_mempool";
104
104
  RPCEvent["TransactionExecuted"] = "transaction_executed";
105
105
  RPCEvent["InvokeContract"] = "invoke_contract";
106
- RPCEvent["ContractTransfer"] = "contract_transfer";
106
+ RPCEvent["ContractTransfers"] = "contract_transfers";
107
+ RPCEvent["InvokeContractError"] = "invoke_contract_error";
107
108
  RPCEvent["ContractEvent"] = "contract_event";
108
109
  RPCEvent["DeployContract"] = "deploy_contract";
109
110
  RPCEvent["NewAsset"] = "new_asset";
@@ -11,11 +11,17 @@ class DaemonMethods {
11
11
  dataCall(method, params) {
12
12
  return this.ws.dataCall(this.prefix + method, params);
13
13
  }
14
- closeListener(event, listener) {
15
- this.ws.closeListener(event, listener);
16
- }
17
- listen(event, listener) {
18
- this.ws.listen(this.prefix + event, listener);
14
+ removeListener(event, params, listener) {
15
+ let eventObj = this.prefix + event;
16
+ if (params)
17
+ eventObj = { [eventObj]: params };
18
+ this.ws.removeListener(eventObj, listener);
19
+ }
20
+ addListener(event, params, listener) {
21
+ let eventObj = this.prefix + event;
22
+ if (params)
23
+ eventObj = { [eventObj]: params };
24
+ this.ws.addListener(eventObj, listener);
19
25
  }
20
26
  getVersion() {
21
27
  return this.dataCall(types_1.RPCMethod.GetVersion);
@@ -94,11 +94,11 @@ const useNodeSocketSubscribe = ({ event, onLoad, onData }, dependencies) => {
94
94
  return;
95
95
  if (typeof onLoad === `function`)
96
96
  onLoad();
97
- nodeSocket.daemon.listen(event, onData);
97
+ nodeSocket.daemon.addListener(event, onData);
98
98
  return () => {
99
99
  if (!nodeSocket.daemon)
100
100
  return;
101
- nodeSocket.daemon.closeListener(event, onData);
101
+ nodeSocket.daemon.removeListener(event, onData);
102
102
  };
103
103
  }, [nodeSocket, ...dependencies]);
104
104
  };
@@ -17,7 +17,7 @@ class WSRPC {
17
17
  this.events = new Map();
18
18
  });
19
19
  }
20
- async closeListener(event, listener) {
20
+ async removeListener(event, listener) {
21
21
  const eventData = this.events.get(event);
22
22
  if (eventData) {
23
23
  if (eventData.listeners.length > 1) {
@@ -31,8 +31,8 @@ class WSRPC {
31
31
  }
32
32
  }
33
33
  }
34
- async listen(event, listener) {
35
- const listenEvent = () => {
34
+ async addListener(event, listener) {
35
+ const listenEvent = async () => {
36
36
  const eventData = this.events.get(event);
37
37
  if (eventData) {
38
38
  eventData.listeners.push(listener);
@@ -40,7 +40,8 @@ class WSRPC {
40
40
  }
41
41
  else {
42
42
  let idRefObject = {};
43
- this.dataCall(`subscribe`, { notify: event }, idRefObject);
43
+ await this.dataCall(`subscribe`, { notify: event }, idRefObject)
44
+ .catch(err => listener(null, err));
44
45
  const onMessage = (msgEvent) => {
45
46
  const eventData = this.events.get(event);
46
47
  if (eventData && typeof msgEvent.data === `string`) {
@@ -77,4 +77,7 @@ var RPCEvent;
77
77
  RPCEvent["HistorySynced"] = "history_synced";
78
78
  RPCEvent["Online"] = "online";
79
79
  RPCEvent["Offline"] = "offline";
80
+ RPCEvent["SyncError"] = "sync_error";
81
+ RPCEvent["TrackAsset"] = "track_asset";
82
+ RPCEvent["UntrackAsset"] = "untrack_asset";
80
83
  })(RPCEvent = exports.RPCEvent || (exports.RPCEvent = {}));
@@ -11,11 +11,17 @@ class WalletMethods {
11
11
  dataCall(method, params) {
12
12
  return this.ws.dataCall(this.prefix + method, params);
13
13
  }
14
- closeListener(event, listener) {
15
- this.ws.closeListener(event, listener);
16
- }
17
- listen(event, listener) {
18
- this.ws.listen(this.prefix + event, listener);
14
+ removeListener(event, params, listener) {
15
+ let eventObj = this.prefix + event;
16
+ if (params)
17
+ eventObj = { [eventObj]: params };
18
+ this.ws.removeListener(event, listener);
19
+ }
20
+ addListener(event, params, listener) {
21
+ let eventObj = this.prefix + event;
22
+ if (params)
23
+ eventObj = { [eventObj]: params };
24
+ this.ws.addListener(eventObj, listener);
19
25
  }
20
26
  getVersion() {
21
27
  return this.dataCall(types_1.RPCMethod.GetVersion);
@@ -100,7 +100,8 @@ export var RPCEvent;
100
100
  RPCEvent["TransactionAddedInMempool"] = "transaction_added_in_mempool";
101
101
  RPCEvent["TransactionExecuted"] = "transaction_executed";
102
102
  RPCEvent["InvokeContract"] = "invoke_contract";
103
- RPCEvent["ContractTransfer"] = "contract_transfer";
103
+ RPCEvent["ContractTransfers"] = "contract_transfers";
104
+ RPCEvent["InvokeContractError"] = "invoke_contract_error";
104
105
  RPCEvent["ContractEvent"] = "contract_event";
105
106
  RPCEvent["DeployContract"] = "deploy_contract";
106
107
  RPCEvent["NewAsset"] = "new_asset";
@@ -8,11 +8,17 @@ export class DaemonMethods {
8
8
  dataCall(method, params) {
9
9
  return this.ws.dataCall(this.prefix + method, params);
10
10
  }
11
- closeListener(event, listener) {
12
- this.ws.closeListener(event, listener);
13
- }
14
- listen(event, listener) {
15
- this.ws.listen(this.prefix + event, listener);
11
+ removeListener(event, params, listener) {
12
+ let eventObj = this.prefix + event;
13
+ if (params)
14
+ eventObj = { [eventObj]: params };
15
+ this.ws.removeListener(eventObj, listener);
16
+ }
17
+ addListener(event, params, listener) {
18
+ let eventObj = this.prefix + event;
19
+ if (params)
20
+ eventObj = { [eventObj]: params };
21
+ this.ws.addListener(eventObj, listener);
16
22
  }
17
23
  getVersion() {
18
24
  return this.dataCall(RPCMethod.GetVersion);
@@ -64,11 +64,11 @@ export const useNodeSocketSubscribe = ({ event, onLoad, onData }, dependencies)
64
64
  return;
65
65
  if (typeof onLoad === `function`)
66
66
  onLoad();
67
- nodeSocket.daemon.listen(event, onData);
67
+ nodeSocket.daemon.addListener(event, onData);
68
68
  return () => {
69
69
  if (!nodeSocket.daemon)
70
70
  return;
71
- nodeSocket.daemon.closeListener(event, onData);
71
+ nodeSocket.daemon.removeListener(event, onData);
72
72
  };
73
73
  }, [nodeSocket, ...dependencies]);
74
74
  };
@@ -11,7 +11,7 @@ export class WSRPC {
11
11
  this.events = new Map();
12
12
  });
13
13
  }
14
- async closeListener(event, listener) {
14
+ async removeListener(event, listener) {
15
15
  const eventData = this.events.get(event);
16
16
  if (eventData) {
17
17
  if (eventData.listeners.length > 1) {
@@ -25,8 +25,8 @@ export class WSRPC {
25
25
  }
26
26
  }
27
27
  }
28
- async listen(event, listener) {
29
- const listenEvent = () => {
28
+ async addListener(event, listener) {
29
+ const listenEvent = async () => {
30
30
  const eventData = this.events.get(event);
31
31
  if (eventData) {
32
32
  eventData.listeners.push(listener);
@@ -34,7 +34,8 @@ export class WSRPC {
34
34
  }
35
35
  else {
36
36
  let idRefObject = {};
37
- this.dataCall(`subscribe`, { notify: event }, idRefObject);
37
+ await this.dataCall(`subscribe`, { notify: event }, idRefObject)
38
+ .catch(err => listener(null, err));
38
39
  const onMessage = (msgEvent) => {
39
40
  const eventData = this.events.get(event);
40
41
  if (eventData && typeof msgEvent.data === `string`) {
@@ -74,4 +74,7 @@ export var RPCEvent;
74
74
  RPCEvent["HistorySynced"] = "history_synced";
75
75
  RPCEvent["Online"] = "online";
76
76
  RPCEvent["Offline"] = "offline";
77
+ RPCEvent["SyncError"] = "sync_error";
78
+ RPCEvent["TrackAsset"] = "track_asset";
79
+ RPCEvent["UntrackAsset"] = "untrack_asset";
77
80
  })(RPCEvent || (RPCEvent = {}));
@@ -8,11 +8,17 @@ export class WalletMethods {
8
8
  dataCall(method, params) {
9
9
  return this.ws.dataCall(this.prefix + method, params);
10
10
  }
11
- closeListener(event, listener) {
12
- this.ws.closeListener(event, listener);
13
- }
14
- listen(event, listener) {
15
- this.ws.listen(this.prefix + event, listener);
11
+ removeListener(event, params, listener) {
12
+ let eventObj = this.prefix + event;
13
+ if (params)
14
+ eventObj = { [eventObj]: params };
15
+ this.ws.removeListener(event, listener);
16
+ }
17
+ addListener(event, params, listener) {
18
+ let eventObj = this.prefix + event;
19
+ if (params)
20
+ eventObj = { [eventObj]: params };
21
+ this.ws.addListener(eventObj, listener);
16
22
  }
17
23
  getVersion() {
18
24
  return this.dataCall(RPCMethod.GetVersion);
@@ -358,6 +358,11 @@ export interface AssetData {
358
358
  export interface AssetWithData extends AssetData {
359
359
  asset: string;
360
360
  }
361
+ export interface NewAsset {
362
+ asset: string;
363
+ block_hash: string;
364
+ topoheight: number;
365
+ }
361
366
  export interface HasBalanceParams {
362
367
  address: string;
363
368
  asset: string;
@@ -613,10 +618,16 @@ export interface P2pBlockPropagationResult {
613
618
  first_seen?: number;
614
619
  processing_at?: number;
615
620
  }
616
- export interface ContractTransfer {
617
- asset: string;
618
- amount: number;
621
+ export interface ContractTransfersEntry {
622
+ contract: string;
623
+ caller: string;
624
+ }
625
+ export interface ContractTransfers {
619
626
  block_hash: string;
627
+ block_timestamp: number;
628
+ executions: {
629
+ [key: string]: ContractTransfersEntry;
630
+ };
620
631
  topoheight: number;
621
632
  }
622
633
  export interface ContractEventSource {
@@ -820,7 +831,8 @@ export declare enum RPCEvent {
820
831
  TransactionAddedInMempool = "transaction_added_in_mempool",
821
832
  TransactionExecuted = "transaction_executed",
822
833
  InvokeContract = "invoke_contract",
823
- ContractTransfer = "contract_transfer",
834
+ ContractTransfers = "contract_transfers",
835
+ InvokeContractError = "invoke_contract_error",
824
836
  ContractEvent = "contract_event",
825
837
  DeployContract = "deploy_contract",
826
838
  NewAsset = "new_asset",
@@ -2,33 +2,103 @@ import { RPCEvent } from './types';
2
2
  import * as types from './types';
3
3
  import { WSRPC } from '../rpc/websocket';
4
4
  export interface DaemonEventsData {
5
- [RPCEvent.NewBlock]: types.Block;
6
- [RPCEvent.BlockOrdered]: types.BlockOrdered;
7
- [RPCEvent.BlockOrphaned]: types.BlockOrphaned;
8
- [RPCEvent.StableHeightChanged]: types.StableHeightChanged;
9
- [RPCEvent.StableTopoHeightChanged]: types.StableTopoHeightChanged;
10
- [RPCEvent.TransactionOrphaned]: types.TransactionResponse;
11
- [RPCEvent.TransactionAddedInMempool]: types.MempoolTransactionSummary;
12
- [RPCEvent.TransactionExecuted]: types.TransactionExecuted;
13
- [RPCEvent.InvokeContract]: types.InvokeContract;
14
- [RPCEvent.ContractTransfer]: types.ContractTransfer;
15
- [RPCEvent.ContractEvent]: types.ContractEvent;
16
- [RPCEvent.DeployContract]: types.NewContract;
17
- [RPCEvent.NewAsset]: types.AssetWithData;
18
- [RPCEvent.PeerConnected]: types.Peer;
19
- [RPCEvent.PeerDisconnected]: types.Peer;
20
- [RPCEvent.PeerStateUpdated]: types.Peer;
21
- [RPCEvent.PeerPeerListUpdated]: types.PeerPeerListUpdated;
22
- [RPCEvent.PeerPeerDisconnected]: types.PeerPeerDisconnected;
23
- [RPCEvent.NewBlockTemplate]: types.GetBlockTemplateResult;
5
+ [RPCEvent.NewBlock]: {
6
+ params: null;
7
+ returnType: types.Block;
8
+ };
9
+ [RPCEvent.BlockOrdered]: {
10
+ params: null;
11
+ returnType: types.BlockOrdered;
12
+ };
13
+ [RPCEvent.BlockOrphaned]: {
14
+ params: null;
15
+ returnType: types.BlockOrphaned;
16
+ };
17
+ [RPCEvent.StableHeightChanged]: {
18
+ params: null;
19
+ returnType: types.StableHeightChanged;
20
+ };
21
+ [RPCEvent.StableTopoHeightChanged]: {
22
+ params: null;
23
+ returnType: types.StableTopoHeightChanged;
24
+ };
25
+ [RPCEvent.TransactionOrphaned]: {
26
+ params: null;
27
+ returnType: types.TransactionResponse;
28
+ };
29
+ [RPCEvent.TransactionAddedInMempool]: {
30
+ params: null;
31
+ returnType: types.MempoolTransactionSummary;
32
+ };
33
+ [RPCEvent.TransactionExecuted]: {
34
+ params: null;
35
+ returnType: types.TransactionExecuted;
36
+ };
37
+ [RPCEvent.InvokeContract]: {
38
+ params: {
39
+ contract: string;
40
+ };
41
+ returnType: types.InvokeContract;
42
+ };
43
+ [RPCEvent.ContractTransfers]: {
44
+ params: {
45
+ address: string;
46
+ };
47
+ returnType: types.ContractTransfers;
48
+ };
49
+ [RPCEvent.InvokeContractError]: {
50
+ params: {
51
+ address: string;
52
+ };
53
+ returnType: null;
54
+ };
55
+ [RPCEvent.ContractEvent]: {
56
+ params: {
57
+ contract: string;
58
+ id: number;
59
+ };
60
+ returnType: types.ContractEvent;
61
+ };
62
+ [RPCEvent.DeployContract]: {
63
+ params: null;
64
+ returnType: types.NewContract;
65
+ };
66
+ [RPCEvent.NewAsset]: {
67
+ params: null;
68
+ returnType: types.NewAsset;
69
+ };
70
+ [RPCEvent.PeerConnected]: {
71
+ params: null;
72
+ returnType: types.Peer;
73
+ };
74
+ [RPCEvent.PeerDisconnected]: {
75
+ params: null;
76
+ returnType: types.Peer;
77
+ };
78
+ [RPCEvent.PeerStateUpdated]: {
79
+ params: null;
80
+ returnType: types.Peer;
81
+ };
82
+ [RPCEvent.PeerPeerListUpdated]: {
83
+ params: null;
84
+ returnType: types.PeerPeerListUpdated;
85
+ };
86
+ [RPCEvent.PeerPeerDisconnected]: {
87
+ params: null;
88
+ returnType: types.PeerPeerDisconnected;
89
+ };
90
+ [RPCEvent.NewBlockTemplate]: {
91
+ params: null;
92
+ returnType: types.GetBlockTemplateResult;
93
+ };
24
94
  }
25
95
  export declare class DaemonMethods {
26
96
  ws: WSRPC;
27
97
  prefix: string;
28
98
  constructor(ws: WSRPC, prefix?: string);
29
99
  dataCall<T>(method: string, params?: any): Promise<T>;
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;
100
+ removeListener<K extends keyof DaemonEventsData>(event: K, params: DaemonEventsData[K]["params"], listener: (data?: DaemonEventsData[K]["returnType"], err?: Error) => void): void;
101
+ addListener<K extends keyof DaemonEventsData>(event: K, params: DaemonEventsData[K]["params"], listener: (data?: DaemonEventsData[K]["returnType"], err?: Error) => void): void;
32
102
  getVersion(): Promise<string>;
33
103
  getHeight(): Promise<number>;
34
104
  getTopoheight(): Promise<number>;
@@ -15,10 +15,10 @@ export declare class WSRPC {
15
15
  socket: WebSocket;
16
16
  methodIdIncrement: number;
17
17
  callTimeout: number;
18
- events: Map<string, EventData>;
18
+ events: Map<any, EventData>;
19
19
  constructor(endpoint: string, options?: ClientOptions | ClientRequestArgs);
20
- closeListener(event: string, listener: EventDataListener): Promise<void>;
21
- listen(event: string, listener: EventDataListener): Promise<void>;
20
+ removeListener(event: any, listener: EventDataListener): Promise<void>;
21
+ addListener(event: any, listener: EventDataListener): Promise<void>;
22
22
  rawCall<T>(id: number, body: string): Promise<T>;
23
23
  dataCall<T>(method: string, params?: any, idRefObj?: IdRefObj): Promise<T>;
24
24
  batchCall(requests: RPCRequest[]): Promise<({} | Error)[]>;
@@ -301,6 +301,15 @@ export interface SearchTransactionResult {
301
301
  index?: number;
302
302
  is_raw_search: boolean;
303
303
  }
304
+ export interface SyncError {
305
+ message: string;
306
+ }
307
+ export interface TrackAsset {
308
+ asset: string;
309
+ }
310
+ export interface UntrackAsset {
311
+ asset: string;
312
+ }
304
313
  export declare enum RPCMethod {
305
314
  GetVersion = "get_version",
306
315
  GetNetwork = "get_network",
@@ -351,5 +360,8 @@ export declare enum RPCEvent {
351
360
  Rescan = "rescan",
352
361
  HistorySynced = "history_synced",
353
362
  Online = "online",
354
- Offline = "offline"
363
+ Offline = "offline",
364
+ SyncError = "sync_error",
365
+ TrackAsset = "track_asset",
366
+ UntrackAsset = "untrack_asset"
355
367
  }
@@ -4,22 +4,58 @@ import { RPCEvent } from './types';
4
4
  import * as types from './types';
5
5
  import { Element } from '../data/element';
6
6
  export interface WalletEventsData {
7
- [RPCEvent.NewTopoheight]: types.NewTopoheightResult;
8
- [RPCEvent.NewAsset]: daemonTypes.AssetWithData;
9
- [RPCEvent.NewTransaction]: types.TransactionEntry;
10
- [RPCEvent.BalanceChanged]: types.BalanceChangedResult;
11
- [RPCEvent.Rescan]: types.RescanResult;
12
- [RPCEvent.HistorySynced]: types.HistorySyncedResult;
13
- [RPCEvent.Online]: void;
14
- [RPCEvent.Offline]: void;
7
+ [RPCEvent.NewTopoheight]: {
8
+ params: null;
9
+ returnType: types.NewTopoheightResult;
10
+ };
11
+ [RPCEvent.NewAsset]: {
12
+ params: null;
13
+ returnType: daemonTypes.AssetWithData;
14
+ };
15
+ [RPCEvent.NewTransaction]: {
16
+ params: null;
17
+ returnType: types.TransactionEntry;
18
+ };
19
+ [RPCEvent.BalanceChanged]: {
20
+ params: null;
21
+ returnType: types.BalanceChangedResult;
22
+ };
23
+ [RPCEvent.Rescan]: {
24
+ params: null;
25
+ returnType: types.RescanResult;
26
+ };
27
+ [RPCEvent.HistorySynced]: {
28
+ params: null;
29
+ returnType: types.HistorySyncedResult;
30
+ };
31
+ [RPCEvent.Online]: {
32
+ params: null;
33
+ returnType: void;
34
+ };
35
+ [RPCEvent.Offline]: {
36
+ params: null;
37
+ returnType: void;
38
+ };
39
+ [RPCEvent.SyncError]: {
40
+ params: null;
41
+ returnType: types.SyncError;
42
+ };
43
+ [RPCEvent.TrackAsset]: {
44
+ params: null;
45
+ returnType: types.TrackAsset;
46
+ };
47
+ [RPCEvent.UntrackAsset]: {
48
+ params: null;
49
+ returnType: types.UntrackAsset;
50
+ };
15
51
  }
16
52
  export declare class WalletMethods {
17
53
  ws: WSRPC;
18
54
  prefix: string;
19
55
  constructor(ws: WSRPC, prefix?: string);
20
56
  dataCall<T>(method: string, params?: any): Promise<T>;
21
- closeListener<K extends keyof WalletEventsData>(event: K, listener: (data?: WalletEventsData[K], err?: Error) => void): void;
22
- listen<K extends keyof WalletEventsData>(event: K, listener: (data?: WalletEventsData[K], err?: Error) => void): void;
57
+ removeListener<K extends keyof WalletEventsData>(event: K, params: WalletEventsData[K]["params"], listener: (data?: WalletEventsData[K]["returnType"], err?: Error) => void): void;
58
+ addListener<K extends keyof WalletEventsData>(event: K, params: WalletEventsData[K]["params"], listener: (data?: WalletEventsData[K]["returnType"], err?: Error) => void): void;
23
59
  getVersion(): Promise<string>;
24
60
  getNetwork(): Promise<string>;
25
61
  getNonce(): Promise<number>;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.11.25",
2
+ "version": "0.11.26",
3
3
  "name": "@xelis/sdk",
4
4
  "description": "Xelis software development kit for JS",
5
5
  "exports": {