mainnet-js 2.6.7 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/{mainnet-2.6.7.js → mainnet-2.7.1.js} +446 -156
  3. package/dist/module/cli.js +0 -4
  4. package/dist/module/cli.js.map +1 -1
  5. package/dist/module/index.d.ts +1 -3
  6. package/dist/module/index.d.ts.map +1 -1
  7. package/dist/module/index.js +1 -3
  8. package/dist/module/index.js.map +1 -1
  9. package/dist/module/network/ElectrumNetworkProvider.d.ts +21 -27
  10. package/dist/module/network/ElectrumNetworkProvider.d.ts.map +1 -1
  11. package/dist/module/network/ElectrumNetworkProvider.js +92 -102
  12. package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
  13. package/dist/module/network/NetworkProvider.d.ts +9 -22
  14. package/dist/module/network/NetworkProvider.d.ts.map +1 -1
  15. package/dist/module/network/constant.d.ts +0 -21
  16. package/dist/module/network/constant.d.ts.map +1 -1
  17. package/dist/module/network/constant.js +0 -21
  18. package/dist/module/network/constant.js.map +1 -1
  19. package/dist/module/network/default.d.ts +2 -2
  20. package/dist/module/network/default.d.ts.map +1 -1
  21. package/dist/module/network/default.js +15 -45
  22. package/dist/module/network/default.js.map +1 -1
  23. package/dist/module/network/interface.d.ts +2 -8
  24. package/dist/module/network/interface.d.ts.map +1 -1
  25. package/dist/module/network/util.d.ts.map +1 -1
  26. package/dist/module/network/util.js +4 -5
  27. package/dist/module/network/util.js.map +1 -1
  28. package/dist/module/rate/ExchangeRate.js +2 -1
  29. package/dist/module/rate/ExchangeRate.js.map +1 -1
  30. package/dist/module/transaction/Wif.d.ts.map +1 -1
  31. package/dist/module/transaction/Wif.js +1 -1
  32. package/dist/module/transaction/Wif.js.map +1 -1
  33. package/dist/module/wallet/Base.d.ts +282 -88
  34. package/dist/module/wallet/Base.d.ts.map +1 -1
  35. package/dist/module/wallet/Base.js +1058 -215
  36. package/dist/module/wallet/Base.js.map +1 -1
  37. package/dist/module/wallet/Util.d.ts +7 -54
  38. package/dist/module/wallet/Util.d.ts.map +1 -1
  39. package/dist/module/wallet/Util.js +12 -79
  40. package/dist/module/wallet/Util.js.map +1 -1
  41. package/dist/module/wallet/Wif.d.ts +46 -251
  42. package/dist/module/wallet/Wif.d.ts.map +1 -1
  43. package/dist/module/wallet/Wif.js +126 -1026
  44. package/dist/module/wallet/Wif.js.map +1 -1
  45. package/dist/module/wallet/createWallet.d.ts +2 -1
  46. package/dist/module/wallet/createWallet.d.ts.map +1 -1
  47. package/dist/module/wallet/createWallet.js +2 -3
  48. package/dist/module/wallet/createWallet.js.map +1 -1
  49. package/dist/module/wallet/interface.d.ts +2 -4
  50. package/dist/module/wallet/interface.d.ts.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +6 -12
  53. package/src/cli.ts +0 -4
  54. package/src/index.ts +1 -5
  55. package/src/network/ElectrumNetworkProvider.ts +133 -188
  56. package/src/network/NetworkProvider.ts +9 -30
  57. package/src/network/Rpc.test.ts +14 -5
  58. package/src/network/constant.ts +0 -23
  59. package/src/network/default.ts +26 -66
  60. package/src/network/electrum.test.ts +2 -4
  61. package/src/network/interface.ts +2 -9
  62. package/src/network/util.ts +6 -7
  63. package/src/rate/ExchangeRate.test.ts +1 -1
  64. package/src/rate/ExchangeRate.ts +2 -1
  65. package/{polyfill/json.js → src/test/json.test.ts} +7 -1
  66. package/src/transaction/Wif.ts +2 -1
  67. package/src/wallet/Base.ts +1520 -273
  68. package/src/wallet/Cashtokens.test.headless.js +1 -1
  69. package/src/wallet/Cashtokens.test.ts +7 -8
  70. package/src/wallet/Util.ts +20 -102
  71. package/src/wallet/Wif.bip39.test.ts +3 -3
  72. package/src/wallet/Wif.test.ts +31 -25
  73. package/src/wallet/Wif.ts +174 -1493
  74. package/src/wallet/Wif.watchOnly.test.ts +5 -5
  75. package/src/wallet/createWallet.ts +11 -10
  76. package/src/wallet/interface.ts +3 -4
  77. package/webpack.config.cjs +4 -55
  78. package/dist/module/qr/Qr.d.ts +0 -9
  79. package/dist/module/qr/Qr.d.ts.map +0 -1
  80. package/dist/module/qr/Qr.js +0 -22
  81. package/dist/module/qr/Qr.js.map +0 -1
  82. package/dist/module/qr/interface.d.ts +0 -6
  83. package/dist/module/qr/interface.d.ts.map +0 -1
  84. package/dist/module/qr/interface.js +0 -2
  85. package/dist/module/qr/interface.js.map +0 -1
  86. package/dist/module/util/eventsource.d.ts +0 -3
  87. package/dist/module/util/eventsource.d.ts.map +0 -1
  88. package/dist/module/util/eventsource.js +0 -11
  89. package/dist/module/util/eventsource.js.map +0 -1
  90. package/polyfill/README.md +0 -1
  91. package/polyfill/eventsource.js +0 -6
  92. package/polyfill/support/types.js +0 -286
  93. package/polyfill/util.cjs +0 -249
  94. package/src/network/default.test.ts +0 -37
  95. package/src/qr/Qr.test.ts +0 -14
  96. package/src/qr/Qr.ts +0 -24
  97. package/src/qr/interface.ts +0 -5
  98. package/src/util/eventsource.ts +0 -12
