@xelis/sdk 0.11.25 → 0.11.27

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);
@@ -299,12 +299,15 @@ export interface AccountHistory {
299
299
  };
300
300
  burn?: {
301
301
  amount: number;
302
+ asset: string;
302
303
  };
303
304
  outgoing?: {
304
305
  to: string;
306
+ asset: string;
305
307
  };
306
308
  incoming?: {
307
309
  from: string;
310
+ asset: string;
308
311
  };
309
312
  multi_sig?: {
310
313
  participants: string[];
@@ -313,8 +316,11 @@ export interface AccountHistory {
313
316
  invoke_contract?: {
314
317
  contract: string;
315
318
  entry_id: number;
319
+ deposits: string[];
320
+ };
321
+ deploy_contract?: {
322
+ deposits?: string[];
316
323
  };
317
- deploy_contract?: {};
318
324
  }
319
325
  export interface PeerPeerListUpdated {
320
326
  peer_id: string;
@@ -358,6 +364,11 @@ export interface AssetData {
358
364
  export interface AssetWithData extends AssetData {
359
365
  asset: string;
360
366
  }
367
+ export interface NewAsset {
368
+ asset: string;
369
+ block_hash: string;
370
+ topoheight: number;
371
+ }
361
372
  export interface HasBalanceParams {
362
373
  address: string;
363
374
  asset: string;
@@ -613,10 +624,16 @@ export interface P2pBlockPropagationResult {
613
624
  first_seen?: number;
614
625
  processing_at?: number;
615
626
  }
616
- export interface ContractTransfer {
617
- asset: string;
618
- amount: number;
627
+ export interface ContractTransfersEntry {
628
+ contract: string;
629
+ caller: string;
630
+ }
631
+ export interface ContractTransfers {
619
632
  block_hash: string;
633
+ block_timestamp: number;
634
+ executions: {
635
+ [key: string]: ContractTransfersEntry;
636
+ };
620
637
  topoheight: number;
621
638
  }
622
639
  export interface ContractEventSource {
@@ -820,7 +837,8 @@ export declare enum RPCEvent {
820
837
  TransactionAddedInMempool = "transaction_added_in_mempool",
821
838
  TransactionExecuted = "transaction_executed",
822
839
  InvokeContract = "invoke_contract",
823
- ContractTransfer = "contract_transfer",
840
+ ContractTransfers = "contract_transfers",
841
+ InvokeContractError = "invoke_contract_error",
824
842
  ContractEvent = "contract_event",
825
843
  DeployContract = "deploy_contract",
826
844
  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.27",
3
3
  "name": "@xelis/sdk",
4
4
  "description": "Xelis software development kit for JS",
5
5
  "exports": {