@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
package/dist/errors.js ADDED
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNetworkError = exports.createBalanceError = exports.createWalletError = exports.IcpayError = exports.ICPAY_ERROR_CODES = void 0;
4
+ // Standard error codes for consistent error handling
5
+ exports.ICPAY_ERROR_CODES = {
6
+ // Wallet-related errors
7
+ WALLET_NOT_CONNECTED: 'WALLET_NOT_CONNECTED',
8
+ WALLET_CONNECTION_FAILED: 'WALLET_CONNECTION_FAILED',
9
+ WALLET_DISCONNECTED: 'WALLET_DISCONNECTED',
10
+ WALLET_SIGNATURE_REJECTED: 'WALLET_SIGNATURE_REJECTED',
11
+ WALLET_USER_CANCELLED: 'WALLET_USER_CANCELLED',
12
+ WALLET_PROVIDER_NOT_AVAILABLE: 'WALLET_PROVIDER_NOT_AVAILABLE',
13
+ UNSUPPORTED_PROVIDER: 'UNSUPPORTED_PROVIDER',
14
+ NO_PROVIDERS_AVAILABLE: 'NO_PROVIDERS_AVAILABLE',
15
+ // Balance-related errors
16
+ INSUFFICIENT_BALANCE: 'INSUFFICIENT_BALANCE',
17
+ BALANCE_CHECK_FAILED: 'BALANCE_CHECK_FAILED',
18
+ // Transaction-related errors
19
+ TRANSACTION_FAILED: 'TRANSACTION_FAILED',
20
+ TRANSACTION_TIMEOUT: 'TRANSACTION_TIMEOUT',
21
+ TRANSACTION_CANCELLED: 'TRANSACTION_CANCELLED',
22
+ TRANSACTION_INVALID: 'TRANSACTION_INVALID',
23
+ // Network/API errors
24
+ NETWORK_ERROR: 'NETWORK_ERROR',
25
+ API_ERROR: 'API_ERROR',
26
+ RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
27
+ // Configuration errors
28
+ INVALID_CONFIG: 'INVALID_CONFIG',
29
+ MISSING_PUBLISHABLE_KEY: 'MISSING_PUBLISHABLE_KEY',
30
+ INVALID_PUBLISHABLE_KEY: 'INVALID_PUBLISHABLE_KEY',
31
+ SECRET_KEY_REQUIRED: 'SECRET_KEY_REQUIRED',
32
+ // Ledger/Token errors
33
+ LEDGER_NOT_FOUND: 'LEDGER_NOT_FOUND',
34
+ LEDGER_NOT_VERIFIED: 'LEDGER_NOT_VERIFIED',
35
+ TOKEN_NOT_SUPPORTED: 'TOKEN_NOT_SUPPORTED',
36
+ INVALID_LEDGER_SYMBOL: 'INVALID_LEDGER_SYMBOL',
37
+ LEDGER_SYMBOL_NOT_FOUND: 'LEDGER_SYMBOL_NOT_FOUND',
38
+ // Account errors
39
+ ACCOUNT_NOT_FOUND: 'ACCOUNT_NOT_FOUND',
40
+ ACCOUNT_INACTIVE: 'ACCOUNT_INACTIVE',
41
+ ACCOUNT_INFO_FETCH_FAILED: 'ACCOUNT_INFO_FETCH_FAILED',
42
+ // Transaction errors
43
+ TRANSACTION_STATUS_FETCH_FAILED: 'TRANSACTION_STATUS_FETCH_FAILED',
44
+ TRANSACTION_SYNC_TRIGGER_FAILED: 'TRANSACTION_SYNC_TRIGGER_FAILED',
45
+ // Balance errors
46
+ BALANCES_FETCH_FAILED: 'BALANCES_FETCH_FAILED',
47
+ SINGLE_BALANCE_FETCH_FAILED: 'SINGLE_BALANCE_FETCH_FAILED',
48
+ // Price/Calculation errors
49
+ INVALID_USD_AMOUNT: 'INVALID_USD_AMOUNT',
50
+ PRICE_NOT_AVAILABLE: 'PRICE_NOT_AVAILABLE',
51
+ PRICE_CALCULATION_FAILED: 'PRICE_CALCULATION_FAILED',
52
+ // Transaction errors
53
+ TRANSACTION_HISTORY_FETCH_FAILED: 'TRANSACTION_HISTORY_FETCH_FAILED',
54
+ PAYMENT_HISTORY_FETCH_FAILED: 'PAYMENT_HISTORY_FETCH_FAILED',
55
+ PAYMENTS_BY_PRINCIPAL_FETCH_FAILED: 'PAYMENTS_BY_PRINCIPAL_FETCH_FAILED',
56
+ SEND_FUNDS_USD_FAILED: 'SEND_FUNDS_USD_FAILED',
57
+ // Ledger errors
58
+ LEDGER_INFO_FETCH_FAILED: 'LEDGER_INFO_FETCH_FAILED',
59
+ LEDGERS_WITH_PRICES_FETCH_FAILED: 'LEDGERS_WITH_PRICES_FETCH_FAILED',
60
+ VERIFIED_LEDGERS_FETCH_FAILED: 'VERIFIED_LEDGERS_FETCH_FAILED',
61
+ // Account errors
62
+ ACCOUNT_WALLET_BALANCES_FETCH_FAILED: 'ACCOUNT_WALLET_BALANCES_FETCH_FAILED',
63
+ // Generic errors
64
+ UNKNOWN_ERROR: 'UNKNOWN_ERROR',
65
+ VALIDATION_ERROR: 'VALIDATION_ERROR'
66
+ };
67
+ class IcpayError extends Error {
68
+ constructor(error) {
69
+ super(error.message);
70
+ this.name = 'IcpayError';
71
+ this.code = error.code;
72
+ this.details = error.details;
73
+ this.retryable = error.retryable ?? false;
74
+ this.userAction = error.userAction;
75
+ }
76
+ // Helper method to check if error is user-cancelled
77
+ isUserCancelled() {
78
+ return this.code === exports.ICPAY_ERROR_CODES.WALLET_USER_CANCELLED ||
79
+ this.code === exports.ICPAY_ERROR_CODES.WALLET_SIGNATURE_REJECTED ||
80
+ this.code === exports.ICPAY_ERROR_CODES.TRANSACTION_CANCELLED;
81
+ }
82
+ // Helper method to check if error is retryable
83
+ isRetryable() {
84
+ return this.retryable;
85
+ }
86
+ // Helper method to check if error is wallet-related
87
+ isWalletError() {
88
+ const walletErrors = [
89
+ exports.ICPAY_ERROR_CODES.WALLET_NOT_CONNECTED,
90
+ exports.ICPAY_ERROR_CODES.WALLET_CONNECTION_FAILED,
91
+ exports.ICPAY_ERROR_CODES.WALLET_DISCONNECTED,
92
+ exports.ICPAY_ERROR_CODES.WALLET_SIGNATURE_REJECTED,
93
+ exports.ICPAY_ERROR_CODES.WALLET_USER_CANCELLED,
94
+ exports.ICPAY_ERROR_CODES.WALLET_PROVIDER_NOT_AVAILABLE,
95
+ exports.ICPAY_ERROR_CODES.UNSUPPORTED_PROVIDER,
96
+ exports.ICPAY_ERROR_CODES.NO_PROVIDERS_AVAILABLE
97
+ ];
98
+ return walletErrors.includes(this.code);
99
+ }
100
+ // Helper method to check if error is balance-related
101
+ isBalanceError() {
102
+ const balanceErrors = [
103
+ exports.ICPAY_ERROR_CODES.INSUFFICIENT_BALANCE,
104
+ exports.ICPAY_ERROR_CODES.BALANCE_CHECK_FAILED,
105
+ exports.ICPAY_ERROR_CODES.BALANCES_FETCH_FAILED,
106
+ exports.ICPAY_ERROR_CODES.SINGLE_BALANCE_FETCH_FAILED
107
+ ];
108
+ return balanceErrors.includes(this.code);
109
+ }
110
+ // Helper method to check if error is network-related
111
+ isNetworkError() {
112
+ const networkErrors = [
113
+ exports.ICPAY_ERROR_CODES.NETWORK_ERROR,
114
+ exports.ICPAY_ERROR_CODES.API_ERROR,
115
+ exports.ICPAY_ERROR_CODES.RATE_LIMIT_EXCEEDED
116
+ ];
117
+ return networkErrors.includes(this.code);
118
+ }
119
+ }
120
+ exports.IcpayError = IcpayError;
121
+ // Helper functions to create common errors
122
+ const createWalletError = (code, message, details) => {
123
+ const defaultMessages = {
124
+ [exports.ICPAY_ERROR_CODES.WALLET_NOT_CONNECTED]: 'Wallet is not connected. Please connect your wallet first.',
125
+ [exports.ICPAY_ERROR_CODES.WALLET_CONNECTION_FAILED]: 'Failed to connect wallet. Please try again.',
126
+ [exports.ICPAY_ERROR_CODES.WALLET_DISCONNECTED]: 'Wallet has been disconnected.',
127
+ [exports.ICPAY_ERROR_CODES.WALLET_SIGNATURE_REJECTED]: 'Transaction was rejected by the user.',
128
+ [exports.ICPAY_ERROR_CODES.WALLET_USER_CANCELLED]: 'Transaction was cancelled by the user.',
129
+ [exports.ICPAY_ERROR_CODES.WALLET_PROVIDER_NOT_AVAILABLE]: 'Wallet provider is not available.',
130
+ [exports.ICPAY_ERROR_CODES.UNSUPPORTED_PROVIDER]: 'Unsupported wallet provider.',
131
+ [exports.ICPAY_ERROR_CODES.NO_PROVIDERS_AVAILABLE]: 'No wallet providers are available.'
132
+ };
133
+ return new IcpayError({
134
+ code,
135
+ message: message || defaultMessages[code] || 'Wallet error occurred',
136
+ details,
137
+ retryable: code === exports.ICPAY_ERROR_CODES.WALLET_CONNECTION_FAILED,
138
+ userAction: code === exports.ICPAY_ERROR_CODES.WALLET_NOT_CONNECTED ? 'Connect wallet' : undefined
139
+ });
140
+ };
141
+ exports.createWalletError = createWalletError;
142
+ const createBalanceError = (required, available, details) => {
143
+ return new IcpayError({
144
+ code: exports.ICPAY_ERROR_CODES.INSUFFICIENT_BALANCE,
145
+ message: `Insufficient balance. Required: ${required}, Available: ${available}`,
146
+ details: { required, available, ...details },
147
+ retryable: false,
148
+ userAction: 'Add funds to your wallet'
149
+ });
150
+ };
151
+ exports.createBalanceError = createBalanceError;
152
+ const createNetworkError = (message, details) => {
153
+ return new IcpayError({
154
+ code: exports.ICPAY_ERROR_CODES.NETWORK_ERROR,
155
+ message: message || 'Network error occurred. Please check your connection.',
156
+ details,
157
+ retryable: true,
158
+ userAction: 'Try again'
159
+ });
160
+ };
161
+ exports.createNetworkError = createNetworkError;
162
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type IcpayEventName = 'icpay-sdk-error' | 'icpay-sdk-transaction-created' | 'icpay-sdk-transaction-updated' | 'icpay-sdk-transaction-completed' | 'icpay-sdk-transaction-failed' | 'icpay-sdk-connect-wallet' | 'icpay-sdk-method-start' | 'icpay-sdk-method-success' | 'icpay-sdk-method-error';
2
+ type GenericEvent = {
3
+ type: string;
4
+ detail?: any;
5
+ };
6
+ /**
7
+ * Small, cross-environment event center.
8
+ * - Uses DOM EventTarget when available (browser)
9
+ * - Falls back to an in-memory emitter (Node or non-DOM envs)
10
+ */
11
+ export declare class IcpayEventCenter {
12
+ private target;
13
+ private listeners;
14
+ private wrapperMap;
15
+ constructor();
16
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
17
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
18
+ dispatchEvent(event: Event | GenericEvent): boolean;
19
+ on(type: IcpayEventName | string, listener: (detail: any) => void): () => void;
20
+ off(type: IcpayEventName | string, listener: (detail: any) => void): void;
21
+ emit(type: IcpayEventName | string, detail?: any): void;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,+BAA+B,GAC/B,+BAA+B,GAC/B,iCAAiC,GACjC,8BAA8B,GAC9B,0BAA0B,GAC1B,wBAAwB,GACxB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE7B,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AAGnD;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,UAAU,CAA4C;;IAU9D,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,GAAG,IAAI;IAiBlF,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,GAAG,IAAI;IAYrF,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,OAAO;IAcnD,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI;IAqB9E,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAiBzE,IAAI,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;CAqBxD"}
package/dist/events.js ADDED
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IcpayEventCenter = void 0;
4
+ /**
5
+ * Small, cross-environment event center.
6
+ * - Uses DOM EventTarget when available (browser)
7
+ * - Falls back to an in-memory emitter (Node or non-DOM envs)
8
+ */
9
+ class IcpayEventCenter {
10
+ constructor() {
11
+ this.target = typeof globalThis !== 'undefined' && typeof globalThis.EventTarget === 'function'
12
+ ? new globalThis.EventTarget()
13
+ : null;
14
+ this.listeners = new Map();
15
+ this.wrapperMap = new Map();
16
+ }
17
+ addEventListener(type, listener) {
18
+ if (this.target) {
19
+ this.target.addEventListener(type, listener);
20
+ }
21
+ else {
22
+ const set = this.listeners.get(type) || new Set();
23
+ const wrapped = (event) => {
24
+ if (typeof listener === 'function') {
25
+ listener(event);
26
+ }
27
+ else if (listener && typeof listener.handleEvent === 'function') {
28
+ listener.handleEvent(event);
29
+ }
30
+ };
31
+ set.add(wrapped);
32
+ this.listeners.set(type, set);
33
+ }
34
+ }
35
+ removeEventListener(type, listener) {
36
+ if (this.target) {
37
+ this.target.removeEventListener(type, listener);
38
+ }
39
+ else {
40
+ const set = this.listeners.get(type);
41
+ if (!set)
42
+ return;
43
+ // On fallback path we cannot reliably match the exact wrapper created in addEventListener,
44
+ // so we clear the whole set for this type if remove is called.
45
+ this.listeners.delete(type);
46
+ }
47
+ }
48
+ dispatchEvent(event) {
49
+ if (this.target && event.type) {
50
+ return this.target.dispatchEvent(event);
51
+ }
52
+ const e = event;
53
+ const set = this.listeners.get(e.type);
54
+ if (set) {
55
+ set.forEach(fn => {
56
+ try {
57
+ fn(e);
58
+ }
59
+ catch { }
60
+ });
61
+ }
62
+ return true;
63
+ }
64
+ on(type, listener) {
65
+ if (this.target) {
66
+ const wrapper = (e) => listener(e && typeof e === 'object' ? (e.detail ?? e) : e);
67
+ if (!this.wrapperMap.has(type))
68
+ this.wrapperMap.set(type, new Map());
69
+ this.wrapperMap.get(type).set(listener, wrapper);
70
+ this.target.addEventListener(type, wrapper);
71
+ return () => this.off(type, listener);
72
+ }
73
+ const set = this.listeners.get(type) || new Set();
74
+ const wrapped = (e) => listener(e.detail);
75
+ set.add(wrapped);
76
+ this.listeners.set(type, set);
77
+ return () => {
78
+ const current = this.listeners.get(type);
79
+ if (current) {
80
+ current.delete(wrapped);
81
+ if (current.size === 0)
82
+ this.listeners.delete(type);
83
+ }
84
+ };
85
+ }
86
+ off(type, listener) {
87
+ if (this.target) {
88
+ const typeMap = this.wrapperMap.get(type);
89
+ const wrapper = typeMap?.get(listener);
90
+ if (wrapper) {
91
+ this.target.removeEventListener(type, wrapper);
92
+ typeMap.delete(listener);
93
+ }
94
+ return;
95
+ }
96
+ const set = this.listeners.get(type);
97
+ if (set) {
98
+ // Fallback: cannot map back original, clear all
99
+ this.listeners.delete(type);
100
+ }
101
+ }
102
+ emit(type, detail) {
103
+ if (this.target) {
104
+ const CE = globalThis.CustomEvent;
105
+ if (typeof CE === 'function') {
106
+ this.target.dispatchEvent(new CE(type, { detail }));
107
+ return;
108
+ }
109
+ const Evt = globalThis.Event;
110
+ const e = typeof Evt === 'function' ? new Evt(type) : { type };
111
+ try {
112
+ e.detail = detail;
113
+ }
114
+ catch { }
115
+ this.target.dispatchEvent(e);
116
+ return;
117
+ }
118
+ const evt = { type, detail };
119
+ const set = this.listeners.get(type);
120
+ if (set) {
121
+ set.forEach(fn => {
122
+ try {
123
+ fn(evt);
124
+ }
125
+ catch { }
126
+ });
127
+ }
128
+ }
129
+ }
130
+ exports.IcpayEventCenter = IcpayEventCenter;
131
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { IcpayConfig, CreateTransactionRequest, TransactionResponse, WalletConnectionResult, AllLedgerBalances, LedgerBalance, PriceCalculationRequest, PriceCalculationResult, SendFundsUsdRequest, AccountPublic, LedgerPublic, SdkLedger } from './types';
2
+ import { IcpayEventName } from './events';
3
+ import { ProtectedApi } from './protected';
4
+ export declare class Icpay {
5
+ private config;
6
+ private wallet;
7
+ private publicApiClient;
8
+ private privateApiClient;
9
+ private connectedWallet;
10
+ private icHost;
11
+ private actorProvider?;
12
+ private icpayCanisterId;
13
+ private accountInfoCache;
14
+ private verifiedLedgersCache;
15
+ private events;
16
+ protected: ProtectedApi;
17
+ constructor(config: IcpayConfig);
18
+ on(type: IcpayEventName | string, listener: (detail: any) => void): () => void;
19
+ off(type: IcpayEventName | string, listener: (detail: any) => void): void;
20
+ emit(type: IcpayEventName | string, detail?: any): void;
21
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
22
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject): void;
23
+ dispatchEvent(event: Event): boolean;
24
+ private emitError;
25
+ private emitMethodStart;
26
+ private emitMethodSuccess;
27
+ private emitMethodError;
28
+ /**
29
+ * Check if SDK has secret key for private operations
30
+ */
31
+ private hasSecretKey;
32
+ /**
33
+ * Require secret key for private operations
34
+ */
35
+ private requireSecretKey;
36
+ /**
37
+ * Get account information (public method - limited data)
38
+ */
39
+ getAccountInfo(): Promise<AccountPublic>;
40
+ /**
41
+ * Get verified ledgers (public method)
42
+ */
43
+ getVerifiedLedgers(): Promise<LedgerPublic[]>;
44
+ /**
45
+ * Get a verified ledger's canister ID by its symbol (public helper)
46
+ */
47
+ getLedgerCanisterIdBySymbol(symbol: string): Promise<string>;
48
+ /**
49
+ * Trigger transaction sync from canister (public method)
50
+ *
51
+ * This method attempts to sync a transaction directly from the canister to the API database
52
+ * and returns the result immediately. This is useful when you know a transaction exists
53
+ * in the canister but it's not showing up in the API database yet.
54
+ */
55
+ triggerTransactionSync(canisterTransactionId: number): Promise<any>;
56
+ /**
57
+ * Fetch and cache account info, including icpayCanisterId (public method)
58
+ */
59
+ private fetchAccountInfo;
60
+ /**
61
+ * Show wallet connection modal
62
+ */
63
+ showWalletModal(): Promise<WalletConnectionResult>;
64
+ /**
65
+ * Connect to a specific wallet provider
66
+ */
67
+ connectWallet(providerId: string): Promise<WalletConnectionResult>;
68
+ /**
69
+ * Get available wallet providers
70
+ */
71
+ getWalletProviders(): import("./types").WalletProvider[];
72
+ /**
73
+ * Check if a wallet provider is available
74
+ */
75
+ isWalletProviderAvailable(providerId: string): boolean;
76
+ /**
77
+ * Get the connected wallet's account address
78
+ */
79
+ getAccountAddress(): string;
80
+ /**
81
+ * Get balance for a specific ledger canister
82
+ */
83
+ getLedgerBalance(ledgerCanisterId: string): Promise<bigint>;
84
+ /**
85
+ * Create a simple memo with account canister ID as bytes
86
+ * Example: 1 => Uint8Array([1]), 2 => Uint8Array([2])
87
+ */
88
+ private createMemoWithAccountCanisterId;
89
+ private createPackedMemo;
90
+ /**
91
+ * Send funds to a specific canister/ledger (public method)
92
+ * This is now a real transaction
93
+ */
94
+ sendFunds(request: CreateTransactionRequest): Promise<TransactionResponse>;
95
+ /**
96
+ * Disconnect from wallet
97
+ */
98
+ disconnectWallet(): Promise<void>;
99
+ /**
100
+ * Check if wallet is connected
101
+ */
102
+ isWalletConnected(): boolean;
103
+ /**
104
+ * Get the connected wallet provider
105
+ */
106
+ getConnectedWalletProvider(): string | null;
107
+ /**
108
+ * Poll for transaction status using anonymous actor (no signature required)
109
+ */
110
+ pollTransactionStatus(canisterId: string, transactionId: number, accountCanisterId: string, indexReceived: number, intervalMs?: number, maxAttempts?: number): Promise<any>;
111
+ /**
112
+ * Check if transaction status indicates completion
113
+ */
114
+ private isTransactionCompleted;
115
+ /**
116
+ * Notify canister about ledger transaction using anonymous actor (no signature required)
117
+ */
118
+ notifyLedgerTransaction(canisterId: string, ledgerCanisterId: string, blockIndex: bigint): Promise<string>;
119
+ getTransactionStatusPublic(canisterId: string, canisterTransactionId: number, indexReceived: number, accountCanisterId: string): Promise<any>;
120
+ /**
121
+ * Send funds to a ledger canister using agent-js
122
+ * Now uses host from config
123
+ */
124
+ sendFundsToLedger(ledgerCanisterId: string, toPrincipal: string, amount: bigint, memo?: Uint8Array, host?: string): Promise<any>;
125
+ /**
126
+ * Get transaction by ID using get_transactions filter (alternative to get_transaction)
127
+ */
128
+ getTransactionByFilter(transactionId: number): Promise<any>;
129
+ /**
130
+ * Get balance for all verified ledgers for the connected wallet (public method)
131
+ */
132
+ getAllLedgerBalances(): Promise<AllLedgerBalances>;
133
+ /**
134
+ * Get balance for a specific ledger by canister ID (public method)
135
+ */
136
+ getSingleLedgerBalance(ledgerCanisterId: string): Promise<LedgerBalance>;
137
+ /**
138
+ * Calculate token amount from USD price for a specific ledger (public method)
139
+ */
140
+ calculateTokenAmountFromUSD(request: PriceCalculationRequest): Promise<PriceCalculationResult>;
141
+ /**
142
+ * Get detailed ledger information including price data (public method)
143
+ */
144
+ getLedgerInfo(ledgerCanisterId: string): Promise<SdkLedger>;
145
+ /**
146
+ * Send funds from USD to a specific ledger (public method)
147
+ */
148
+ sendFundsUsd(request: SendFundsUsdRequest): Promise<TransactionResponse>;
149
+ /**
150
+ * Get all ledgers with price information (public method)
151
+ */
152
+ getAllLedgersWithPrices(): Promise<SdkLedger[]>;
153
+ /**
154
+ * Utility function to format balance from smallest unit to human readable
155
+ */
156
+ private formatBalance;
157
+ }
158
+ export * from './types';
159
+ export { IcpayError } from './errors';
160
+ export { IcpayWallet } from './wallet';
161
+ export * from './events';
162
+ export default Icpay;
163
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}