@ic-pay/icpay-sdk 1.3.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +32 -0
  2. package/dist/declarations/icp-ledger/icp-ledger.did.d.ts +82 -0
  3. package/dist/declarations/icp-ledger/icp-ledger.did.js +76 -0
  4. package/dist/declarations/icpay_canister_backend/icpay_canister_backend.did +193 -0
  5. package/dist/declarations/icpay_canister_backend/icpay_canister_backend.did.d.ts +219 -0
  6. package/dist/declarations/icpay_canister_backend/icpay_canister_backend.did.js +231 -0
  7. package/dist/declarations/icrc-ledger/ledger.did +560 -0
  8. package/dist/declarations/icrc-ledger/ledger.did.d.ts +364 -0
  9. package/dist/declarations/icrc-ledger/ledger.did.js +530 -0
  10. package/dist/errors.d.ts +72 -0
  11. package/dist/errors.d.ts.map +1 -0
  12. package/dist/errors.js +162 -0
  13. package/dist/errors.js.map +1 -0
  14. package/dist/events.d.ts +24 -0
  15. package/dist/events.d.ts.map +1 -0
  16. package/dist/events.js +131 -0
  17. package/dist/events.js.map +1 -0
  18. package/dist/index.d.ts +163 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +1211 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/protected.d.ts +28 -0
  23. package/dist/protected.d.ts.map +1 -0
  24. package/dist/protected.js +336 -0
  25. package/dist/protected.js.map +1 -0
  26. package/dist/types/index.d.ts +482 -0
  27. package/dist/types/index.d.ts.map +1 -0
  28. package/dist/types/index.js +3 -0
  29. package/dist/types/index.js.map +1 -0
  30. package/dist/utils.d.ts +15 -0
  31. package/dist/utils.d.ts.map +1 -0
  32. package/dist/utils.js +42 -0
  33. package/dist/utils.js.map +1 -0
  34. package/dist/wallet.d.ts +83 -0
  35. package/dist/wallet.d.ts.map +1 -0
  36. package/dist/wallet.js +261 -0
  37. package/dist/wallet.js.map +1 -0
  38. package/package.json +58 -0
