@waiaas/sdk 2.0.0-rc.1
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/client.d.ts +46 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +170 -0
- package/dist/client.js.map +1 -0
- package/dist/error.d.ts +34 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +68 -0
- package/dist/error.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/constants.d.ts +11 -0
- package/dist/internal/constants.d.ts.map +1 -0
- package/dist/internal/constants.js +11 -0
- package/dist/internal/constants.js.map +1 -0
- package/dist/internal/http.d.ts +26 -0
- package/dist/internal/http.d.ts.map +1 -0
- package/dist/internal/http.js +85 -0
- package/dist/internal/http.js.map +1 -0
- package/dist/owner-client.d.ts +67 -0
- package/dist/owner-client.d.ts.map +1 -0
- package/dist/owner-client.js +119 -0
- package/dist/owner-client.js.map +1 -0
- package/dist/retry.d.ts +13 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +48 -0
- package/dist/retry.js.map +1 -0
- package/dist/types.d.ts +366 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +25 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +154 -0
- package/dist/validation.js.map +1 -0
- package/package.json +46 -0
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAIaaSClient - Core wallet client for WAIaaS daemon REST API.
|
|
3
|
+
*
|
|
4
|
+
* Wraps 17 REST API methods with typed responses:
|
|
5
|
+
* - getBalance(), getAddress(), getAssets() (wallet queries)
|
|
6
|
+
* - getWalletInfo(), setDefaultNetwork() (wallet management)
|
|
7
|
+
* - sendToken(), getTransaction(), listTransactions(), listPendingTransactions() (transactions)
|
|
8
|
+
* - renewSession() (session management)
|
|
9
|
+
* - encodeCalldata(), signTransaction() (utils)
|
|
10
|
+
* - x402Fetch() (x402 auto-payment)
|
|
11
|
+
* - wcConnect(), wcStatus(), wcDisconnect() (WalletConnect)
|
|
12
|
+
*
|
|
13
|
+
* All methods use exponential backoff retry for 429/5xx responses.
|
|
14
|
+
* sendToken() performs inline pre-validation before making the HTTP request.
|
|
15
|
+
*/
|
|
16
|
+
import type { WAIaaSClientOptions, BalanceOptions, AssetsOptions, BalanceResponse, AddressResponse, AssetsResponse, SendTokenParams, SendTokenResponse, TransactionResponse, TransactionListResponse, ListTransactionsParams, PendingTransactionsResponse, RenewSessionResponse, EncodeCalldataParams, EncodeCalldataResponse, SignTransactionParams, SignTransactionResponse, WalletInfoResponse, SetDefaultNetworkResponse, MultiNetworkBalanceResponse, MultiNetworkAssetsResponse, X402FetchParams, X402FetchResponse, WcPairingResponse, WcSessionResponse, WcDisconnectResponse } from './types.js';
|
|
17
|
+
export declare class WAIaaSClient {
|
|
18
|
+
private http;
|
|
19
|
+
private sessionToken;
|
|
20
|
+
private sessionId;
|
|
21
|
+
private retryOptions?;
|
|
22
|
+
constructor(options: WAIaaSClientOptions);
|
|
23
|
+
setSessionToken(token: string): void;
|
|
24
|
+
clearSessionToken(): void;
|
|
25
|
+
private authHeaders;
|
|
26
|
+
getBalance(options?: BalanceOptions): Promise<BalanceResponse>;
|
|
27
|
+
getAddress(): Promise<AddressResponse>;
|
|
28
|
+
getAssets(options?: AssetsOptions): Promise<AssetsResponse>;
|
|
29
|
+
getAllBalances(): Promise<MultiNetworkBalanceResponse>;
|
|
30
|
+
getAllAssets(): Promise<MultiNetworkAssetsResponse>;
|
|
31
|
+
sendToken(params: SendTokenParams): Promise<SendTokenResponse>;
|
|
32
|
+
getTransaction(id: string): Promise<TransactionResponse>;
|
|
33
|
+
listTransactions(params?: ListTransactionsParams): Promise<TransactionListResponse>;
|
|
34
|
+
listPendingTransactions(): Promise<PendingTransactionsResponse>;
|
|
35
|
+
renewSession(): Promise<RenewSessionResponse>;
|
|
36
|
+
encodeCalldata(params: EncodeCalldataParams): Promise<EncodeCalldataResponse>;
|
|
37
|
+
signTransaction(params: SignTransactionParams): Promise<SignTransactionResponse>;
|
|
38
|
+
getWalletInfo(): Promise<WalletInfoResponse>;
|
|
39
|
+
setDefaultNetwork(network: string): Promise<SetDefaultNetworkResponse>;
|
|
40
|
+
x402Fetch(params: X402FetchParams): Promise<X402FetchResponse>;
|
|
41
|
+
wcConnect(): Promise<WcPairingResponse>;
|
|
42
|
+
wcStatus(): Promise<WcSessionResponse>;
|
|
43
|
+
wcDisconnect(): Promise<WcDisconnectResponse>;
|
|
44
|
+
private extractSessionId;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAe;gBAExB,OAAO,EAAE,mBAAmB;IAUxC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,WAAW;IAab,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAa9D,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAOtC,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAa3D,cAAc,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAUtD,YAAY,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAWnD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAa9D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUxD,gBAAgB,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAcnF,uBAAuB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAW/D,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAkB7C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAW7E,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAYhF,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAsB5C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAYtE,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAY9D,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAOvC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAOtC,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAOnD,OAAO,CAAC,gBAAgB;CA0BzB"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAIaaSClient - Core wallet client for WAIaaS daemon REST API.
|
|
3
|
+
*
|
|
4
|
+
* Wraps 17 REST API methods with typed responses:
|
|
5
|
+
* - getBalance(), getAddress(), getAssets() (wallet queries)
|
|
6
|
+
* - getWalletInfo(), setDefaultNetwork() (wallet management)
|
|
7
|
+
* - sendToken(), getTransaction(), listTransactions(), listPendingTransactions() (transactions)
|
|
8
|
+
* - renewSession() (session management)
|
|
9
|
+
* - encodeCalldata(), signTransaction() (utils)
|
|
10
|
+
* - x402Fetch() (x402 auto-payment)
|
|
11
|
+
* - wcConnect(), wcStatus(), wcDisconnect() (WalletConnect)
|
|
12
|
+
*
|
|
13
|
+
* All methods use exponential backoff retry for 429/5xx responses.
|
|
14
|
+
* sendToken() performs inline pre-validation before making the HTTP request.
|
|
15
|
+
*/
|
|
16
|
+
import { HttpClient } from './internal/http.js';
|
|
17
|
+
import { WAIaaSError } from './error.js';
|
|
18
|
+
import { withRetry } from './retry.js';
|
|
19
|
+
import { validateSendToken } from './validation.js';
|
|
20
|
+
import { DEFAULT_TIMEOUT } from './internal/constants.js';
|
|
21
|
+
export class WAIaaSClient {
|
|
22
|
+
http;
|
|
23
|
+
sessionToken;
|
|
24
|
+
sessionId;
|
|
25
|
+
retryOptions;
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.http = new HttpClient(options.baseUrl.replace(/\/+$/, ''), options.timeout ?? DEFAULT_TIMEOUT);
|
|
28
|
+
this.sessionToken = options.sessionToken;
|
|
29
|
+
this.retryOptions = options.retryOptions;
|
|
30
|
+
}
|
|
31
|
+
// --- Token management ---
|
|
32
|
+
setSessionToken(token) {
|
|
33
|
+
this.sessionToken = token;
|
|
34
|
+
}
|
|
35
|
+
clearSessionToken() {
|
|
36
|
+
this.sessionToken = undefined;
|
|
37
|
+
this.sessionId = undefined;
|
|
38
|
+
}
|
|
39
|
+
authHeaders() {
|
|
40
|
+
if (!this.sessionToken) {
|
|
41
|
+
throw new WAIaaSError({
|
|
42
|
+
code: 'NO_TOKEN',
|
|
43
|
+
message: 'No session token set',
|
|
44
|
+
status: 0,
|
|
45
|
+
retryable: false,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return { Authorization: `Bearer ${this.sessionToken}` };
|
|
49
|
+
}
|
|
50
|
+
// --- Wallet queries ---
|
|
51
|
+
async getBalance(options) {
|
|
52
|
+
const query = new URLSearchParams();
|
|
53
|
+
if (options?.network)
|
|
54
|
+
query.set('network', options.network);
|
|
55
|
+
const qs = query.toString();
|
|
56
|
+
return withRetry(() => this.http.get(`/v1/wallet/balance${qs ? `?${qs}` : ''}`, this.authHeaders()), this.retryOptions);
|
|
57
|
+
}
|
|
58
|
+
async getAddress() {
|
|
59
|
+
return withRetry(() => this.http.get('/v1/wallet/address', this.authHeaders()), this.retryOptions);
|
|
60
|
+
}
|
|
61
|
+
async getAssets(options) {
|
|
62
|
+
const query = new URLSearchParams();
|
|
63
|
+
if (options?.network)
|
|
64
|
+
query.set('network', options.network);
|
|
65
|
+
const qs = query.toString();
|
|
66
|
+
return withRetry(() => this.http.get(`/v1/wallet/assets${qs ? `?${qs}` : ''}`, this.authHeaders()), this.retryOptions);
|
|
67
|
+
}
|
|
68
|
+
async getAllBalances() {
|
|
69
|
+
return withRetry(() => this.http.get('/v1/wallet/balance?network=all', this.authHeaders()), this.retryOptions);
|
|
70
|
+
}
|
|
71
|
+
async getAllAssets() {
|
|
72
|
+
return withRetry(() => this.http.get('/v1/wallet/assets?network=all', this.authHeaders()), this.retryOptions);
|
|
73
|
+
}
|
|
74
|
+
// --- Transaction operations ---
|
|
75
|
+
async sendToken(params) {
|
|
76
|
+
// Pre-validate before making HTTP request
|
|
77
|
+
validateSendToken(params);
|
|
78
|
+
return withRetry(() => this.http.post('/v1/transactions/send', params, this.authHeaders()), this.retryOptions);
|
|
79
|
+
}
|
|
80
|
+
async getTransaction(id) {
|
|
81
|
+
return withRetry(() => this.http.get(`/v1/transactions/${id}`, this.authHeaders()), this.retryOptions);
|
|
82
|
+
}
|
|
83
|
+
async listTransactions(params) {
|
|
84
|
+
const query = new URLSearchParams();
|
|
85
|
+
if (params?.cursor)
|
|
86
|
+
query.set('cursor', params.cursor);
|
|
87
|
+
if (params?.limit)
|
|
88
|
+
query.set('limit', String(params.limit));
|
|
89
|
+
const qs = query.toString();
|
|
90
|
+
return withRetry(() => this.http.get(`/v1/transactions${qs ? `?${qs}` : ''}`, this.authHeaders()), this.retryOptions);
|
|
91
|
+
}
|
|
92
|
+
async listPendingTransactions() {
|
|
93
|
+
return withRetry(() => this.http.get('/v1/transactions/pending', this.authHeaders()), this.retryOptions);
|
|
94
|
+
}
|
|
95
|
+
// --- Session management ---
|
|
96
|
+
async renewSession() {
|
|
97
|
+
if (!this.sessionId) {
|
|
98
|
+
this.sessionId = this.extractSessionId();
|
|
99
|
+
}
|
|
100
|
+
const result = await withRetry(() => this.http.put(`/v1/sessions/${this.sessionId}/renew`, {}, this.authHeaders()), this.retryOptions);
|
|
101
|
+
// Auto-update token after successful renewal
|
|
102
|
+
this.sessionToken = result.token;
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
// --- Utils ---
|
|
106
|
+
async encodeCalldata(params) {
|
|
107
|
+
return withRetry(() => this.http.post('/v1/utils/encode-calldata', params, this.authHeaders()), this.retryOptions);
|
|
108
|
+
}
|
|
109
|
+
async signTransaction(params) {
|
|
110
|
+
return withRetry(() => this.http.post('/v1/transactions/sign', params, this.authHeaders()), this.retryOptions);
|
|
111
|
+
}
|
|
112
|
+
// --- Wallet info ---
|
|
113
|
+
async getWalletInfo() {
|
|
114
|
+
const address = await withRetry(() => this.http.get('/v1/wallet/address', this.authHeaders()), this.retryOptions);
|
|
115
|
+
const networks = await withRetry(() => this.http.get(`/v1/wallets/${address.walletId}/networks`, this.authHeaders()), this.retryOptions);
|
|
116
|
+
return {
|
|
117
|
+
walletId: address.walletId,
|
|
118
|
+
chain: address.chain,
|
|
119
|
+
network: address.network,
|
|
120
|
+
environment: address.environment ?? '',
|
|
121
|
+
address: address.address,
|
|
122
|
+
networks: networks.networks ?? [],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
async setDefaultNetwork(network) {
|
|
126
|
+
return withRetry(() => this.http.put('/v1/wallet/default-network', { network }, this.authHeaders()), this.retryOptions);
|
|
127
|
+
}
|
|
128
|
+
// --- x402 ---
|
|
129
|
+
async x402Fetch(params) {
|
|
130
|
+
return withRetry(() => this.http.post('/v1/x402/fetch', params, this.authHeaders()), this.retryOptions);
|
|
131
|
+
}
|
|
132
|
+
// --- WalletConnect ---
|
|
133
|
+
async wcConnect() {
|
|
134
|
+
return withRetry(() => this.http.post('/v1/wallet/wc/pair', {}, this.authHeaders()), this.retryOptions);
|
|
135
|
+
}
|
|
136
|
+
async wcStatus() {
|
|
137
|
+
return withRetry(() => this.http.get('/v1/wallet/wc/session', this.authHeaders()), this.retryOptions);
|
|
138
|
+
}
|
|
139
|
+
async wcDisconnect() {
|
|
140
|
+
return withRetry(() => this.http.delete('/v1/wallet/wc/session', this.authHeaders()), this.retryOptions);
|
|
141
|
+
}
|
|
142
|
+
extractSessionId() {
|
|
143
|
+
if (!this.sessionToken) {
|
|
144
|
+
throw new WAIaaSError({
|
|
145
|
+
code: 'NO_TOKEN',
|
|
146
|
+
message: 'No session token set',
|
|
147
|
+
status: 0,
|
|
148
|
+
retryable: false,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
try {
|
|
152
|
+
const payload = this.sessionToken.split('.')[1];
|
|
153
|
+
if (!payload)
|
|
154
|
+
throw new Error('Invalid token format');
|
|
155
|
+
const decoded = JSON.parse(Buffer.from(payload, 'base64url').toString('utf-8'));
|
|
156
|
+
if (!decoded['sessionId'])
|
|
157
|
+
throw new Error('No sessionId in token');
|
|
158
|
+
return decoded['sessionId'];
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
throw new WAIaaSError({
|
|
162
|
+
code: 'INVALID_TOKEN',
|
|
163
|
+
message: 'Cannot extract session ID from token',
|
|
164
|
+
status: 0,
|
|
165
|
+
retryable: false,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/error.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK-side WAIaaSError for API error handling.
|
|
3
|
+
*
|
|
4
|
+
* This is a SEPARATE class from @waiaas/core's WAIaaSError.
|
|
5
|
+
* The SDK has zero dependency on @waiaas/core.
|
|
6
|
+
* fromResponse() parses daemon JSON error responses into this class.
|
|
7
|
+
*/
|
|
8
|
+
export interface WAIaaSErrorOptions {
|
|
9
|
+
code: string;
|
|
10
|
+
message: string;
|
|
11
|
+
status: number;
|
|
12
|
+
retryable: boolean;
|
|
13
|
+
details?: Record<string, unknown>;
|
|
14
|
+
requestId?: string;
|
|
15
|
+
hint?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class WAIaaSError extends Error {
|
|
18
|
+
readonly code: string;
|
|
19
|
+
readonly status: number;
|
|
20
|
+
readonly retryable: boolean;
|
|
21
|
+
readonly details?: Record<string, unknown>;
|
|
22
|
+
readonly requestId?: string;
|
|
23
|
+
readonly hint?: string;
|
|
24
|
+
constructor(opts: WAIaaSErrorOptions);
|
|
25
|
+
get isRetryable(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Parse an API error response body into a WAIaaSError.
|
|
28
|
+
* Handles JSON bodies with {code, message, retryable, details, requestId, hint}
|
|
29
|
+
* and falls back gracefully for non-JSON or partial responses.
|
|
30
|
+
*/
|
|
31
|
+
static fromResponse(body: unknown, status: number): WAIaaSError;
|
|
32
|
+
toJSON(): Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,IAAI,EAAE,kBAAkB;IAWpC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;IAyB/D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWlC"}
|
package/dist/error.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK-side WAIaaSError for API error handling.
|
|
3
|
+
*
|
|
4
|
+
* This is a SEPARATE class from @waiaas/core's WAIaaSError.
|
|
5
|
+
* The SDK has zero dependency on @waiaas/core.
|
|
6
|
+
* fromResponse() parses daemon JSON error responses into this class.
|
|
7
|
+
*/
|
|
8
|
+
export class WAIaaSError extends Error {
|
|
9
|
+
code;
|
|
10
|
+
status;
|
|
11
|
+
retryable;
|
|
12
|
+
details;
|
|
13
|
+
requestId;
|
|
14
|
+
hint;
|
|
15
|
+
constructor(opts) {
|
|
16
|
+
super(opts.message);
|
|
17
|
+
this.name = 'WAIaaSError';
|
|
18
|
+
this.code = opts.code;
|
|
19
|
+
this.status = opts.status;
|
|
20
|
+
this.retryable = opts.retryable;
|
|
21
|
+
this.details = opts.details;
|
|
22
|
+
this.requestId = opts.requestId;
|
|
23
|
+
this.hint = opts.hint;
|
|
24
|
+
}
|
|
25
|
+
get isRetryable() {
|
|
26
|
+
return this.retryable;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parse an API error response body into a WAIaaSError.
|
|
30
|
+
* Handles JSON bodies with {code, message, retryable, details, requestId, hint}
|
|
31
|
+
* and falls back gracefully for non-JSON or partial responses.
|
|
32
|
+
*/
|
|
33
|
+
static fromResponse(body, status) {
|
|
34
|
+
if (body && typeof body === 'object') {
|
|
35
|
+
const b = body;
|
|
36
|
+
return new WAIaaSError({
|
|
37
|
+
code: typeof b['code'] === 'string' ? b['code'] : `HTTP_${status}`,
|
|
38
|
+
message: typeof b['message'] === 'string' ? b['message'] : `Request failed with status ${status}`,
|
|
39
|
+
status,
|
|
40
|
+
retryable: typeof b['retryable'] === 'boolean' ? b['retryable'] : status >= 500,
|
|
41
|
+
details: b['details'] && typeof b['details'] === 'object'
|
|
42
|
+
? b['details']
|
|
43
|
+
: undefined,
|
|
44
|
+
requestId: typeof b['requestId'] === 'string' ? b['requestId'] : undefined,
|
|
45
|
+
hint: typeof b['hint'] === 'string' ? b['hint'] : undefined,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
// Fallback for non-JSON responses
|
|
49
|
+
return new WAIaaSError({
|
|
50
|
+
code: `HTTP_${status}`,
|
|
51
|
+
message: `Request failed with status ${status}`,
|
|
52
|
+
status,
|
|
53
|
+
retryable: status >= 500,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
toJSON() {
|
|
57
|
+
return {
|
|
58
|
+
code: this.code,
|
|
59
|
+
message: this.message,
|
|
60
|
+
status: this.status,
|
|
61
|
+
retryable: this.retryable,
|
|
62
|
+
...(this.details && { details: this.details }),
|
|
63
|
+
...(this.requestId && { requestId: this.requestId }),
|
|
64
|
+
...(this.hint && { hint: this.hint }),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @waiaas/sdk - TypeScript SDK for WAIaaS daemon REST API.
|
|
3
|
+
*
|
|
4
|
+
* Zero runtime dependencies. Uses Node.js 22 built-in fetch.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { WAIaaSClient } from '@waiaas/sdk';
|
|
9
|
+
*
|
|
10
|
+
* const client = new WAIaaSClient({
|
|
11
|
+
* baseUrl: 'http://localhost:3000',
|
|
12
|
+
* sessionToken: 'wai_sess_...',
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* const balance = await client.getBalance();
|
|
16
|
+
* console.log(balance.balance, balance.symbol);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export { WAIaaSClient } from './client.js';
|
|
20
|
+
export { WAIaaSOwnerClient } from './owner-client.js';
|
|
21
|
+
export { WAIaaSError } from './error.js';
|
|
22
|
+
export { withRetry } from './retry.js';
|
|
23
|
+
export { validateSendToken } from './validation.js';
|
|
24
|
+
export type { WAIaaSClientOptions, WAIaaSOwnerClientOptions, RetryOptions, HealthResponse, BalanceOptions, AssetsOptions, BalanceResponse, AddressResponse, AssetsResponse, AssetInfo, SendTokenParams, SendTokenResponse, TransactionResponse, TransactionListResponse, ListTransactionsParams, PendingTransactionsResponse, RenewSessionResponse, ApproveResponse, RejectResponse, KillSwitchActivateResponse, KillSwitchStatusResponse, RecoverResponse, NonceResponse, EncodeCalldataParams, EncodeCalldataResponse, SignTransactionParams, SignTransactionOperation, SignTransactionResponse, WalletNetworkInfo, WalletInfoResponse, SetDefaultNetworkResponse, X402FetchParams, X402PaymentInfo, X402FetchResponse, WcPairingResponse, WcSessionResponse, WcDisconnectResponse, } from './types.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @waiaas/sdk - TypeScript SDK for WAIaaS daemon REST API.
|
|
3
|
+
*
|
|
4
|
+
* Zero runtime dependencies. Uses Node.js 22 built-in fetch.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { WAIaaSClient } from '@waiaas/sdk';
|
|
9
|
+
*
|
|
10
|
+
* const client = new WAIaaSClient({
|
|
11
|
+
* baseUrl: 'http://localhost:3000',
|
|
12
|
+
* sessionToken: 'wai_sess_...',
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* const balance = await client.getBalance();
|
|
16
|
+
* console.log(balance.balance, balance.symbol);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export { WAIaaSClient } from './client.js';
|
|
20
|
+
export { WAIaaSOwnerClient } from './owner-client.js';
|
|
21
|
+
export { WAIaaSError } from './error.js';
|
|
22
|
+
export { withRetry } from './retry.js';
|
|
23
|
+
export { validateSendToken } from './validation.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK default constants.
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_TIMEOUT = 30000;
|
|
5
|
+
export declare const DEFAULT_BASE_DELAY_MS = 1000;
|
|
6
|
+
export declare const DEFAULT_MAX_DELAY_MS = 30000;
|
|
7
|
+
export declare const DEFAULT_MAX_RETRIES = 3;
|
|
8
|
+
export declare const DEFAULT_RETRYABLE_STATUSES: number[];
|
|
9
|
+
export declare const SDK_VERSION = "0.0.0";
|
|
10
|
+
export declare const USER_AGENT = "waiaas-sdk/0.0.0";
|
|
11
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAC3C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,0BAA0B,UAA4B,CAAC;AACpE,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,UAAU,qBAA8B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK default constants.
|
|
3
|
+
*/
|
|
4
|
+
export const DEFAULT_TIMEOUT = 30_000;
|
|
5
|
+
export const DEFAULT_BASE_DELAY_MS = 1000;
|
|
6
|
+
export const DEFAULT_MAX_DELAY_MS = 30_000;
|
|
7
|
+
export const DEFAULT_MAX_RETRIES = 3;
|
|
8
|
+
export const DEFAULT_RETRYABLE_STATUSES = [429, 500, 502, 503, 504];
|
|
9
|
+
export const SDK_VERSION = '0.0.0';
|
|
10
|
+
export const USER_AGENT = `waiaas-sdk/${SDK_VERSION}`;
|
|
11
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP client wrapping Node.js 22 built-in fetch.
|
|
3
|
+
*
|
|
4
|
+
* Intentionally simple -- retry logic will be added in Plan 61-02
|
|
5
|
+
* as a wrapper/decorator. This layer handles:
|
|
6
|
+
* - JSON serialization/deserialization
|
|
7
|
+
* - Timeout via AbortController
|
|
8
|
+
* - Error mapping to WAIaaSError via fromResponse()
|
|
9
|
+
* - User-Agent header
|
|
10
|
+
*/
|
|
11
|
+
export declare class HttpClient {
|
|
12
|
+
private baseUrl;
|
|
13
|
+
private readonly timeout;
|
|
14
|
+
constructor(baseUrl: string, timeout: number);
|
|
15
|
+
setBaseUrl(url: string): void;
|
|
16
|
+
request<T>(method: string, path: string, opts?: {
|
|
17
|
+
body?: unknown;
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
}): Promise<T>;
|
|
21
|
+
get<T>(path: string, headers?: Record<string, string>): Promise<T>;
|
|
22
|
+
post<T>(path: string, body: unknown, headers?: Record<string, string>): Promise<T>;
|
|
23
|
+
put<T>(path: string, body: unknown, headers?: Record<string, string>): Promise<T>;
|
|
24
|
+
delete<T>(path: string, headers?: Record<string, string>): Promise<T>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/internal/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK5C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GACA,OAAO,CAAC,CAAC,CAAC;IAoDP,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjF,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAG5E"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP client wrapping Node.js 22 built-in fetch.
|
|
3
|
+
*
|
|
4
|
+
* Intentionally simple -- retry logic will be added in Plan 61-02
|
|
5
|
+
* as a wrapper/decorator. This layer handles:
|
|
6
|
+
* - JSON serialization/deserialization
|
|
7
|
+
* - Timeout via AbortController
|
|
8
|
+
* - Error mapping to WAIaaSError via fromResponse()
|
|
9
|
+
* - User-Agent header
|
|
10
|
+
*/
|
|
11
|
+
import { WAIaaSError } from '../error.js';
|
|
12
|
+
import { USER_AGENT } from './constants.js';
|
|
13
|
+
export class HttpClient {
|
|
14
|
+
baseUrl;
|
|
15
|
+
timeout;
|
|
16
|
+
constructor(baseUrl, timeout) {
|
|
17
|
+
this.baseUrl = baseUrl;
|
|
18
|
+
this.timeout = timeout;
|
|
19
|
+
}
|
|
20
|
+
setBaseUrl(url) {
|
|
21
|
+
this.baseUrl = url;
|
|
22
|
+
}
|
|
23
|
+
async request(method, path, opts) {
|
|
24
|
+
const url = `${this.baseUrl}${path}`;
|
|
25
|
+
const controller = new AbortController();
|
|
26
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
27
|
+
try {
|
|
28
|
+
const headers = {
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
'User-Agent': USER_AGENT,
|
|
31
|
+
...opts?.headers,
|
|
32
|
+
};
|
|
33
|
+
const res = await fetch(url, {
|
|
34
|
+
method,
|
|
35
|
+
headers,
|
|
36
|
+
body: opts?.body !== undefined ? JSON.stringify(opts.body) : undefined,
|
|
37
|
+
signal: opts?.signal ?? controller.signal,
|
|
38
|
+
});
|
|
39
|
+
if (!res.ok) {
|
|
40
|
+
const body = await res.json().catch(() => null);
|
|
41
|
+
throw WAIaaSError.fromResponse(body, res.status);
|
|
42
|
+
}
|
|
43
|
+
return (await res.json());
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (error instanceof WAIaaSError) {
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
if (error instanceof DOMException && error.name === 'AbortError') {
|
|
50
|
+
throw new WAIaaSError({
|
|
51
|
+
code: 'REQUEST_TIMEOUT',
|
|
52
|
+
message: `Request timed out after ${this.timeout}ms`,
|
|
53
|
+
status: 0,
|
|
54
|
+
retryable: true,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (error instanceof TypeError) {
|
|
58
|
+
// fetch throws TypeError for network errors
|
|
59
|
+
throw new WAIaaSError({
|
|
60
|
+
code: 'NETWORK_ERROR',
|
|
61
|
+
message: error.message,
|
|
62
|
+
status: 0,
|
|
63
|
+
retryable: true,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
clearTimeout(timeoutId);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async get(path, headers) {
|
|
73
|
+
return this.request('GET', path, { headers });
|
|
74
|
+
}
|
|
75
|
+
async post(path, body, headers) {
|
|
76
|
+
return this.request('POST', path, { body, headers });
|
|
77
|
+
}
|
|
78
|
+
async put(path, body, headers) {
|
|
79
|
+
return this.request('PUT', path, { body, headers });
|
|
80
|
+
}
|
|
81
|
+
async delete(path, headers) {
|
|
82
|
+
return this.request('DELETE', path, { headers });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/internal/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAIaaSOwnerClient - Owner operations client for WAIaaS daemon.
|
|
3
|
+
*
|
|
4
|
+
* Provides typed methods for owner-authenticated operations:
|
|
5
|
+
* - approve(txId): Approve a pending transaction
|
|
6
|
+
* - reject(txId): Reject a pending transaction
|
|
7
|
+
* - activateKillSwitch(): Activate emergency kill switch
|
|
8
|
+
* - getKillSwitchStatus(): Get current kill switch state
|
|
9
|
+
* - recover(): Deactivate kill switch (requires masterPassword)
|
|
10
|
+
*
|
|
11
|
+
* OwnerAuth flow:
|
|
12
|
+
* 1. Fetch nonce from GET /v1/nonce
|
|
13
|
+
* 2. Sign the nonce with owner's Ed25519 private key
|
|
14
|
+
* 3. Send X-Owner-Address, X-Owner-Message, X-Owner-Signature headers
|
|
15
|
+
*
|
|
16
|
+
* @see docs/52-auth-redesign.md
|
|
17
|
+
*/
|
|
18
|
+
import type { WAIaaSOwnerClientOptions, ApproveResponse, RejectResponse, KillSwitchActivateResponse, KillSwitchStatusResponse, RecoverResponse } from './types.js';
|
|
19
|
+
export declare class WAIaaSOwnerClient {
|
|
20
|
+
private http;
|
|
21
|
+
private ownerAddress;
|
|
22
|
+
private signMessage;
|
|
23
|
+
private masterPassword?;
|
|
24
|
+
private retryOptions?;
|
|
25
|
+
constructor(options: WAIaaSOwnerClientOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Fetch nonce from daemon and construct ownerAuth headers.
|
|
28
|
+
*
|
|
29
|
+
* Headers sent:
|
|
30
|
+
* - X-Owner-Address: owner wallet address (base58 for Solana)
|
|
31
|
+
* - X-Owner-Message: the nonce string (used as signed message)
|
|
32
|
+
* - X-Owner-Signature: base64-encoded Ed25519 detached signature
|
|
33
|
+
*/
|
|
34
|
+
private ownerAuthHeaders;
|
|
35
|
+
/**
|
|
36
|
+
* Construct masterAuth headers for admin operations.
|
|
37
|
+
* @throws WAIaaSError if masterPassword not set
|
|
38
|
+
*/
|
|
39
|
+
private masterAuthHeaders;
|
|
40
|
+
/**
|
|
41
|
+
* Approve a pending transaction.
|
|
42
|
+
* Calls POST /v1/transactions/:id/approve with ownerAuth headers.
|
|
43
|
+
*/
|
|
44
|
+
approve(txId: string): Promise<ApproveResponse>;
|
|
45
|
+
/**
|
|
46
|
+
* Reject a pending transaction.
|
|
47
|
+
* Calls POST /v1/transactions/:id/reject with ownerAuth headers.
|
|
48
|
+
*/
|
|
49
|
+
reject(txId: string): Promise<RejectResponse>;
|
|
50
|
+
/**
|
|
51
|
+
* Activate the emergency kill switch.
|
|
52
|
+
* Calls POST /v1/admin/kill-switch with ownerAuth headers.
|
|
53
|
+
*/
|
|
54
|
+
activateKillSwitch(): Promise<KillSwitchActivateResponse>;
|
|
55
|
+
/**
|
|
56
|
+
* Get current kill switch state.
|
|
57
|
+
* Calls GET /v1/admin/kill-switch (public endpoint, no auth required).
|
|
58
|
+
*/
|
|
59
|
+
getKillSwitchStatus(): Promise<KillSwitchStatusResponse>;
|
|
60
|
+
/**
|
|
61
|
+
* Deactivate kill switch and recover normal operation.
|
|
62
|
+
* Calls POST /v1/admin/recover with masterAuth header.
|
|
63
|
+
* Requires masterPassword to be set in constructor options.
|
|
64
|
+
*/
|
|
65
|
+
recover(): Promise<RecoverResponse>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=owner-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-client.d.ts","sourceRoot":"","sources":["../src/owner-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EAGhB,MAAM,YAAY,CAAC;AAEpB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,YAAY,CAAC,CAAe;gBAExB,OAAO,EAAE,wBAAwB;IAW7C;;;;;;;OAOG;YACW,gBAAgB;IAW9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAWrD;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAWnD;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAW/D;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAM9D;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAU1C"}
|