@zkid/zktls-js-sdk 0.0.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/index.js ADDED
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttRequest = exports.PrimusZKTLS = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const constants_1 = require("./config/constants");
6
+ const error_1 = require("./error");
7
+ const AttRequest_1 = require("./classes/AttRequest");
8
+ Object.defineProperty(exports, "AttRequest", { enumerable: true, get: function () { return AttRequest_1.AttRequest; } });
9
+ const utils_1 = require("./utils");
10
+ const api_1 = require("./api");
11
+ const constants_2 = require("./constants");
12
+ const messages_1 = require("./utils/messages");
13
+ const packageJson = require('../package.json');
14
+ class PrimusZKTLS {
15
+ _padoAddress;
16
+ // private _attestLoading: boolean;
17
+ isInstalled;
18
+ isInitialized;
19
+ padoExtensionVersion;
20
+ appId;
21
+ appSecret;
22
+ options;
23
+ extendedData;
24
+ latestRunningMobileRequest;
25
+ allJsonResponseFlag;
26
+ _allJsonResponse;
27
+ constructor() {
28
+ this.isInitialized = false;
29
+ this.isInstalled = false;
30
+ this.padoExtensionVersion = '';
31
+ this.appId = '';
32
+ this.options = { platform: 'pc', env: 'production', openAndroidApp: false };
33
+ this._padoAddress = constants_1.PADOADDRESSMAP['production'];
34
+ this.extendedData = {};
35
+ this.allJsonResponseFlag = 'false';
36
+ this._allJsonResponse = {};
37
+ }
38
+ init(appId, appSecret, options) {
39
+ this.appId = appId;
40
+ this.appSecret = appSecret;
41
+ if (options?.platform) {
42
+ this.options.platform = options.platform;
43
+ }
44
+ if (options?.env) {
45
+ this.options.env = options?.env;
46
+ }
47
+ if (options?.openAndroidApp) {
48
+ this.options.openAndroidApp = options?.openAndroidApp;
49
+ }
50
+ if (this.options?.env !== 'production') {
51
+ this._padoAddress = constants_1.PADOADDRESSMAP['development'];
52
+ }
53
+ const isNodeEnv = typeof process !== 'undefined' && process.versions && process.versions.node;
54
+ if (options?.platform === 'android' || options?.platform === 'ios') {
55
+ this.isInitialized = true;
56
+ return Promise.resolve(true);
57
+ }
58
+ else if (appSecret && isNodeEnv) {
59
+ this.isInitialized = true;
60
+ return Promise.resolve(true);
61
+ }
62
+ else {
63
+ this.isInstalled = !!window.zkid;
64
+ if (this.isInstalled) {
65
+ (0, messages_1.sendToExtension)({
66
+ target: constants_2.EXTENSION_TARGET.EXTENSION,
67
+ origin: constants_2.EXTENSION_TARGET.SDK,
68
+ method: constants_2.EXTENSION_METHODS.INIT_ATT,
69
+ data: {
70
+ sdkVersion: packageJson.version
71
+ }
72
+ });
73
+ }
74
+ else {
75
+ const errorCode = '00006';
76
+ return Promise.reject(new error_1.ZkAttestationError(errorCode));
77
+ }
78
+ console.time('initAttestationCost');
79
+ return new Promise((resolve, reject) => {
80
+ const cleanup = (0, messages_1.onExtensionMessage)((msg) => {
81
+ if (msg.method === constants_2.EXTENSION_METHODS.INIT_ATT_RES) {
82
+ console.log('sdk receive initAttestationRes', msg);
83
+ const { result, errorData, data } = msg.data;
84
+ if (result) {
85
+ this.isInitialized = result;
86
+ if (data?.padoExtensionVersion) {
87
+ this.padoExtensionVersion = data.padoExtensionVersion;
88
+ }
89
+ console.timeEnd('initAttestationCost');
90
+ cleanup();
91
+ resolve(this.padoExtensionVersion);
92
+ }
93
+ else {
94
+ cleanup();
95
+ if (errorData) {
96
+ const { code } = errorData;
97
+ reject(new error_1.ZkAttestationError(code));
98
+ }
99
+ }
100
+ }
101
+ });
102
+ });
103
+ }
104
+ }
105
+ generateRequestParams(attTemplateID, userAddress) {
106
+ const userAddr = userAddress || '0x0000000000000000000000000000000000000000';
107
+ return new AttRequest_1.AttRequest({
108
+ appId: this.appId,
109
+ attTemplateID,
110
+ userAddress: userAddr
111
+ });
112
+ }
113
+ async sign(signParams) {
114
+ if (this.appSecret) {
115
+ const wallet = new ethers_1.ethers.Wallet(this.appSecret);
116
+ const messageHash = ethers_1.ethers.utils.keccak256(new TextEncoder().encode(signParams));
117
+ const sig = await wallet.signMessage(messageHash);
118
+ const result = {
119
+ attRequest: JSON.parse(signParams),
120
+ appSignature: sig
121
+ };
122
+ return JSON.stringify(result);
123
+ }
124
+ else {
125
+ throw new Error('Only call in App server environment.');
126
+ }
127
+ }
128
+ async startAttestation(attestationParamsStr) {
129
+ if (!this.isInitialized) {
130
+ const errorCode = '00001';
131
+ return Promise.reject(new error_1.ZkAttestationError(errorCode));
132
+ }
133
+ // if (this._attestLoading) {
134
+ // const errorCode = '00003'
135
+ // return Promise.reject(new ZkAttestationError(errorCode))
136
+ // }
137
+ // this._attestLoading = true
138
+ try {
139
+ const attestationParams = JSON.parse(attestationParamsStr);
140
+ this._verifyAttestationParams(attestationParams);
141
+ // Check app quote before starting attestation
142
+ await this._checkAppQuote();
143
+ if (this.options?.platform === 'android' || this.options?.platform === 'ios') {
144
+ return this.startAttestationMobile(attestationParamsStr);
145
+ }
146
+ let formatParams = { ...attestationParams, sdkVersion: packageJson.version };
147
+ this.allJsonResponseFlag = attestationParams?.attRequest?.allJsonResponseFlag === 'true' ? 'true' : 'false';
148
+ (0, messages_1.sendToExtension)({
149
+ target: constants_2.EXTENSION_TARGET.EXTENSION,
150
+ origin: constants_2.EXTENSION_TARGET.SDK,
151
+ method: constants_2.EXTENSION_METHODS.START_ATT,
152
+ data: formatParams
153
+ });
154
+ console.time('startAttestCost');
155
+ return new Promise((resolve, reject) => {
156
+ let pollingTimer;
157
+ let timeoutTimer;
158
+ const cleanup = (0, messages_1.onExtensionMessage)((msg) => {
159
+ if (msg.method === constants_2.EXTENSION_METHODS.GET_ATT_RES) {
160
+ console.log('sdk receive getAttestationRes', msg.data);
161
+ const { result, errorData } = msg.data;
162
+ if (result) {
163
+ timeoutTimer = setTimeout(() => {
164
+ if (pollingTimer) {
165
+ clearInterval(pollingTimer);
166
+ (0, messages_1.sendToExtension)({
167
+ target: constants_2.EXTENSION_TARGET.EXTENSION,
168
+ origin: constants_2.EXTENSION_TARGET.SDK,
169
+ method: constants_2.EXTENSION_METHODS.GET_ATT_RESULT_TIMEOUT,
170
+ data: {}
171
+ });
172
+ cleanup();
173
+ reject(new error_1.ZkAttestationError('00002', 'The SDK reported a timeout.', ''));
174
+ }
175
+ }, constants_1.ATTESTATIONPOLLINGTIMEOUT);
176
+ pollingTimer = setInterval(() => {
177
+ (0, messages_1.sendToExtension)({
178
+ target: constants_2.EXTENSION_TARGET.EXTENSION,
179
+ origin: constants_2.EXTENSION_TARGET.SDK,
180
+ method: constants_2.EXTENSION_METHODS.GET_ATT_RESULT,
181
+ data: {}
182
+ });
183
+ }, constants_1.ATTESTATIONPOLLINGTIME);
184
+ }
185
+ else {
186
+ cleanup();
187
+ const { code, data } = errorData;
188
+ reject(new error_1.ZkAttestationError(code, '', data));
189
+ }
190
+ }
191
+ if (msg.method === constants_2.EXTENSION_METHODS.START_ATT_RES) {
192
+ const { result, data, errorData } = msg.data;
193
+ console.log('sdk-receive getAttestationResultRes', msg.data);
194
+ if (result) {
195
+ clearInterval(pollingTimer);
196
+ clearTimeout(timeoutTimer);
197
+ console.timeEnd('startAttestCost');
198
+ cleanup();
199
+ const { extendedData, allJsonResponse, ...formatParams2 } = data;
200
+ let requestid = attestationParams.attRequest.requestid ? attestationParams.attRequest.requestid : '';
201
+ this.extendedData[requestid] = extendedData;
202
+ // feat: allJsonResponse
203
+ let responseResolvesObj = formatParams2?.reponseResolve;
204
+ const responseIds = responseResolvesObj.map((i) => i?.keyName);
205
+ if (this.allJsonResponseFlag === 'true') {
206
+ this._allJsonResponse[requestid] = allJsonResponse.map((i, k) => {
207
+ return {
208
+ id: responseIds[k],
209
+ content: i
210
+ };
211
+ });
212
+ formatParams2.requestid = requestid;
213
+ }
214
+ resolve(formatParams2);
215
+ }
216
+ else {
217
+ clearInterval(pollingTimer);
218
+ clearTimeout(timeoutTimer);
219
+ console.timeEnd('startAttestCost');
220
+ cleanup();
221
+ const { code, data } = errorData;
222
+ reject(new error_1.ZkAttestationError(code, '', data));
223
+ }
224
+ }
225
+ });
226
+ });
227
+ }
228
+ catch (e) {
229
+ // this._attestLoading = false
230
+ return Promise.reject(e);
231
+ }
232
+ }
233
+ async startAttestationMobile(attestationParamsStr) {
234
+ if (this.latestRunningMobileRequest) {
235
+ attestationParamsStr = this.latestRunningMobileRequest;
236
+ }
237
+ else {
238
+ this.latestRunningMobileRequest = attestationParamsStr;
239
+ }
240
+ const url = this.GetAttestationMobileUrl(attestationParamsStr);
241
+ const newWin = window.open(url, '_self');
242
+ console.log('startAttestationMobile newWin=', newWin);
243
+ const attestationParams = JSON.parse(attestationParamsStr);
244
+ const requestid = attestationParams.attRequest.requestid;
245
+ const recipient = attestationParams.attRequest.userAddress;
246
+ let queryurl = `https://api.padolabs.org/attestation/result?requestId=${requestid}&recipient=${recipient}`;
247
+ if (this.options?.env !== 'production') {
248
+ queryurl = `https://api-dev.padolabs.org/attestation/result?requestId=${requestid}&recipient=${recipient}`;
249
+ }
250
+ return new Promise((resolve, reject) => {
251
+ const timer = setInterval(async () => {
252
+ try {
253
+ const response = await (0, utils_1.sendRequest)(queryurl);
254
+ console.log('query response=', response);
255
+ console.log('query response.result.status=', response.result.status);
256
+ if (response.rc === 0 && response.result.status === 'SUCCESS') {
257
+ clearInterval(timer);
258
+ clearTimeout(timeoutTimer);
259
+ this.latestRunningMobileRequest = undefined;
260
+ resolve(response.result.result);
261
+ }
262
+ else if (response.rc === 0 && response.result.status === 'FAILED') {
263
+ const errorCode = response.result.result.errorCode;
264
+ const errorMsg = response.result.result.errorMessage;
265
+ console.log(`reject error code=${errorCode}, errorMsg=${errorMsg}`);
266
+ clearInterval(timer);
267
+ clearTimeout(timeoutTimer);
268
+ this.latestRunningMobileRequest = undefined;
269
+ reject(new error_1.ZkAttestationError(errorCode, '', errorMsg));
270
+ }
271
+ }
272
+ catch (error) {
273
+ console.log('query moblie attestaion result error.');
274
+ }
275
+ }, constants_1.ATTESTATIONPOLLINGTIME);
276
+ const timeoutTimer = setTimeout(() => {
277
+ console.log('reject timeout');
278
+ clearInterval(timer);
279
+ this.latestRunningMobileRequest = undefined;
280
+ reject(new error_1.ZkAttestationError('01000', '', ''));
281
+ }, constants_1.ATTESTATIONPOLLINGTIMEOUTMOBILE);
282
+ });
283
+ }
284
+ GetAttestationMobileUrl(attestationParamsStr) {
285
+ const encodeParams = encodeURIComponent(attestationParamsStr);
286
+ if (this.options?.platform === 'android') {
287
+ let url;
288
+ if (this.options.openAndroidApp) {
289
+ url = `primuslabs://primuslabs.xyz/attestation-processor?signedRequest=${encodeParams}`;
290
+ }
291
+ else {
292
+ url = `https://primuslabs.xyz/attestation-processor?signedRequest=${encodeParams}`;
293
+ }
294
+ return url;
295
+ }
296
+ else if (this.options?.platform === 'ios') {
297
+ const url = `https://appclip.apple.com/id?p=PrimusLabs.Primus.AppClip&signedRequest=${encodeParams}`;
298
+ return url;
299
+ }
300
+ return '';
301
+ }
302
+ verifyAttestation(attestation) {
303
+ const encodeData = (0, utils_1.encodeAttestation)(attestation);
304
+ const signature = attestation.signatures[0];
305
+ const result = ethers_1.ethers.utils.recoverAddress(encodeData, signature);
306
+ console.log('sdk verifyAttestation recover address is ', result);
307
+ const verifyResult = this._padoAddress.toLowerCase() === result.toLowerCase();
308
+ return verifyResult;
309
+ }
310
+ getExtendedData(requestid) {
311
+ return this.extendedData[requestid];
312
+ }
313
+ /**
314
+ * Check app quote and perform business logic based on the result
315
+ * @private
316
+ * @throws {ZkAttestationError} Only throws business logic errors, network errors are caught and ignored
317
+ */
318
+ async _checkAppQuote() {
319
+ try {
320
+ const { rc, result } = await (0, api_1.getAppQuote)({ appId: this.appId });
321
+ // console.log('_checkAppQuote', result)
322
+ // Business logic based on quote result
323
+ if (rc !== 0) {
324
+ // Handle error case - you can customize this based on your requirements
325
+ console.warn('App quote check failed:', result?.msg);
326
+ // Optionally throw error or handle differently based on business requirements
327
+ // throw new ZkAttestationError('00005', result?.msg || 'App quote check failed');
328
+ }
329
+ if (!result) {
330
+ throw new error_1.ZkAttestationError('-1002001');
331
+ }
332
+ if (!result.expiryTime && (!result.remainingQuota || result.remainingQuota <= 0)) {
333
+ throw new error_1.ZkAttestationError('-1002003');
334
+ }
335
+ if (result.expiryTime) {
336
+ if (result.expiryTime < Date.now()) {
337
+ throw new error_1.ZkAttestationError('-1002004');
338
+ }
339
+ if (!result.remainingQuota || result.remainingQuota <= 0) {
340
+ throw new error_1.ZkAttestationError('-1002005');
341
+ }
342
+ }
343
+ // Add other business logic based on quoteResult.result if needed
344
+ // For example:
345
+ // if (quoteResult.result?.quotaExceeded) {
346
+ // throw new ZkAttestationError('00005', 'Quota exceeded');
347
+ // }
348
+ }
349
+ catch (error) {
350
+ // If it's a business logic error (ZkAttestationError), rethrow it
351
+ if (error instanceof error_1.ZkAttestationError) {
352
+ throw error;
353
+ }
354
+ // For network errors or other exceptions, catch and log but don't throw
355
+ // This allows the execution to continue even if the quote check fails
356
+ console.error('Failed to check app quote (network error or other exception):', error);
357
+ // Don't throw - allow execution to continue
358
+ }
359
+ }
360
+ _verifyAttestationParams(attestationParams) {
361
+ const { attRequest: { appId, attTemplateID, userAddress, timestamp }, appSignature } = attestationParams;
362
+ const checkFn = (label, value, valueType) => {
363
+ if (!value) {
364
+ throw new error_1.ZkAttestationError('00005', `Missing ${label}!`);
365
+ }
366
+ else {
367
+ if (typeof value !== valueType) {
368
+ throw new error_1.ZkAttestationError('00005', `Wrong ${label}!`);
369
+ }
370
+ }
371
+ };
372
+ checkFn('appId', appId, 'string');
373
+ checkFn('attTemplateID', attTemplateID, 'string');
374
+ // checkFn('userAddress', userAddress, 'string')
375
+ checkFn('timestamp', timestamp, 'number');
376
+ checkFn('appSignature', appSignature, 'string');
377
+ const illgelAddr = ethers_1.ethers.utils.isAddress(userAddress) || (0, utils_1.isSolanaAddress)(userAddress);
378
+ if (!illgelAddr) {
379
+ throw new error_1.ZkAttestationError('00005', `Wrong userAddress!`);
380
+ }
381
+ return true;
382
+ }
383
+ getAllJsonResponse(requestid) {
384
+ return this._allJsonResponse[requestid];
385
+ }
386
+ }
387
+ exports.PrimusZKTLS = PrimusZKTLS;
388
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { EXTENSION_METHODS, ExtensionMethod, ExtensionTarget } from '../constants';
2
+ import { SignedAttRequest, Attestation } from './index.d';
3
+ import { ErrorCode } from '../error';
4
+ export interface SDKOutboundEnvelope<M extends ExtensionMethod = ExtensionMethod, D = unknown> {
5
+ target: ExtensionTarget;
6
+ origin: ExtensionTarget;
7
+ method: M;
8
+ data: D;
9
+ }
10
+ export interface SDKInboundEnvelope<M extends ExtensionMethod = ExtensionMethod, D = unknown> {
11
+ target: ExtensionTarget;
12
+ method: M;
13
+ data: D;
14
+ }
15
+ type InitAttMessage = SDKOutboundEnvelope<typeof EXTENSION_METHODS.INIT_ATT, {
16
+ sdkVersion: string;
17
+ }>;
18
+ type StartAttMessage = SDKOutboundEnvelope<typeof EXTENSION_METHODS.START_ATT, SignedAttRequest & {
19
+ sdkVersion: string;
20
+ }>;
21
+ type GetAttResultMessage = SDKOutboundEnvelope<typeof EXTENSION_METHODS.GET_ATT_RESULT, Record<string, never>>;
22
+ type GetAttResultTimeoutMessage = SDKOutboundEnvelope<typeof EXTENSION_METHODS.GET_ATT_RESULT_TIMEOUT, Record<string, never>>;
23
+ export type SDKOutboundMessage = InitAttMessage | StartAttMessage | GetAttResultMessage | GetAttResultTimeoutMessage;
24
+ export type InitAttResPayload = {
25
+ result: true;
26
+ data?: {
27
+ padoExtensionVersion: string;
28
+ };
29
+ errorData?: undefined;
30
+ } | {
31
+ result: false;
32
+ errorData: {
33
+ code: ErrorCode;
34
+ };
35
+ data?: undefined;
36
+ };
37
+ export type GetAttResPayload = {
38
+ result: true;
39
+ errorData?: undefined;
40
+ } | {
41
+ result: false;
42
+ errorData: {
43
+ code: ErrorCode;
44
+ data?: string;
45
+ };
46
+ };
47
+ export type StartAttResData = Attestation & {
48
+ extendedData: Record<string, any>;
49
+ allJsonResponse: any[];
50
+ };
51
+ export type StartAttResPayload = {
52
+ result: true;
53
+ data: StartAttResData;
54
+ errorData?: undefined;
55
+ } | {
56
+ result: false;
57
+ errorData: {
58
+ code: ErrorCode;
59
+ data?: string;
60
+ };
61
+ data?: undefined;
62
+ };
63
+ type InitAttResMessage = SDKInboundEnvelope<typeof EXTENSION_METHODS.INIT_ATT_RES, InitAttResPayload>;
64
+ type GetAttResMessage = SDKInboundEnvelope<typeof EXTENSION_METHODS.GET_ATT_RES, GetAttResPayload>;
65
+ type StartAttResMessage = SDKInboundEnvelope<typeof EXTENSION_METHODS.START_ATT_RES, StartAttResPayload>;
66
+ export type SDKInboundMessage = InitAttResMessage | GetAttResMessage | StartAttResMessage;
67
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/types/messages.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * HTTP Request Utility - A wrapper based on fetch API
3
+ */
4
+ export interface RequestConfig {
5
+ url: string;
6
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
7
+ headers?: Record<string, string>;
8
+ params?: Record<string, any>;
9
+ data?: any;
10
+ timeout?: number;
11
+ responseType?: 'json' | 'text' | 'blob' | 'arrayBuffer';
12
+ }
13
+ export declare function request<T = any>(config: RequestConfig): Promise<T>;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * HTTP Request Utility - A wrapper based on fetch API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.request = request;
7
+ async function request(config) {
8
+ const { url, method = 'GET', headers = {}, params, data, timeout = 50000, responseType = 'json' } = config;
9
+ const hasBody = ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase());
10
+ let fullUrl = url;
11
+ if (!hasBody && params && Object.keys(params).length > 0) {
12
+ const urlObj = new URL(url);
13
+ Object.entries(params).forEach(([key, value]) => {
14
+ if (value !== undefined && value !== null) {
15
+ urlObj.searchParams.append(key, String(value));
16
+ }
17
+ });
18
+ fullUrl = urlObj.toString();
19
+ }
20
+ let body;
21
+ if (hasBody) {
22
+ const bodyData = data !== undefined ? data : params;
23
+ if (bodyData !== undefined && bodyData !== null) {
24
+ if (!headers['Content-Type'] && !headers['content-type']) {
25
+ headers['Content-Type'] = 'application/json';
26
+ }
27
+ const contentType = headers['Content-Type'] || headers['content-type'] || '';
28
+ if (contentType.includes('application/json')) {
29
+ body = JSON.stringify(bodyData);
30
+ }
31
+ else if (contentType.includes('application/x-www-form-urlencoded')) {
32
+ body = new URLSearchParams(bodyData).toString();
33
+ }
34
+ else {
35
+ body = String(bodyData);
36
+ }
37
+ }
38
+ }
39
+ const controller = new AbortController();
40
+ const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null;
41
+ try {
42
+ const response = await fetch(fullUrl, {
43
+ method,
44
+ headers,
45
+ body,
46
+ signal: controller.signal
47
+ });
48
+ if (timeoutId) {
49
+ clearTimeout(timeoutId);
50
+ }
51
+ let responseData;
52
+ try {
53
+ switch (responseType) {
54
+ case 'json':
55
+ responseData = await response.json();
56
+ break;
57
+ case 'text':
58
+ responseData = await response.text();
59
+ break;
60
+ case 'blob':
61
+ responseData = await response.blob();
62
+ break;
63
+ case 'arrayBuffer':
64
+ responseData = await response.arrayBuffer();
65
+ break;
66
+ default:
67
+ responseData = await response.json();
68
+ }
69
+ }
70
+ catch (parseError) {
71
+ responseData = await response.text();
72
+ }
73
+ if (!response.ok) {
74
+ const error = new Error(`HTTP ${response.status}: ${response.statusText}`);
75
+ error.status = response.status;
76
+ error.statusText = response.statusText;
77
+ error.data = responseData;
78
+ throw error;
79
+ }
80
+ return responseData;
81
+ }
82
+ catch (error) {
83
+ if (timeoutId) {
84
+ clearTimeout(timeoutId);
85
+ }
86
+ if (error.name === 'AbortError') {
87
+ const timeoutError = new Error(`Request timeout after ${timeout}ms`);
88
+ timeoutError.code = 'TIMEOUT';
89
+ throw timeoutError;
90
+ }
91
+ if (error instanceof TypeError && error.message.includes('fetch')) {
92
+ const networkError = new Error(`Network error: ${error.message}`);
93
+ networkError.code = 'NETWORK_ERROR';
94
+ throw networkError;
95
+ }
96
+ throw error;
97
+ }
98
+ }
99
+ //# sourceMappingURL=httpRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/utils/httpRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Attestation, AttNetworkRequest, AttNetworkResponseResolve } from '../types/index.d';
2
+ export declare function isValidNumericString(value: string): boolean;
3
+ export declare function isValidLetterString(value: string): boolean;
4
+ export declare function isValidNumberString(value: string): boolean;
5
+ export declare function isValidTimestampString(value: string): boolean;
6
+ export declare function getInstanceProperties(instance: any): any;
7
+ export declare function encodeSolanaAttestation(att: Attestation): any;
8
+ export declare function encodeAttestation(att: Attestation): any;
9
+ export declare function encodeRequest(request: AttNetworkRequest): any;
10
+ export declare function encodeResponse(reponse: AttNetworkResponseResolve[]): any;
11
+ export declare function sendRequest(url: string, options?: RequestInit): Promise<any>;
12
+ export declare function isSolanaAddress(address: string): any;