@@ -0,0 +1,482 @@
1
+ import type { ActorSubclass } from '@dfinity/agent';
2
+ export interface IcpayConfig {
3
+ publishableKey?: string;
4
+ secretKey?: string;
5
+ environment?: 'development' | 'production';
6
+ apiUrl?: string;
7
+ connectedWallet?: ConnectedWallet;
8
+ icHost?: string;
9
+ /**
10
+ * Optional: Provide a function to create an actor for any canister
11
+ * (canisterId: string, idl: any) => ActorSubclass<any>
12
+ */
13
+ actorProvider?: (canisterId: string, idl: any) => ActorSubclass<any>;
14
+ /**
15
+ * Optional: Enable debug logging
16
+ * When set to true, all console.log messages will be output
17
+ */
18
+ debug?: boolean;
19
+ /**
20
+ * Enable or disable SDK events emission. Defaults to true (enabled).
21
+ */
22
+ enableEvents?: boolean;
23
+ /**
24
+ * If true, wait for server notification result in sendFunds.
25
+ * Defaults to false (do not await; fire-and-forget notify).
26
+ */
27
+ awaitServerNotification?: boolean;
28
+ }
29
+ export interface ConnectedWallet {
30
+ /**
31
+ * The principal/owner of the wallet (string format)
32
+ * Required for balance checking and transaction operations
33
+ */
34
+ owner?: string;
35
+ /**
36
+ * The principal of the wallet (Principal object format)
37
+ * Alternative to owner property
38
+ */
39
+ principal?: any;
40
+ /**
41
+ * Whether the wallet is currently connected
42
+ * Used to determine connection status
43
+ */
44
+ connected?: boolean;
45
+ /**
46
+ * Optional method to get the principal
47
+ * Alternative to owner/principal properties
48
+ */
49
+ getPrincipal?: () => string | any;
50
+ }
51
+ export interface VerifiedLedger {
52
+ id: string;
53
+ name: string;
54
+ symbol: string;
55
+ canisterId: string;
56
+ decimals: number;
57
+ logoUrl: string | null;
58
+ verified: boolean;
59
+ fee: string | null;
60
+ currentPrice?: number | null;
61
+ lastPriceUpdate?: string | null;
62
+ }
63
+ export interface WalletProvider {
64
+ id: string;
65
+ name: string;
66
+ icon: string;
67
+ description: string;
68
+ }
69
+ export interface Transaction {
70
+ id: string;
71
+ accountId?: string;
72
+ transactionType: 'payment' | 'refund' | 'transfer' | 'withdrawal';
73
+ status: 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
74
+ amount: string;
75
+ currency: string;
76
+ ledgerCanisterId?: string;
77
+ fromAddress?: string;
78
+ toAddress: string;
79
+ blockHeight?: string;
80
+ fee?: string;
81
+ metadata?: any;
82
+ errorMessage?: string;
83
+ processedAt?: Date;
84
+ createdAt: Date;
85
+ updatedAt: Date;
86
+ }
87
+ export interface CreateTransactionRequest {
88
+ amount: string;
89
+ ledgerCanisterId: string;
90
+ accountCanisterId?: string;
91
+ metadata?: Record<string, any>;
92
+ }
93
+ export interface TransactionResponse {
94
+ transactionId: number;
95
+ status: 'pending' | 'completed' | 'failed';
96
+ amount: string;
97
+ recipientCanister: string;
98
+ timestamp: Date;
99
+ description?: string;
100
+ metadata?: Record<string, any>;
101
+ payment?: PublicNotifyResponse;
102
+ }
103
+ export interface TransactionStatus {
104
+ transactionId: number;
105
+ status: 'pending' | 'completed' | 'failed';
106
+ blockHeight?: number;
107
+ timestamp: Date;
108
+ error?: string;
109
+ }
110
+ export interface AccountInfo {
111
+ id: string;
112
+ name: string | null;
113
+ email: string | null;
114
+ isActive: boolean;
115
+ isLive: boolean;
116
+ accountCanisterId: number;
117
+ walletAddress: string | null;
118
+ createdAt: Date;
119
+ updatedAt: Date;
120
+ }
121
+ export interface PublicAccountInfo {
122
+ id: string;
123
+ name: string | null;
124
+ isActive: boolean;
125
+ isLive: boolean;
126
+ accountCanisterId: number;
127
+ icpayCanisterId?: string;
128
+ }
129
+ export interface IcpayError {
130
+ code: string;
131
+ message: string;
132
+ details?: any;
133
+ }
134
+ export interface WalletConnectionResult {
135
+ provider: string;
136
+ principal: string;
137
+ accountId: string;
138
+ connected: boolean;
139
+ }
140
+ export interface LedgerBalance {
141
+ ledgerId: string;
142
+ ledgerName: string;
143
+ ledgerSymbol: string;
144
+ canisterId: string;
145
+ balance: string;
146
+ formattedBalance: string;
147
+ decimals: number;
148
+ currentPrice?: number;
149
+ lastPriceUpdate?: Date;
150
+ lastUpdated: Date;
151
+ }
152
+ export interface AllLedgerBalances {
153
+ balances: LedgerBalance[];
154
+ totalBalancesUSD?: number;
155
+ lastUpdated: Date;
156
+ }
157
+ export interface PriceCalculationRequest {
158
+ usdAmount: number;
159
+ ledgerCanisterId: string;
160
+ ledgerSymbol?: string;
161
+ }
162
+ export interface PriceCalculationResult {
163
+ usdAmount: number;
164
+ ledgerCanisterId: string;
165
+ ledgerSymbol: string;
166
+ ledgerName: string;
167
+ currentPrice: number;
168
+ priceTimestamp: Date;
169
+ tokenAmountHuman: string;
170
+ tokenAmountDecimals: string;
171
+ decimals: number;
172
+ }
173
+ export interface PaymentHistoryRequest {
174
+ accountId?: string;
175
+ ledgerCanisterId?: string;
176
+ fromTimestamp?: Date;
177
+ toTimestamp?: Date;
178
+ status?: 'pending' | 'completed' | 'failed';
179
+ limit?: number;
180
+ offset?: number;
181
+ }
182
+ export interface PaymentHistoryItem {
183
+ id: string;
184
+ transactionId: number;
185
+ status: 'pending' | 'completed' | 'failed';
186
+ amount: string;
187
+ currency: string;
188
+ ledgerCanisterId: string;
189
+ ledgerSymbol: string;
190
+ fromAddress?: string;
191
+ toAddress: string;
192
+ blockHeight?: number;
193
+ fee?: string;
194
+ decimals?: number;
195
+ tokenPrice?: string;
196
+ expectedSenderPrincipal?: string;
197
+ metadata?: any;
198
+ createdAt: Date;
199
+ updatedAt: Date;
200
+ }
201
+ export interface PaymentHistoryResponse {
202
+ payments: PaymentHistoryItem[];
203
+ total: number;
204
+ limit: number;
205
+ offset: number;
206
+ hasMore: boolean;
207
+ }
208
+ export interface PublicCreateIntentResponse {
209
+ paymentIntentId: string;
210
+ paymentIntentCode: number | null;
211
+ payment: PaymentPublic;
212
+ paymentIntent: SdkPaymentIntent;
213
+ }
214
+ export interface PublicNotifyResponse {
215
+ paymentId: string;
216
+ paymentIntentId: string | null;
217
+ status: PaymentStatus;
218
+ canisterTxId: number | null;
219
+ transactionId: string | null;
220
+ }
221
+ export type PaymentStatus = 'pending' | 'completed' | 'failed' | 'canceled' | 'refunded';
222
+ export type PaymentIntentStatus = 'requires_payment' | 'processing' | 'succeeded' | 'completed' | 'failed' | 'canceled';
223
+ export type InvoiceStatus = 'draft' | 'open' | 'paid' | 'void';
224
+ export type RefundStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
225
+ export type PayoutStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
226
+ export type LedgerStandard = 'ICRC-1' | 'ICRC-2' | 'ICRC-3' | 'ICRC-10' | 'ICRC-21' | 'ICP' | 'EXT';
227
+ export type LedgerNetwork = 'mainnet' | 'testnet';
228
+ export type PriceFetchMethod = 'coingecko' | 'icpswap';
229
+ export type WalletNetwork = 'ic' | 'eth' | 'btc' | 'sol';
230
+ export type WalletType = 'user' | 'platform' | 'canister';
231
+ export interface AccountPublic {
232
+ id: string;
233
+ name: string | null;
234
+ isActive: boolean;
235
+ isLive: boolean;
236
+ accountCanisterId: number;
237
+ icpayCanisterId?: string;
238
+ }
239
+ export interface LedgerPublic {
240
+ id: string;
241
+ name: string;
242
+ symbol: string;
243
+ canisterId: string;
244
+ decimals: number;
245
+ logoUrl: string | null;
246
+ verified: boolean;
247
+ fee: string | null;
248
+ currentPrice: number | null;
249
+ lastPriceUpdate: string | null;
250
+ }
251
+ export interface PaymentPublic {
252
+ id: string;
253
+ accountId: string;
254
+ paymentIntentId: string;
255
+ transactionId: string | null;
256
+ transactionSplitId?: string | null;
257
+ canisterTxId: number | null;
258
+ amount: string;
259
+ ledgerCanisterId: string;
260
+ ledgerTxId?: string | null;
261
+ accountCanisterId?: number | null;
262
+ basePaymentAccountId?: string | null;
263
+ status: PaymentStatus;
264
+ invoiceId: string | null;
265
+ metadata: Record<string, unknown>;
266
+ createdAt: string;
267
+ updatedAt: string;
268
+ }
269
+ export interface SdkLedger {
270
+ id: string;
271
+ name: string;
272
+ symbol: string;
273
+ canisterId: string;
274
+ standard: LedgerStandard;
275
+ decimals: number;
276
+ logoUrl: string | null;
277
+ verified: boolean;
278
+ fee: string | null;
279
+ network: LedgerNetwork;
280
+ description: string | null;
281
+ lastBlockIndex: string | null;
282
+ coingeckoId: string | null;
283
+ currentPrice: number | null;
284
+ priceFetchMethod: PriceFetchMethod | null;
285
+ lastPriceUpdate: string | null;
286
+ createdAt: string;
287
+ updatedAt: string;
288
+ }
289
+ export interface SdkPaymentIntent {
290
+ id: string;
291
+ accountId: string;
292
+ amount: string;
293
+ ledgerCanisterId: string;
294
+ description: string | null;
295
+ expectedSenderPrincipal: string | null;
296
+ status: PaymentIntentStatus;
297
+ metadata: Record<string, unknown>;
298
+ intentCode: number;
299
+ createdAt: string;
300
+ updatedAt: string;
301
+ }
302
+ export interface SdkPayment {
303
+ id: string;
304
+ accountId: string;
305
+ paymentIntentId: string;
306
+ transactionId: string | null;
307
+ transactionSplitId?: string | null;
308
+ canisterTxId: number | null;
309
+ amount: string;
310
+ ledgerCanisterId: string;
311
+ ledgerTxId?: string | null;
312
+ accountCanisterId?: number | null;
313
+ basePaymentAccountId?: string | null;
314
+ status: PaymentStatus;
315
+ invoiceId: string | null;
316
+ metadata: Record<string, unknown>;
317
+ createdAt: string;
318
+ updatedAt: string;
319
+ }
320
+ export interface SdkInvoice {
321
+ id: string;
322
+ accountId: string;
323
+ paymentId: string | null;
324
+ invoiceNumber: string | null;
325
+ amountDue: string;
326
+ amountPaid: string | null;
327
+ currency: string | null;
328
+ status: InvoiceStatus;
329
+ metadata: Record<string, unknown>;
330
+ createdAt: string;
331
+ updatedAt: string;
332
+ }
333
+ export interface SdkTransaction {
334
+ id: string;
335
+ accountId: string;
336
+ canisterTxId: number | null;
337
+ accountCanisterId: string | null;
338
+ senderPrincipalId: string;
339
+ transactionType: 'payment' | 'refund' | 'transfer' | 'withdrawal';
340
+ status: 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
341
+ amount: string;
342
+ accountAmount: string | null;
343
+ platformFeeAmount: string | null;
344
+ tokenPrice: number | null;
345
+ ledgerId: string | null;
346
+ ledgerCanisterId: string;
347
+ timestamp: number | null;
348
+ indexReceived: number | null;
349
+ indexToAccount: number | null;
350
+ timestampReceived: number | null;
351
+ timestampToAccount: number | null;
352
+ metadata: Record<string, unknown>;
353
+ memo: string | null;
354
+ processedAt: string | null;
355
+ createdAt: string;
356
+ updatedAt: string;
357
+ }
358
+ export interface SdkRefund {
359
+ id: string;
360
+ accountId: string;
361
+ transactionId: string | null;
362
+ canisterRefundId: string | null;
363
+ canisterTxId: string | null;
364
+ ledgerCanisterId: string | null;
365
+ amount: string;
366
+ accountAmount: string | null;
367
+ platformRefundAmount: string | null;
368
+ status: RefundStatus;
369
+ statusMessage: string | null;
370
+ indexPlatformToAccount: string | null;
371
+ indexToSender: string | null;
372
+ timestampPlatformToAccount: string | null;
373
+ timestampToSender: string | null;
374
+ metadata: Record<string, unknown>;
375
+ createdAt: string;
376
+ updatedAt: string;
377
+ }
378
+ export interface SdkPayout {
379
+ id: string;
380
+ accountId: string;
381
+ walletId: string | null;
382
+ userId: string | null;
383
+ amount: string;
384
+ ledgerId: string | null;
385
+ ledgerCanisterId: string | null;
386
+ accountCanisterId: string | null;
387
+ fromSubaccount: string | null;
388
+ toWalletAddress: string | null;
389
+ toWalletSubaccount: string | null;
390
+ blockIndex: string | null;
391
+ ledgerTxHash: string | null;
392
+ status: PayoutStatus;
393
+ statusMessage: string | null;
394
+ retryCount: number;
395
+ ipAddress: string | null;
396
+ userAgent: string | null;
397
+ metadata: Record<string, unknown>;
398
+ createdAt: string;
399
+ updatedAt: string;
400
+ }
401
+ export interface SdkWallet {
402
+ id: string;
403
+ accountId: string | null;
404
+ walletName: string;
405
+ walletAddress: string;
406
+ network: WalletNetwork;
407
+ type: WalletType;
408
+ subaccount: string | null;
409
+ icpAccountIdentifier: string | null;
410
+ isActive: boolean;
411
+ isChanged: boolean;
412
+ previousAddress: string | null;
413
+ isPrimary: boolean;
414
+ isInternal: boolean;
415
+ createdAt: string;
416
+ updatedAt: string;
417
+ }
418
+ export interface SdkWebhookEvent {
419
+ id: string;
420
+ webhookEndpointId: string;
421
+ eventType: string;
422
+ eventData: any;
423
+ endpointUrl: string;
424
+ relationName: string | null;
425
+ relationId: string | null;
426
+ status: 'pending' | 'sent' | 'delivered' | 'failed' | 'cancelled';
427
+ attempts: number;
428
+ maxAttempts: number;
429
+ nextRetryAt: string | null;
430
+ sentAt: string | null;
431
+ deliveredAt: string | null;
432
+ responseStatus: number | null;
433
+ responseHeaders: Record<string, string> | null;
434
+ responseBody: string | null;
435
+ requestHeaders: Record<string, string> | null;
436
+ requestBody: string | null;
437
+ errorMessage: string | null;
438
+ errorCode: string | null;
439
+ processingTimeMs: number | null;
440
+ signature: string | null;
441
+ createdAt: string;
442
+ updatedAt: string;
443
+ }
444
+ export interface SdkPaymentAggregate {
445
+ payment: SdkPayment;
446
+ intent: SdkPaymentIntent | null;
447
+ invoice: SdkInvoice | null;
448
+ transaction: SdkTransaction | null;
449
+ }
450
+ export interface GetPaymentsByPrincipalRequest {
451
+ principalId: string;
452
+ limit?: number;
453
+ offset?: number;
454
+ status?: 'pending' | 'completed' | 'failed';
455
+ }
456
+ export interface LedgerInfo {
457
+ id: string;
458
+ name: string;
459
+ symbol: string;
460
+ canisterId: string;
461
+ decimals: number;
462
+ logoUrl?: string;
463
+ verified: boolean;
464
+ fee?: string;
465
+ currentPrice?: number;
466
+ lastPriceUpdate?: Date;
467
+ }
468
+ export interface SendFundsUsdRequest {
469
+ usdAmount: string | number;
470
+ ledgerCanisterId: string;
471
+ accountCanisterId?: string;
472
+ metadata?: Record<string, any>;
473
+ }
474
+ export interface PaymentIntent {
475
+ id: string;
476
+ amount: string;
477
+ ledgerCanisterId: string;
478
+ status: 'requires_payment' | 'processing' | 'succeeded' | 'failed' | 'canceled';
479
+ metadata?: Record<string, any>;
480
+ createdAt: string;
481
+ }
482
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { Principal } from '@dfinity/principal';
2
+ /**
3
+ * Convert a Principal (and optional subaccount) to an ICP AccountIdentifier (28 bytes)
4
+ * See: https://internetcomputer.org/docs/current/developer-docs/integrations/ledger/account-identifier/
5
+ */
6
+ export declare function toAccountIdentifier(principal: Principal, subaccount?: Uint8Array): Uint8Array;
7
+ /**
8
+ * Debug logger utility
9
+ * Only outputs console.log messages when debug is enabled
10
+ * @param debug - Whether debug mode is enabled
11
+ * @param message - The message to log
12
+ * @param data - Optional data to log
13
+ */
14
+ export declare function debugLog(debug: boolean, message: string, data?: any): void;
15
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAa7F;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAQ1E"}
package/dist/utils.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toAccountIdentifier = toAccountIdentifier;
4
+ exports.debugLog = debugLog;
5
+ const crypto_1 = require("crypto");
6
+ /**
7
+ * Convert a Principal (and optional subaccount) to an ICP AccountIdentifier (28 bytes)
8
+ * See: https://internetcomputer.org/docs/current/developer-docs/integrations/ledger/account-identifier/
9
+ */
10
+ function toAccountIdentifier(principal, subaccount) {
11
+ // AccountIdentifier = sha224(0x0A + principal.toUint8Array() + subaccount (32 bytes))
12
+ const padding = Buffer.from([0x0A]);
13
+ const principalBytes = Buffer.from(principal.toUint8Array());
14
+ let subaccountBytes;
15
+ if (subaccount && subaccount.length === 32) {
16
+ subaccountBytes = Buffer.from(subaccount);
17
+ }
18
+ else {
19
+ subaccountBytes = Buffer.alloc(32);
20
+ }
21
+ const data = Buffer.concat([padding, principalBytes, subaccountBytes]);
22
+ const hash = (0, crypto_1.createHash)('sha224').update(data).digest();
23
+ return hash;
24
+ }
25
+ /**
26
+ * Debug logger utility
27
+ * Only outputs console.log messages when debug is enabled
28
+ * @param debug - Whether debug mode is enabled
29
+ * @param message - The message to log
30
+ * @param data - Optional data to log
31
+ */
32
+ function debugLog(debug, message, data) {
33
+ if (debug) {
34
+ if (data !== undefined) {
35
+ console.log(`[ICPay SDK] ${message}`, data);
36
+ }
37
+ else {
38
+ console.log(`[ICPay SDK] ${message}`);
39
+ }
40
+ }
41
+ }
42
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAOA,kDAaC;AASD,4BAQC;AApCD,mCAAoC;AAEpC;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,SAAoB,EAAE,UAAuB;IAC/E,sFAAsF;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7D,IAAI,eAAuB,CAAC;IAC5B,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC3C,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,KAAc,EAAE,OAAe,EAAE,IAAU;IAClE,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { Identity } from '@dfinity/agent';
2
+ import { Principal } from '@dfinity/principal';
3
+ import { WalletProvider, WalletConnectionResult } from './types';
4
+ declare global {
5
+ interface Window {
6
+ oisy?: {
7
+ requestConnect(): Promise<{
8
+ connected: boolean;
9
+ principal: string;
10
+ }>;
11
+ };
12
+ ic?: {
13
+ plug?: {
14
+ requestConnect(): Promise<boolean>;
15
+ getPrincipal(): Promise<string>;
16
+ };
17
+ };
18
+ }
19
+ }
20
+ export declare class IcpayWallet {
21
+ private authClient;
22
+ private identity;
23
+ private principal;
24
+ private connectedProvider;
25
+ private connectedWallet;
26
+ constructor(options?: {
27
+ connectedWallet?: any;
28
+ });
29
+ private readonly providers;
30
+ /**
31
+ * Get available wallet providers
32
+ */
33
+ getProviders(): WalletProvider[];
34
+ /**
35
+ * Check if a specific provider is available
36
+ */
37
+ isProviderAvailable(providerId: string): boolean;
38
+ /**
39
+ * Connect to a specific wallet provider
40
+ */
41
+ connectToProvider(providerId: string): Promise<WalletConnectionResult>;
42
+ /**
43
+ * Connect to Internet Identity
44
+ */
45
+ private connectInternetIdentity;
46
+ /**
47
+ * Connect to OISY wallet
48
+ */
49
+ private connectOisy;
50
+ /**
51
+ * Connect to Plug wallet
52
+ */
53
+ private connectPlug;
54
+ /**
55
+ * Show wallet connection modal
56
+ */
57
+ showConnectionModal(): Promise<WalletConnectionResult>;
58
+ /**
59
+ * Get the connected wallet's account address
60
+ */
61
+ getAccountAddress(): string;
62
+ /**
63
+ * Disconnect from the wallet
64
+ */
65
+ disconnect(): Promise<void>;
66
+ /**
67
+ * Check if wallet is connected
68
+ */
69
+ isConnected(): boolean;
70
+ /**
71
+ * Get the current identity
72
+ */
73
+ getIdentity(): Identity | null;
74
+ /**
75
+ * Get the current principal
76
+ */
77
+ getPrincipal(): Principal | null;
78
+ /**
79
+ * Get the connected provider
80
+ */
81
+ getConnectedProvider(): string | null;
82
+ }
83
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAOjE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,CAAC,EAAE;YACL,cAAc,IAAI,OAAO,CAAC;gBAAE,SAAS,EAAE,OAAO,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SACtE,CAAC;QACF,EAAE,CAAC,EAAE;YACH,IAAI,CAAC,EAAE;gBACL,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;aACjC,CAAC;SACH,CAAC;KACH;CACF;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,eAAe,CAAa;gBAExB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,GAAG,CAAA;KAAE;IAO/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAmBxB;IAEF;;OAEG;IACH,YAAY,IAAI,cAAc,EAAE;IAIhC;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAehD;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqB5E;;OAEG;YACW,uBAAuB;IAmCrC;;OAEG;YACW,WAAW;IAyBzB;;OAEG;YACW,WAAW;IA0BzB;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAkB5D;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAU3B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAqBtB;;OAEG;IACH,WAAW,IAAI,QAAQ,GAAG,IAAI;IAI9B;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI;IAIhC;;OAEG;IACH,oBAAoB,IAAI,MAAM,GAAG,IAAI;CAGtC"}