@@ -1,27 +1,37 @@
1
- import { MnemonicI, WalletI } from "./interface.js";
2
- import { NetworkType } from "../enum.js";
3
- import { StorageProvider } from "../db/index.js";
4
- import { ImageI } from "../qr/interface.js";
1
+ import { CashAddressNetworkPrefix, IdentitySnapshot } from "@bitauth/libauth";
2
+ import StorageProvider from "../db/StorageProvider.js";
3
+ import { NetworkType, UnitEnum } from "../enum.js";
4
+ import { TransactionHistoryItem } from "../history/interface.js";
5
+ import { HexHeaderI, TxI, UtxoI } from "../interface.js";
6
+ import ElectrumNetworkProvider from "../network/ElectrumNetworkProvider.js";
7
+ import { ElectrumRawTransaction } from "../network/interface.js";
8
+ import { BalanceResponse } from "../util/balanceObjectFromSatoshi.js";
5
9
  import { WalletTypeEnum } from "./enum.js";
6
- import NetworkProvider from "../network/NetworkProvider.js";
10
+ import { CancelFn, SendRequestOptionsI, WaitForTransactionOptions, WaitForTransactionResponse, WalletI, WalletInfoI } from "./interface.js";
11
+ import { OpReturnData, SendRequest, SendRequestArray, SendRequestType, SendResponse, TokenBurnRequest, TokenGenesisRequest, TokenMintRequest, TokenSendRequest } from "./model.js";
12
+ import { Util } from "./Util.js";
13
+ import { Wallet } from "./Wif.js";
7
14
  /**
8
15
  * A class to hold features used by all wallets
9
16
  * @class BaseWallet
10
17
  */
