shogun-relay-sdk 1.1.3 → 1.1.5
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 +1 -0
- package/dist/index.js +16 -0
- package/dist/modules/bridge.d.ts +52 -0
- package/dist/modules/bridge.js +18 -0
- package/dist/modules/network.d.ts +7 -6
- package/dist/types.d.ts +243 -0
- package/dist/types.js +5 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { DealsModule } from './modules/deals';
|
|
|
7
7
|
import { RegistryModule } from './modules/registry';
|
|
8
8
|
import { UploadsModule } from './modules/uploads';
|
|
9
9
|
import { BridgeModule } from './modules/bridge';
|
|
10
|
+
export * from './types';
|
|
10
11
|
export declare class ShogunRelaySDK {
|
|
11
12
|
private client;
|
|
12
13
|
system: SystemModule;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
17
|
exports.ShogunRelaySDK = void 0;
|
|
4
18
|
const client_1 = require("./client");
|
|
@@ -10,6 +24,8 @@ const deals_1 = require("./modules/deals");
|
|
|
10
24
|
const registry_1 = require("./modules/registry");
|
|
11
25
|
const uploads_1 = require("./modules/uploads");
|
|
12
26
|
const bridge_1 = require("./modules/bridge");
|
|
27
|
+
// Export types
|
|
28
|
+
__exportStar(require("./types"), exports);
|
|
13
29
|
class ShogunRelaySDK {
|
|
14
30
|
constructor(config) {
|
|
15
31
|
this.client = new client_1.ApiClient(config);
|
package/dist/modules/bridge.d.ts
CHANGED
|
@@ -214,4 +214,56 @@ export declare class BridgeModule {
|
|
|
214
214
|
message: string;
|
|
215
215
|
error?: string;
|
|
216
216
|
}>;
|
|
217
|
+
/**
|
|
218
|
+
* Get all transactions (deposits, withdrawals, transfers) for a user
|
|
219
|
+
* Returns a unified list of all transaction types sorted by timestamp
|
|
220
|
+
* @param userAddress User's Ethereum address
|
|
221
|
+
* @returns Transaction history
|
|
222
|
+
*/
|
|
223
|
+
getTransactions(userAddress: string): Promise<{
|
|
224
|
+
success: boolean;
|
|
225
|
+
user: string;
|
|
226
|
+
transactions: Array<{
|
|
227
|
+
type: 'deposit' | 'withdrawal' | 'transfer';
|
|
228
|
+
txHash: string;
|
|
229
|
+
from?: string;
|
|
230
|
+
to?: string;
|
|
231
|
+
amount: string;
|
|
232
|
+
amountEth: string;
|
|
233
|
+
timestamp: number;
|
|
234
|
+
blockNumber?: number;
|
|
235
|
+
nonce?: string;
|
|
236
|
+
batchId?: string;
|
|
237
|
+
status: 'pending' | 'completed' | 'batched';
|
|
238
|
+
}>;
|
|
239
|
+
count: number;
|
|
240
|
+
summary: {
|
|
241
|
+
deposits: number;
|
|
242
|
+
withdrawals: number;
|
|
243
|
+
transfers: number;
|
|
244
|
+
};
|
|
245
|
+
}>;
|
|
246
|
+
/**
|
|
247
|
+
* Get detailed information about a specific transaction by hash
|
|
248
|
+
* Searches across deposits, withdrawals, and transfers
|
|
249
|
+
* @param txHash Transaction hash
|
|
250
|
+
* @returns Transaction details
|
|
251
|
+
*/
|
|
252
|
+
getTransaction(txHash: string): Promise<{
|
|
253
|
+
success: boolean;
|
|
254
|
+
transaction?: {
|
|
255
|
+
type: 'deposit' | 'withdrawal' | 'transfer';
|
|
256
|
+
txHash: string;
|
|
257
|
+
from?: string;
|
|
258
|
+
to?: string;
|
|
259
|
+
amount: string;
|
|
260
|
+
amountEth: string;
|
|
261
|
+
timestamp: number;
|
|
262
|
+
blockNumber?: number;
|
|
263
|
+
nonce?: string;
|
|
264
|
+
status: 'pending' | 'completed' | 'batched';
|
|
265
|
+
};
|
|
266
|
+
source?: 'deposit' | 'withdrawal' | 'transfer';
|
|
267
|
+
error?: string;
|
|
268
|
+
}>;
|
|
217
269
|
}
|
package/dist/modules/bridge.js
CHANGED
|
@@ -106,5 +106,23 @@ class BridgeModule {
|
|
|
106
106
|
async reconcileBalance(userAddress) {
|
|
107
107
|
return this.client.post('/api/v1/bridge/reconcile-balance', { user: userAddress });
|
|
108
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Get all transactions (deposits, withdrawals, transfers) for a user
|
|
111
|
+
* Returns a unified list of all transaction types sorted by timestamp
|
|
112
|
+
* @param userAddress User's Ethereum address
|
|
113
|
+
* @returns Transaction history
|
|
114
|
+
*/
|
|
115
|
+
async getTransactions(userAddress) {
|
|
116
|
+
return this.client.get(`/api/v1/bridge/transactions/${userAddress}`);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get detailed information about a specific transaction by hash
|
|
120
|
+
* Searches across deposits, withdrawals, and transfers
|
|
121
|
+
* @param txHash Transaction hash
|
|
122
|
+
* @returns Transaction details
|
|
123
|
+
*/
|
|
124
|
+
async getTransaction(txHash) {
|
|
125
|
+
return this.client.get(`/api/v1/bridge/transaction/${txHash}`);
|
|
126
|
+
}
|
|
109
127
|
}
|
|
110
128
|
exports.BridgeModule = BridgeModule;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { ApiClient } from '../client';
|
|
2
|
+
import { ReputationResponse, ReputationLeaderboardResponse, BestRelaysResponse, NetworkStatsResponse, RelayInfoResponse, RelaysListResponse } from '../types';
|
|
2
3
|
export declare class NetworkModule {
|
|
3
4
|
private client;
|
|
4
5
|
constructor(client: ApiClient);
|
|
5
|
-
getRelays(timeout?: number, maxAge?: number): Promise<
|
|
6
|
-
getRelay(host: string): Promise<
|
|
7
|
-
getStats(): Promise<
|
|
6
|
+
getRelays(timeout?: number, maxAge?: number): Promise<RelaysListResponse>;
|
|
7
|
+
getRelay(host: string): Promise<RelayInfoResponse>;
|
|
8
|
+
getStats(): Promise<NetworkStatsResponse>;
|
|
8
9
|
getProof(cid: string, challenge?: string): Promise<any>;
|
|
9
10
|
verifyProof(proof: any): Promise<any>;
|
|
10
|
-
getReputation(host: string): Promise<
|
|
11
|
-
getReputationLeaderboard(minScore?: number, limit?: number): Promise<
|
|
12
|
-
getBestRelays(count?: number, minScore?: number, excludeHost?: string): Promise<
|
|
11
|
+
getReputation(host: string): Promise<ReputationResponse>;
|
|
12
|
+
getReputationLeaderboard(minScore?: number, limit?: number): Promise<ReputationLeaderboardResponse>;
|
|
13
|
+
getBestRelays(count?: number, minScore?: number, excludeHost?: string): Promise<BestRelaysResponse>;
|
|
13
14
|
getOnChainRelays(chainId?: number): Promise<any>;
|
|
14
15
|
getOnChainRelay(address: string, chainId?: number): Promise<any>;
|
|
15
16
|
getOnChainParams(chainId?: number): Promise<any>;
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Shogun Relay SDK
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Reputation Score Breakdown
|
|
6
|
+
*/
|
|
7
|
+
export interface ReputationScoreBreakdown {
|
|
8
|
+
uptime: number;
|
|
9
|
+
proofSuccess: number;
|
|
10
|
+
responseTime: number;
|
|
11
|
+
pinFulfillment: number;
|
|
12
|
+
longevity: number;
|
|
13
|
+
resourceEfficiency?: number;
|
|
14
|
+
storageCapacity?: number;
|
|
15
|
+
dataQuality?: number;
|
|
16
|
+
reliability?: number;
|
|
17
|
+
dealPerformance?: number;
|
|
18
|
+
networkHealth?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Reputation Weights
|
|
22
|
+
*/
|
|
23
|
+
export interface ReputationWeights {
|
|
24
|
+
uptime: number;
|
|
25
|
+
proofSuccess: number;
|
|
26
|
+
responseTime: number;
|
|
27
|
+
pinFulfillment: number;
|
|
28
|
+
longevity: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Calculated Reputation Score
|
|
32
|
+
*/
|
|
33
|
+
export interface ReputationScore {
|
|
34
|
+
total: number;
|
|
35
|
+
tier: 'excellent' | 'good' | 'average' | 'poor' | 'unreliable';
|
|
36
|
+
breakdown: ReputationScoreBreakdown;
|
|
37
|
+
weights: ReputationWeights;
|
|
38
|
+
hasEnoughData: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Reputation Metrics
|
|
42
|
+
*/
|
|
43
|
+
export interface ReputationMetrics {
|
|
44
|
+
host?: string;
|
|
45
|
+
firstSeenTimestamp?: number;
|
|
46
|
+
lastSeenTimestamp?: number;
|
|
47
|
+
dataPoints?: number;
|
|
48
|
+
proofsTotal?: number;
|
|
49
|
+
proofsSuccessful?: number;
|
|
50
|
+
proofsFailed?: number;
|
|
51
|
+
avgResponseTimeMs?: number;
|
|
52
|
+
responseTimeSamples?: number;
|
|
53
|
+
pinRequestsReceived?: number;
|
|
54
|
+
pinRequestsFulfilled?: number;
|
|
55
|
+
expectedPulses?: number;
|
|
56
|
+
receivedPulses?: number;
|
|
57
|
+
uptimePercent?: number;
|
|
58
|
+
bridgeBatchSubmissionsTotal?: number;
|
|
59
|
+
bridgeBatchSubmissionsSuccessful?: number;
|
|
60
|
+
bridgeBatchSubmissionsFailed?: number;
|
|
61
|
+
bridgeProofsTotal?: number;
|
|
62
|
+
bridgeProofsSuccessful?: number;
|
|
63
|
+
bridgeProofsFailed?: number;
|
|
64
|
+
bridgeAvgProofResponseTimeMs?: number;
|
|
65
|
+
bridgeProofResponseTimeSamples?: number;
|
|
66
|
+
avgConnections?: number;
|
|
67
|
+
maxConnections?: number;
|
|
68
|
+
avgMemoryUsageMB?: number;
|
|
69
|
+
maxMemoryUsageMB?: number;
|
|
70
|
+
storageCapacityMB?: number;
|
|
71
|
+
storageUsedMB?: number;
|
|
72
|
+
storageUtilizationPercent?: number;
|
|
73
|
+
ipfsRepoSizeMB?: number;
|
|
74
|
+
ipfsPinsCount?: number;
|
|
75
|
+
avgLatencyMs?: number;
|
|
76
|
+
latencySamples?: number;
|
|
77
|
+
throughputMBps?: number;
|
|
78
|
+
errorRate?: number;
|
|
79
|
+
meanTimeBetweenFailures?: number;
|
|
80
|
+
meanTimeToRecovery?: number;
|
|
81
|
+
downtimeEvents?: number;
|
|
82
|
+
totalDowntimeMs?: number;
|
|
83
|
+
dataIntegrityChecks?: number;
|
|
84
|
+
dataIntegrityFailures?: number;
|
|
85
|
+
dataFreshnessMs?: number;
|
|
86
|
+
peerConnections?: number;
|
|
87
|
+
networkReachability?: number;
|
|
88
|
+
dealsTotal?: number;
|
|
89
|
+
dealsActive?: number;
|
|
90
|
+
dealsCompleted?: number;
|
|
91
|
+
dealsFailed?: number;
|
|
92
|
+
dealFulfillmentRate?: number;
|
|
93
|
+
subscriptionsTotal?: number;
|
|
94
|
+
subscriptionsActive?: number;
|
|
95
|
+
subscriptionRetentionRate?: number;
|
|
96
|
+
apiRequestsTotal?: number;
|
|
97
|
+
apiRequestsSuccessful?: number;
|
|
98
|
+
apiRequestsFailed?: number;
|
|
99
|
+
apiUptimePercent?: number;
|
|
100
|
+
securityIncidents?: number;
|
|
101
|
+
lastSecurityIncident?: number;
|
|
102
|
+
score?: number;
|
|
103
|
+
tier?: string;
|
|
104
|
+
lastScoreUpdate?: number;
|
|
105
|
+
proofSuccessRate?: number;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Leaderboard Entry with calculated score
|
|
109
|
+
*/
|
|
110
|
+
export interface ReputationLeaderboardEntry extends ReputationMetrics {
|
|
111
|
+
calculatedScore: ReputationScore;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Reputation API Response
|
|
115
|
+
*/
|
|
116
|
+
export interface ReputationResponse {
|
|
117
|
+
success: boolean;
|
|
118
|
+
host?: string;
|
|
119
|
+
reputation?: ReputationLeaderboardEntry;
|
|
120
|
+
error?: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Reputation Leaderboard Response
|
|
124
|
+
*/
|
|
125
|
+
export interface ReputationLeaderboardResponse {
|
|
126
|
+
success: boolean;
|
|
127
|
+
count: number;
|
|
128
|
+
leaderboard: ReputationLeaderboardEntry[];
|
|
129
|
+
filters?: {
|
|
130
|
+
minScore?: number;
|
|
131
|
+
tier?: string;
|
|
132
|
+
limit?: number;
|
|
133
|
+
};
|
|
134
|
+
error?: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Best Relays Response
|
|
138
|
+
*/
|
|
139
|
+
export interface BestRelaysResponse {
|
|
140
|
+
success: boolean;
|
|
141
|
+
count: number;
|
|
142
|
+
relays: Array<{
|
|
143
|
+
host: string;
|
|
144
|
+
score: number;
|
|
145
|
+
tier: string;
|
|
146
|
+
uptime: number;
|
|
147
|
+
lastSeen: number;
|
|
148
|
+
}>;
|
|
149
|
+
error?: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Network Stats Response
|
|
153
|
+
*/
|
|
154
|
+
export interface NetworkStatsResponse {
|
|
155
|
+
success: boolean;
|
|
156
|
+
stats: {
|
|
157
|
+
totalRelays: number;
|
|
158
|
+
activeRelays: number;
|
|
159
|
+
totalConnections: number;
|
|
160
|
+
totalStorageBytes: number;
|
|
161
|
+
totalStorageMB: number;
|
|
162
|
+
totalStorageGB: string;
|
|
163
|
+
totalPins: number;
|
|
164
|
+
totalActiveDeals: number;
|
|
165
|
+
totalActiveSubscriptions: number;
|
|
166
|
+
totalDealStorageMB: number;
|
|
167
|
+
totalSubscriptionStorageMB: number;
|
|
168
|
+
};
|
|
169
|
+
timestamp: number;
|
|
170
|
+
debug?: {
|
|
171
|
+
relaysFound: number;
|
|
172
|
+
relaysWithPulse: number;
|
|
173
|
+
sources: {
|
|
174
|
+
pulse: string;
|
|
175
|
+
deals: string;
|
|
176
|
+
subscriptions: string;
|
|
177
|
+
ipfsDirect: string;
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
error?: string;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Relay Info Response
|
|
184
|
+
*/
|
|
185
|
+
export interface RelayInfoResponse {
|
|
186
|
+
success: boolean;
|
|
187
|
+
host: string;
|
|
188
|
+
endpoint?: string;
|
|
189
|
+
lastSeen?: number;
|
|
190
|
+
uptime?: number;
|
|
191
|
+
connections?: {
|
|
192
|
+
active?: number;
|
|
193
|
+
total?: number;
|
|
194
|
+
};
|
|
195
|
+
memory?: {
|
|
196
|
+
heapUsed?: number;
|
|
197
|
+
heapTotal?: number;
|
|
198
|
+
rss?: number;
|
|
199
|
+
};
|
|
200
|
+
ipfs?: {
|
|
201
|
+
connected: boolean;
|
|
202
|
+
repoSize?: number;
|
|
203
|
+
repoSizeMB?: number;
|
|
204
|
+
numPins?: number;
|
|
205
|
+
numObjects?: number;
|
|
206
|
+
};
|
|
207
|
+
storage?: {
|
|
208
|
+
used?: number;
|
|
209
|
+
capacity?: number;
|
|
210
|
+
};
|
|
211
|
+
error?: string;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Relays List Response
|
|
215
|
+
*/
|
|
216
|
+
export interface RelaysListResponse {
|
|
217
|
+
success: boolean;
|
|
218
|
+
count: number;
|
|
219
|
+
relays: Array<{
|
|
220
|
+
host: string;
|
|
221
|
+
endpoint: string | null;
|
|
222
|
+
lastSeen: number;
|
|
223
|
+
uptime?: number;
|
|
224
|
+
connections?: {
|
|
225
|
+
active?: number;
|
|
226
|
+
total?: number;
|
|
227
|
+
};
|
|
228
|
+
memory?: {
|
|
229
|
+
heapUsed?: number;
|
|
230
|
+
heapTotal?: number;
|
|
231
|
+
};
|
|
232
|
+
ipfs?: {
|
|
233
|
+
connected: boolean;
|
|
234
|
+
repoSize?: number;
|
|
235
|
+
numPins?: number;
|
|
236
|
+
};
|
|
237
|
+
storage?: {
|
|
238
|
+
used?: number;
|
|
239
|
+
capacity?: number;
|
|
240
|
+
};
|
|
241
|
+
}>;
|
|
242
|
+
error?: string;
|
|
243
|
+
}
|
package/dist/types.js
ADDED
package/package.json
CHANGED