@mnee/ts-sdk 1.0.0

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/README.md ADDED
@@ -0,0 +1,256 @@
1
+ # MNEE TypeScript SDK
2
+
3
+ The MNEE TypeScript SDK provides a comprehensive and efficient way to interact with the MNEE USD token. It offers a full suite of features including balance checking, UTXO management, transaction validation and parsing, token transfers (including multi-source), HD wallet support, and high-performance batch operations for processing large numbers of addresses.
4
+
5
+ ## Documentation
6
+
7
+ 📚 **Full documentation is available at [https://docs.mnee.io](https://docs.mnee.io)**
8
+
9
+ For detailed API references and advanced usage, see the [docs](./docs) directory:
10
+
11
+ - [Configuration](./docs/config.md)
12
+ - [Balance Operations](./docs/balance.md)
13
+ - [Transfers](./docs/transfer.md) & [Multi-source Transfers](./docs/transferMulti.md)
14
+ - [Batch Operations](./docs/batch.md)
15
+ - [HD Wallet](./docs/hdWallet.md)
16
+ - [Transaction Parsing](./docs/parseTx.md)
17
+ - [And more...](./docs)
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install mnee
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ ### Basic Setup
28
+
29
+ ```typescript
30
+ import Mnee from 'mnee';
31
+
32
+ // Initialize the SDK
33
+ const mnee = new Mnee({
34
+ environment: 'production', // or 'sandbox'
35
+ apiKey: 'your-api-key', // optional but recommended
36
+ });
37
+ ```
38
+
39
+ ### Check Balance
40
+
41
+ ```typescript
42
+ // Single address
43
+ const balance = await mnee.balance('1YourAddressHere...');
44
+ console.log(`Balance: ${balance.decimalAmount} MNEE`);
45
+
46
+ // Multiple addresses
47
+ const balances = await mnee.balances(['address1', 'address2']);
48
+ ```
49
+
50
+ ### Transfer MNEE
51
+
52
+ ```typescript
53
+ const recipients = [
54
+ { address: '1RecipientAddress...', amount: 10.5 },
55
+ { address: '1AnotherAddress...', amount: 5.25 },
56
+ ];
57
+
58
+ const response = await mnee.transfer(recipients, 'your-private-key-wif');
59
+ console.log('Ticket ID:', response.ticketId);
60
+
61
+ // Get transaction ID after broadcast
62
+ const status = await mnee.getTxStatus(response.ticketId);
63
+ console.log('Transaction ID:', status.tx_id);
64
+ ```
65
+
66
+ ### HD Wallet
67
+
68
+ ```typescript
69
+ import { HDWallet } from 'mnee';
70
+
71
+ // Generate a new wallet
72
+ const mnemonic = HDWallet.generateMnemonic();
73
+ const hdWallet = mnee.HDWallet(mnemonic, {
74
+ derivationPath: "m/44'/236'/0'",
75
+ });
76
+
77
+ // Derive addresses
78
+ const address = hdWallet.deriveAddress(0, false);
79
+ console.log('Address:', address.address);
80
+ console.log('Private Key:', address.privateKey);
81
+ ```
82
+
83
+ ### Batch Operations
84
+
85
+ Process hundreds or thousands of addresses efficiently:
86
+
87
+ ```typescript
88
+ const batch = mnee.batch();
89
+
90
+ // Get balances for many addresses with progress tracking
91
+ const result = await batch.getBalances(addresses, {
92
+ chunkSize: 50,
93
+ continueOnError: true,
94
+ onProgress: (completed, total, errors) => {
95
+ console.log(`Progress: ${completed}/${total} chunks, Errors: ${errors}`);
96
+ },
97
+ });
98
+
99
+ console.log(`Successfully processed ${result.results.length} addresses`);
100
+ console.log(`Errors: ${result.errors.length}`);
101
+ ```
102
+
103
+ ## Key Features
104
+
105
+ ### 🔐 **HD Wallet Support**
106
+
107
+ Full BIP32/BIP44 hierarchical deterministic wallet implementation for managing multiple addresses from a single seed.
108
+
109
+ ### ⚡ **Batch Processing**
110
+
111
+ High-performance batch operations with automatic chunking, rate limiting, and error recovery.
112
+
113
+ ### 💸 **Flexible Transfers**
114
+
115
+ - Simple transfers with automatic UTXO selection
116
+ - Multi-source transfers for complex scenarios
117
+ - Support for multiple change addresses
118
+
119
+ ### 🔍 **Transaction Analysis**
120
+
121
+ - Parse transactions by ID or raw hex
122
+ - Validate transactions before broadcasting
123
+ - Extract inscription and cosigner data
124
+
125
+ ### 📊 **Comprehensive Data Access**
126
+
127
+ - Real-time balance queries
128
+ - UTXO management
129
+ - Transaction history with pagination
130
+ - BSV21 token data support
131
+
132
+ ## Common Use Cases
133
+
134
+ ### Portfolio Management
135
+
136
+ ```typescript
137
+ // Check total balance across multiple addresses
138
+ const addresses = ['address1', 'address2', 'address3'];
139
+ const balances = await mnee.balances(addresses);
140
+
141
+ const total = balances.reduce((sum, bal) => sum + bal.decimalAmount, 0);
142
+ console.log(`Total portfolio: ${total} MNEE`);
143
+ ```
144
+
145
+ ### Automated Payments
146
+
147
+ ```typescript
148
+ // Send payments to multiple recipients
149
+ const payments = [
150
+ { address: '1Employee1Address...', amount: 1000 },
151
+ { address: '1Employee2Address...', amount: 1500 },
152
+ { address: '1ContractorAddress...', amount: 750 },
153
+ ];
154
+
155
+ try {
156
+ const result = await mnee.transfer(payments, payerWif);
157
+ console.log('Payments sent, ticket:', result.ticketId);
158
+
159
+ // Wait for confirmation
160
+ const status = await mnee.getTxStatus(result.ticketId);
161
+ console.log('Transaction confirmed:', status.tx_id);
162
+ } catch (error) {
163
+ console.error('Payment failed:', error.message);
164
+ }
165
+ ```
166
+
167
+ ### UTXO Consolidation
168
+
169
+ ```typescript
170
+ // Consolidate UTXOs from multiple addresses
171
+ // Note: getUtxos defaults to 10, specify larger size or use pagination
172
+ const utxos = await mnee.getUtxos(['1Address1...', '1Address2...'], 0, 1000);
173
+ const inputs = utxos.map((utxo) => ({
174
+ txid: utxo.outpoint.split(':')[0],
175
+ vout: parseInt(utxo.outpoint.split(':')[1]),
176
+ wif: getWifForAddress(utxo.owners[0]),
177
+ }));
178
+
179
+ const totalAmount = utxos.reduce((sum, utxo) => sum + mnee.fromAtomicAmount(utxo.data.bsv21.amt), 0);
180
+
181
+ const result = await mnee.transferMulti({
182
+ inputs,
183
+ recipients: [
184
+ {
185
+ address: '1ConsolidationAddress...',
186
+ amount: totalAmount - 0.01, // Leave room for fees
187
+ },
188
+ ],
189
+ });
190
+
191
+ // Get transaction ID after broadcast
192
+ const status = await mnee.getTxStatus(result.ticketId);
193
+ console.log('Consolidation transaction:', status.tx_id);
194
+ ```
195
+
196
+ ## Error Handling
197
+
198
+ The SDK provides detailed error messages for common scenarios:
199
+
200
+ ```typescript
201
+ try {
202
+ const result = await mnee.transfer(recipients, wif);
203
+ } catch (error) {
204
+ switch (true) {
205
+ case error.message.includes('Insufficient MNEE balance'):
206
+ console.error('Not enough tokens');
207
+ break;
208
+ case error.menssage.includes('Invalid API key'):
209
+ console.error('Authentication failed');
210
+ break;
211
+ case error.message.includes('Failed to broadcast transaction'):
212
+ console.error('Transaction rejected by network');
213
+ break;
214
+ default:
215
+ console.error('Transfer failed:', error.message);
216
+ }
217
+ }
218
+ ```
219
+
220
+ ## Unit Conversion
221
+
222
+ MNEE uses atomic units internally (1 MNEE = 100,000 atomic units):
223
+
224
+ ```typescript
225
+ // Convert to atomic units for precise calculations
226
+ const atomic = mnee.toAtomicAmount(1.5); // Returns: 150000
227
+
228
+ // Convert from atomic to MNEE for display
229
+ const mneeAmount = mnee.fromAtomicAmount(150000); // Returns: 1.5
230
+ ```
231
+
232
+ ## Advanced Features
233
+
234
+ For advanced usage including:
235
+
236
+ - Transaction validation with custom rules
237
+ - Multi-signature support
238
+ - Custom change address strategies
239
+ - Inscription parsing
240
+ - Gap limit scanning for HD wallets
241
+ - And more...
242
+
243
+ Please refer to the [full documentation](https://docs.mnee.io) or the [docs directory](./docs).
244
+
245
+ ## Support
246
+
247
+ - 📖 Documentation: [https://docs.mnee.io](https://docs.mnee.io)
248
+ - 🐛 Issues: [GitHub Issues](https://github.com/mnee-xyz/mnee/issues)
249
+
250
+ ## Contributing
251
+
252
+ Contributions are welcome! Please submit a pull request or open an issue on the repository to suggest improvements or report bugs.
253
+
254
+ ## License
255
+
256
+ This project is licensed under the MIT License. See the LICENSE file for details.
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Batch operations for MNEE SDK
3
+ * Provides a clean API for batch processing with automatic chunking, rate limiting, and error recovery
4
+ */
5
+ import { MNEEService } from './mneeService.js';
6
+ import { MNEEUtxo, MNEEBalance, TxHistoryResponse, AddressHistoryParams, ParseTxResponse, ParseTxExtendedResponse, ParseOptions } from './mnee.types.js';
7
+ export interface BatchOptions {
8
+ /** Maximum items per API call (default: 20) */
9
+ chunkSize?: number;
10
+ /** API requests per second limit (default: 3). If your API key has a higher limit, set this accordingly */
11
+ requestsPerSecond?: number;
12
+ /** Continue processing if an error occurs (default: false) */
13
+ continueOnError?: boolean;
14
+ /** Maximum retries per chunk (default: 3) */
15
+ maxRetries?: number;
16
+ /** Retry delay in milliseconds (default: 1000) */
17
+ retryDelay?: number;
18
+ /** Progress callback */
19
+ onProgress?: (completed: number, total: number, errors: number) => void;
20
+ }
21
+ export interface BatchError {
22
+ items: string[];
23
+ error: {
24
+ message: string;
25
+ code?: string;
26
+ };
27
+ retryCount: number;
28
+ }
29
+ export interface BatchResult<T> {
30
+ results: T[];
31
+ errors: BatchError[];
32
+ totalProcessed: number;
33
+ totalErrors: number;
34
+ }
35
+ export interface BatchUtxoResult {
36
+ address: string;
37
+ utxos: MNEEUtxo[];
38
+ }
39
+ export interface BatchParseTxResult {
40
+ txid: string;
41
+ parsed: ParseTxResponse | ParseTxExtendedResponse;
42
+ }
43
+ /**
44
+ * Batch operations class for MNEE SDK
45
+ * @example
46
+ * const batch = mnee.batch();
47
+ * const result = await batch.getBalances(addresses, { onProgress: ... });
48
+ */
49
+ export declare class Batch {
50
+ private service;
51
+ constructor(service: MNEEService);
52
+ /**
53
+ * Get UTXOs for multiple addresses
54
+ * @example
55
+ * const result = await mnee.batch().getUtxos(addresses, {
56
+ * onProgress: (completed, total, errors) => {
57
+ * console.log(`Progress: ${completed}/${total}, Errors: ${errors}`);
58
+ * }
59
+ * });
60
+ */
61
+ getUtxos(addresses: string[], options?: BatchOptions): Promise<BatchResult<BatchUtxoResult>>;
62
+ /**
63
+ * Get balances for multiple addresses
64
+ * @example
65
+ * const result = await mnee.batch().getBalances(addresses);
66
+ * const totalBalance = result.results.reduce((sum, b) => sum + b.decimalAmount, 0);
67
+ */
68
+ getBalances(addresses: string[], options?: BatchOptions): Promise<BatchResult<MNEEBalance>>;
69
+ /**
70
+ * Get transaction histories for multiple addresses
71
+ * @example
72
+ * const params = addresses.map(addr => ({ address: addr, limit: 100 }));
73
+ * const result = await mnee.batch().getTxHistories(params);
74
+ */
75
+ getTxHistories(params: AddressHistoryParams[], options?: BatchOptions): Promise<BatchResult<TxHistoryResponse>>;
76
+ /**
77
+ * Parse multiple transactions
78
+ * @example
79
+ * const result = await mnee.batch().parseTx(txids, {
80
+ * parseOptions: { includeRaw: true }
81
+ * });
82
+ */
83
+ parseTx(txids: string[], options?: BatchOptions & {
84
+ parseOptions?: ParseOptions;
85
+ }): Promise<BatchResult<BatchParseTxResult>>;
86
+ /**
87
+ * Generic batch processor
88
+ */
89
+ private processBatch;
90
+ /**
91
+ * Process with retry logic
92
+ */
93
+ private processWithRetry;
94
+ /**
95
+ * Split array into chunks
96
+ */
97
+ private chunkArray;
98
+ /**
99
+ * Delay execution
100
+ */
101
+ private delay;
102
+ }
103
+ /**
104
+ * Rate limiter for API calls
105
+ */
106
+ export declare class RateLimiter {
107
+ private maxConcurrent;
108
+ private minDelay;
109
+ private queue;
110
+ private running;
111
+ constructor(maxConcurrent: number, minDelay: number);
112
+ execute<T>(fn: () => Promise<T>): Promise<T>;
113
+ private waitForSlot;
114
+ private processQueue;
115
+ private delay;
116
+ }
@@ -0,0 +1,12 @@
1
+ export declare const MIN_TRANSFER_AMOUNT = 0.00001;
2
+ export declare const MNEE_DECIMALS = 5;
3
+ export declare const MNEE_PROXY_API_URL = "https://proxy-api.mnee.net";
4
+ export declare const PUBLIC_PROD_MNEE_API_TOKEN = "92982ec1c0975f31979da515d46bae9f";
5
+ export declare const PROD_TOKEN_ID = "ae59f3b898ec61acbdb6cc7a245fabeded0c094bf046f35206a3aec60ef88127_0";
6
+ export declare const PROD_APPROVER = "020a177d6a5e6f3a8689acd2e313bd1cf0dcf5a243d1cc67b7218602aee9e04b2f";
7
+ export declare const PROD_MINT_ADDRESS = "1inHbiwj2jrEcZPiSYnfgJ8FmS1Bmk4Dh";
8
+ export declare const SANDBOX_MNEE_API_URL = "https://sandbox-proxy-api.mnee.net";
9
+ export declare const PUBLIC_SANDBOX_MNEE_API_TOKEN = "54f1fd1688ba66a58a67675b82feb93e";
10
+ export declare const SANDBOX_TOKEN_ID = "833a7720966a2a435db28d967385e8aa7284b6150ebb39482cc5228b73e1703f_0";
11
+ export declare const SANDBOX_APPROVER = "02bed35e894cc41cc9879b4002ad03d33533b615c1b476068c8dd6822a09f93f6c";
12
+ export declare const SANDBOX_MINT_ADDRESS = "1AZNdbFYBDFTAEgzZMfPzANxyNrpGJZAUY";
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Note: We're using the HD class from @bsv/sdk despite it being marked as deprecated.
3
+ * The deprecation is because BSV is moving towards BRC-42 (invoice-based key derivation),
4
+ * but for MNEE token management, standard BIP32/BIP44 HD wallets are still the appropriate
5
+ * choice because:
6
+ * - Users expect standard mnemonic/HD wallet functionality
7
+ * - It needs to be compatible with existing wallet software
8
+ * - The use case is for token management, not the privacy-focused invoice system of BRC-42
9
+ */
10
+ export interface AddressInfo {
11
+ address: string;
12
+ privateKey: string;
13
+ path: string;
14
+ }
15
+ export interface HDWalletOptions {
16
+ derivationPath: string;
17
+ cacheSize?: number;
18
+ }
19
+ export declare class HDWallet {
20
+ private readonly masterKey;
21
+ private readonly derivationPath;
22
+ private readonly cacheSize;
23
+ private readonly cache;
24
+ constructor(mnemonic: string, options: HDWalletOptions);
25
+ /**
26
+ * Generate a new random mnemonic phrase
27
+ * @returns A new BIP39 mnemonic phrase (12 words)
28
+ * @example
29
+ * const mnemonic = HDWallet.generateMnemonic();
30
+ * const hdWallet = new HDWallet(mnemonic, { derivationPath: "m/44'/236'/0'" });
31
+ */
32
+ static generateMnemonic(): string;
33
+ /**
34
+ * Validate a mnemonic phrase
35
+ * @param mnemonic - The mnemonic phrase to validate
36
+ * @returns true if valid, false otherwise
37
+ */
38
+ static isValidMnemonic(mnemonic: string): boolean;
39
+ /**
40
+ * Derive individual address with caching
41
+ * @param index - The index of the address to derive
42
+ * @param isChange - Whether this is a change address (default: false)
43
+ * @returns Address information including address, private key, and derivation path
44
+ */
45
+ deriveAddress(index: number, isChange?: boolean): AddressInfo;
46
+ /**
47
+ * Batch derive addresses for performance
48
+ * @param startIndex - Starting index for derivation
49
+ * @param count - Number of addresses to derive
50
+ * @param isChange - Whether these are change addresses (default: false)
51
+ * @returns Array of address information
52
+ */
53
+ deriveAddresses(startIndex: number, count: number, isChange?: boolean): Promise<AddressInfo[]>;
54
+ /**
55
+ * Helper for transferMulti integration - get private keys for specific addresses
56
+ * @param addresses - Array of addresses to get private keys for
57
+ * @param options - Optional configuration for the search
58
+ * @returns Object with private keys and derivation paths for each address
59
+ * @throws Error if any addresses cannot be found within the scan limits
60
+ */
61
+ getPrivateKeysForAddresses(addresses: string[], options?: {
62
+ maxScanReceive?: number;
63
+ maxScanChange?: number;
64
+ scanStrategy?: 'sequential' | 'parallel';
65
+ }): {
66
+ privateKeys: {
67
+ [address: string]: string;
68
+ };
69
+ paths: {
70
+ [address: string]: string;
71
+ };
72
+ };
73
+ /**
74
+ * Helper for transferMulti integration - get private keys for specific addresses (simplified version)
75
+ * @param addresses - Array of addresses to get private keys for
76
+ * @param options - Optional configuration for the search
77
+ * @returns Object mapping addresses to their private keys (WIF format)
78
+ * @throws Error if any addresses cannot be found within the scan limits
79
+ */
80
+ getPrivateKeys(addresses: string[], options?: {
81
+ maxScanReceive?: number;
82
+ maxScanChange?: number;
83
+ scanStrategy?: 'sequential' | 'parallel';
84
+ }): {
85
+ [address: string]: string;
86
+ };
87
+ /**
88
+ * Scan for addresses with a gap limit (BIP44 standard)
89
+ * This is useful for finding all used addresses in a wallet
90
+ * @param gapLimit - Number of consecutive unused addresses before stopping (default: 20)
91
+ * @param scanChange - Whether to scan change addresses too (default: true)
92
+ * @param maxScan - Maximum addresses to scan per type (default: 10000)
93
+ * @returns Object with arrays of discovered addresses
94
+ */
95
+ scanAddressesWithGapLimit(checkAddressUsed: (address: string) => Promise<boolean>, options?: {
96
+ gapLimit?: number;
97
+ scanChange?: boolean;
98
+ maxScan?: number;
99
+ }): Promise<{
100
+ receive: AddressInfo[];
101
+ change: AddressInfo[];
102
+ }>;
103
+ /**
104
+ * Clear the cache to free memory
105
+ */
106
+ clearCache(): void;
107
+ /**
108
+ * Get the current cache size
109
+ */
110
+ getCacheSize(): number;
111
+ }
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ var e=require("@bsv/sdk");function r(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach(function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}}),r.default=e,r}var t=/*#__PURE__*/r(require("bip39"));function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function i(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,r){if(e){if("string"==typeof e)return n(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},o.apply(null,arguments)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}function u(e,r){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},u(e,r)}function c(e){var r="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(r){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return function(e,r,t){if(a())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,r);var i=new(e.bind.apply(e,n));return t&&u(i,t.prototype),i}(e,arguments,s(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),u(t,e)},c(e)}function f(e){var r=new Error(e);return r.stack=void 0,r}var d=/*#__PURE__*/function(){function r(){}var t=r.prototype;return t.lock=function(r,t){var n=[];if("string"==typeof r){var i=e.Utils.fromBase58Check(r);if(0!==i.prefix[0]&&111!==i.prefix[0])throw f("only P2PKH is supported");n=i.data}else n=r;var o=new e.LockingScript;return o.writeOpCode(e.OP.OP_DUP).writeOpCode(e.OP.OP_HASH160).writeBin(n).writeOpCode(e.OP.OP_EQUALVERIFY).writeOpCode(e.OP.OP_CHECKSIGVERIFY).writeBin(t.encode(!0)).writeOpCode(e.OP.OP_CHECKSIG),o},t.userUnlock=function(r,t,n,i,o){return void 0===t&&(t="all"),void 0===n&&(n=!1),{sign:function(s,a){try{var u,c,d,l=e.TransactionSignature.SIGHASH_FORKID;"all"===t&&(l|=e.TransactionSignature.SIGHASH_ALL),"none"===t&&(l|=e.TransactionSignature.SIGHASH_NONE),"single"===t&&(l|=e.TransactionSignature.SIGHASH_SINGLE),n&&(l|=e.TransactionSignature.SIGHASH_ANYONECANPAY);var h=s.inputs[a],v=s.inputs.filter(function(e,r){return r!==a}),m=h.sourceTXID?h.sourceTXID:null==(u=h.sourceTransaction)?void 0:u.id("hex");if(!m)throw f("The input sourceTXID or sourceTransaction is required for transaction signing.");if(i||(i=null==(c=h.sourceTransaction)?void 0:c.outputs[h.sourceOutputIndex].satoshis),!i)throw f("The sourceSatoshis or input sourceTransaction is required for transaction signing.");if(o||(o=null==(d=h.sourceTransaction)?void 0:d.outputs[h.sourceOutputIndex].lockingScript),!o)throw f("The lockingScript or input sourceTransaction is required for transaction signing.");var p=e.TransactionSignature.format({sourceTXID:m,sourceOutputIndex:h.sourceOutputIndex,sourceSatoshis:i,transactionVersion:s.version,otherInputs:v,inputIndex:a,outputs:s.outputs,inputSequence:h.sequence||4294967295,subscript:o,lockTime:s.lockTime,scope:l}),g=r.sign(e.Hash.sha256(p)),y=new e.TransactionSignature(g.r,g.s,l),P=new e.UnlockingScript;return P.writeBin(y.toChecksigFormat()),P.writeBin(r.toPublicKey().encode(!0)),Promise.resolve(P)}catch(e){return Promise.reject(e)}},estimateLength:function(){return Promise.resolve(182)}}},t.unlock=function(r,t,n,i,o,s){return void 0===n&&(n="all"),void 0===i&&(i=!1),{sign:function(a,u){try{var c,d,l,h=e.TransactionSignature.SIGHASH_FORKID;"all"===n&&(h|=e.TransactionSignature.SIGHASH_ALL),"none"===n&&(h|=e.TransactionSignature.SIGHASH_NONE),"single"===n&&(h|=e.TransactionSignature.SIGHASH_SINGLE),i&&(h|=e.TransactionSignature.SIGHASH_ANYONECANPAY);var v=a.inputs[u],m=a.inputs.filter(function(e,r){return r!==u}),p=v.sourceTXID?v.sourceTXID:null==(c=v.sourceTransaction)?void 0:c.id("hex");if(!p)throw f("The input sourceTXID or sourceTransaction is required for transaction signing.");if(o||(o=null==(d=v.sourceTransaction)?void 0:d.outputs[v.sourceOutputIndex].satoshis),!o)throw f("The sourceSatoshis or input sourceTransaction is required for transaction signing.");if(s||(s=null==(l=v.sourceTransaction)?void 0:l.outputs[v.sourceOutputIndex].lockingScript),!s)throw f("The lockingScript or input sourceTransaction is required for transaction signing.");var g=e.TransactionSignature.format({sourceTXID:p,sourceOutputIndex:v.sourceOutputIndex,sourceSatoshis:o,transactionVersion:a.version,otherInputs:m,inputIndex:u,outputs:a.outputs,inputSequence:v.sequence||4294967295,subscript:s,lockTime:a.lockTime,scope:h}),y=r.sign(e.Hash.sha256(g)),P=new e.TransactionSignature(y.r,y.s,h),w=new e.UnlockingScript;return w.writeBin(P.toChecksigFormat()),w.writeScript(t),Promise.resolve(w)}catch(e){return Promise.reject(e)}},estimateLength:function(){return Promise.resolve(182)}}},r}(),l=function(e){return Buffer.from(e).toString("hex")},h=function(r,t,n,i){void 0===i&&(i=!1);var o="";if(void 0!==(null==t?void 0:t.dataB64)&&void 0!==(null==t?void 0:t.contentType)){var s=l("ord"),a=Buffer.from(t.dataB64,"base64").toString("hex").trim();if(!a)throw f("Invalid file data");var u=l(t.contentType);if(!u)throw f("Invalid media type");o="OP_0 OP_IF "+s+" OP_1 "+u+" OP_0 "+a+" OP_ENDIF"}var c=(o?o+" "+(i?"OP_CODESEPARATOR ":""):"")+r.toASM();if(n&&(!n.app||!n.type))throw f("MAP.app and MAP.type are required fields");if(null!=n&&n.app&&null!=n&&n.type){c=(c?c+" ":"")+"OP_RETURN "+l("1PuQa7K62MiKCtssSLKy1kh56WWU7MtUR5")+" "+l("SET");for(var d=0,h=Object.entries(n);d<h.length;d++){var v=h[d],m=v[0],p=v[1];"cmd"!==m&&(c=c+" "+l(m)+" "+l(p))}}return e.LockingScript.fromASM(c)},v=1e-5,m="ae59f3b898ec61acbdb6cc7a245fabeded0c094bf046f35206a3aec60ef88127_0",p="1inHbiwj2jrEcZPiSYnfgJ8FmS1Bmk4Dh",g="833a7720966a2a435db28d967385e8aa7284b6150ebb39482cc5228b73e1703f_0",y="1AZNdbFYBDFTAEgzZMfPzANxyNrpGJZAUY",P=function(r){for(var t,n,i,o=0;o<r.chunks.length;o++){var s,a=r.chunks[o];o>=2&&3===(null==(s=a.data)?void 0:s.length)&&"ord"==e.Utils.toUTF8(a.data)&&r.chunks[o-1].op==e.OP.OP_IF&&r.chunks[o-2].op==e.OP.OP_FALSE&&(i=o+1)}if(void 0!==i){for(var u={file:{hash:"",size:0,type:""},fields:{}},c=i;c<r.chunks.length;c+=2){var f,d,l=r.chunks[c];if(l.op==e.OP.OP_ENDIF)break;if(l.op>e.OP.OP_16)return;var h=r.chunks[c+1];if(h.op>e.OP.OP_PUSHDATA4)return;if(null==(f=l.data)||!f.length){var v=0;switch(l.op>e.OP.OP_PUSHDATA4&&l.op<=e.OP.OP_16?v=l.op-80:null!=(d=l.data)&&d.length&&(v=l.data[0]),v){case 0:if(u.file.size=(null==(t=h.data)?void 0:t.length)||0,null==(n=h.data)||!n.length)break;u.file.hash=e.Utils.toBase64(e.Hash.sha256(h.data)),u.file.content=h.data;break;case 1:u.file.type=Buffer.from(h.data||[]).toString()}}}return u}},w=function(r){return r.map(function(r){for(var t=r.chunks,n=0;n<=t.length-4;n++){var i,o,s;if(t.length>n+6&&t[0+n].op===e.OP.OP_DUP&&t[1+n].op===e.OP.OP_HASH160&&20===(null==(i=t[2+n].data)?void 0:i.length)&&t[3+n].op===e.OP.OP_EQUALVERIFY&&t[4+n].op===e.OP.OP_CHECKSIGVERIFY&&33===(null==(o=t[5+n].data)?void 0:o.length)&&t[6+n].op===e.OP.OP_CHECKSIG)return{cosigner:e.Utils.toHex(t[5+n].data||[]),address:e.Utils.toBase58Check(t[2+n].data||[],[0])};if(t[0+n].op===e.OP.OP_DUP&&t[1+n].op===e.OP.OP_HASH160&&20===(null==(s=t[2+n].data)?void 0:s.length)&&t[3+n].op===e.OP.OP_EQUALVERIFY&&t[4+n].op===e.OP.OP_CHECKSIG)return{cosigner:"",address:e.Utils.toBase58Check(t[2+n].data||[],[0])}}}).filter(function(e){return void 0!==e})},b=function(r,t,n){var i=r.senders.includes(t)?"send":"receive",o=r.height>0?"confirmed":"unconfirmed";if(!r.rawtx)return null;var s=e.Utils.toArray(r.rawtx,"base64"),a=e.Utils.toHex(s),u=e.Transaction.fromHex(a).outputs.map(function(e){return e.lockingScript}),c=w(u),f=u.map(P),d=c.map(function(e){return e.address}),l=d.indexOf(n.feeAddress),h=r.senders[0],v=0,m=new Map;f.forEach(function(r,i){var o,s=null==r||null==(o=r.file)?void 0:o.content;if(s){var a=e.Utils.toUTF8(s);if(a){var u;try{u=JSON.parse(a)}catch(e){return void console.error("Failed to parse inscription JSON:",e)}if("bsv-20"===u.p&&u.id===n.tokenId){var c=parseInt(u.amt,10);if(!Number.isNaN(c))if(l!==i||h!==t){var f=d[i],p=m.get(f)||0;m.set(f,p+c)}else v+=c}}}});var p=m.get(t)||0;if("send"===i){var g=m.get(h)||0;m.set(h,g-p)}var y=[],b=(y="receive"===i?[{address:h,amount:p}]:Array.from(m.entries()).map(function(e){return{address:e[0],amount:e[1]}}).filter(function(e){return e.address!==t&&e.address!==n.feeAddress&&e.amount>0})).reduce(function(e,r){return e+r.amount},0);return{txid:r.txid,height:r.height,type:i,status:o,amount:b,fee:v,score:r.score,counterparties:y}},I=function(r){try{var t=e.Utils.fromBase58Check(r),n=t.prefix[0];if("number"!=typeof n||![0].includes(n))throw f("Invalid address prefix: "+n);if(20!==t.data.length)throw f("Invalid address payload length: "+t.data.length);return!0}catch(e){return!1}},A=function(r){try{return{isValid:!0,privateKey:e.PrivateKey.fromWif(r)}}catch(e){if(e instanceof Error){var t=e.message.toLowerCase();if(t.includes("invalid base58 character"))return{isValid:!1,error:"Invalid WIF key: contains invalid characters"};if(t.includes("invalid checksum"))return{isValid:!1,error:"Invalid WIF key: checksum verification failed"};if(t.includes("expected base58 string"))return{isValid:!1,error:"Invalid WIF key: must be a valid base58 encoded string"}}return{isValid:!1,error:"Invalid WIF key provided"}}},T=/*#__PURE__*/function(e){function r(r){var t;return(t=e.call(this,r.message)||this).code=void 0,t.hostname=void 0,t.originalError=void 0,t.name="NetworkError",t.code=r.code,t.hostname=r.hostname,t.originalError=r.originalError,t}var t,n;return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,u(t,n),r}(/*#__PURE__*/c(Error));function x(e){var r,t,n;if(!e)return!1;var i=["ENOTFOUND","ECONNREFUSED","ETIMEDOUT","ECONNRESET","ENETUNREACH","EHOSTUNREACH","EPIPE","ECONNABORTED"];return!!i.includes(e.code)||!(!e.cause||!i.includes(null==(r=e.cause)?void 0:r.code))||!!(null!=(t=e.message)&&t.includes("fetch failed")||null!=(n=e.message)&&n.includes("getaddrinfo"))}function S(e,r){if(x(e)){var t=function(e){if(e.cause&&e.cause.code){var r=e.cause,t="Network connection failed";switch(r.code){case"ENOTFOUND":t="Unable to connect to MNEE network. Please check your internet connection.";break;case"ECONNREFUSED":t="Connection refused by MNEE server. The service may be temporarily unavailable.";break;case"ETIMEDOUT":t="Request timed out. Please check your internet connection and try again.";break;case"ECONNRESET":t="Connection was reset. Please try again.";break;case"ENETUNREACH":case"EHOSTUNREACH":t="Network unreachable. Please check your internet connection.";break;default:t="Network error: "+r.code+". Please check your connection and try again."}return new T({code:r.code,message:t,hostname:r.hostname,originalError:e})}if(e.code){var n="Network error occurred";switch(e.code){case"ENOTFOUND":n="Unable to connect to MNEE network. Please check your internet connection.";break;case"ECONNREFUSED":n="Connection refused by MNEE server. The service may be temporarily unavailable.";break;case"ETIMEDOUT":n="Request timed out. Please check your internet connection and try again.";break;default:n="Network error: "+e.code+". Please check your connection and try again."}return new T({code:e.code,message:n,hostname:e.hostname,originalError:e})}return new T({code:"NETWORK_ERROR",message:"Network error occurred. Please check your internet connection and try again.",originalError:e})}(e);return console.error("Network error during "+r+": "+t.message),t.message}console.error("Failed to "+r+":",e)}var k=["parseOptions"];function O(e,r){try{var t=e()}catch(e){return r(e)}return t&&t.then?t.then(void 0,r):t}const E="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function C(e,r,t){if(!e.s){if(t instanceof N){if(!t.s)return void(t.o=C.bind(null,e,r));1&r&&(r=t.s),t=t.v}if(t&&t.then)return void t.then(C.bind(null,e,r),C.bind(null,e,2));e.s=r,e.v=t;var n=e.o;n&&n(e)}}var N=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(r,t){var n=new e,i=this.s;if(i){var o=1&i?r:t;if(o){try{C(n,1,o(this.v))}catch(e){C(n,2,e)}return n}return this}return this.o=function(e){try{var i=e.v;1&e.s?C(n,1,r?r(i):i):t?C(n,1,t(i)):C(n,2,i)}catch(e){C(n,2,e)}},n},e}();function H(e){return e instanceof N&&1&e.s}var j=/*#__PURE__*/function(){function e(e){this.service=void 0,this.service=e}var r=e.prototype;return r.getUtxos=function(e,r){void 0===r&&(r={});try{var t=this;if(!Array.isArray(e))throw f("Input must be an array of addresses");var n=[];return Promise.resolve(t.processBatch(e,function(e){try{for(var o,s=[],a=[],u=i(e);!(o=u()).done;){var c=o.value;c&&"string"==typeof c&&""!==c.trim()?/^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$|^bc1[a-z0-9]{39,59}$/.test(c)?s.push(c):(a.push(c),n.push({items:[c],error:{message:"Invalid address format: "+c},retryCount:0})):(a.push(c),n.push({items:[c],error:{message:"Invalid address: empty or not a string"},retryCount:0}))}if(!r.continueOnError&&a.length>0)throw new Error(n[0].error.message);return 0===s.length?Promise.resolve([]):Promise.resolve(t.service.getUtxos(s)).then(function(r){return e.map(function(e){return{address:e,utxos:s.includes(e)?r.filter(function(r){return r.owners.includes(e)}):[]}})})}catch(e){return Promise.reject(e)}},r)).then(function(e){return o({},e,{errors:[].concat(e.errors,n),totalErrors:e.errors.length+n.length})})}catch(e){return Promise.reject(e)}},r.getBalances=function(e,r){void 0===r&&(r={});try{var t=this;if(!Array.isArray(e))throw f("Input must be an array of addresses");return Promise.resolve(t.processBatch(e,function(e){try{return Promise.resolve(t.service.getBalances(e))}catch(e){return Promise.reject(e)}},r))}catch(e){return Promise.reject(e)}},r.getTxHistories=function(e,r){void 0===r&&(r={});try{var t=this;if(!Array.isArray(e))throw f("Input must be an array of address history parameters");return Promise.resolve(t.processBatch(e,function(e){try{return Promise.resolve(t.service.getRecentTxHistories(e))}catch(e){return Promise.reject(e)}},r,function(e){return e.address}))}catch(e){return Promise.reject(e)}},r.parseTx=function(e,r){void 0===r&&(r={});try{var t=this;if(!Array.isArray(e))throw f("Input must be an array of transaction IDs");var n=r.parseOptions,i=function(e,r){if(null==e)return{};var t={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==r.indexOf(n))continue;t[n]=e[n]}return t}(r,k),s=[];return Promise.resolve(t.processBatch(e,function(e){try{return Promise.resolve(Promise.allSettled(e.map(function(e){try{if(!e||"string"!=typeof e||""===e.trim())throw new Error("Invalid transaction ID: empty or not a string");if(!/^[a-fA-F0-9]{64}$/.test(e))throw new Error("Invalid transaction ID format: "+e);return Promise.resolve(t.service.parseTx(e,n)).then(function(r){return{txid:e,parsed:r}})}catch(e){return Promise.reject(e)}}))).then(function(r){var t=[];if(r.forEach(function(r,n){var o=e[n];if("fulfilled"===r.status)t.push(r.value);else{var a=r.reason instanceof Error?r.reason.message:String(r.reason);s.push({items:[o],error:{message:a},retryCount:i.maxRetries||3})}}),!i.continueOnError&&s.length>0)throw new Error(s[0].error.message);return t})}catch(e){return Promise.reject(e)}},i)).then(function(e){return o({},e,{errors:[].concat(e.errors,s),totalErrors:e.errors.length+s.length})})}catch(e){return Promise.reject(e)}},r.processBatch=function(e,r,t,n){try{var i=this,o=t.chunkSize,s=void 0===o?20:o,a=t.continueOnError,u=void 0!==a&&a,c=t.onProgress,f=t.maxRetries,d=void 0===f?3:f,l=t.retryDelay,h=void 0===l?1e3:l,v=t.requestsPerSecond,m=void 0===v?3:v,p=s>0?s:20,g=m>0?m:3,y=Math.ceil(1e3/g),P=Math.max(1,Math.floor(g)),w=new M(P,y);if(0===e.length)return Promise.resolve({results:[],errors:[],totalProcessed:0,totalErrors:0});var b=[],I=[],A=0,T=i.chunkArray(e,p),x=T.length,S=T.map(function(e){try{return Promise.resolve(O(function(){return Promise.resolve(i.processWithRetry(function(){return r(e)},d,h,w)).then(function(e){return b.push.apply(b,e),A++,c&&c(A,x,I.length),e})},function(t){function o(){if(b.push.apply(b,s),a.length>0){var e=a.map(function(e){var r=e.item;return n?n(r):r}),r=a[0].error;I.push({items:e,error:{message:r.message,code:r.code},retryCount:d})}return A++,c&&c(A,x,I.length),s}if(!u)throw t;var s=[],a=[],f=function(e,r){if("function"==typeof e[E]){var t,n,i,o=function(e){try{for(;!(t=s.next()).done;)if((e=r(t.value))&&e.then){if(!H(e))return void e.then(o,i||(i=C.bind(null,n=new N,2)));e=e.v}n?C(n,1,e):n=e}catch(e){C(n||(n=new N),2,e)}},s=e[E]();if(o(),s.return){var a=function(e){try{t.done||s.return()}catch(e){}return e};if(n&&n.then)return n.then(a,function(e){throw a(e)});a()}return n}if(!("length"in e))throw new TypeError("Object is not iterable");for(var u=[],c=0;c<e.length;c++)u.push(e[c]);return function(e,r){var t,n,i=-1;return function o(s){try{for(;++i<e.length;)if((s=r(i))&&s.then){if(!H(s))return void s.then(o,n||(n=C.bind(null,t=new N,2)));s=s.v}t?C(t,1,s):t=s}catch(e){C(t||(t=new N),2,e)}}(),t}(u,function(e){return r(u[e])})}(e,function(e){var t=O(function(){return Promise.resolve(i.processWithRetry(function(){return r([e])},d,h,w)).then(function(e){e.length>0&&s.push.apply(s,e)})},function(r){var t=r instanceof Error?r:new Error(String(r));a.push({item:e,error:t})});if(t&&t.then)return t.then(function(){})});return f&&f.then?f.then(o):o()}))}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(S)).then(function(){return{results:b,errors:I,totalProcessed:A,totalErrors:I.length}})}catch(e){return Promise.reject(e)}},r.processWithRetry=function(e,r,t,n){try{var i,o,s=function(e){if(i)return e;throw o||new Error("Max retries exceeded")},a=this,u=0,c=function(e,r,t){for(var n;;){var i=e();if(H(i)&&(i=i.v),!i)return o;if(i.then){n=0;break}var o=t();if(o&&o.then){if(!H(o)){n=1;break}o=o.s}if(r){var s=r();if(s&&s.then&&!H(s)){n=2;break}}}var a=new N,u=C.bind(null,a,2);return(0===n?i.then(f):1===n?o.then(c):s.then(d)).then(void 0,u),a;function c(n){o=n;do{if(r&&(s=r())&&s.then&&!H(s))return void s.then(d).then(void 0,u);if(!(i=e())||H(i)&&!i.v)return void C(a,1,o);if(i.then)return void i.then(f).then(void 0,u);H(o=t())&&(o=o.v)}while(!o||!o.then);o.then(c).then(void 0,u)}function f(e){e?(o=t())&&o.then?o.then(c).then(void 0,u):c(o):C(a,1,o)}function d(){(i=e())?i.then?i.then(f).then(void 0,u):f(i):C(a,1,o)}}(function(){return!i&&u<r},function(){return u++},function(){return O(function(){return Promise.resolve(n.execute(e)).then(function(e){return i=1,e})},function(e){o=e;var n=function(){if(u<r-1)return Promise.resolve(a.delay(t*(u+1))).then(function(){})}();return n&&n.then?n.then(function(){}):void 0})});return Promise.resolve(c&&c.then?c.then(s):s(c))}catch(e){return Promise.reject(e)}},r.chunkArray=function(e,r){for(var t=[],n=Math.max(1,r),i=0;i<e.length;i+=n)t.push(e.slice(i,i+n));return t},r.delay=function(e){return new Promise(function(r){return setTimeout(r,e)})},e}(),M=/*#__PURE__*/function(){function e(e,r){this.maxConcurrent=void 0,this.minDelay=void 0,this.queue=[],this.running=0,this.maxConcurrent=e,this.minDelay=r}var r=e.prototype;return r.execute=function(e){try{var r=this;return Promise.resolve(r.waitForSlot()).then(function(){return function(t,n){try{var i=function(){r.running++;var t=Date.now();return Promise.resolve(e()).then(function(e){var n=Date.now()-t,i=function(){if(n<r.minDelay)return Promise.resolve(r.delay(r.minDelay-n)).then(function(){})}();return i&&i.then?i.then(function(){return e}):e})}()}catch(e){return n(!0,e)}return i&&i.then?i.then(n.bind(null,!1),n.bind(null,!0)):n(!1,i)}(0,function(e,t){if(r.running--,r.processQueue(),e)throw t;return t})})}catch(e){return Promise.reject(e)}},r.waitForSlot=function(){var e=this;return this.running<this.maxConcurrent?Promise.resolve():new Promise(function(r){e.queue.push(r)})},r.processQueue=function(){if(this.queue.length>0&&this.running<this.maxConcurrent){var e=this.queue.shift();e&&e()}},r.delay=function(e){return new Promise(function(r){return setTimeout(r,e)})},e}();function U(e,r){try{var t=e()}catch(e){return r(e)}return t&&t.then?t.then(void 0,r):t}function _(e,r,t){if(!e.s){if(t instanceof F){if(!t.s)return void(t.o=_.bind(null,e,r));1&r&&(r=t.s),t=t.v}if(t&&t.then)return void t.then(_.bind(null,e,r),_.bind(null,e,2));e.s=r,e.v=t;var n=e.o;n&&n(e)}}var F=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(r,t){var n=new e,i=this.s;if(i){var o=1&i?r:t;if(o){try{_(n,1,o(this.v))}catch(e){_(n,2,e)}return n}return this}return this.o=function(e){try{var i=e.v;1&e.s?_(n,1,r?r(i):i):t?_(n,1,t(i)):_(n,2,i)}catch(e){_(n,2,e)}},n},e}();function D(e){return e instanceof F&&1&e.s}function R(e,r,t){for(var n;;){var i=e();if(D(i)&&(i=i.v),!i)return o;if(i.then){n=0;break}var o=t();if(o&&o.then){if(!D(o)){n=1;break}o=o.s}if(r){var s=r();if(s&&s.then&&!D(s)){n=2;break}}}var a=new F,u=_.bind(null,a,2);return(0===n?i.then(f):1===n?o.then(c):s.then(d)).then(void 0,u),a;function c(n){o=n;do{if(r&&(s=r())&&s.then&&!D(s))return void s.then(d).then(void 0,u);if(!(i=e())||D(i)&&!i.v)return void _(a,1,o);if(i.then)return void i.then(f).then(void 0,u);D(o=t())&&(o=o.v)}while(!o||!o.then);o.then(c).then(void 0,u)}function f(e){e?(o=t())&&o.then?o.then(c).then(void 0,u):c(o):_(a,1,o)}function d(){(i=e())?i.then?i.then(f).then(void 0,u):f(i):_(a,1,o)}}var K="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function B(e,r,t){var n,i,o=-1;return function s(a){try{for(;++o<e.length&&(!t||!t());)if((a=r(o))&&a.then){if(!D(a))return void a.then(s,i||(i=_.bind(null,n=new F,2)));a=a.v}n?_(n,1,a):n=a}catch(e){_(n||(n=new F),2,e)}}(),n}function V(e,r,t){if("function"==typeof e[K]){var n,i,o,s=function(e){try{for(;!((n=a.next()).done||t&&t());)if((e=r(n.value))&&e.then){if(!D(e))return void e.then(s,o||(o=_.bind(null,i=new F,2)));e=e.v}i?_(i,1,e):i=e}catch(e){_(i||(i=new F),2,e)}},a=e[K]();if(s(),a.return){var u=function(e){try{n.done||a.return()}catch(e){}return e};if(i&&i.then)return i.then(u,function(e){throw u(e)});u()}return i}if(!("length"in e))throw new TypeError("Object is not iterable");for(var c=[],f=0;f<e.length;f++)c.push(e[f]);return B(c,function(e){return r(c[e])},t)}var q=/*#__PURE__*/function(){function r(e){if(this.mneeApiKey=void 0,this.mneeConfig=void 0,this.mneeApi=void 0,"production"!==e.environment&&"sandbox"!==e.environment)throw f('Invalid environment. Must be either "production" or "sandbox"');var r="production"===e.environment;if(""===(null==e?void 0:e.apiKey))throw f("MNEE API key cannot be an empty string");this.mneeApiKey=null!=e&&e.apiKey?e.apiKey:r?"92982ec1c0975f31979da515d46bae9f":"54f1fd1688ba66a58a67675b82feb93e",this.mneeApi=r?"https://proxy-api.mnee.net":"https://sandbox-proxy-api.mnee.net",this.getCosignerConfig().catch(function(){})}var t=r.prototype;return t.getCosignerConfig=function(){try{var e=this;return Promise.resolve(U(function(){return Promise.resolve(fetch(e.mneeApi+"/v1/config?auth_token="+e.mneeApiKey,{method:"GET"})).then(function(r){if(401===r.status||403===r.status)throw f("Invalid API key");if(!r.ok)throw f("HTTP error! status: "+r.status);return Promise.resolve(r.json()).then(function(r){return e.mneeConfig=r,r})})},function(e){throw x(e)&&S(e,"fetch config"),e}))}catch(e){return Promise.reject(e)}},t.toAtomicAmount=function(e){return Math.round(e*Math.pow(10,5))},t.fromAtomicAmount=function(e){return e/Math.pow(10,5)},t.createInscription=function(r,t,n){try{var i={p:"bsv-20",op:"transfer",id:n.tokenId,amt:t.toString()};return Promise.resolve({lockingScript:h((new d).lock(r,e.PublicKey.fromString(n.approver)),{dataB64:Buffer.from(JSON.stringify(i)).toString("base64"),contentType:"application/bsv-20"}),satoshis:1})}catch(e){return Promise.reject(e)}},t.getUtxos=function(e,r,t,n){try{var i,o=this;return Promise.resolve(U(function(){function s(s){var a;if(i)return s;function u(e){if(a)return e;throw f("Invalid input type for address")}var c=function(){if(Array.isArray(e)){var i=e.filter(function(e){return"string"==typeof e&&I(e)});if(0===i.length)throw f("No valid Bitcoin addresses provided");var s=e.filter(function(e){return"string"!=typeof e||!I(e)});return s.length>0&&console.warn(""+s.length+" invalid bitcoin addresses will be ignored"),Promise.resolve(fetch(o.mneeApi+"/v2/utxos?auth_token="+o.mneeApiKey+(void 0!==r?"&page="+r:"")+(void 0!==t?"&size="+t:"")+(n?"&order="+n:""),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})).then(function(e){if(401===e.status||403===e.status)throw f("Invalid API key");if(!e.ok)throw f("HTTP error! status: "+e.status);return Promise.resolve(e.json()).then(function(e){var r=["transfer","deploy+mint"],t=e.filter(function(e){return r.includes(e.data.bsv21.op.toLowerCase())});return a=1,t})})}}();return c&&c.then?c.then(u):u(c)}if(!e)throw f("Address is required");var a=function(){if("string"==typeof e){if(!I(e))throw f("Invalid Bitcoin address: "+e);return Promise.resolve(fetch(o.mneeApi+"/v2/utxos?auth_token="+o.mneeApiKey+(void 0!==r?"&page="+r:"")+(void 0!==t?"&size="+t:"")+(n?"&order="+n:""),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([e])})).then(function(e){if(401===e.status||403===e.status)throw f("Invalid API key");if(!e.ok)throw f("HTTP error! status: "+e.status);return Promise.resolve(e.json()).then(function(e){var r=["transfer","deploy+mint"],t=e.filter(function(e){return r.includes(e.data.bsv21.op.toLowerCase())});return i=1,t})})}}();return a&&a.then?a.then(s):s(a)},function(e){throw x(e)&&S(e,"fetch UTXOs"),e}))}catch(e){return Promise.reject(e)}},t.fetchRawTx=function(r,t){void 0===t&&(t=3);try{var n,i=this,o=0,s=R(function(){return!n&&o<=t},function(){return o++},function(){return U(function(){return Promise.resolve(fetch(i.mneeApi+"/v1/tx/"+r+"?auth_token="+i.mneeApiKey)).then(function(i){function s(){if(200!==i.status)throw f(i.status+" - Failed to fetch rawtx for txid: "+r);return Promise.resolve(i.json()).then(function(r){var t=e.Transaction.fromHex(Buffer.from(r.rawtx,"base64").toString("hex"));return n=1,t})}if(404===i.status)throw f("Transaction not found");if(401===i.status||403===i.status)throw f("Invalid API key");var a=function(){if(429===i.status&&o<t){var e=Math.min(500*Math.pow(2,o),2e3);return Promise.resolve(new Promise(function(r){return setTimeout(r,e)})).then(function(){})}}();return a&&a.then?a.then(s):s()})},function(e){return o===t?(x(e)&&S(e,"fetch transaction"),void(n=1)):Promise.resolve(new Promise(function(e){return setTimeout(e,200)})).then(function(){})})});return Promise.resolve(s&&s.then?s.then(function(e){return n?e:void 0}):n?s:void 0)}catch(e){return Promise.reject(e)}},t.getSignatures=function(r,t){try{try{var n;switch(r.format){case"beef":n=e.Transaction.fromHexBEEF(r.rawtx);break;case"ef":n=e.Transaction.fromHexEF(r.rawtx);break;default:n=e.Transaction.fromHex(r.rawtx)}var i=r.sigRequests.flatMap(function(r){return[t].map(function(t){var i=e.TransactionSignature.format({sourceTXID:r.prevTxid,sourceOutputIndex:r.outputIndex,sourceSatoshis:r.satoshis,transactionVersion:n.version,otherInputs:n.inputs.filter(function(e,t){return t!==r.inputIndex}),inputIndex:r.inputIndex,outputs:n.outputs,inputSequence:n.inputs[r.inputIndex].sequence||0,subscript:r.script?e.Script.fromHex(r.script):(new e.P2PKH).lock(t.toPublicKey().toAddress()),lockTime:n.lockTime,scope:r.sigHashType||65}),o=t.sign(e.Hash.sha256(i)),s=new e.TransactionSignature(o.r,o.s,r.sigHashType||65);return{sig:e.Utils.toHex(s.toChecksigFormat()),pubKey:t.toPublicKey().toString(),inputIndex:r.inputIndex,sigHashType:r.sigHashType||65,csIdx:r.csIdx}})});return Promise.resolve({sigResponses:i})}catch(e){var o;return x(e)&&S(e,"get signatures"),Promise.resolve({error:{message:null!=(o=e.message)?o:"unknown",cause:e.cause}})}}catch(e){return Promise.reject(e)}},t.getEnoughUtxos=function(e,r){try{var t=function(t){if(!t)throw f("Config not fetched");var o=t.fees.find(function(e){return r>=e.min&&r<=e.max});if(!o)throw f("Fee not found");var s=o.fee,a=r+s;return Promise.resolve(n.getBalance(e)).then(function(r){var t;function o(e){c.sort(function(e,r){return r.data.bsv21.amt-e.data.bsv21.amt});for(var r,t=[],n=0,o=i(c);!(r=o()).done;){var s=r.value;if(t.push(s),(n+=s.data.bsv21.amt)>=a)break}return t}if(r.amount<a)throw f("Insufficient MNEE balance. Max transfer amount: "+n.fromAtomicAmount(r.amount-s));var u=1,c=[],d=0,l=R(function(){return!t&&d<a},void 0,function(){return Promise.resolve(n.getUtxos(e,u,25)).then(function(e){if(0===e.length)throw f("Insufficient MNEE balance. Max transfer amount: "+n.fromAtomicAmount(d-s));c.push.apply(c,e),(d=c.reduce(function(e,r){return e+r.data.bsv21.amt},0))>=a?t=1:u++})});return l&&l.then?l.then(o):o()})},n=this,o=n.mneeConfig;return Promise.resolve(o?t(o):Promise.resolve(n.getCosignerConfig()).then(t))}catch(e){return Promise.reject(e)}},t.getAllUtxos=function(e){try{var r,t=this,n=1,i=[],o=R(function(){return!r},void 0,function(){return Promise.resolve(t.getUtxos(e,n,100)).then(function(e){0!==e.length?(i.push.apply(i,e),n++):r=1})});return Promise.resolve(o&&o.then?o.then(function(){return i}):i)}catch(e){return Promise.reject(e)}},t.transfer=function(r,t,n){try{var o=this;return Promise.resolve(U(function(){function s(s){if(!s)throw f("Config not fetched");var a=function(e,r){var t=A(r),n=t.privateKey;if(0===e.length)return{isValid:!1,error:"Empty transfer options provided. Please provide at least one recipient."};if(!t.isValid)return{isValid:!1,error:t.error||"Invalid WIF key provided"};if(!n)return{isValid:!1,error:"Private key not found"};for(var o,s=0,a=i(e);!(o=a()).done;){var u=o.value;if(!I(u.address))return{isValid:!1,error:"Invalid recipient address: "+u.address};if("number"!=typeof u.amount||isNaN(u.amount)||!isFinite(u.amount))return{isValid:!1,error:"Invalid amount for "+u.address+": amount must be a valid number"};if(u.amount<v)return{isValid:!1,error:"Invalid amount for "+u.address+": minimum transfer amount is "+v+" MNEE"};s+=u.amount}return s<=0?{isValid:!1,error:"Invalid amount: total must be greater than 0"}:{isValid:!0,totalAmount:s,privateKey:n}}(r,t),u=a.totalAmount,c=a.privateKey;if(!a.isValid)throw f(a.error||"Invalid transfer options");if(!c)throw f("Private key not found");if(!u)throw f("Invalid amount");var d=o.toAtomicAmount(u),l=c.toAddress();return Promise.resolve(o.getEnoughUtxos(l,d)).then(function(t){var i;function a(e){function t(){function e(){function e(){for(var e=new Map,r=0;r<h.inputs.length;r++)e.set(r,c);return Promise.resolve(o.signAllInputs(h,e)).then(function(e){if(e.error)throw f(e.error);var r=h.toHex();return!1===(null==n?void 0:n.broadcast)?{rawtx:r}:Promise.resolve(o.submitRawTx(r,n)).then(function(e){var r=e.ticketId;if(!r)throw f("Failed to broadcast transaction");return{ticketId:r}})})}var r=v-d-u,t=function(){if(r>0){var e=h.addOutput;return Promise.resolve(o.createInscription(m,r,s)).then(function(r){e.call(h,r)})}}();return t&&t.then?t.then(e):e()}var r=function(){if(u>0){var e=h.addOutput;return Promise.resolve(o.createInscription(s.feeAddress,u,s)).then(function(r){e.call(h,r)})}}();return r&&r.then?r.then(e):e()}var i=V(r,function(e){var r=h.addOutput;return Promise.resolve(o.createInscription(e.address,o.toAtomicAmount(e.amount),s)).then(function(e){r.call(h,e)})});return i&&i.then?i.then(t):t()}var u=void 0!==r.find(function(e){return e.address===s.burnAddress})?0:null==(i=s.fees.find(function(e){return d>=e.min&&d<=e.max}))?void 0:i.fee;if(void 0===u)throw f("Fee ranges inadequate");var h=new e.Transaction(1,[],[],0),v=0,m="",p=R(function(){return v<d+u},void 0,function(){function r(r){return Promise.resolve(o.fetchRawTx(n.txid)).then(function(r){if(!r)throw f("Failed to fetch source transaction: "+n.txid+"_"+n.vout);m=m||n.owners[0],h.addInput({sourceTXID:n.txid,sourceOutputIndex:n.vout,sourceTransaction:r,unlockingScript:new e.UnlockingScript}),v+=n.data.bsv21.amt})}var n=t.shift(),i=function(){if(!n)return Promise.resolve(o.getBalance(l)).then(function(e){throw f("Insufficient MNEE balance. Max transfer amount is "+o.fromAtomicAmount(e.amount-u))})}();return i&&i.then?i.then(r):r()});return p&&p.then?p.then(a):a()})}var a=o.mneeConfig;return a?s(a):Promise.resolve(o.getCosignerConfig()).then(s)},function(e){throw x(e)&&S(e,"transfer tokens"),e}))}catch(e){return Promise.reject(e)}},t.submitRawTx=function(r,t){void 0===t&&(t={broadcast:!0,callbackUrl:void 0});try{var n=this;return Promise.resolve(U(function(){var i,s,a,u;if(!1!==(null==(i=t)?void 0:i.broadcast)&&(t=o({},t,{broadcast:!0})),null!=(s=t)&&s.callbackUrl&&!1===(null==(a=t)?void 0:a.broadcast))throw f("Callback URL cannot be provided when broadcast is false");if(!r)throw f("Raw transaction is required");var c=e.Transaction.fromHex(r);if(null==(u=t)||!u.broadcast)return{rawtx:c.toHex()};var d=e.Utils.toBase64(c.toBinary()),l=JSON.stringify(t?{rawtx:d,callback_url:t.callbackUrl}:{rawtx:d});return Promise.resolve(fetch(n.mneeApi+"/v2/transfer?auth_token="+n.mneeApiKey,{method:"POST",headers:{"Content-Type":"application/json"},body:l})).then(function(e){if(!e.ok)throw f("Failed to submit transaction: "+e.status);return Promise.resolve(e.text()).then(function(e){return{ticketId:e}})})},function(e){throw x(e)&&S(e,"submit raw transaction"),e}))}catch(e){return Promise.reject(e)}},t.getTxStatus=function(e){try{var r=this;return Promise.resolve(U(function(){if(!e)throw f("Ticket ID is required");return Promise.resolve(fetch(r.mneeApi+"/v2/ticket?ticketID="+e+"&auth_token="+r.mneeApiKey,{method:"GET",headers:{"Content-Type":"application/json"}})).then(function(e){if(!e.ok)throw f("Failed to get transaction status: "+e.status);return Promise.resolve(e.json())})},function(e){throw x(e)&&S(e,"get transaction status"),e}))}catch(e){return Promise.reject(e)}},t.getBalance=function(e){try{var r=this;if(!I(e))throw f("Invalid Bitcoin address: "+e);return Promise.resolve(U(function(){function t(t){if(!t)throw f("Config not fetched");return Promise.resolve(fetch(r.mneeApi+"/v2/balance?auth_token="+r.mneeApiKey,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([e])})).then(function(r){if(!r.ok)throw f("Failed to get transaction status: "+r.status);return Promise.resolve(r.json()).then(function(r){return r&&0!==r.length?{address:r[0].address,amount:r[0].amt,decimalAmount:r[0].precised}:{address:e,amount:0,decimalAmount:0}})})}var n=r.mneeConfig;return n?t(n):Promise.resolve(r.getCosignerConfig()).then(t)},function(e){throw x(e)&&S(e,"fetch balance"),e}))}catch(e){return Promise.reject(e)}},t.getBalances=function(e){try{var r=this;if(!Array.isArray(e))throw f("Addresses must be an array");var t=e.filter(function(e){return I(e)});if(0===t.length)throw f("You must pass at least 1 valid address");var n=e.length-t.length;return n>0&&console.warn(""+n+" invalid bitcoin addresses will be ignored"),Promise.resolve(U(function(){function e(e){if(!e)throw f("Config not fetched");return Promise.resolve(fetch(r.mneeApi+"/v2/balance?auth_token="+r.mneeApiKey,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).then(function(e){if(!e.ok)throw f("Failed to get transaction status: "+e.status);return Promise.resolve(e.json()).then(function(e){if(!e||0===e.length)return t.map(function(e){return{address:e,amount:0,decimalAmount:0}});var r=new Map;return e.forEach(function(e){r.set(e.address,{address:e.address,amount:e.amt,decimalAmount:e.precised})}),t.map(function(e){return r.has(e)?r.get(e):{address:e,amount:0,decimalAmount:0}})})})}var n=r.mneeConfig;return n?e(n):Promise.resolve(r.getCosignerConfig()).then(e)},function(e){throw x(e)&&S(e,"fetch balances"),e}))}catch(e){return Promise.reject(e)}},t.processMneeValidation=function(r,t,n){var o=this;try{var s=r.id("hex")===t.tokenId.split("_")[0],a=r.outputs.map(function(e){return e.lockingScript}),u=w(a),c=r.outputs.map(function(r,t){var n,i=u[t],o=P(r.lockingScript),s=null;if(null!=o&&null!=(n=o.file)&&n.content)try{var a=e.Utils.toUTF8(o.file.content);a&&(s=JSON.parse(a))}catch(e){}return{index:t,address:null==i?void 0:i.address,cosigner:null==i?void 0:i.cosigner,inscription:s}}),d=c.some(function(e){return e.cosigner===t.approver});if(c.find(function(e){return""!==e.cosigner&&e.cosigner!==t.approver}))throw f("Invalid cosigner detected");var l=c.filter(function(e){if(!e.inscription)return!1;var r=e.inscription;if("bsv-20"!==r.p)return!1;if(!s&&r.id!==t.tokenId)throw f("Invalid token ID: "+r.id);var n=parseInt(r.amt,10);if(isNaN(n)||n<=0)throw f("Invalid MNEE amount: "+r.amt);return!0});if(0===l.length)throw f("No valid MNEE inscriptions found in transaction");var h=new Set(l.map(function(e){return e.inscription.op})),v=h.has("burn"),m=l.some(function(e){var r;return"transfer"===e.inscription.op&&"redeem"===(null==(r=e.inscription.metadata)?void 0:r.action)}),g=m&&c.some(function(e){return e.address===y||e.address===p});if((h.has("transfer")&&!m||v||m&&!g)&&!d)throw f("Cosigner not found in transaction with transfer/burn/redeem operation");var b=l.filter(function(e){var r=e.inscription;return"transfer"===r.op||"burn"===r.op||"deploy+mint"===r.op});if(n)for(var I,A=[].concat(b),T=function(){var e=I.value,r=A.findIndex(function(r){return r.address===e.address&&r.inscription.amt===o.toAtomicAmount(e.amount).toString()});if(-1===r)throw f("No matching output found for "+e.address+" with amount "+e.amount);A.splice(r,1)},k=i(n);!(I=k()).done;)T();return!0}catch(e){return x(e)&&S(e,"validate Mnee transaction"),!1}},t.validateMneeTx=function(r,t){try{var n=this;return Promise.resolve(U(function(){function i(i){var o;if(!i)throw f("Config not fetched");var s=e.Transaction.fromHex(r);if(!n.processMneeValidation(s,i,t))return!1;var a=s.id("hex")===i.tokenId.split("_")[0],u=function(){if(!a)return Promise.resolve(n.processTransactionInputs(s,i)).then(function(e){var r=n.processTransactionOutputs(s,i);if(e.total!==r.total)return o=1,!1})}();return u&&u.then?u.then(function(e){return!o||e}):!o||u}var o=n.mneeConfig;return o?i(o):Promise.resolve(n.getCosignerConfig()).then(i)},function(e){return x(e)&&S(e,"validate Mnee transaction"),!1}))}catch(e){return Promise.reject(e)}},t.getMneeSyncs=function(e,r,t,n){try{var i=this;return Promise.resolve(U(function(){var o=Array.isArray(e)?e:[e];return Promise.resolve(fetch(i.mneeApi+"/v1/sync?auth_token="+i.mneeApiKey+(r?"&from="+r:"")+(t?"&limit="+t:"")+(n?"&order="+n:""),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})).then(function(e){if(401===e.status||403===e.status)throw f("Invalid API key");if(!e.ok)throw f("HTTP error! status: "+e.status);return Promise.resolve(e.json()).then(function(e){return o.map(function(r){var t=e.filter(function(e){return e.senders.includes(r)||e.receivers.includes(r)});return{address:r,syncs:t}})})})},function(e){throw x(e)&&S(e,"fetch syncs"),e}))}catch(e){return Promise.reject(e)}},t.getRecentTxHistory=function(e,r,t,n){try{var o=this;if(!I(e))throw f("Invalid Bitcoin address: "+e);if(void 0!==r&&("number"!=typeof r||r<0||!Number.isFinite(r)))throw f("Invalid fromScore: "+r+". Must be a positive number or 0");if(void 0!==t&&("number"!=typeof t||t<=0||!Number.isInteger(t)))throw f("Invalid limit: "+t+". Must be a positive integer");if(void 0!==n&&"asc"!==n&&"desc"!==n)throw f("Invalid order: "+n+". Must be 'asc' or 'desc'");return Promise.resolve(U(function(){function s(s){if(!s)throw f("Config not fetched");return Promise.resolve(o.getMneeSyncs(e,r,t,n)).then(function(n){var o=n[0].syncs;if(!o||0===o.length)return{address:e,history:[],nextScore:r||0};for(var a,u=[],c=i(o);!(a=c()).done;){var f=b(a.value,e,s);f&&u.push(f)}var d=u.length>0?u[u.length-1].score:r||0;return t&&u.length>t?{address:e,history:u.slice(0,t),nextScore:d}:{address:e,history:u,nextScore:d}})}var a=o.mneeConfig;return a?s(a):Promise.resolve(o.getCosignerConfig()).then(s)},function(e){throw x(e)&&S(e,"fetch transaction history"),e}))}catch(e){return Promise.reject(e)}},t.getRecentTxHistories=function(e){try{var r=this;if(!Array.isArray(e))throw f("Parameters must be an array");if(0===e.length)throw f("You must pass at least 1 address parameter");var t=e.filter(function(e){return e&&e.address&&I(e.address)});if(0===t.length)throw f("You must pass at least 1 valid address");var n=e.length-t.length;n>0&&console.warn(""+n+" invalid bitcoin addresses will be ignored");for(var o,s=i(t);!(o=s()).done;){var a=o.value;if(void 0!==a.fromScore&&("number"!=typeof a.fromScore||a.fromScore<0||!Number.isFinite(a.fromScore)))throw f("Invalid fromScore for address "+a.address+": "+a.fromScore+". Must be a positive number or 0");if(void 0!==a.limit&&("number"!=typeof a.limit||a.limit<=0||!Number.isInteger(a.limit)))throw f("Invalid limit for address "+a.address+": "+a.limit+". Must be a positive integer");if(void 0!==a.order&&"asc"!==a.order&&"desc"!==a.order)throw f("Invalid order for address "+a.address+": "+a.order+". Must be 'asc' or 'desc'")}return Promise.resolve(U(function(){function e(e){if(!e)throw f("Config not fetched");var n={};t.forEach(function(e){var r=(e.fromScore||0)+":"+(e.limit||100)+":"+(e.order||"default");n[r]||(n[r]=[]),n[r].push(e)});var o=Object.entries(n).map(function(t){var n=t[0],o=t[1];try{var s=n.split(":"),a=s[1],u=s[2],c=Number(s[0]),f=Number(a),d="default"===u?void 0:u,l=o.map(function(e){return e.address});return Promise.resolve(r.getMneeSyncs(l,c,f,d)).then(function(r){return r.map(function(r){var t=r.address,n=r.syncs,s=o.find(function(e){return e.address===t});if(!n||0===n.length)return{address:t,history:[],nextScore:(null==s?void 0:s.fromScore)||0};for(var a,u=[],c=new Set,f=i(n);!(a=f()).done;){var d=b(a.value,t,e);d&&!c.has(d.txid)&&(c.add(d.txid),u.push(d))}var l=u.length>0?u[u.length-1].score:(null==s?void 0:s.fromScore)||0,h=null==s?void 0:s.limit;return h&&u.length>h?{address:t,history:u.slice(0,h),nextScore:l}:{address:t,history:u,nextScore:l}})})}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(o)).then(function(e){return e.flat()})}var n=r.mneeConfig;return n?e(n):Promise.resolve(r.getCosignerConfig()).then(e)},function(e){throw x(e)&&S(e,"fetch transaction histories"),e}))}catch(e){return Promise.reject(e)}},t.parseInscriptionData=function(r){try{var t,n=P(r),i=null==n||null==(t=n.file)?void 0:t.content;if(!i)return null;var o=e.Utils.toUTF8(i);return o?JSON.parse(o):null}catch(e){return x(e)&&S(e,"parse inscription data"),null}},t.determineEnvironment=function(e,r,t,n){return e===m.split("_")[0]?"production":e===g.split("_")[0]?"sandbox":r===m&&"020a177d6a5e6f3a8689acd2e313bd1cf0dcf5a243d1cc67b7218602aee9e04b2f"===t?"production":r===g&&"02bed35e894cc41cc9879b4002ad03d33533b615c1b476068c8dd6822a09f93f6c"===t?"sandbox":""===t&&n===p?"production":"sandbox"},t.determineTransactionType=function(e,r,t,n,i){return"burn"===e?"burn":"deploy+mint"===e||r===n?t===i.split("_")[0]?"deploy":"mint":r===p||r===y?"mint":"transfer"},t.processTransactionInputs=function(e,r){try{var t,n,o=this,s=e.id("hex"),a=new Array(e.inputs.length),u=BigInt(0),c=new M(3,334),f=e.inputs.map(function(e,r){try{return Promise.resolve(e.sourceTXID?U(function(){return Promise.resolve(c.execute(function(){return o.fetchRawTx(e.sourceTXID)})).then(function(e){return{index:r,sourceTx:e}})},function(e){return x(e)&&S(e,"fetch source transaction"),{index:r,sourceTx:null}}):{index:r,sourceTx:null})}catch(e){return Promise.reject(e)}});return Promise.resolve(Promise.all(f)).then(function(c){for(var f,d=i(c);!(f=d()).done;){var l=f.value,h=l.index,v=l.sourceTx,m=e.inputs[h];if(v&&m.sourceTXID){var p=v.outputs[m.sourceOutputIndex],g=w([p.lockingScript])[0],y=o.parseInscriptionData(p.lockingScript),P={address:null==g?void 0:g.address,amount:y?parseInt(y.amt):0,satoshis:Number(p.satoshis),inscription:y,cosigner:g};a[h]=P,y&&g&&(u+=BigInt(y.amt),t||(t=o.determineEnvironment(s,y.id,g.cosigner||"",g.address||"")),n||(n=o.determineTransactionType(y.op,g.address||"",s,r.mintAddress,r.tokenId)))}else a[h]={address:void 0,amount:0,satoshis:0,inscription:null,cosigner:void 0}}return{inputs:a,total:u,environment:t,type:n}})}catch(e){return Promise.reject(e)}},t.processTransactionOutputs=function(e,r){for(var t,n,i=e.id("hex"),o=[],s=BigInt(0),a=0;a<e.outputs.length;a++){var u=e.outputs[a],c=w([u.lockingScript])[0],f=this.parseInscriptionData(u.lockingScript),d={address:null==c?void 0:c.address,amount:f?parseInt(f.amt):0,satoshis:Number(u.satoshis),inscription:f,cosigner:c};if(o.push(d),f&&c){s+=BigInt(f.amt),t=this.determineEnvironment(i,f.id,c.cosigner||"",c.address||"");var l=this.determineTransactionType(f.op,c.address||"",i,r.mintAddress,r.tokenId);"burn"===l||"deploy"===l?n=l:n||(n=l)}}return{outputs:o,total:s,environment:t,type:n}},t.validateTransaction=function(e,r,t,n,i){return!!this.processMneeValidation(r,e)&&("deploy"===t||n===i)},t.buildParseResponse=function(e,r,t,n,i,s,a,u){var c={txid:e,environment:r,type:t,inputs:n.inputs.filter(function(e){return e.inscription&&e.address}).map(function(e){return{address:e.address,amount:e.amount}}),outputs:i.outputs.filter(function(e){return e.inscription&&e.address}).map(function(e){return{address:e.address,amount:e.amount}}),isValid:s,inputTotal:n.total.toString(),outputTotal:i.total.toString()};return null!=u&&u.includeRaw?o({},c,{raw:{txHex:a.toHex(),inputs:a.inputs.map(function(e,r){var t,i=n.inputs[r];return{txid:e.sourceTXID||"",vout:e.sourceOutputIndex,scriptSig:(null==(t=e.unlockingScript)?void 0:t.toHex())||"",sequence:e.sequence||4294967295,address:null==i?void 0:i.address,satoshis:(null==i?void 0:i.satoshis)||0,tokenData:null!=i&&i.inscription?{amount:i.amount}:void 0}}),outputs:a.outputs.map(function(e,r){var t=i.outputs[r];return{value:Number(e.satoshis),scriptPubKey:e.lockingScript.toHex(),address:null==t?void 0:t.address,tokenData:null!=t&&t.inscription?{amount:t.amount}:void 0}})}}):c},t.parseTransaction=function(e,r,t){try{var n=this,i=e.id("hex");return Promise.resolve(n.processTransactionInputs(e,r)).then(function(o){var s=n.processTransactionOutputs(e,r),a=s.environment||o.environment||"sandbox",u=s.type||o.type||"transfer";"transfer"===u&&o.inputs.some(function(e){return e.inscription&&(e.address===p||e.address===y)})&&(u="mint"),"transfer"!==u&&"mint"!==u||s.outputs.some(function(e){var r;return"redeem"===(null==(r=e.inscription)||null==(r=r.metadata)?void 0:r.action)})&&(u="redeem"),0===o.inputs.filter(function(e){return e.inscription}).length&&o.inputs.length>0&&(u="deploy");var c=n.validateTransaction(r,e,u,o.total,s.total);return n.buildParseResponse(i,a,u,o,s,c,e,t)})}catch(e){return Promise.reject(e)}},t.parseTx=function(e,r){try{var t=function(t){if(!t)throw f("Config not fetched");return Promise.resolve(n.fetchRawTx(e)).then(function(e){if(!e)throw f("Failed to fetch transaction");return Promise.resolve(n.parseTransaction(e,t,r))})},n=this;if(!e||"string"!=typeof e||""===e.trim()||!/^[a-fA-F0-9]{64}$/.test(e))throw f("A valid transaction ID is required");var i=n.mneeConfig;return Promise.resolve(i?t(i):Promise.resolve(n.getCosignerConfig()).then(t))}catch(e){return Promise.reject(e)}},t.parseTxFromRawTx=function(r,t){try{var n=function(e){if(!e)throw f("Config not fetched");return Promise.resolve(i.parseTransaction(o,e,t))},i=this;if(!r||"string"!=typeof r||""===r.trim())throw f("A valid raw transaction is required");if(!function(r){try{return e.Transaction.fromHex(r),!0}catch(e){return!1}}(r))throw f("Invalid raw transaction hex");var o=e.Transaction.fromHex(r),s=i.mneeConfig;return Promise.resolve(s?n(s):Promise.resolve(i.getCosignerConfig()).then(n))}catch(e){return Promise.reject(e)}},t.parseInscription=function(e){return P(e)},t.parseCosignerScripts=function(e){return w(e)},t.validateUniqueInputs=function(e){for(var r,t=new Set,n=i(e);!(r=n()).done;){var o=r.value,s=o.txid+":"+o.vout;if(t.has(s))return{error:"Duplicate input detected: "+s+". Each UTXO can only be spent once."};t.add(s)}return{}},t.addInputsToTransaction=function(r,t,n){try{var i,o=function(e){return i?e:{tokensIn:a}},s=this,a=0,u=B(t,function(o){var u=t[o];return Promise.resolve(s.fetchRawTx(u.txid)).then(function(t){if(!t)return i=1,{tokensIn:0,error:"Failed to fetch source transaction: "+u.txid+"_"+u.vout};var c=t.outputs[u.vout];if(!c)return i=1,{tokensIn:0,error:"Output "+u.vout+" not found in transaction "+u.txid};var f=s.parseInscriptionData(c.lockingScript);if(!f)return i=1,{tokensIn:0,error:"No inscription found in output "+u.txid+":"+u.vout};var d=parseInt(f.amt);a+=d,n.set(o,e.PrivateKey.fromWif(u.wif)),r.addInput({sourceTXID:u.txid,sourceOutputIndex:u.vout,sourceTransaction:t,unlockingScript:new e.UnlockingScript})})},function(){return i});return Promise.resolve(u&&u.then?u.then(o):o(u))}catch(e){return Promise.reject(e)}},t.calculateTransferMultiFee=function(e,r,t,n,o,s){for(var a,u=this,c=0,f=-1,d=function(){var a;f=c;var d=e-r-c,l=0;if(d>0)if("string"==typeof t)n.has(t)||(l=d);else if(Array.isArray(t))for(var h,v=i(t);!(h=v()).done;){var m=h.value,p=u.toAtomicAmount(m.amount);n.has(m.address)||(l+=p)}else l=0;var g=r+l,y=void 0!==s.find(function(e){return e.address===o.burnAddress})?0:null==(a=o.fees.find(function(e){return g>=e.min&&g<=e.max}))?void 0:a.fee;if(void 0===y)return{v:{fee:0,error:"Fee ranges inadequate"}};c=y};c!==f;)if(a=d())return a.v;return{fee:c}},t.addChangeOutputs=function(e,r,t,n,o,s,a,u){try{var c,f=function(e){return c?e:{}},d=this;if(r<=0)return Promise.resolve({});var l=function(){if("string"==typeof t){var f=e.addOutput;return Promise.resolve(d.createInscription(t,r,o)).then(function(r){f.call(e,r)})}return function(){if(!Array.isArray(t)){var f=n.get(0).toAddress(),l=e.addOutput;return Promise.resolve(d.createInscription(f,r,o)).then(function(r){l.call(e,r)})}if(0===t.length)return c=1,{error:"Change address array cannot be empty. Provide at least one change output or use a single address string."};var h=t.map(function(e){return{address:e.address,amount:d.toAtomicAmount(e.amount)}}),v=h.reduce(function(e,r){return e+r.amount},0);if(v!==r){var m=d.fromAtomicAmount(r),p=d.fromAtomicAmount(v),g={error:"Change amounts must sum to "+m+" ("+r+" atomic units). Total inputs: "+d.fromAtomicAmount(s)+" - total outputs: "+d.fromAtomicAmount(a)+" - fee: "+d.fromAtomicAmount(u)+" = "+m+". Your change outputs sum to "+p+" ("+v+" atomic units)."};return c=1,g}for(var y,P=i(t);!(y=P()).done;){var w=y.value;if(w.amount<=0)return c=1,{error:"Invalid change amount: "+w.amount+". Must be positive."}}var b=V(h,function(r){var t=e.addOutput;return Promise.resolve(d.createInscription(r.address,r.amount,o)).then(function(r){t.call(e,r)})});return b&&b.then?b.then(function(){}):void 0}()}();return Promise.resolve(l&&l.then?l.then(f):f(l))}catch(e){return Promise.reject(e)}},t.signAllInputs=function(r,t){try{var n,o=function(t){if(n)return t;for(var o,s=i(c);!(o=s()).done;){var a=o.value;r.inputs[a.inputIndex].unlockingScript=(new e.Script).writeBin(e.Utils.toArray(a.sig,"hex")).writeBin(e.Utils.toArray(a.pubKey,"hex"))}return{}},s=this,a=r.inputs.map(function(r,n){var i,o;if(!r.sourceTXID)throw f("Source TXID is undefined");return{prevTxid:r.sourceTXID,outputIndex:r.sourceOutputIndex,inputIndex:n,address:t.get(n).toAddress(),script:null==(i=r.sourceTransaction)?void 0:i.outputs[r.sourceOutputIndex].lockingScript.toHex(),satoshis:(null==(o=r.sourceTransaction)?void 0:o.outputs[r.sourceOutputIndex].satoshis)||1,sigHashType:e.TransactionSignature.SIGHASH_ALL|e.TransactionSignature.SIGHASH_ANYONECANPAY|e.TransactionSignature.SIGHASH_FORKID}}),u=r.toHex(),c=[],d=V(t.entries(),function(e){var r=e[0];return Promise.resolve(s.getSignatures({rawtx:u,sigRequests:[a[r]]},e[1])).then(function(e){if(null==e||!e.sigResponses)return n=1,{error:"Failed to get signatures for input "+r};c.push.apply(c,e.sigResponses)})},function(){return n});return Promise.resolve(d&&d.then?d.then(o):o(d))}catch(e){return Promise.reject(e)}},t.validateTokenConservation=function(e,r){for(var t=0,n=0;n<e.outputs.length;n++){var i=this.parseInscriptionData(e.outputs[n].lockingScript);i&&(t+=parseInt(i.amt))}return r!==t?{error:"Token conservation violation! Inputs ("+this.fromAtomicAmount(r)+") do not equal outputs ("+this.fromAtomicAmount(t)+"). This would "+(r>t?"burn":"create")+" "+this.fromAtomicAmount(Math.abs(r-t))+" tokens."}:{}},t.transferMulti=function(r,t){try{var n=this;return Promise.resolve(U(function(){function o(o){if(!o)throw f("Config not fetched");var s=function(e){for(var r,t=i(e.recipients);!(r=t()).done;){var n=r.value;if(!n.address||!n.amount)return{isValid:!1,error:"Invalid recipient: "+JSON.stringify(n)+". Missing required fields: address, amount"};if("number"!=typeof n.amount||isNaN(n.amount)||!isFinite(n.amount))return{isValid:!1,error:"Invalid amount for "+n.address+": amount must be a valid number"};if(n.amount<v)return{isValid:!1,error:"Invalid amount for "+n.address+": minimum transfer amount is "+v+" MNEE"};if(!I(n.address))return{isValid:!1,error:"Invalid recipient address: "+n.address}}for(var o,s=i(e.inputs);!(o=s()).done;){var a=o.value;if(!a.txid||"number"!=typeof a.vout||!a.wif)return{isValid:!1,error:"Invalid input: "+JSON.stringify(a)+". Missing required fields: txid, vout, wif"};var u=A(a.wif);if(!u.isValid)return{isValid:!1,error:"Invalid WIF key: "+a.wif+" for input "+a.txid+":"+a.vout};var c=u.privateKey.toAddress();if(!I(c))return{isValid:!1,error:"Invalid input address: "+c}}if(e.changeAddress&&Array.isArray(e.changeAddress))for(var f,d=i(e.changeAddress);!(f=d()).done;){var l=f.value;if(l.amount<v)return{isValid:!1,error:"Invalid amount for "+l.address+": minimum transfer amount is "+v+" MNEE"};if(!I(l.address))return{isValid:!1,error:"Invalid change address: "+l.address}}return{isValid:!0}}(r);if(!s.isValid)throw f(s.error||"Invalid transfer options");var a=r.recipients.reduce(function(e,r){return e+r.amount},0);if(a<=0)throw f("Invalid amount");var u=n.toAtomicAmount(a),c=n.validateUniqueInputs(r.inputs);if(c.error)throw f(c.error);var d=new e.Transaction(1,[],[],0),l=new Map;return Promise.resolve(n.addInputsToTransaction(d,r.inputs,l)).then(function(i){function s(){function e(){return Promise.resolve(n.addChangeOutputs(d,a-u-p,r.changeAddress,l,o,a,u,p)).then(function(e){if(e.error)throw f(e.error);return Promise.resolve(n.signAllInputs(d,l)).then(function(e){if(e.error)throw f(e.error);var r=n.validateTokenConservation(d,a);if(r.error)throw f(r.error);var i=d.toHex();return null!=t&&t.broadcast?Promise.resolve(n.submitRawTx(i,t)).then(function(e){var r=e.ticketId;if(!r)throw f("Failed to broadcast transaction");return{ticketId:r}}):{rawtx:i}})})}var i=function(){if(p>0){var e=d.addOutput;return Promise.resolve(n.createInscription(o.feeAddress,p,o)).then(function(r){e.call(d,r)})}}();return i&&i.then?i.then(e):e()}if(i.error)throw f(i.error);for(var a=i.tokensIn,c=new Set,h=0;h<r.inputs.length;h++){var v=e.PrivateKey.fromWif(r.inputs[h].wif);c.add(v.toAddress())}var m=n.calculateTransferMultiFee(a,u,r.changeAddress,c,o,r.recipients);if(m.error)throw f(m.error);var p=m.fee;if(a<u+p)throw f("Insufficient tokens. Have: "+n.fromAtomicAmount(a)+", Need: "+n.fromAtomicAmount(u+p)+" (including fee: "+n.fromAtomicAmount(p)+")");var g=V(r.recipients,function(e){var r=d.addOutput;return Promise.resolve(n.createInscription(e.address,n.toAtomicAmount(e.amount),o)).then(function(e){r.call(d,e)})});return g&&g.then?g.then(s):s()})}var s=n.mneeConfig;return s?o(s):Promise.resolve(n.getCosignerConfig()).then(o)},function(e){throw x(e)&&S(e,"multi-source transfer"),e}))}catch(e){return Promise.reject(e)}},r}();function G(e,r,t){if(!e.s){if(t instanceof L){if(!t.s)return void(t.o=G.bind(null,e,r));1&r&&(r=t.s),t=t.v}if(t&&t.then)return void t.then(G.bind(null,e,r),G.bind(null,e,2));e.s=r,e.v=t;const n=e.o;n&&n(e)}}var L=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(r,t){var n=new e,i=this.s;if(i){var o=1&i?r:t;if(o){try{G(n,1,o(this.v))}catch(e){G(n,2,e)}return n}return this}return this.o=function(e){try{var i=e.v;1&e.s?G(n,1,r?r(i):i):t?G(n,1,t(i)):G(n,2,i)}catch(e){G(n,2,e)}},n},e}();function z(e){return e instanceof L&&1&e.s}function X(e,r,t){for(var n;;){var i=e();if(z(i)&&(i=i.v),!i)return o;if(i.then){n=0;break}var o=t();if(o&&o.then){if(!z(o)){n=1;break}o=o.s}if(r){var s=r();if(s&&s.then&&!z(s)){n=2;break}}}var a=new L,u=G.bind(null,a,2);return(0===n?i.then(f):1===n?o.then(c):s.then(d)).then(void 0,u),a;function c(n){o=n;do{if(r&&(s=r())&&s.then&&!z(s))return void s.then(d).then(void 0,u);if(!(i=e())||z(i)&&!i.v)return void G(a,1,o);if(i.then)return void i.then(f).then(void 0,u);z(o=t())&&(o=o.v)}while(!o||!o.then);o.then(c).then(void 0,u)}function f(e){e?(o=t())&&o.then?o.then(c).then(void 0,u):c(o):G(a,1,o)}function d(){(i=e())?i.then?i.then(f).then(void 0,u):f(i):G(a,1,o)}}var W=/*#__PURE__*/function(){function r(r,n){if(this.masterKey=void 0,this.derivationPath=void 0,this.cacheSize=void 0,this.cache=void 0,!t.validateMnemonic(r))throw f("Invalid mnemonic phrase");var i=e.Mnemonic.fromString(r).toSeed();this.masterKey=e.HD.fromSeed(i),this.derivationPath=n.derivationPath,this.cacheSize=n.cacheSize||1e3,this.cache=new Map}r.generateMnemonic=function(){return t.generateMnemonic()},r.isValidMnemonic=function(e){return t.validateMnemonic(e)};var n=r.prototype;return n.deriveAddress=function(e,r){void 0===r&&(r=!1);var t=this.derivationPath+"/"+(r?1:0)+"/"+e;if(this.cache.has(t))return this.cache.get(t);var n=this.masterKey.derive(t).privKey;if(!n)throw f("Failed to derive private key for path: "+t);var i={address:n.toAddress(),privateKey:n.toWif(),path:t};return this.cache.size<this.cacheSize&&this.cache.set(t,i),i},n.deriveAddresses=function(e,r,t){void 0===t&&(t=!1);try{for(var n=[],i=0;i<r;i++){var o=this.deriveAddress(e+i,t);n.push(o)}return Promise.resolve(n)}catch(e){return Promise.reject(e)}},n.getPrivateKeysForAddresses=function(e,r){for(var t,n=(null==r?void 0:r.maxScanReceive)||1e4,o=(null==r?void 0:r.maxScanChange)||1e4,s=(null==r?void 0:r.scanStrategy)||"parallel",a={},u={},c=new Set(e),d=i(this.cache);!(t=d()).done;){var l=t.value[1];c.has(l.address)&&(a[l.address]=l.privateKey,u[l.address]=l.path,c.delete(l.address))}if(0===c.size)return{privateKeys:a,paths:u};if("sequential"===s){for(var h=0;h<n&&c.size>0;h++){var v=this.deriveAddress(h,!1);c.has(v.address)&&(a[v.address]=v.privateKey,u[v.address]=v.path,c.delete(v.address))}for(var m=0;m<o&&c.size>0;m++){var p=this.deriveAddress(m,!0);c.has(p.address)&&(a[p.address]=p.privateKey,u[p.address]=p.path,c.delete(p.address))}}else for(var g=Math.max(n,o),y=0;y<g&&c.size>0;y++){if(y<n){var P=this.deriveAddress(y,!1);c.has(P.address)&&(a[P.address]=P.privateKey,u[P.address]=P.path,c.delete(P.address))}if(y<o){var w=this.deriveAddress(y,!0);c.has(w.address)&&(a[w.address]=w.privateKey,u[w.address]=w.path,c.delete(w.address))}}if(c.size>0){var b=Array.from(c);throw f("Could not find private keys for "+b.length+" address(es): "+b.join(", ")+". Scanned up to index "+n+" for receive addresses and "+o+" for change addresses.")}return{privateKeys:a,paths:u}},n.getPrivateKeys=function(e,r){return this.getPrivateKeysForAddresses(e,r).privateKeys},n.scanAddressesWithGapLimit=function(e,r){try{var t=function(){var r=function(){if(o){u=0;var r=0,t=X(function(){return r<s&&u<i},function(){return r++},function(){var t=n.deriveAddress(r,!0);return Promise.resolve(e(t.address)).then(function(e){e?(a.change.push(t),u=0):u++})});if(t&&t.then)return t.then(function(){})}}();return r&&r.then?r.then(function(){return a}):a},n=this,i=(null==r?void 0:r.gapLimit)||20,o=!1!==(null==r?void 0:r.scanChange),s=(null==r?void 0:r.maxScan)||1e4,a={receive:[],change:[]},u=0,c=0,f=X(function(){return c<s&&u<i},function(){return c++},function(){var r=n.deriveAddress(c,!1);return Promise.resolve(e(r.address)).then(function(e){e?(a.receive.push(r),u=0):u++})});return Promise.resolve(f&&f.then?f.then(t):t())}catch(e){return Promise.reject(e)}},n.clearCache=function(){this.cache.clear()},n.getCacheSize=function(){return this.cache.size},r}(),Y=/*#__PURE__*/function(){function e(e){this.service=void 0,this._batch=void 0,this.service=new q(e)}var r=e.prototype;return r.validateMneeTx=function(e,r){try{return Promise.resolve(this.service.validateMneeTx(e,r))}catch(e){return Promise.reject(e)}},r.toAtomicAmount=function(e){return this.service.toAtomicAmount(e)},r.fromAtomicAmount=function(e){return this.service.fromAtomicAmount(e)},r.config=function(){try{return Promise.resolve(this.service.getCosignerConfig())}catch(e){return Promise.reject(e)}},r.balance=function(e){try{return Promise.resolve(this.service.getBalance(e))}catch(e){return Promise.reject(e)}},r.balances=function(e){try{return Promise.resolve(this.service.getBalances(e))}catch(e){return Promise.reject(e)}},r.getUtxos=function(e,r,t,n){try{return Promise.resolve(this.service.getUtxos(e,r,t,n))}catch(e){return Promise.reject(e)}},r.getEnoughUtxos=function(e,r){try{return Promise.resolve(this.service.getEnoughUtxos(e,r))}catch(e){return Promise.reject(e)}},r.getAllUtxos=function(e){try{return Promise.resolve(this.service.getAllUtxos(e))}catch(e){return Promise.reject(e)}},r.transfer=function(e,r,t){try{return Promise.resolve(this.service.transfer(e,r,t))}catch(e){return Promise.reject(e)}},r.transferMulti=function(e,r){try{return Promise.resolve(this.service.transferMulti(e,r))}catch(e){return Promise.reject(e)}},r.submitRawTx=function(e,r){try{return Promise.resolve(this.service.submitRawTx(e,r))}catch(e){return Promise.reject(e)}},r.getTxStatus=function(e){try{return Promise.resolve(this.service.getTxStatus(e))}catch(e){return Promise.reject(e)}},r.recentTxHistory=function(e,r,t,n){try{return Promise.resolve(this.service.getRecentTxHistory(e,r,t,n))}catch(e){return Promise.reject(e)}},r.recentTxHistories=function(e){try{return Promise.resolve(this.service.getRecentTxHistories(e))}catch(e){return Promise.reject(e)}},r.parseTx=function(e,r){try{return Promise.resolve(this.service.parseTx(e,r))}catch(e){return Promise.reject(e)}},r.parseTxFromRawTx=function(e,r){try{return Promise.resolve(this.service.parseTxFromRawTx(e,r))}catch(e){return Promise.reject(e)}},r.parseInscription=function(e){return this.service.parseInscription(e)},r.parseCosignerScripts=function(e){return this.service.parseCosignerScripts(e)},r.HDWallet=function(e,r){return new W(e,r)},r.batch=function(){return this._batch||(this._batch=new j(this.service)),this._batch},e}();Y.HDWallet=W,module.exports=Y;
2
+ //# sourceMappingURL=index.cjs.map