@paymechain/sdk 1.0.3 → 1.0.7
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.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/models/index.d.ts +98 -118
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +7 -0
- package/dist/models/index.js.map +1 -1
- package/dist/payme-client.d.ts +0 -2
- package/dist/payme-client.d.ts.map +1 -1
- package/dist/payme-client.js +5 -6
- package/dist/payme-client.js.map +1 -1
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +0 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/wallet.service.d.ts +13 -33
- package/dist/services/wallet.service.d.ts.map +1 -1
- package/dist/services/wallet.service.js +21 -37
- package/dist/services/wallet.service.js.map +1 -1
- package/dist/wallet/transaction-signer.d.ts +38 -0
- package/dist/wallet/transaction-signer.d.ts.map +1 -0
- package/dist/wallet/transaction-signer.js +153 -0
- package/dist/wallet/transaction-signer.js.map +1 -0
- package/package.json +6 -1
- package/dist/models/account-balance.model.d.ts +0 -6
- package/dist/models/account-balance.model.d.ts.map +0 -1
- package/dist/models/account-balance.model.js +0 -3
- package/dist/models/account-balance.model.js.map +0 -1
- package/dist/models/account-info.model.d.ts +0 -7
- package/dist/models/account-info.model.d.ts.map +0 -1
- package/dist/models/account-info.model.js +0 -3
- package/dist/models/account-info.model.js.map +0 -1
- package/dist/models/balance-line.model.d.ts +0 -6
- package/dist/models/balance-line.model.d.ts.map +0 -1
- package/dist/models/balance-line.model.js +0 -3
- package/dist/models/balance-line.model.js.map +0 -1
- package/dist/models/block-header.model.d.ts +0 -8
- package/dist/models/block-header.model.d.ts.map +0 -1
- package/dist/models/block-header.model.js +0 -3
- package/dist/models/block-header.model.js.map +0 -1
- package/dist/models/block-summary.model.d.ts +0 -11
- package/dist/models/block-summary.model.d.ts.map +0 -1
- package/dist/models/block-summary.model.js +0 -3
- package/dist/models/block-summary.model.js.map +0 -1
- package/dist/models/command-result.model.d.ts +0 -18
- package/dist/models/command-result.model.d.ts.map +0 -1
- package/dist/models/command-result.model.js +0 -16
- package/dist/models/command-result.model.js.map +0 -1
- package/dist/models/create-wallet.model.d.ts +0 -6
- package/dist/models/create-wallet.model.d.ts.map +0 -1
- package/dist/models/create-wallet.model.js +0 -3
- package/dist/models/create-wallet.model.js.map +0 -1
- package/dist/models/derive-address-request.model.d.ts +0 -5
- package/dist/models/derive-address-request.model.d.ts.map +0 -1
- package/dist/models/derive-address-request.model.js +0 -3
- package/dist/models/derive-address-request.model.js.map +0 -1
- package/dist/models/derive-address.model.d.ts +0 -5
- package/dist/models/derive-address.model.d.ts.map +0 -1
- package/dist/models/derive-address.model.js +0 -3
- package/dist/models/derive-address.model.js.map +0 -1
- package/dist/models/explorer-transaction-summary.model.d.ts +0 -9
- package/dist/models/explorer-transaction-summary.model.d.ts.map +0 -1
- package/dist/models/explorer-transaction-summary.model.js +0 -3
- package/dist/models/explorer-transaction-summary.model.js.map +0 -1
- package/dist/models/merkle-proof.model.d.ts +0 -7
- package/dist/models/merkle-proof.model.d.ts.map +0 -1
- package/dist/models/merkle-proof.model.js +0 -3
- package/dist/models/merkle-proof.model.js.map +0 -1
- package/dist/models/network-statistics.model.d.ts +0 -8
- package/dist/models/network-statistics.model.d.ts.map +0 -1
- package/dist/models/network-statistics.model.js +0 -3
- package/dist/models/network-statistics.model.js.map +0 -1
- package/dist/models/node-selection-strategy.enum.d.ts +0 -6
- package/dist/models/node-selection-strategy.enum.d.ts.map +0 -1
- package/dist/models/node-selection-strategy.enum.js +0 -10
- package/dist/models/node-selection-strategy.enum.js.map +0 -1
- package/dist/models/node-status.model.d.ts +0 -6
- package/dist/models/node-status.model.d.ts.map +0 -1
- package/dist/models/node-status.model.js +0 -3
- package/dist/models/node-status.model.js.map +0 -1
- package/dist/models/node.model.d.ts +0 -5
- package/dist/models/node.model.d.ts.map +0 -1
- package/dist/models/node.model.js +0 -3
- package/dist/models/node.model.js.map +0 -1
- package/dist/models/paged-result.model.d.ts +0 -7
- package/dist/models/paged-result.model.d.ts.map +0 -1
- package/dist/models/paged-result.model.js +0 -3
- package/dist/models/paged-result.model.js.map +0 -1
- package/dist/models/rich-list-item.model.d.ts +0 -5
- package/dist/models/rich-list-item.model.d.ts.map +0 -1
- package/dist/models/rich-list-item.model.js +0 -3
- package/dist/models/rich-list-item.model.js.map +0 -1
- package/dist/models/send-transaction-response.model.d.ts +0 -4
- package/dist/models/send-transaction-response.model.d.ts.map +0 -1
- package/dist/models/send-transaction-response.model.js +0 -3
- package/dist/models/send-transaction-response.model.js.map +0 -1
- package/dist/models/send-transaction.model.d.ts +0 -9
- package/dist/models/send-transaction.model.d.ts.map +0 -1
- package/dist/models/send-transaction.model.js +0 -3
- package/dist/models/send-transaction.model.js.map +0 -1
- package/dist/models/stake.model.d.ts +0 -7
- package/dist/models/stake.model.d.ts.map +0 -1
- package/dist/models/stake.model.js +0 -3
- package/dist/models/stake.model.js.map +0 -1
- package/dist/models/submit-transaction-request.model.d.ts +0 -13
- package/dist/models/submit-transaction-request.model.d.ts.map +0 -1
- package/dist/models/submit-transaction-request.model.js +0 -3
- package/dist/models/submit-transaction-request.model.js.map +0 -1
- package/dist/models/submit-transaction-response.model.d.ts +0 -4
- package/dist/models/submit-transaction-response.model.d.ts.map +0 -1
- package/dist/models/submit-transaction-response.model.js +0 -3
- package/dist/models/submit-transaction-response.model.js.map +0 -1
- package/dist/models/token.model.d.ts +0 -7
- package/dist/models/token.model.d.ts.map +0 -1
- package/dist/models/token.model.js +0 -3
- package/dist/models/token.model.js.map +0 -1
- package/dist/models/transaction-details.model.d.ts +0 -11
- package/dist/models/transaction-details.model.d.ts.map +0 -1
- package/dist/models/transaction-details.model.js +0 -3
- package/dist/models/transaction-details.model.js.map +0 -1
- package/dist/models/transaction-id.model.d.ts +0 -4
- package/dist/models/transaction-id.model.d.ts.map +0 -1
- package/dist/models/transaction-id.model.js +0 -3
- package/dist/models/transaction-id.model.js.map +0 -1
- package/dist/models/transaction-summary.model.d.ts +0 -9
- package/dist/models/transaction-summary.model.d.ts.map +0 -1
- package/dist/models/transaction-summary.model.js +0 -3
- package/dist/models/transaction-summary.model.js.map +0 -1
- package/dist/models/unbonding-entry.model.d.ts +0 -6
- package/dist/models/unbonding-entry.model.d.ts.map +0 -1
- package/dist/models/unbonding-entry.model.js +0 -3
- package/dist/models/unbonding-entry.model.js.map +0 -1
- package/dist/models/unstake.model.d.ts +0 -7
- package/dist/models/unstake.model.d.ts.map +0 -1
- package/dist/models/unstake.model.js +0 -3
- package/dist/models/unstake.model.js.map +0 -1
- package/dist/models/validator.model.d.ts +0 -9
- package/dist/models/validator.model.d.ts.map +0 -1
- package/dist/models/validator.model.js +0 -3
- package/dist/models/validator.model.js.map +0 -1
- package/dist/models/wallet-account-balance.model.d.ts +0 -6
- package/dist/models/wallet-account-balance.model.d.ts.map +0 -1
- package/dist/models/wallet-account-balance.model.js +0 -3
- package/dist/models/wallet-account-balance.model.js.map +0 -1
- package/dist/models/wallet-detailed-transaction-summary.model.d.ts +0 -20
- package/dist/models/wallet-detailed-transaction-summary.model.d.ts.map +0 -1
- package/dist/models/wallet-detailed-transaction-summary.model.js +0 -3
- package/dist/models/wallet-detailed-transaction-summary.model.js.map +0 -1
- package/dist/models/wallet.model.d.ts +0 -6
- package/dist/models/wallet.model.d.ts.map +0 -1
- package/dist/models/wallet.model.js +0 -3
- package/dist/models/wallet.model.js.map +0 -1
- package/dist/services/certificate-manager.service.d.ts +0 -19
- package/dist/services/certificate-manager.service.d.ts.map +0 -1
- package/dist/services/certificate-manager.service.js +0 -198
- package/dist/services/certificate-manager.service.js.map +0 -1
- package/dist/services/node-manager.service.d.ts +0 -35
- package/dist/services/node-manager.service.d.ts.map +0 -1
- package/dist/services/node-manager.service.js +0 -170
- package/dist/services/node-manager.service.js.map +0 -1
- package/dist/services/signalr.service.d.ts +0 -21
- package/dist/services/signalr.service.d.ts.map +0 -1
- package/dist/services/signalr.service.js +0 -123
- package/dist/services/signalr.service.js.map +0 -1
- package/dist/services/staking.service.d.ts +0 -25
- package/dist/services/staking.service.d.ts.map +0 -1
- package/dist/services/staking.service.js +0 -34
- package/dist/services/staking.service.js.map +0 -1
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NodeManagerService = void 0;
|
|
7
|
-
// src/services/node-manager.service.ts
|
|
8
|
-
const axios_1 = __importDefault(require("axios"));
|
|
9
|
-
const models_1 = require("../models");
|
|
10
|
-
// Node.js specific imports - will be used conditionally
|
|
11
|
-
let https;
|
|
12
|
-
if (typeof process !== 'undefined' && process.versions != null && process.versions.node != null) {
|
|
13
|
-
https = require('https');
|
|
14
|
-
}
|
|
15
|
-
class EventEmitter {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.listeners = {};
|
|
18
|
-
}
|
|
19
|
-
on(event, listener) {
|
|
20
|
-
if (!this.listeners[event]) {
|
|
21
|
-
this.listeners[event] = [];
|
|
22
|
-
}
|
|
23
|
-
this.listeners[event].push(listener);
|
|
24
|
-
}
|
|
25
|
-
off(event, listener) {
|
|
26
|
-
if (this.listeners[event]) {
|
|
27
|
-
this.listeners[event] = this.listeners[event].filter(l => l !== listener);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
emit(event, ...args) {
|
|
31
|
-
if (this.listeners[event]) {
|
|
32
|
-
this.listeners[event].forEach(listener => listener(...args));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
class NodeManagerService {
|
|
37
|
-
constructor(certificateManager, seedNodes = [], nodeRegistryUrl, healthCheckIntervalSeconds = 60, nodeSelectionStrategy = models_1.NodeSelectionStrategy.LowestLatency) {
|
|
38
|
-
this.certificateManager = certificateManager;
|
|
39
|
-
this.seedNodes = seedNodes;
|
|
40
|
-
this.nodeRegistryUrl = nodeRegistryUrl;
|
|
41
|
-
this.healthCheckIntervalSeconds = healthCheckIntervalSeconds;
|
|
42
|
-
this.nodeSelectionStrategy = nodeSelectionStrategy;
|
|
43
|
-
this.availableNodes = new Map();
|
|
44
|
-
this.eventEmitter = new EventEmitter();
|
|
45
|
-
}
|
|
46
|
-
async initializeAsync() {
|
|
47
|
-
console.log('[NodeManager] Initializing...');
|
|
48
|
-
await this.discoverAndSelectBestNode();
|
|
49
|
-
}
|
|
50
|
-
startPeriodicChecks() {
|
|
51
|
-
console.log(`[NodeManager] Starting periodic health checks every ${this.healthCheckIntervalSeconds} seconds.`);
|
|
52
|
-
if (this.healthCheckTimer) {
|
|
53
|
-
clearInterval(this.healthCheckTimer);
|
|
54
|
-
}
|
|
55
|
-
this.healthCheckTimer = setInterval(() => this.discoverAndSelectBestNode(), this.healthCheckIntervalSeconds * 1000);
|
|
56
|
-
}
|
|
57
|
-
stopPeriodicChecks() {
|
|
58
|
-
if (this.healthCheckTimer) {
|
|
59
|
-
clearInterval(this.healthCheckTimer);
|
|
60
|
-
this.healthCheckTimer = undefined;
|
|
61
|
-
console.log('[NodeManager] Stopped periodic health checks.');
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
onNodeChanged(listener) {
|
|
65
|
-
this.eventEmitter.on('nodeChanged', listener);
|
|
66
|
-
}
|
|
67
|
-
offNodeChanged(listener) {
|
|
68
|
-
this.eventEmitter.off('nodeChanged', listener);
|
|
69
|
-
}
|
|
70
|
-
getHealthyNodeUrl() {
|
|
71
|
-
return this.currentNodeUrl;
|
|
72
|
-
}
|
|
73
|
-
async discoverAndSelectBestNode() {
|
|
74
|
-
console.log('[NodeManager] Starting node discovery and selection process...');
|
|
75
|
-
const nodesToProbe = await this.discoverNodes();
|
|
76
|
-
const healthCheckPromises = nodesToProbe.map(url => this.performHealthCheck(url));
|
|
77
|
-
await Promise.allSettled(healthCheckPromises);
|
|
78
|
-
this.selectBestNode();
|
|
79
|
-
console.log('[NodeManager] Node discovery and selection process finished.');
|
|
80
|
-
}
|
|
81
|
-
async discoverNodes() {
|
|
82
|
-
const discoveredUrls = new Set(this.seedNodes);
|
|
83
|
-
if (this.nodeRegistryUrl) {
|
|
84
|
-
try {
|
|
85
|
-
const requestUri = `${this.nodeRegistryUrl}/v1/Validator`;
|
|
86
|
-
console.log(`[NodeManager] Fetching nodes from registry: ${requestUri}`);
|
|
87
|
-
const response = await axios_1.default.get(requestUri, { timeout: 10000 });
|
|
88
|
-
if (response.data.Success && response.data.Data) {
|
|
89
|
-
response.data.Data.forEach(v => v.NetworkUrl && discoveredUrls.add(v.NetworkUrl));
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
console.warn(`[NodeManager] Failed to get nodes from registry: ${response.data.Message}`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
console.error(`[NodeManager] Error fetching nodes from registry:`, error.message);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// Ensure all discovered nodes have a base entry in our map
|
|
100
|
-
discoveredUrls.forEach(url => {
|
|
101
|
-
if (!this.availableNodes.has(url)) {
|
|
102
|
-
this.availableNodes.set(url, { url, isHealthy: false, latency: -1, isValidator: false });
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
return Array.from(discoveredUrls);
|
|
106
|
-
}
|
|
107
|
-
async performHealthCheck(nodeUrl) {
|
|
108
|
-
const startTime = Date.now();
|
|
109
|
-
try {
|
|
110
|
-
const agent = this.createHttpsAgent();
|
|
111
|
-
const response = await axios_1.default.get(`/api/stats/network`, {
|
|
112
|
-
baseURL: nodeUrl,
|
|
113
|
-
timeout: 5000,
|
|
114
|
-
httpsAgent: agent,
|
|
115
|
-
});
|
|
116
|
-
if (response.status === 200 && response.data.Success) {
|
|
117
|
-
const latency = Date.now() - startTime;
|
|
118
|
-
this.availableNodes.set(nodeUrl, Object.assign(Object.assign({}, this.availableNodes.get(nodeUrl)), { url: nodeUrl, isHealthy: true, latency }));
|
|
119
|
-
console.log(`[NodeManager] Node ${nodeUrl} is healthy. Latency: ${latency}ms.`);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
throw new Error(response.data.Message || `Status code ${response.status}`);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
this.availableNodes.set(nodeUrl, Object.assign(Object.assign({}, this.availableNodes.get(nodeUrl)), { url: nodeUrl, isHealthy: false, latency: -1 }));
|
|
127
|
-
console.warn(`[NodeManager] Node ${nodeUrl} health check failed: ${error.message}`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
selectBestNode() {
|
|
131
|
-
const healthyNodes = Array.from(this.availableNodes.values()).filter(node => node.isHealthy);
|
|
132
|
-
if (healthyNodes.length === 0) {
|
|
133
|
-
console.error('[NodeManager] No healthy nodes available.');
|
|
134
|
-
// Don't change the current node if all checks fail, maybe it will come back online
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
let selectedNode;
|
|
138
|
-
if (this.nodeSelectionStrategy === models_1.NodeSelectionStrategy.LowestLatency) {
|
|
139
|
-
selectedNode = healthyNodes.sort((a, b) => a.latency - b.latency)[0];
|
|
140
|
-
}
|
|
141
|
-
else { // Fallback or random
|
|
142
|
-
selectedNode = healthyNodes[Math.floor(Math.random() * healthyNodes.length)];
|
|
143
|
-
}
|
|
144
|
-
if (selectedNode && selectedNode.url !== this.currentNodeUrl) {
|
|
145
|
-
const oldUrl = this.currentNodeUrl;
|
|
146
|
-
this.currentNodeUrl = selectedNode.url;
|
|
147
|
-
console.log(`[NodeManager] Node changed from ${oldUrl || 'none'} to ${this.currentNodeUrl}`);
|
|
148
|
-
this.eventEmitter.emit('nodeChanged', this.currentNodeUrl);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
createHttpsAgent() {
|
|
152
|
-
// Only create a custom agent in Node.js environment
|
|
153
|
-
if (typeof process !== 'undefined' && process.versions.node != null) {
|
|
154
|
-
const rootCa = this.certificateManager.getRootCaCertificate();
|
|
155
|
-
if (rootCa) {
|
|
156
|
-
return new https.Agent({
|
|
157
|
-
ca: rootCa,
|
|
158
|
-
rejectUnauthorized: true, // Ensure we validate against the provided CA
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
// In browser or if no CA is present, return undefined and let axios use its default.
|
|
163
|
-
return undefined;
|
|
164
|
-
}
|
|
165
|
-
dispose() {
|
|
166
|
-
this.stopPeriodicChecks();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
exports.NodeManagerService = NodeManagerService;
|
|
170
|
-
//# sourceMappingURL=node-manager.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-manager.service.js","sourceRoot":"","sources":["../../src/services/node-manager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { NodeManagerService } from './node-manager.service';
|
|
2
|
-
export interface ISignalRClient {
|
|
3
|
-
start(): Promise<void>;
|
|
4
|
-
stop(): Promise<void>;
|
|
5
|
-
on(methodName: string, newMethod: (...args: any[]) => void): void;
|
|
6
|
-
dispose(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
export declare class SignalRClient implements ISignalRClient {
|
|
9
|
-
private hubConnection?;
|
|
10
|
-
private readonly nodeManager;
|
|
11
|
-
private readonly handlers;
|
|
12
|
-
private isStarted;
|
|
13
|
-
constructor(nodeManager: NodeManagerService);
|
|
14
|
-
private handleNodeChange;
|
|
15
|
-
start(): Promise<void>;
|
|
16
|
-
private connect;
|
|
17
|
-
stop(): Promise<void>;
|
|
18
|
-
on(methodName: string, newMethod: (...args: any[]) => void): void;
|
|
19
|
-
dispose(): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=signalr.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signalr.service.d.ts","sourceRoot":"","sources":["../../src/services/signalr.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,qBAAa,aAAc,YAAW,cAAc;IAChD,OAAO,CAAC,aAAa,CAAC,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAC3F,OAAO,CAAC,SAAS,CAAS;gBAEd,WAAW,EAAE,kBAAkB;IAK3C,OAAO,CAAC,gBAAgB,CAMtB;IAEW,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAerB,OAAO;IAoCR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAO3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIxC"}
|
|
@@ -1,123 +0,0 @@
|
|
|
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 () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.SignalRClient = void 0;
|
|
37
|
-
// src/services/signalr.service.ts
|
|
38
|
-
const signalR = __importStar(require("@microsoft/signalr"));
|
|
39
|
-
class SignalRClient {
|
|
40
|
-
constructor(nodeManager) {
|
|
41
|
-
this.handlers = [];
|
|
42
|
-
this.isStarted = false;
|
|
43
|
-
this.handleNodeChange = async (newNodeUrl) => {
|
|
44
|
-
if (!this.isStarted) {
|
|
45
|
-
return; // Don't reconnect if the client hasn't been explicitly started.
|
|
46
|
-
}
|
|
47
|
-
console.log(`[SignalRClient] Node changed to ${newNodeUrl}. Reconnecting SignalR...`);
|
|
48
|
-
await this.connect(newNodeUrl);
|
|
49
|
-
};
|
|
50
|
-
this.nodeManager = nodeManager;
|
|
51
|
-
this.nodeManager.onNodeChanged(this.handleNodeChange);
|
|
52
|
-
}
|
|
53
|
-
async start() {
|
|
54
|
-
if (this.isStarted) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
console.log('[SignalRClient] Starting...');
|
|
58
|
-
this.isStarted = true;
|
|
59
|
-
const initialNodeUrl = this.nodeManager.getHealthyNodeUrl();
|
|
60
|
-
if (initialNodeUrl) {
|
|
61
|
-
await this.connect(initialNodeUrl);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
console.error("[SignalRClient] Cannot start. Initial healthy node URL is not available.");
|
|
65
|
-
// The handleNodeChange event will connect us once a healthy node is found.
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async connect(nodeUrl) {
|
|
69
|
-
// 1. Stop and clean up the old connection
|
|
70
|
-
if (this.hubConnection) {
|
|
71
|
-
await this.hubConnection.stop();
|
|
72
|
-
console.log('[SignalRClient] Previous connection stopped.');
|
|
73
|
-
}
|
|
74
|
-
// 2. Create the new connection
|
|
75
|
-
const hubUrl = `${nodeUrl}/blockchain-hub`;
|
|
76
|
-
console.log(`[SignalRClient] Creating new connection to ${hubUrl}`);
|
|
77
|
-
this.hubConnection = new signalR.HubConnectionBuilder()
|
|
78
|
-
.withUrl(hubUrl)
|
|
79
|
-
.withAutomaticReconnect()
|
|
80
|
-
.build();
|
|
81
|
-
this.hubConnection.onclose(error => {
|
|
82
|
-
if (this.isStarted) {
|
|
83
|
-
console.error(`[SignalRClient] Connection closed with error: ${error}. Automatic reconnect will handle it.`);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
// 3. Re-apply all registered handlers
|
|
87
|
-
this.handlers.forEach(h => {
|
|
88
|
-
this.hubConnection.on(h.methodName, h.method);
|
|
89
|
-
});
|
|
90
|
-
console.log(`[SignalRClient] Re-applied ${this.handlers.length} event handlers.`);
|
|
91
|
-
// 4. Start the new connection
|
|
92
|
-
try {
|
|
93
|
-
await this.hubConnection.start();
|
|
94
|
-
console.log(`[SignalRClient] Connection to ${hubUrl} started successfully.`);
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
console.error(`[SignalRClient] Failed to start connection to ${hubUrl}:`, error);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async stop() {
|
|
101
|
-
if (!this.isStarted) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
this.isStarted = false;
|
|
105
|
-
if (this.hubConnection) {
|
|
106
|
-
await this.hubConnection.stop();
|
|
107
|
-
console.log('[SignalRClient] Stopped.');
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
on(methodName, newMethod) {
|
|
111
|
-
var _a;
|
|
112
|
-
// Store the handler for future reconnections
|
|
113
|
-
this.handlers.push({ methodName, method: newMethod });
|
|
114
|
-
// Apply to the current connection if it exists
|
|
115
|
-
(_a = this.hubConnection) === null || _a === void 0 ? void 0 : _a.on(methodName, newMethod);
|
|
116
|
-
}
|
|
117
|
-
async dispose() {
|
|
118
|
-
this.nodeManager.offNodeChanged(this.handleNodeChange);
|
|
119
|
-
await this.stop();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
exports.SignalRClient = SignalRClient;
|
|
123
|
-
//# sourceMappingURL=signalr.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signalr.service.js","sourceRoot":"","sources":["../../src/services/signalr.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { BaseService } from './base.service';
|
|
2
|
-
import { UnbondingEntryViewModel, StakeViewModel, UnstakeViewModel } from '../models';
|
|
3
|
-
export declare class StakingService {
|
|
4
|
-
private baseService;
|
|
5
|
-
constructor(baseService: BaseService);
|
|
6
|
-
/**
|
|
7
|
-
* Gets a list of delegations for a specific address.
|
|
8
|
-
* @param address The address to query delegations for.
|
|
9
|
-
* @returns Array of UnbondingEntryViewModel
|
|
10
|
-
*/
|
|
11
|
-
getDelegations(address: string): Promise<UnbondingEntryViewModel[]>;
|
|
12
|
-
/**
|
|
13
|
-
* Submits a staking transaction.
|
|
14
|
-
* @param model The staking details.
|
|
15
|
-
* @returns object (assuming the gateway returns a generic object for success)
|
|
16
|
-
*/
|
|
17
|
-
stake(model: StakeViewModel): Promise<object>;
|
|
18
|
-
/**
|
|
19
|
-
* Submits an unstaking transaction.
|
|
20
|
-
* @param model The unstaking details.
|
|
21
|
-
* @returns object (assuming the gateway returns a generic object for success)
|
|
22
|
-
*/
|
|
23
|
-
unstake(model: UnstakeViewModel): Promise<object>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=staking.service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"staking.service.d.ts","sourceRoot":"","sources":["../../src/services/staking.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEtF,qBAAa,cAAc;IACb,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE5C;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAIzE;;;;OAIG;IACG,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;CAGxD"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StakingService = void 0;
|
|
4
|
-
class StakingService {
|
|
5
|
-
constructor(baseService) {
|
|
6
|
-
this.baseService = baseService;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Gets a list of delegations for a specific address.
|
|
10
|
-
* @param address The address to query delegations for.
|
|
11
|
-
* @returns Array of UnbondingEntryViewModel
|
|
12
|
-
*/
|
|
13
|
-
async getDelegations(address) {
|
|
14
|
-
return this.baseService.get(`/api/staking/${address}/delegations`);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Submits a staking transaction.
|
|
18
|
-
* @param model The staking details.
|
|
19
|
-
* @returns object (assuming the gateway returns a generic object for success)
|
|
20
|
-
*/
|
|
21
|
-
async stake(model) {
|
|
22
|
-
return this.baseService.post('/api/staking/stake', model);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Submits an unstaking transaction.
|
|
26
|
-
* @param model The unstaking details.
|
|
27
|
-
* @returns object (assuming the gateway returns a generic object for success)
|
|
28
|
-
*/
|
|
29
|
-
async unstake(model) {
|
|
30
|
-
return this.baseService.post('/api/staking/unstake', model);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.StakingService = StakingService;
|
|
34
|
-
//# sourceMappingURL=staking.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"staking.service.js","sourceRoot":"","sources":["../../src/services/staking.service.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IACzB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEhD;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAA4B,gBAAgB,OAAO,cAAc,CAAC,CAAC;IAChG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,KAAqB;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAS,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,KAAuB;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAS,sBAAsB,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;CACF;AA7BD,wCA6BC"}
|