@xelis/sdk 0.7.0 → 0.8.0

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.
Files changed (56) hide show
  1. package/create_esm_pkg.js +13 -0
  2. package/dist/cjs/config.js +38 -0
  3. package/dist/cjs/daemon/rpc.js +143 -0
  4. package/dist/cjs/daemon/types.js +74 -0
  5. package/dist/cjs/daemon/websocket.js +236 -0
  6. package/dist/cjs/lib/rpc.js +89 -0
  7. package/dist/cjs/lib/types.js +2 -0
  8. package/dist/cjs/lib/websocket.js +283 -0
  9. package/dist/cjs/react/daemon.js +176 -0
  10. package/dist/cjs/wallet/rpc.js +131 -0
  11. package/dist/cjs/wallet/types.js +29 -0
  12. package/dist/cjs/wallet/websocket.js +92 -0
  13. package/dist/cjs/xswd/types.js +9 -0
  14. package/dist/cjs/xswd/websocket.js +38 -0
  15. package/dist/esm/config.js +35 -0
  16. package/dist/esm/daemon/rpc.js +140 -0
  17. package/dist/esm/daemon/websocket.js +233 -0
  18. package/dist/esm/lib/rpc.js +86 -0
  19. package/dist/esm/lib/websocket.js +277 -0
  20. package/dist/esm/package.json +1 -0
  21. package/dist/esm/react/daemon.js +144 -0
  22. package/dist/esm/wallet/rpc.js +128 -0
  23. package/dist/esm/wallet/websocket.js +89 -0
  24. package/dist/esm/xswd/websocket.js +35 -0
  25. package/jest.config.js +6 -0
  26. package/package.json +12 -3
  27. package/tsconfig.cjs.json +7 -0
  28. package/tsconfig.esm.json +7 -0
  29. package/tsconfig.json +17 -0
  30. package/tsconfig.types.json +8 -0
  31. package/config.js +0 -25
  32. package/daemon/rpc.js +0 -119
  33. package/daemon/websocket.js +0 -171
  34. package/lib/rpc.js +0 -38
  35. package/lib/websocket.js +0 -202
  36. package/react/daemon.js +0 -82
  37. package/wallet/rpc.js +0 -67
  38. package/wallet/websocket.js +0 -66
  39. package/xswd/websocket.js +0 -16
  40. /package/{daemon → dist/esm/daemon}/types.js +0 -0
  41. /package/{lib → dist/esm/lib}/types.js +0 -0
  42. /package/{wallet → dist/esm/wallet}/types.js +0 -0
  43. /package/{xswd → dist/esm/xswd}/types.js +0 -0
  44. /package/{config.d.ts → dist/types/config.d.ts} +0 -0
  45. /package/{daemon → dist/types/daemon}/rpc.d.ts +0 -0
  46. /package/{daemon → dist/types/daemon}/types.d.ts +0 -0
  47. /package/{daemon → dist/types/daemon}/websocket.d.ts +0 -0
  48. /package/{lib → dist/types/lib}/rpc.d.ts +0 -0
  49. /package/{lib → dist/types/lib}/types.d.ts +0 -0
  50. /package/{lib → dist/types/lib}/websocket.d.ts +0 -0
  51. /package/{react → dist/types/react}/daemon.d.ts +0 -0
  52. /package/{wallet → dist/types/wallet}/rpc.d.ts +0 -0
  53. /package/{wallet → dist/types/wallet}/types.d.ts +0 -0
  54. /package/{wallet → dist/types/wallet}/websocket.d.ts +0 -0
  55. /package/{xswd → dist/types/xswd}/types.d.ts +0 -0
  56. /package/{xswd → dist/types/xswd}/websocket.d.ts +0 -0
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ exports.__esModule = true;
42
+ exports.WS = void 0;
43
+ var isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
44
+ var await_to_js_1 = __importDefault(require("await-to-js"));
45
+ var WS = /** @class */ (function () {
46
+ function WS(options) {
47
+ this.connectionTries = 0;
48
+ this.methodIdIncrement = 0;
49
+ this.endpoint = "";
50
+ this.timeout = 15000; // default to 15s
51
+ this.events = {};
52
+ this.unsubscribeSuspense = 1000;
53
+ this.maxConnectionTries = 3;
54
+ this.reconnectOnConnectionLoss = true;
55
+ this.options = options;
56
+ }
57
+ WS.prototype.connect = function (endpoint) {
58
+ var _this = this;
59
+ // force disconnect if already connected
60
+ if (this.socket && this.socket.readyState === isomorphic_ws_1["default"].OPEN) {
61
+ this.socket.close();
62
+ }
63
+ this.events = {};
64
+ this.connectionTries = 0;
65
+ return new Promise(function (resolve, reject) {
66
+ _this.socket = new isomorphic_ws_1["default"](endpoint, _this.options);
67
+ _this.endpoint = endpoint;
68
+ _this.socket.addEventListener("open", function (event) {
69
+ resolve(event);
70
+ });
71
+ _this.socket.addEventListener("close", function (event) {
72
+ if (_this.reconnectOnConnectionLoss && !event.wasClean) {
73
+ _this.tryReconnect();
74
+ reject(new Error("Unhandled close. Reconnecting..."));
75
+ }
76
+ else {
77
+ reject(event);
78
+ }
79
+ });
80
+ _this.socket.addEventListener("error", function (err) {
81
+ reject(err);
82
+ });
83
+ });
84
+ };
85
+ WS.prototype.tryReconnect = function () {
86
+ var _this = this;
87
+ this.connectionTries++;
88
+ if (this.connectionTries > this.maxConnectionTries) {
89
+ return;
90
+ }
91
+ this.socket = new isomorphic_ws_1["default"](this.endpoint, this.options);
92
+ this.socket.addEventListener("open", function () {
93
+ _this.connectionTries = 0;
94
+ });
95
+ this.socket.addEventListener("close", function (event) {
96
+ _this.tryReconnect();
97
+ });
98
+ };
99
+ WS.prototype.close = function () {
100
+ if (!this.socket)
101
+ return;
102
+ this.socket.close();
103
+ };
104
+ WS.prototype.clearEvent = function (event) {
105
+ var _this = this;
106
+ this.events[event].listeners.forEach(function (listener) {
107
+ _this.socket && _this.socket.removeEventListener("message", listener);
108
+ });
109
+ Reflect.deleteProperty(this.events, event);
110
+ };
111
+ WS.prototype.closeAllListens = function (event) {
112
+ return __awaiter(this, void 0, void 0, function () {
113
+ var _a, err, _;
114
+ return __generator(this, function (_b) {
115
+ switch (_b.label) {
116
+ case 0:
117
+ if (!this.events[event]) return [3 /*break*/, 2];
118
+ return [4 /*yield*/, (0, await_to_js_1["default"])(this.call("unsubscribe", { notify: event }))];
119
+ case 1:
120
+ _a = _b.sent(), err = _a[0], _ = _a[1];
121
+ if (err)
122
+ return [2 /*return*/, Promise.reject(err)];
123
+ this.clearEvent(event);
124
+ _b.label = 2;
125
+ case 2: return [2 /*return*/, Promise.resolve()];
126
+ }
127
+ });
128
+ });
129
+ };
130
+ WS.prototype.listenEvent = function (event, onData) {
131
+ return __awaiter(this, void 0, void 0, function () {
132
+ var onMessage, unsubscribeTimeoutId, _a, err, res, closeListen;
133
+ var _this = this;
134
+ return __generator(this, function (_b) {
135
+ switch (_b.label) {
136
+ case 0:
137
+ onMessage = function (msgEvent) {
138
+ if (_this.events[event]) {
139
+ var id = _this.events[event].id;
140
+ if (typeof msgEvent.data === "string") {
141
+ try {
142
+ var data = JSON.parse(msgEvent.data);
143
+ if (data.id === id) {
144
+ if (data.error) {
145
+ onData(msgEvent, undefined, new Error(data.error.message));
146
+ }
147
+ else {
148
+ onData(msgEvent, data.result, undefined);
149
+ }
150
+ }
151
+ }
152
+ catch (_a) {
153
+ // can't parse json -- do nothing
154
+ }
155
+ }
156
+ }
157
+ };
158
+ if (!this.events[event]) return [3 /*break*/, 1];
159
+ unsubscribeTimeoutId = this.events[event].unsubscribeTimeoutId;
160
+ if (unsubscribeTimeoutId) {
161
+ // clear timeout to unsubscribe
162
+ // because we got a new registered event and want to cancel the pending unsubscribe grace period
163
+ clearTimeout(unsubscribeTimeoutId);
164
+ }
165
+ this.events[event].listeners.push(onMessage);
166
+ return [3 /*break*/, 3];
167
+ case 1:
168
+ // important if multiple listenEvent are called without await at least we store listener before getting id
169
+ this.events[event] = { listeners: [onMessage] };
170
+ return [4 /*yield*/, (0, await_to_js_1["default"])(this.call("subscribe", { notify: event }))];
171
+ case 2:
172
+ _a = _b.sent(), err = _a[0], res = _a[1];
173
+ if (err) {
174
+ this.clearEvent(event);
175
+ return [2 /*return*/, Promise.reject(err)];
176
+ }
177
+ this.events[event].id = res.id;
178
+ _b.label = 3;
179
+ case 3:
180
+ this.socket && this.socket.addEventListener("message", onMessage);
181
+ closeListen = function () {
182
+ var eventData = _this.events[event];
183
+ if (eventData) {
184
+ var listeners = eventData.listeners;
185
+ for (var i = 0; i < listeners.length; i++) {
186
+ if (listeners[i] === onMessage) {
187
+ listeners.splice(i, 1);
188
+ break;
189
+ }
190
+ }
191
+ // no more listener so we unsubscribe from daemon websocket if socket still open
192
+ if (listeners.length === 0) {
193
+ if (_this.socket && _this.socket.readyState === isomorphic_ws_1["default"].OPEN) {
194
+ // we use a grace period to unsubscribe (mostly because of react useEffect and avoid unecessary subscribe)
195
+ _this.events[event].unsubscribeTimeoutId = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
196
+ return __generator(this, function (_a) {
197
+ this.call("unsubscribe", { notify: event });
198
+ Reflect.deleteProperty(this.events, event);
199
+ return [2 /*return*/];
200
+ });
201
+ }); }, _this.unsubscribeSuspense);
202
+ }
203
+ else {
204
+ // socket is closed so we don't send unsubscribe and no grace period delete right away
205
+ Reflect.deleteProperty(_this.events, event);
206
+ }
207
+ }
208
+ }
209
+ _this.socket && _this.socket.removeEventListener("message", onMessage);
210
+ return Promise.resolve();
211
+ };
212
+ return [2 /*return*/, Promise.resolve(closeListen)];
213
+ }
214
+ });
215
+ });
216
+ };
217
+ WS.prototype.call = function (method, params, overwriteData) {
218
+ var _this = this;
219
+ return new Promise(function (resolve, reject) {
220
+ if (!_this.socket)
221
+ return reject(new Error("Socket is not initialized."));
222
+ if (_this.socket.readyState !== isomorphic_ws_1["default"].OPEN)
223
+ return reject(new Error("Can't send msg. Socket is not opened."));
224
+ var requestMethod = _this.createRequestMethod(method, params);
225
+ // for XSWD we want to send the application data without request method wrapping
226
+ if (overwriteData) {
227
+ requestMethod.id = null;
228
+ requestMethod.data = overwriteData;
229
+ }
230
+ var timeoutId = null;
231
+ var onMessage = function (msgEvent) {
232
+ if (typeof msgEvent.data === "string") {
233
+ var data = JSON.parse(msgEvent.data);
234
+ if (data.id === requestMethod.id) {
235
+ clearTimeout(timeoutId);
236
+ _this.socket && _this.socket.removeEventListener("message", onMessage);
237
+ if (data.error)
238
+ return reject(new Error(data.error.message));
239
+ else
240
+ resolve(data);
241
+ }
242
+ }
243
+ };
244
+ // make sure you listen before sending data
245
+ _this.socket && _this.socket.addEventListener("message", onMessage); // we don't use { once: true } option because of timeout feature
246
+ if (_this.timeout > 0) {
247
+ timeoutId = setTimeout(function () {
248
+ _this.socket && _this.socket.removeEventListener("message", onMessage);
249
+ reject(new Error("timeout"));
250
+ }, _this.timeout);
251
+ }
252
+ if (_this.socket && _this.socket.readyState === isomorphic_ws_1["default"].OPEN) {
253
+ _this.socket.send(requestMethod.data);
254
+ }
255
+ });
256
+ };
257
+ WS.prototype.dataCall = function (method, params) {
258
+ var _this = this;
259
+ return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
260
+ var _a, err, res;
261
+ return __generator(this, function (_b) {
262
+ switch (_b.label) {
263
+ case 0: return [4 /*yield*/, (0, await_to_js_1["default"])(this.call(method, params))];
264
+ case 1:
265
+ _a = _b.sent(), err = _a[0], res = _a[1];
266
+ if (err)
267
+ return [2 /*return*/, reject(err)];
268
+ return [2 /*return*/, resolve(res.result)];
269
+ }
270
+ });
271
+ }); });
272
+ };
273
+ WS.prototype.createRequestMethod = function (method, params) {
274
+ var id = this.methodIdIncrement++;
275
+ var request = { id: id, jsonrpc: "2.0", method: method };
276
+ if (params)
277
+ request.params = params;
278
+ var data = JSON.stringify(request);
279
+ return { data: data, id: id };
280
+ };
281
+ return WS;
282
+ }());
283
+ exports.WS = WS;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
62
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
63
+ if (ar || !(i in from)) {
64
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
65
+ ar[i] = from[i];
66
+ }
67
+ }
68
+ return to.concat(ar || Array.prototype.slice.call(from));
69
+ };
70
+ var __importDefault = (this && this.__importDefault) || function (mod) {
71
+ return (mod && mod.__esModule) ? mod : { "default": mod };
72
+ };
73
+ exports.__esModule = true;
74
+ exports.useNodeSocket = exports.useNodeSocketSubscribe = exports.NodeSocketProvider = exports.INITIATING = void 0;
75
+ var react_1 = __importStar(require("react"));
76
+ var await_to_js_1 = __importDefault(require("await-to-js"));
77
+ var websocket_1 = __importDefault(require("../daemon/websocket"));
78
+ exports.INITIATING = -1;
79
+ var daemon = new websocket_1["default"]();
80
+ var Context = (0, react_1.createContext)({
81
+ err: undefined,
82
+ daemon: daemon,
83
+ readyState: exports.INITIATING
84
+ });
85
+ var NodeSocketProvider = function (props) {
86
+ var children = props.children, endpoint = props.endpoint, timeout = props.timeout;
87
+ var _a = (0, react_1.useState)(exports.INITIATING), readyState = _a[0], setReadyState = _a[1];
88
+ var _b = (0, react_1.useState)(), err = _b[0], setErr = _b[1];
89
+ (0, react_1.useEffect)(function () {
90
+ var connect = function () { return __awaiter(void 0, void 0, void 0, function () {
91
+ var _a, err, _;
92
+ return __generator(this, function (_b) {
93
+ switch (_b.label) {
94
+ case 0:
95
+ setErr(undefined);
96
+ return [4 /*yield*/, (0, await_to_js_1["default"])(daemon.connect(endpoint))];
97
+ case 1:
98
+ _a = _b.sent(), err = _a[0], _ = _a[1];
99
+ if (err)
100
+ setErr(err);
101
+ return [2 /*return*/];
102
+ }
103
+ });
104
+ }); };
105
+ connect();
106
+ }, [endpoint]);
107
+ (0, react_1.useEffect)(function () {
108
+ if (!timeout)
109
+ return;
110
+ daemon.timeout = timeout;
111
+ }, [timeout]);
112
+ (0, react_1.useEffect)(function () {
113
+ if (!daemon.socket)
114
+ return;
115
+ setReadyState(daemon.socket.readyState);
116
+ var onOpen = function () {
117
+ if (!daemon.socket)
118
+ return;
119
+ setReadyState(daemon.socket.readyState);
120
+ setErr(undefined);
121
+ };
122
+ var onClose = function (event) {
123
+ if (!daemon.socket)
124
+ return;
125
+ setReadyState(daemon.socket.readyState);
126
+ setErr(new Error(event.reason));
127
+ };
128
+ var onError = function (err) {
129
+ if (!daemon.socket)
130
+ return;
131
+ setReadyState(daemon.socket.readyState);
132
+ setErr(new Error(err.message));
133
+ };
134
+ daemon.socket.addEventListener("open", onOpen);
135
+ daemon.socket.addEventListener("close", onClose);
136
+ daemon.socket.addEventListener("error", onError);
137
+ return function () {
138
+ if (!daemon.socket)
139
+ return;
140
+ daemon.socket.removeEventListener("open", onOpen);
141
+ daemon.socket.removeEventListener("close", onClose);
142
+ daemon.socket.removeEventListener("error", onError);
143
+ };
144
+ }, [daemon.socket]);
145
+ return react_1["default"].createElement(Context.Provider, { value: { daemon: daemon, err: err, readyState: readyState } }, children);
146
+ };
147
+ exports.NodeSocketProvider = NodeSocketProvider;
148
+ var useNodeSocketSubscribe = function (_a, dependencies) {
149
+ var event = _a.event, onLoad = _a.onLoad, onData = _a.onData;
150
+ var nodeSocket = (0, exports.useNodeSocket)();
151
+ (0, react_1.useEffect)(function () {
152
+ if (nodeSocket.readyState !== WebSocket.OPEN)
153
+ return;
154
+ if (typeof onLoad === "function")
155
+ onLoad();
156
+ var closeEvent;
157
+ var listen = function () { return __awaiter(void 0, void 0, void 0, function () {
158
+ return __generator(this, function (_a) {
159
+ switch (_a.label) {
160
+ case 0: return [4 /*yield*/, nodeSocket.daemon.listenEvent(event, onData)];
161
+ case 1:
162
+ closeEvent = _a.sent();
163
+ return [2 /*return*/];
164
+ }
165
+ });
166
+ }); };
167
+ listen();
168
+ return function () {
169
+ closeEvent && closeEvent();
170
+ };
171
+ }, __spreadArray([nodeSocket], dependencies, true));
172
+ };
173
+ exports.useNodeSocketSubscribe = useNodeSocketSubscribe;
174
+ var useNodeSocket = function () { return (0, react_1.useContext)(Context); };
175
+ exports.useNodeSocket = useNodeSocket;
176
+ exports["default"] = exports.useNodeSocket;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ exports.__esModule = true;
54
+ exports.RPC = void 0;
55
+ var js_base64_1 = require("js-base64");
56
+ var types_1 = require("./types");
57
+ var rpc_1 = require("../lib/rpc");
58
+ var RPC = /** @class */ (function (_super) {
59
+ __extends(RPC, _super);
60
+ function RPC(endpoint, username, password) {
61
+ var _this = _super.call(this, endpoint) || this;
62
+ var authValue = js_base64_1.Base64.encode("".concat(username, ":").concat(password));
63
+ _this.auth = "Basic ".concat(authValue);
64
+ return _this;
65
+ }
66
+ RPC.prototype.post = function (method, params) {
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var headers;
69
+ return __generator(this, function (_a) {
70
+ headers = new Headers();
71
+ headers.set("Authorization", this.auth);
72
+ return [2 /*return*/, _super.prototype.post.call(this, method, params, headers)];
73
+ });
74
+ });
75
+ };
76
+ RPC.prototype.getVersion = function () {
77
+ return this.post(types_1.RPCMethod.GetVersion);
78
+ };
79
+ RPC.prototype.getNetwork = function () {
80
+ return this.post(types_1.RPCMethod.GetNetwork);
81
+ };
82
+ RPC.prototype.getNonce = function () {
83
+ return this.post(types_1.RPCMethod.GetNonce);
84
+ };
85
+ RPC.prototype.getTopoheight = function () {
86
+ return this.post(types_1.RPCMethod.GetTopoheight);
87
+ };
88
+ RPC.prototype.getAddress = function (params) {
89
+ if (params === void 0) { params = {}; }
90
+ return this.post(types_1.RPCMethod.GetAddress, params);
91
+ };
92
+ RPC.prototype.splitAddress = function (params) {
93
+ return this.post(types_1.RPCMethod.SplitAddress, params);
94
+ };
95
+ RPC.prototype.rescan = function () {
96
+ return this.post(types_1.RPCMethod.Rescan);
97
+ };
98
+ RPC.prototype.getBalance = function (asset) {
99
+ return this.post(types_1.RPCMethod.GetBalance, { asset: asset });
100
+ };
101
+ RPC.prototype.hasBalance = function (asset) {
102
+ return this.post(types_1.RPCMethod.HasBalance, { asset: asset });
103
+ };
104
+ RPC.prototype.getTrackedAssets = function () {
105
+ return this.post(types_1.RPCMethod.GetTrackedAssets);
106
+ };
107
+ RPC.prototype.getAssetPrecision = function (params) {
108
+ return this.post(types_1.RPCMethod.GetAssetPrecision, params);
109
+ };
110
+ RPC.prototype.getTransaction = function (hash) {
111
+ return this.post(types_1.RPCMethod.GetTransaction, { hash: hash });
112
+ };
113
+ RPC.prototype.buildTransaction = function (params) {
114
+ return this.post(types_1.RPCMethod.BuildTransaction, params);
115
+ };
116
+ RPC.prototype.listTransactions = function (params) {
117
+ return this.post(types_1.RPCMethod.ListTransactions, params);
118
+ };
119
+ RPC.prototype.isOnline = function () {
120
+ return this.post(types_1.RPCMethod.IsOnline);
121
+ };
122
+ RPC.prototype.signData = function (data) {
123
+ return this.post(types_1.RPCMethod.SignData, data);
124
+ };
125
+ RPC.prototype.estimateFees = function (txData) {
126
+ return this.post(types_1.RPCMethod.EstimateFees, { tx_type: txData });
127
+ };
128
+ return RPC;
129
+ }(rpc_1.RPC));
130
+ exports.RPC = RPC;
131
+ exports["default"] = RPC;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.Permission = exports.RPCMethod = void 0;
4
+ var RPCMethod;
5
+ (function (RPCMethod) {
6
+ RPCMethod["GetVersion"] = "get_version";
7
+ RPCMethod["GetNetwork"] = "get_network";
8
+ RPCMethod["GetNonce"] = "get_nonce";
9
+ RPCMethod["GetTopoheight"] = "get_topoheight";
10
+ RPCMethod["GetAddress"] = "get_address";
11
+ RPCMethod["SplitAddress"] = "split_address";
12
+ RPCMethod["Rescan"] = "rescan";
13
+ RPCMethod["GetBalance"] = "get_balance";
14
+ RPCMethod["HasBalance"] = "has_balance";
15
+ RPCMethod["GetTrackedAssets"] = "get_tracked_assets";
16
+ RPCMethod["GetAssetPrecision"] = "get_asset_precision";
17
+ RPCMethod["GetTransaction"] = "get_transaction";
18
+ RPCMethod["BuildTransaction"] = "build_transaction";
19
+ RPCMethod["ListTransactions"] = "list_transactions";
20
+ RPCMethod["IsOnline"] = "is_online";
21
+ RPCMethod["SignData"] = "sign_data";
22
+ RPCMethod["EstimateFees"] = "estimate_fees";
23
+ })(RPCMethod = exports.RPCMethod || (exports.RPCMethod = {}));
24
+ var Permission;
25
+ (function (Permission) {
26
+ Permission[Permission["Ask"] = 0] = "Ask";
27
+ Permission[Permission["AcceptAlways"] = 1] = "AcceptAlways";
28
+ Permission[Permission["DenyAlways"] = 2] = "DenyAlways";
29
+ })(Permission = exports.Permission || (exports.Permission = {}));