11
18
  export declare class BaseWallet implements WalletI {
12
- provider?: NetworkProvider;
13
- derivationPath: string;
14
- parentDerivationPath: string;
15
- parentXPubKey?: string;
16
- mnemonic?: string;
17
- address?: string;
18
- privateKey?: any;
19
- publicKey?: any;
20
19
  static StorageProvider?: typeof StorageProvider;
21
- isTestnet: boolean;
22
- name: string;
20
+ provider: ElectrumNetworkProvider;
23
21
  network: NetworkType;
24
22
  walletType: WalletTypeEnum;
23
+ _slpSemiAware: boolean;
24
+ publicKeyHash: Uint8Array;
25
+ cashaddr: string;
26
+ tokenaddr: string;
27
+ isTestnet: boolean;
28
+ name: string;
29
+ _util?: Util;
30
+ get networkPrefix(): CashAddressNetworkPrefix;
31
+ get util(): Util;
32
+ static get util(): Util;
33
+ getInfo(): WalletInfoI;
34
+ slpSemiAware(value?: boolean): this;
25
35
  protected getNetworkProvider(network?: NetworkType): any;
26
36
  /**
27
37
  * getDepositAddress - get a wallet deposit address
@@ -34,66 +44,101 @@ export declare class BaseWallet implements WalletI {
34
44
  */
35
45
  getDepositAddress(): string;
36
46
  /**
37
- * getDepositQr - get an address qrcode, encoded for display on the web
47
+ * getTokenDepositAddress - get a cashtoken aware wallet deposit address
38
48
  *
39
- * a high-level function
40
- *
41
- * @see {@link https://rest-unstable.mainnet.cash/api-docs/#/wallet/depositQr|/wallet/deposit_qr} for REST endpoint
42
- *
43
- * @returns The qrcode for the address
49
+ * @returns The cashtoken aware deposit address as a string
44
50
  */
45
- getDepositQr(): ImageI;
46
- getSeed(): MnemonicI;
51
+ getTokenDepositAddress(): string;
47
52
  /**
48
53
  * constructor for a new wallet
49
- * @param {string} name name of the wallet
50
54
  * @param network network for wallet
51
55
  *
52
56
  * @throws {Error} if called on BaseWallet
53
57
  */
54
- constructor(name?: string, network?: NetworkType, walletType?: WalletTypeEnum);
58
+ constructor(network?: NetworkType);
59
+ /**
60
+ * watchOnly - create a watch-only wallet
61
+ *
62
+ * such kind of wallet does not have a private key and is unable to spend any funds
63
+ * however it still allows to use many utility functions such as getting and watching balance, etc.
64
+ *
65
+ * @param address cashaddress, token aware cashaddress of a wallet
66
+ *
67
+ * @returns instantiated wallet
68
+ */
69
+ static watchOnly<T extends typeof BaseWallet>(this: T, address: string): Promise<InstanceType<T>>;
55
70
  /**
56
- * fromId - create a wallet from encoded walletId string
71
+ * named (internal) get a named wallet from the database or create a new one.
72
+ * Note: this function should behave identically if
57
73
  *
58
- * @param walletId walletId options to steer the creation process
74
+ * @param {string} name name of the wallet
75
+ * @param {string} dbName database name the wallet is stored in
76
+ * @param {boolean} forceNew attempt to overwrite an existing wallet
59
77
  *
60
- * @returns wallet instantiated accordingly to the walletId rules
78
+ * @throws {Error} if forceNew is true and the wallet already exists
79
+ * @returns a promise to a named wallet
61
80
  */
62
- static fromId<T extends typeof BaseWallet>(this: T, walletId: string): Promise<InstanceType<T>>;
81
+ protected named(name: string, dbName?: string, forceNew?: boolean): Promise<this>;
63
82
  /**
64
- * fromSeed - create a wallet using the seed phrase and derivation path
83
+ * replaceNamed - Replace (recover) named wallet with a new walletId
65
84
  *
66
- * unless specified the derivation path m/44'/245'/0'/0/0 will be userd
67
- * this derivation path is standard for Electron Cash SLP and other SLP enabled wallets
85
+ * If wallet with a provided name does not exist yet, it will be created with a `walletId` supplied
86
+ * If wallet exists it will be overwritten without exception
68
87
  *
69
- * @param seed BIP39 12 word seed phrase
70
- * @param derivationPath BIP44 HD wallet derivation path to get a single the private key from hierarchy
88
+ * @param name user friendly wallet alias
89
+ * @param walletId walletId options to steer the creation process
90
+ * @param dbName name under which the wallet will be stored in the database
71
91
  *
72
92
  * @returns instantiated wallet
73
93
  */
74
- static fromSeed<T extends typeof BaseWallet>(this: T, seed: string, derivationPath?: string): Promise<InstanceType<T>>;
94
+ protected replaceNamed(name: string, walletId: string, dbName?: string): Promise<this>;
75
95
  /**
76
- * newRandom - create a random wallet
77
- *
78
- * if `name` parameter is specified, the wallet will also be persisted to DB
96
+ * namedExists - check if a named wallet already exists
79
97
  *
80
98
  * @param name user friendly wallet alias
81
99
  * @param dbName name under which the wallet will be stored in the database
82
100
  *
101
+ * @returns boolean
102
+ */
103
+ protected namedExists(name: string, dbName?: string): Promise<boolean>;
104
+ protected generate(): Promise<this>;
105
+ /**
106
+ * toDbString - store the serialized version of the wallet in the database, not just the name
107
+ *
108
+ * @throws {Error} if called on BaseWallet
109
+ */
110
+ toDbString(): string;
111
+ toString(): string;
112
+ /**
113
+ * explorerUrl Web url to a transaction on a block explorer
114
+ *
115
+ * @param txId transaction Id
116
+ * @returns Url string
117
+ */
118
+ explorerUrl(txId: string): string;
119
+ getPublicKeyHash(hex?: boolean): string | Uint8Array;
120
+ /**
121
+ * fromCashaddr - create a watch-only wallet in the network derived from the address
122
+ *
123
+ * such kind of wallet does not have a private key and is unable to spend any funds
124
+ * however it still allows to use many utility functions such as getting and watching balance, etc.
125
+ *
126
+ * @param address cashaddress of a wallet
127
+ *
83
128
  * @returns instantiated wallet
84
129
  */
85
- static newRandom<T extends typeof BaseWallet>(this: T, name?: string, dbName?: string): Promise<InstanceType<T>>;
130
+ static fromCashaddr<T extends typeof BaseWallet>(this: T, address: string): Promise<InstanceType<T>>;
86
131
  /**
87
- * watchOnly - create a watch-only wallet
132
+ * fromTokenaddr - create a watch-only wallet in the network derived from the address
88
133
  *
89
134
  * such kind of wallet does not have a private key and is unable to spend any funds
90
135
  * however it still allows to use many utility functions such as getting and watching balance, etc.
91
136
  *
92
- * @param address cashaddress, token aware cashaddress of a wallet
137
+ * @param address token aware cashaddress of a wallet
93
138
  *
94
139
  * @returns instantiated wallet
95
140
  */
96
- static watchOnly<T extends typeof BaseWallet>(this: T, address: string): Promise<InstanceType<T>>;
141
+ static fromTokenaddr<T extends typeof BaseWallet>(this: T, address: string): Promise<InstanceType<T>>;
97
142
  /**
98
143
  * named - create a named wallet
99
144
  *
@@ -103,7 +148,7 @@ export declare class BaseWallet implements WalletI {
103
148
  *
104
149
  * @returns instantiated wallet
105
150
  */
106
- static named<T extends typeof BaseWallet>(this: T, name: string, dbName?: string, force?: boolean): Promise<InstanceType<T>>;
151
+ static named<T extends typeof Wallet>(this: T, name: string, dbName?: string, force?: boolean): Promise<InstanceType<T>>;
107
152
  /**
108
153
  * replaceNamed - replace (recover) named wallet with a new walletId
109
154
  *
@@ -116,7 +161,7 @@ export declare class BaseWallet implements WalletI {
116
161
  *
117
162
  * @returns instantiated wallet
118
163
  */
119
- static replaceNamed<T extends typeof BaseWallet>(this: T, name: string, walletId: string, dbName?: string): Promise<InstanceType<T>>;
164
+ static replaceNamed<T extends typeof Wallet>(this: T, name: string, walletId: string, dbName?: string): Promise<InstanceType<T>>;
120
165
  /**
121
166
  * namedExists - check if a named wallet already exists
122
167
  *
@@ -126,71 +171,220 @@ export declare class BaseWallet implements WalletI {
126
171
  * @returns boolean
127
172
  */
128
173
  static namedExists(name: string, dbName?: string): Promise<boolean>;
174
+ protected fromId(walletId: string): Promise<this>;
175
+ protected watchOnly(address: string): Promise<this>;
129
176
  /**
130
- * generate creates a new wallet
131
- * @throws {Error} if called on BaseWallet
177
+ * utxos Get unspent outputs for the wallet
178
+ *
132
179
  */
133
- protected generate(): Promise<this>;
180
+ getUtxos(): Promise<UtxoI[]>;
181
+ getBalance(rawUnit?: string, priceCache?: boolean): Promise<BalanceResponse | number>;
182
+ getBalanceFromUtxos(): Promise<number>;
183
+ getBalanceFromProvider(): Promise<number>;
184
+ getAddressUtxos(address?: string): Promise<UtxoI[]>;
185
+ watchAddress(callback: (txHash: string) => void): Promise<CancelFn>;
186
+ watchAddressTransactions(callback: (tx: ElectrumRawTransaction) => void): Promise<CancelFn>;
187
+ watchAddressTokenTransactions(callback: (tx: ElectrumRawTransaction) => void): Promise<CancelFn>;
188
+ watchBalance(callback: (balance: BalanceResponse) => void): Promise<CancelFn>;
189
+ watchBalanceUsd(callback: (balance: BalanceResponse) => void, usdPriceRefreshInterval?: number): Promise<CancelFn>;
190
+ waitForBalance(value: number, rawUnit?: UnitEnum): Promise<BalanceResponse>;
191
+ watchTokenBalance(tokenId: string, callback: (balance: bigint) => void): Promise<CancelFn>;
192
+ waitForTokenBalance(tokenId: string, amount: bigint): Promise<bigint>;
193
+ getTokenInfo(tokenId: string): Promise<IdentitySnapshot | undefined>;
194
+ protected _getMaxAmountToSend(params?: {
195
+ outputCount?: number;
196
+ options?: SendRequestOptionsI;
197
+ privateKey?: Uint8Array;
198
+ }): Promise<{
199
+ value: number;
200
+ utxos: UtxoI[];
201
+ }>;
202
+ getMaxAmountToSend(params?: {
203
+ outputCount?: number;
204
+ options?: SendRequestOptionsI;
205
+ }): Promise<BalanceResponse>;
134
206
  /**
135
- * fromId - creates a wallet from serialized string
207
+ * send Send some amount to an address
208
+ * this function processes the send requests, encodes the transaction, sends it to the network
209
+ * @returns (depending on the options parameter) the transaction id, new address balance and a link to the transaction on the blockchain explorer
210
+ *
211
+ * This is a first class function with REST analog, maintainers should strive to keep backward-compatibility
136
212
  *
137
- * @throws {Error} if called on BaseWallet
138
213
  */
139
- protected fromId(walletId: string): Promise<this>;
140
- protected fromSeed(mnemonic: string, derivationPath?: string): Promise<this>;
214
+ send(requests: SendRequest | TokenSendRequest | OpReturnData | Array<SendRequest | TokenSendRequest | OpReturnData> | SendRequestArray[], options?: SendRequestOptionsI): Promise<SendResponse>;
141
215
  /**
142
- * newRandom (internal) if the wallet is named, get or create it; otherwise create a random
143
- * unnamed wallet
144
- * @param {string} name name of the wallet
145
- * @param {string} dbName database name the wallet is stored in
216
+ * sendMax Send all available funds to a destination cash address
217
+ *
218
+ * @param {string} cashaddr destination cash address
219
+ * @param {SendRequestOptionsI} options Options of the send requests
220
+ *
221
+ * @returns (depending on the options parameter) the transaction id, new address balance and a link to the transaction on the blockchain explorer
146
222
  */
147
- protected newRandom(name: string, dbName?: string): Promise<this>;
148
- protected watchOnly(address: string): Promise<this>;
223
+ sendMax(cashaddr: string, options?: SendRequestOptionsI): Promise<SendResponse>;
149
224
  /**
150
- * named (internal) get a named wallet from the database or create a new one.
151
- * Note: this function should behave identically if
225
+ * sendMaxRaw (internal) Send all available funds to a destination cash address
152
226
  *
153
- * @param {string} name name of the wallet
154
- * @param {string} dbName database name the wallet is stored in
155
- * @param {boolean} forceNew attempt to overwrite an existing wallet
227
+ * @param {string} cashaddr destination cash address
228
+ * @param {SendRequestOptionsI} options Options of the send requests
156
229
  *
157
- * @throws {Error} if forceNew is true and the wallet already exists
158
- * @returns a promise to a named wallet
230
+ * @returns the transaction id sent to the network
159
231
  */
160
- protected named(name: string, dbName?: string, forceNew?: boolean): Promise<this>;
232
+ protected sendMaxRaw(cashaddr: string, options?: SendRequestOptionsI, privateKey?: Uint8Array): Promise<SendResponse>;
161
233
  /**
162
- * replaceNamed - Replace (recover) named wallet with a new walletId
234
+ * encodeTransaction Encode and sign a transaction given a list of sendRequests, options and estimate fees.
235
+ * @param {SendRequest[]} sendRequests SendRequests
236
+ * @param {boolean} discardChange=false
237
+ * @param {SendRequestOptionsI} options Options of the send requests
238
+ */
239
+ protected encodeTransaction(requests: SendRequest | TokenSendRequest | OpReturnData | Array<SendRequest | TokenSendRequest | OpReturnData> | SendRequestArray[], discardChange?: boolean, options?: SendRequestOptionsI, privateKey?: Uint8Array): Promise<{
240
+ encodedTransaction: Uint8Array;
241
+ tokenIds: string[];
242
+ sourceOutputs: any[];
243
+ }>;
244
+ submitTransaction(transaction: Uint8Array, awaitPropagation?: boolean): Promise<string>;
245
+ getRawHistory(fromHeight?: number, toHeight?: number): Promise<TxI[]>;
246
+ /**
247
+ * getHistory gets transaction history of this wallet with most data decoded and ready to present to user
248
+ * @note balance calculations are valid only if querying to the blockchain tip (`toHeight` === -1, `count` === -1)
249
+ * @note this method is heavy on network calls, if invoked in browser use of cache is advised, @see `Config.UseLocalStorageCache`
250
+ * @note this method tries to recreate the history tab view of Electron Cash wallet, however, it may not be 100% accurate if the tnransaction value changes are the same in the same block (ordering)
251
+ *
252
+ * @param unit optional, BCH or currency unit to present balance and balance changes. If unit is currency like USD or EUR, balances will be subject to possible rounding errors. Default 0
253
+ * @param fromHeight optional, if set, history will be limited. Default 0
254
+ * @param toHeight optional, if set, history will be limited. Default -1, meaning that all history items will be returned, including mempool
255
+ * @param start optional, if set, the result set will be paginated with offset `start`
256
+ * @param count optional, if set, the result set will be paginated with `count`. Default -1, meaning that all history items will be returned
257
+ *
258
+ * @returns an array of transaction history items, with input values and addresses encoded in cashaddress format. @see `TransactionHistoryItem` type
259
+ */
260
+ getHistory({ unit, fromHeight, toHeight, start, count, }: {
261
+ unit?: UnitEnum;
262
+ fromHeight?: number;
263
+ toHeight?: number;
264
+ start?: number;
265
+ count?: number;
266
+ }): Promise<TransactionHistoryItem[]>;
267
+ getLastTransaction(confirmedOnly?: boolean): Promise<ElectrumRawTransaction | null>;
268
+ waitForTransaction(options?: WaitForTransactionOptions): Promise<WaitForTransactionResponse>;
269
+ /**
270
+ * watchBlocks Watch network blocks
163
271
  *
164
- * If wallet with a provided name does not exist yet, it will be created with a `walletId` supplied
165
- * If wallet exists it will be overwritten without exception
272
+ * @param callback callback with a block header object
273
+ * @param skipCurrentHeight if set, the notification about current block will not arrive
166
274
  *
167
- * @param name user friendly wallet alias
168
- * @param walletId walletId options to steer the creation process
169
- * @param dbName name under which the wallet will be stored in the database
170
- *
171
- * @returns instantiated wallet
275
+ * @returns a function which will cancel watching upon evaluation
172
276
  */
173
- protected replaceNamed(name: string, walletId: string, dbName?: string): Promise<this>;
277
+ watchBlocks(callback: (header: HexHeaderI) => void, skipCurrentHeight?: boolean): Promise<CancelFn>;
174
278
  /**
175
- * namedExists - check if a named wallet already exists
279
+ * waitForBlock Wait for a network block
176
280
  *
177
- * @param name user friendly wallet alias
178
- * @param dbName name under which the wallet will be stored in the database
281
+ * @param height if specified waits for this exact blockchain height, otherwise resolves with the next block
179
282
  *
180
- * @returns boolean
181
283
  */
182
- protected namedExists(name: string, dbName?: string): Promise<boolean>;
284
+ waitForBlock(height?: number): Promise<HexHeaderI>;
285
+ verify(message: string, sig: string, publicKey?: Uint8Array): Promise<import("../index.js").VerifyMessageResponseI>;
183
286
  /**
184
- * toDbString - store the serialized version of the wallet in the database, not just the name
185
- *
186
- * @throws {Error} if called on BaseWallet
287
+ * Create new cashtoken, both funglible and/or non-fungible (NFT)
288
+ * Refer to spec https://github.com/bitjson/cashtokens
289
+ * @param {number} genesisRequest.amount amount of *fungible* tokens to create
290
+ * @param {NFTCapability?} genesisRequest.capability capability of new NFT
291
+ * @param {string?} genesisRequest.commitment NFT commitment message
292
+ * @param {string?} genesisRequest.cashaddr cash address to send the created token UTXO to; if undefined will default to your address
293
+ * @param {number?} genesisRequest.value satoshi value to send alongside with tokens; if undefined will default to 1000 satoshi
294
+ * @param {SendRequestType | SendRequestType[]} sendRequests single or an array of extra send requests (OP_RETURN, value transfer, etc.) to include in genesis transaction
295
+ * @param {SendRequestOptionsI} options Options of the send requests
187
296
  */
188
- toDbString(): string;
189
- toString(): string;
190
- getBalance(rawUnit?: any): Promise<any>;
191
- getMaxAmountToSend(params?: any): Promise<any>;
192
- send(requests: any, options?: any): Promise<any>;
193
- sendMax(address: string, options?: any): Promise<any>;
297
+ tokenGenesis(genesisRequest: TokenGenesisRequest, sendRequests?: SendRequestType | SendRequestType[], options?: SendRequestOptionsI): Promise<SendResponse>;
298
+ /**
299
+ * Mint new NFT cashtokens using an existing minting token
300
+ * Refer to spec https://github.com/bitjson/cashtokens
301
+ * @param {string} tokenId tokenId of an NFT to mint
302
+ * @param {TokenMintRequest | TokenMintRequest[]} mintRequests mint requests with new token properties and recipients
303
+ * @param {NFTCapability?} mintRequest.capability capability of new NFT
304
+ * @param {string?} mintRequest.commitment NFT commitment message
305
+ * @param {string?} mintRequest.cashaddr cash address to send the created token UTXO to; if undefined will default to your address
306
+ * @param {number?} mintRequest.value satoshi value to send alongside with tokens; if undefined will default to 1000 satoshi
307
+ * @param {boolean?} deductTokenAmount if minting token contains fungible amount, deduct from it by amount of minted tokens
308
+ * @param {SendRequestOptionsI} options Options of the send requests
309
+ */
310
+ tokenMint(tokenId: string, mintRequests: TokenMintRequest | Array<TokenMintRequest>, deductTokenAmount?: boolean, options?: SendRequestOptionsI): Promise<SendResponse>;
311
+ /**
312
+ * Perform an explicit token burning by spending a token utxo to an OP_RETURN
313
+ *
314
+ * Behaves differently for fungible and non-fungible tokens:
315
+ * * NFTs are always "destroyed"
316
+ * * FTs' amount is reduced by the amount specified, if 0 FT amount is left and no NFT present, the token is "destroyed"
317
+ *
318
+ * Refer to spec https://github.com/bitjson/cashtokens
319
+ * @param {string} burnRequest.tokenId tokenId of a token to burn
320
+ * @param {NFTCapability} burnRequest.capability capability of the NFT token to select, optional
321
+ * @param {string?} burnRequest.commitment commitment of the NFT token to select, optional
322
+ * @param {number?} burnRequest.amount amount of fungible tokens to burn, optional
323
+ * @param {string?} burnRequest.cashaddr address to return token and satoshi change to
324
+ * @param {string?} message optional message to include in OP_RETURN
325
+ * @param {SendRequestOptionsI} options Options of the send requests
326
+ */
327
+ tokenBurn(burnRequest: TokenBurnRequest, message?: string, options?: SendRequestOptionsI): Promise<SendResponse>;
328
+ /**
329
+ * getTokenUtxos Get unspent token outputs for the wallet
330
+ * will return utxos only for the specified token if `tokenId` provided
331
+ * @param {string?} tokenId tokenId (category) to filter utxos by, if not set will return utxos from all tokens
332
+ * @returns {UtxoI[]} token utxos
333
+ */
334
+ getTokenUtxos(tokenId?: string): Promise<UtxoI[]>;
335
+ /**
336
+ * getTokenBalance Gets fungible token balance
337
+ * for NFT token balance see @ref getNftTokenBalance
338
+ * @param {string} tokenId tokenId to get balance for
339
+ * @returns {bigint} fungible token balance
340
+ */
341
+ getTokenBalance(tokenId: string): Promise<bigint>;
342
+ /**
343
+ * getNftTokenBalance Gets non-fungible token (NFT) balance for a particular tokenId
344
+ * disregards fungible token balances
345
+ * for fungible token balance see @ref getTokenBalance
346
+ * @param {string} tokenId tokenId to get balance for
347
+ * @returns {number} non-fungible token balance
348
+ */
349
+ getNftTokenBalance(tokenId: string): Promise<number>;
350
+ /**
351
+ * getAllTokenBalances Gets all fungible token balances in this wallet
352
+ * @returns {Object} a map [tokenId => balance] for all tokens in this wallet
353
+ */
354
+ getAllTokenBalances(): Promise<{
355
+ [tokenId: string]: bigint;
356
+ }>;
357
+ /**
358
+ * getAllNftTokenBalances Gets all non-fungible token (NFT) balances in this wallet
359
+ * @returns {Object} a map [tokenId => balance] for all NFTs in this wallet
360
+ */
361
+ getAllNftTokenBalances(): Promise<{
362
+ [tokenId: string]: number;
363
+ }>;
364
+ }
365
+ /**
366
+ * Class to manage a mainnet watch wallet.
367
+ */
368
+ export declare class WatchWallet extends BaseWallet {
369
+ static networkPrefix: CashAddressNetworkPrefix;
370
+ static walletType: WalletTypeEnum;
371
+ constructor();
372
+ }
373
+ /**
374
+ * Class to manage a testnet watch wallet.
375
+ */
376
+ export declare class TestNetWatchWallet extends BaseWallet {
377
+ static networkPrefix: CashAddressNetworkPrefix;
378
+ static walletType: WalletTypeEnum;
379
+ constructor();
380
+ }
381
+ /**
382
+ * Class to manage a regtest watch wallet.
383
+ */
384
+ export declare class RegTestWatchWallet extends BaseWallet {
385
+ static networkPrefix: CashAddressNetworkPrefix;
386
+ static walletType: WalletTypeEnum;
387
+ constructor();
194
388
  }
195
389
  /**
196
390
  * getNamedWalletId - get the full wallet id from the database
@@ -1 +1 @@
1
- {"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/wallet/Base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/wallet/Base.ts"],"names":[],"mappings":"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"}