mainnet-js 2.7.33 → 3.0.0-next.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.
Files changed (126) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/{mainnet-2.7.33.js → mainnet-3.0.0-next.0.js} +718 -678
  3. package/dist/module/cache/MemoryCache.d.ts +0 -1
  4. package/dist/module/cache/MemoryCache.d.ts.map +1 -1
  5. package/dist/module/cache/MemoryCache.js +5 -7
  6. package/dist/module/cache/MemoryCache.js.map +1 -1
  7. package/dist/module/cache/index.d.ts +1 -0
  8. package/dist/module/cache/index.d.ts.map +1 -1
  9. package/dist/module/cache/index.js +1 -0
  10. package/dist/module/cache/index.js.map +1 -1
  11. package/dist/module/cache/walletCache.d.ts +39 -0
  12. package/dist/module/cache/walletCache.d.ts.map +1 -0
  13. package/dist/module/cache/walletCache.js +141 -0
  14. package/dist/module/cache/walletCache.js.map +1 -0
  15. package/dist/module/history/{electrumTransformer.d.ts → getHistory.d.ts} +3 -3
  16. package/dist/module/history/getHistory.d.ts.map +1 -0
  17. package/dist/module/history/{electrumTransformer.js → getHistory.js} +47 -14
  18. package/dist/module/history/getHistory.js.map +1 -0
  19. package/dist/module/index.d.ts +3 -1
  20. package/dist/module/index.d.ts.map +1 -1
  21. package/dist/module/index.js +3 -1
  22. package/dist/module/index.js.map +1 -1
  23. package/dist/module/interface.d.ts +7 -1
  24. package/dist/module/interface.d.ts.map +1 -1
  25. package/dist/module/interface.js.map +1 -1
  26. package/dist/module/message/interface.d.ts +2 -2
  27. package/dist/module/message/interface.d.ts.map +1 -1
  28. package/dist/module/message/interface.js +0 -3
  29. package/dist/module/message/interface.js.map +1 -1
  30. package/dist/module/message/signed.d.ts +5 -5
  31. package/dist/module/message/signed.d.ts.map +1 -1
  32. package/dist/module/message/signed.js +8 -8
  33. package/dist/module/message/signed.js.map +1 -1
  34. package/dist/module/network/ElectrumNetworkProvider.d.ts +2 -2
  35. package/dist/module/network/ElectrumNetworkProvider.d.ts.map +1 -1
  36. package/dist/module/network/ElectrumNetworkProvider.js +2 -1
  37. package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
  38. package/dist/module/network/NetworkProvider.d.ts +2 -2
  39. package/dist/module/network/NetworkProvider.d.ts.map +1 -1
  40. package/dist/module/network/constant.js +4 -4
  41. package/dist/module/network/constant.js.map +1 -1
  42. package/dist/module/transaction/Wif.d.ts +21 -19
  43. package/dist/module/transaction/Wif.d.ts.map +1 -1
  44. package/dist/module/transaction/Wif.js +18 -15
  45. package/dist/module/transaction/Wif.js.map +1 -1
  46. package/dist/module/util/checkUtxos.d.ts +2 -2
  47. package/dist/module/util/checkUtxos.d.ts.map +1 -1
  48. package/dist/module/util/checkUtxos.js +11 -12
  49. package/dist/module/util/checkUtxos.js.map +1 -1
  50. package/dist/module/util/deriveCashaddr.d.ts.map +1 -1
  51. package/dist/module/util/deriveCashaddr.js +6 -0
  52. package/dist/module/util/deriveCashaddr.js.map +1 -1
  53. package/dist/module/util/deriveNetwork.js +1 -1
  54. package/dist/module/util/deriveNetwork.js.map +1 -1
  55. package/dist/module/util/hd.d.ts +3 -0
  56. package/dist/module/util/hd.d.ts.map +1 -0
  57. package/dist/module/util/hd.js +11 -0
  58. package/dist/module/util/hd.js.map +1 -0
  59. package/dist/module/util/index.d.ts +1 -0
  60. package/dist/module/util/index.d.ts.map +1 -1
  61. package/dist/module/util/index.js +1 -0
  62. package/dist/module/util/index.js.map +1 -1
  63. package/dist/module/util/sumUtxoValue.d.ts +3 -3
  64. package/dist/module/util/sumUtxoValue.d.ts.map +1 -1
  65. package/dist/module/util/sumUtxoValue.js.map +1 -1
  66. package/dist/module/wallet/Base.d.ts +37 -93
  67. package/dist/module/wallet/Base.d.ts.map +1 -1
  68. package/dist/module/wallet/Base.js +83 -250
  69. package/dist/module/wallet/Base.js.map +1 -1
  70. package/dist/module/wallet/HDWallet.d.ts +164 -0
  71. package/dist/module/wallet/HDWallet.d.ts.map +1 -0
  72. package/dist/module/wallet/HDWallet.js +486 -0
  73. package/dist/module/wallet/HDWallet.js.map +1 -0
  74. package/dist/module/wallet/Watch.d.ts +151 -0
  75. package/dist/module/wallet/Watch.d.ts.map +1 -0
  76. package/dist/module/wallet/Watch.js +307 -0
  77. package/dist/module/wallet/Watch.js.map +1 -0
  78. package/dist/module/wallet/Wif.d.ts +23 -29
  79. package/dist/module/wallet/Wif.d.ts.map +1 -1
  80. package/dist/module/wallet/Wif.js +204 -267
  81. package/dist/module/wallet/Wif.js.map +1 -1
  82. package/dist/module/wallet/createWallet.d.ts +7 -1
  83. package/dist/module/wallet/createWallet.d.ts.map +1 -1
  84. package/dist/module/wallet/createWallet.js +26 -17
  85. package/dist/module/wallet/createWallet.js.map +1 -1
  86. package/dist/module/wallet/interface.d.ts +3 -3
  87. package/dist/module/wallet/interface.d.ts.map +1 -1
  88. package/dist/module/wallet/model.d.ts +3 -3
  89. package/dist/module/wallet/model.d.ts.map +1 -1
  90. package/dist/module/wallet/model.js +2 -18
  91. package/dist/module/wallet/model.js.map +1 -1
  92. package/dist/tsconfig.tsbuildinfo +1 -1
  93. package/package.json +1 -1
  94. package/src/cache/MemoryCache.ts +5 -5
  95. package/src/cache/index.ts +1 -0
  96. package/src/cache/walletCache.ts +252 -0
  97. package/src/history/{electrumTransformer.test.ts → getHistory.test.ts} +6 -19
  98. package/src/history/{electrumTransformer.ts → getHistory.ts} +63 -15
  99. package/src/index.ts +3 -1
  100. package/src/interface.ts +8 -1
  101. package/src/message/interface.ts +2 -28
  102. package/src/message/signed.test.ts +36 -48
  103. package/src/message/signed.ts +9 -12
  104. package/src/network/ElectrumNetworkProvider.ts +4 -4
  105. package/src/network/NetworkProvider.ts +2 -2
  106. package/src/network/Rpc.test.ts +1 -1
  107. package/src/network/constant.ts +4 -4
  108. package/src/transaction/Wif.ts +41 -35
  109. package/src/util/checkUtxos.ts +21 -26
  110. package/src/util/deriveCashaddr.ts +8 -0
  111. package/src/util/deriveNetwork.ts +1 -1
  112. package/src/util/derivePublicKeyHash.test.ts +0 -13
  113. package/src/util/hd.ts +16 -0
  114. package/src/util/index.ts +1 -0
  115. package/src/util/sumUtxoValue.ts +5 -5
  116. package/src/wallet/Base.ts +123 -332
  117. package/src/wallet/HDWallet.test.ts +372 -0
  118. package/src/wallet/HDWallet.ts +764 -0
  119. package/src/wallet/Watch.ts +447 -0
  120. package/src/wallet/Wif.ts +258 -283
  121. package/src/wallet/createWallet.ts +28 -18
  122. package/src/wallet/interface.ts +3 -3
  123. package/src/wallet/model.test.ts +2 -2
  124. package/src/wallet/model.ts +6 -23
  125. package/dist/module/history/electrumTransformer.d.ts.map +0 -1
  126. package/dist/module/history/electrumTransformer.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Watch.d.ts","sourceRoot":"","sources":["../../../src/wallet/Watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAOzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,WAAW,EAEX,QAAQ,EACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAG,UAAU,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAG,MAAM,CAAC;IAE5B,MAAM,CAAC,aAAa,2BAAoC;IACxD,MAAM,CAAC,UAAU,iBAAwB;gBAGvC,IAAI,SAAK,EACT,OAAO,cAAsB,EAC7B,UAAU,iBAAuB;cAWnB,UAAU,CAAC,EACzB,IAAS,EACT,SAAqB,EACrB,mBAA+B,EAC/B,aAAyB,EACzB,OAAmB,GACpB,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6E1C;;;;;;;;OAQG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;;;;;OAQG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;;;OAIG;IACI,sBAAsB,IAAI,MAAM;IAKhC,gBAAgB,CAAC,GAAG,UAAQ,GAAG,MAAM,GAAG,UAAU;IAKlD,YAAY,CAAC,GAAG,UAAQ,GAAG,MAAM,GAAG,UAAU;IAW9C,sBAAsB,CAAC,GAAG,UAAQ,GAAG,MAAM,GAAG,UAAU;IAaxD,OAAO,IAAI,WAAW;IAa7B;;;OAGG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAI3B,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAgBlD,aAAa,CACxB,UAAU,GAAE,MAAU,EACtB,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjB;;;;;;;;;;;;;OAaG;IACU,UAAU,CAAC,EACtB,IAAY,EACZ,UAAc,EACd,QAAa,EACb,KAAS,EACT,KAAU,GACX,GAAE;QACD,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAY1C,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAsBjC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD;;;;;;;;;OASG;WACiB,SAAS,CAAC,CAAC,SAAS,OAAO,WAAW,EACxD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM;IAQjB;;;;;;;;;OASG;WACiB,YAAY,CAAC,CAAC,SAAS,OAAO,WAAW,EAC3D,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAS3B;;;;;;;;;OASG;WACiB,aAAa,CAAC,CAAC,SAAS,OAAO,WAAW,EAC5D,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAS3B;;;;;;;;;OASG;WACiB,aAAa,CAAC,CAAC,SAAS,OAAO,WAAW,EAC5D,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAapB,MAAM,CACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,UAAU,GACrB,sBAAsB;CAO1B;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,aAAa,2BAAoC;IACxD,MAAM,CAAC,UAAU,iBAAwB;gBAC7B,IAAI,SAAK,EAAE,OAAO,cAAsB;CAGrD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,aAAa,2BAAoC;IACxD,MAAM,CAAC,UAAU,iBAAwB;gBAC7B,IAAI,SAAK,EAAE,OAAO,cAAsB;CAGrD"}
@@ -0,0 +1,307 @@
1
+ import { binToHex, CashAddressNetworkPrefix, decodeCashAddress, secp256k1, encodeCashAddress, assertSuccess, hash160, decodeCashAddressFormatWithoutPrefix, } from "@bitauth/libauth";
2
+ import { networkPrefixMap, NetworkType, prefixFromNetworkMap, } from "../enum.js";
3
+ import { BaseWallet } from "./Base.js";
4
+ import { WalletTypeEnum } from "./enum.js";
5
+ import { DUST_UTXO_THRESHOLD } from "../constant.js";
6
+ import { derivePrefix } from "../util/derivePublicKeyHash.js";
7
+ import { getHistory } from "../history/getHistory.js";
8
+ import { toCashaddr, toTokenaddr } from "../util/deriveCashaddr.js";
9
+ /**
10
+ * Class to manage a mainnet watch wallet.
11
+ */
12
+ export class WatchWallet extends BaseWallet {
13
+ static { this.networkPrefix = CashAddressNetworkPrefix.mainnet; }
14
+ static { this.walletType = WalletTypeEnum.Watch; }
15
+ constructor(name = "", network = NetworkType.Mainnet, walletType = WalletTypeEnum.Watch) {
16
+ super(network);
17
+ this.name = name;
18
+ // @ts-ignore
19
+ this.walletType = walletType;
20
+ }
21
+ /// Initialize the watch-only wallet given the options - publicKey variations
22
+ /// This internal method is called by the various static constructors
23
+ async initialize({ name = "", publicKey = undefined, publicKeyCompressed = undefined, publicKeyHash = undefined, address = undefined, } = {}) {
24
+ if (publicKey?.length) {
25
+ // @ts-ignore
26
+ this.publicKey = publicKey;
27
+ if (!publicKeyCompressed) {
28
+ publicKeyCompressed = assertSuccess(secp256k1.compressPublicKey(publicKey));
29
+ }
30
+ }
31
+ if (publicKeyCompressed?.length) {
32
+ // @ts-ignore
33
+ this.publicKeyCompressed = publicKeyCompressed;
34
+ if (!publicKey) {
35
+ publicKey = assertSuccess(secp256k1.uncompressPublicKey(publicKeyCompressed));
36
+ // @ts-ignore
37
+ this.publicKey = publicKey;
38
+ }
39
+ publicKeyHash = hash160(publicKeyCompressed);
40
+ }
41
+ if (publicKeyHash?.length) {
42
+ // @ts-ignore
43
+ this.publicKeyHash = publicKeyHash;
44
+ address = encodeCashAddress({
45
+ prefix: prefixFromNetworkMap[this.network],
46
+ type: "p2pkh",
47
+ payload: publicKeyHash,
48
+ }).address;
49
+ }
50
+ if (address?.length) {
51
+ // derive prefix if not provided
52
+ if (!address.includes(":")) {
53
+ const decoded = assertSuccess(decodeCashAddressFormatWithoutPrefix(address));
54
+ address = `${decoded.prefix}:${address}`;
55
+ }
56
+ const decoded = assertSuccess(decodeCashAddress(address));
57
+ if (networkPrefixMap[decoded.prefix] !== this.network) {
58
+ throw Error(`a ${decoded.prefix} address cannot be watched from a ${this.network} Wallet`);
59
+ }
60
+ if (!this.publicKeyHash?.length) {
61
+ if (decoded.type.includes("p2pkh")) {
62
+ // @ts-ignore
63
+ this.publicKeyHash = decoded.payload;
64
+ }
65
+ }
66
+ // @ts-ignore
67
+ this.cashaddr = toCashaddr(address);
68
+ // @ts-ignore
69
+ this.tokenaddr = toTokenaddr(address);
70
+ }
71
+ if (!this.cashaddr?.length || !this.tokenaddr?.length) {
72
+ throw Error("Could not initialize wallet - insufficient parameters");
73
+ }
74
+ this.name = name;
75
+ return this;
76
+ }
77
+ /**
78
+ * getDepositAddress - get a wallet deposit address
79
+ *
80
+ * a high-level function,
81
+ *
82
+ * @see {@link https://rest-unstable.mainnet.cash/api-docs/#/wallet/depositAddress|/wallet/deposit_address} for REST endpoint
83
+ *
84
+ * @returns The deposit address as a string
85
+ */
86
+ getDepositAddress() {
87
+ return this.cashaddr;
88
+ }
89
+ /**
90
+ * getChangeAddress - get a wallet change address
91
+ *
92
+ * a high-level function,
93
+ *
94
+ * @see {@link https://rest-unstable.mainnet.cash/api-docs/#/wallet/changeAddress|/wallet/change_address} for REST endpoint
95
+ *
96
+ * @returns The change address as a string
97
+ */
98
+ getChangeAddress() {
99
+ return this.cashaddr;
100
+ }
101
+ /**
102
+ * getTokenDepositAddress - get a cashtoken aware wallet deposit address
103
+ *
104
+ * @returns The cashtoken aware deposit address as a string
105
+ */
106
+ getTokenDepositAddress() {
107
+ return this.tokenaddr;
108
+ }
109
+ // returns the public key hash for an address
110
+ getPublicKeyHash(hex = false) {
111
+ return hex ? binToHex(this.publicKeyHash) : this.publicKeyHash;
112
+ }
113
+ // returns the public key hash for an address
114
+ getPublicKey(hex = false) {
115
+ if (this.publicKey) {
116
+ return hex ? binToHex(this.publicKey) : this.publicKey;
117
+ }
118
+ else {
119
+ throw Error("The public key for this wallet is not known, perhaps the wallet was created to watch the *hash* of a public key? i.e. a cashaddress.");
120
+ }
121
+ }
122
+ // returns the public key hash for an address
123
+ getPublicKeyCompressed(hex = false) {
124
+ if (this.publicKeyCompressed) {
125
+ return hex
126
+ ? binToHex(this.publicKeyCompressed)
127
+ : this.publicKeyCompressed;
128
+ }
129
+ else {
130
+ throw Error("The compressed public key for this wallet is not known, perhaps the wallet was created to watch the *hash* of a public key? i.e. a cashaddress.");
131
+ }
132
+ }
133
+ // Return wallet info
134
+ getInfo() {
135
+ return {
136
+ cashaddr: this.cashaddr,
137
+ tokenaddr: this.tokenaddr,
138
+ isTestnet: this.isTestnet,
139
+ name: this.name,
140
+ network: this.network,
141
+ publicKeyHash: binToHex(this.publicKeyHash),
142
+ walletId: this.toString(),
143
+ walletDbEntry: this.toDbString(),
144
+ };
145
+ }
146
+ /**
147
+ * utxos Get unspent outputs for the wallet
148
+ *
149
+ */
150
+ async getUtxos() {
151
+ return this.getAddressUtxos(this.cashaddr);
152
+ }
153
+ async getAddressUtxos(address) {
154
+ if (!address) {
155
+ address = this.cashaddr;
156
+ }
157
+ if (this._slpSemiAware) {
158
+ const bchUtxos = await this.provider.getUtxos(address);
159
+ return bchUtxos.filter((bchutxo) => bchutxo.satoshis > DUST_UTXO_THRESHOLD);
160
+ }
161
+ else {
162
+ return this.provider.getUtxos(address);
163
+ }
164
+ }
165
+ // gets transaction history of this wallet
166
+ async getRawHistory(fromHeight = 0, toHeight = -1) {
167
+ return await this.provider.getHistory(this.cashaddr, fromHeight, toHeight);
168
+ }
169
+ /**
170
+ * getHistory gets transaction history of this wallet with most data decoded and ready to present to user
171
+ * @note balance calculations are valid only if querying to the blockchain tip (`toHeight` === -1, `count` === -1)
172
+ * @note this method is heavy on network calls, if invoked in browser use of cache is advised, @see `Config.UseLocalStorageCache`
173
+ * @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)
174
+ *
175
+ * @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
176
+ * @param fromHeight optional, if set, history will be limited. Default 0
177
+ * @param toHeight optional, if set, history will be limited. Default -1, meaning that all history items will be returned, including mempool
178
+ * @param start optional, if set, the result set will be paginated with offset `start`
179
+ * @param count optional, if set, the result set will be paginated with `count`. Default -1, meaning that all history items will be returned
180
+ *
181
+ * @returns an array of transaction history items, with input values and addresses encoded in cashaddress format. @see `TransactionHistoryItem` type
182
+ */
183
+ async getHistory({ unit = "sat", fromHeight = 0, toHeight = -1, start = 0, count = -1, } = {}) {
184
+ return getHistory({
185
+ addresses: [this.cashaddr],
186
+ provider: this.provider,
187
+ unit,
188
+ fromHeight,
189
+ toHeight,
190
+ start,
191
+ count,
192
+ });
193
+ }
194
+ fromId(walletId) {
195
+ const [walletType, networkGiven, arg1, arg2] = walletId.split(":");
196
+ if (walletType !== WalletTypeEnum.Watch) {
197
+ throw Error(`fromId called on a ${walletType} wallet, expected a ${WalletTypeEnum.Watch} wallet`);
198
+ }
199
+ if (this.network != networkGiven) {
200
+ throw Error(`Network prefix ${networkGiven} to a ${this.network} wallet`);
201
+ }
202
+ if (arg2) {
203
+ return this.watchOnly(`${arg1}:${arg2}`);
204
+ }
205
+ return this.watchOnly(arg1);
206
+ }
207
+ // Initialize a watch only wallet from a cash addr
208
+ async watchOnly(address) {
209
+ // @ts-ignore
210
+ this.walletType = WalletTypeEnum.Watch;
211
+ return this.initialize({ address, name: this.name });
212
+ }
213
+ /**
214
+ * watchOnly - create a watch-only wallet
215
+ *
216
+ * such kind of wallet does not have a private key and is unable to spend any funds
217
+ * however it still allows to use many utility functions such as getting and watching balance, etc.
218
+ *
219
+ * @param address cashaddress, token aware cashaddress of a wallet
220
+ *
221
+ * @returns instantiated wallet
222
+ */
223
+ static async watchOnly(address) {
224
+ if (!address?.length)
225
+ throw Error("address is required to create a watch-only wallet");
226
+ return new this().watchOnly(address);
227
+ }
228
+ /**
229
+ * fromCashaddr - create a watch-only wallet in the network derived from the address
230
+ *
231
+ * such kind of wallet does not have a private key and is unable to spend any funds
232
+ * however it still allows to use many utility functions such as getting and watching balance, etc.
233
+ *
234
+ * @param address cashaddress of a wallet
235
+ *
236
+ * @returns instantiated wallet
237
+ */
238
+ static async fromCashaddr(address) {
239
+ if (!address?.length)
240
+ throw Error("address is required to create a watch-only wallet");
241
+ const prefix = derivePrefix(address);
242
+ const networkType = networkPrefixMap[prefix];
243
+ return new this("", networkType).watchOnly(address);
244
+ }
245
+ /**
246
+ * fromTokenaddr - create a watch-only wallet in the network derived from the address
247
+ *
248
+ * such kind of wallet does not have a private key and is unable to spend any funds
249
+ * however it still allows to use many utility functions such as getting and watching balance, etc.
250
+ *
251
+ * @param address token aware cashaddress of a wallet
252
+ *
253
+ * @returns instantiated wallet
254
+ */
255
+ static async fromTokenaddr(address) {
256
+ if (!address?.length)
257
+ throw Error("address is required to create a watch-only wallet");
258
+ const prefix = derivePrefix(address);
259
+ const networkType = networkPrefixMap[prefix];
260
+ return new this("", networkType).watchOnly(address);
261
+ }
262
+ /**
263
+ * fromPublicKey - create a watch-only wallet in the network derived from the compressed or uncompressed public key
264
+ *
265
+ * such kind of wallet does not have a private key and is unable to spend any funds
266
+ * however it still allows to use many utility functions such as getting and watching balance, etc.
267
+ *
268
+ * @param publicKey compressed or uncompressed public key
269
+ *
270
+ * @returns instantiated wallet
271
+ */
272
+ static async fromPublicKey(publicKey) {
273
+ this.walletType = WalletTypeEnum.Watch;
274
+ return new this("", networkPrefixMap[this.networkPrefix]).initialize({
275
+ publicKey: publicKey.length === 33 ? undefined : publicKey,
276
+ publicKeyCompressed: publicKey.length === 33 ? publicKey : undefined,
277
+ });
278
+ }
279
+ // Convenience wrapper to verify interface
280
+ verify(message, sig, address, publicKey) {
281
+ if (!address) {
282
+ address = this.cashaddr;
283
+ }
284
+ return super.verify(message, sig, address, publicKey);
285
+ }
286
+ }
287
+ /**
288
+ * Class to manage a testnet watch wallet.
289
+ */
290
+ export class TestNetWatchWallet extends WatchWallet {
291
+ static { this.networkPrefix = CashAddressNetworkPrefix.testnet; }
292
+ static { this.walletType = WalletTypeEnum.Watch; }
293
+ constructor(name = "", network = NetworkType.Testnet) {
294
+ super(name, network);
295
+ }
296
+ }
297
+ /**
298
+ * Class to manage a regtest watch wallet.
299
+ */
300
+ export class RegTestWatchWallet extends WatchWallet {
301
+ static { this.networkPrefix = CashAddressNetworkPrefix.regtest; }
302
+ static { this.walletType = WalletTypeEnum.Watch; }
303
+ constructor(name = "", network = NetworkType.Regtest) {
304
+ super(name, network);
305
+ }
306
+ }
307
+ //# sourceMappingURL=Watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Watch.js","sourceRoot":"","sources":["../../../src/wallet/Watch.ts"],"names":[],"mappings":"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"}
@@ -3,33 +3,38 @@ import { NetworkType } from "../enum.js";
3
3
  import { WalletTypeEnum } from "./enum.js";
4
4
  import { MnemonicI, SendRequestOptionsI, WalletInfoI } from "./interface.js";
5
5
  import { OpReturnData, SendRequest, SendRequestArray, SendResponse, SourceOutput, TokenSendRequest } from "./model.js";
6
- import { SignedMessageI } from "../message/index.js";
6
+ import { SignedMessageResponseI } from "../message/index.js";
7
7
  import ElectrumNetworkProvider from "../network/ElectrumNetworkProvider.js";
8
- import { BalanceResponse } from "../util/balanceObjectFromSatoshi.js";
9
- import { BaseWallet } from "./Base.js";
8
+ import { WatchWallet } from "./Watch.js";
9
+ export interface WalletOptions {
10
+ name?: string;
11
+ mnemonic?: string;
12
+ derivationPath?: string;
13
+ privateKey?: Uint8Array;
14
+ privateKeyWif?: string;
15
+ publicKey?: Uint8Array;
16
+ publicKeyCompressed?: Uint8Array;
17
+ publicKeyHash?: Uint8Array;
18
+ address?: string;
19
+ }
10
20
  /**
11
21
  * Class to manage a bitcoin cash wallet.
12
22
  */
13
- export declare class Wallet extends BaseWallet {
23
+ export declare class Wallet extends WatchWallet {
14
24
  readonly provider: ElectrumNetworkProvider;
15
- readonly cashaddr: string;
16
- readonly tokenaddr: string;
17
25
  readonly derivationPath: string;
18
26
  readonly parentDerivationPath: string;
19
27
  readonly mnemonic: string;
20
28
  readonly parentXPubKey: string;
21
29
  readonly privateKey: Uint8Array;
22
- readonly publicKeyCompressed: Uint8Array;
23
30
  readonly privateKeyWif: string;
24
- readonly publicKey: Uint8Array;
25
- readonly publicKeyHash: Uint8Array;
26
31
  name: string;
27
- static readonly signedMessage: SignedMessageI;
32
+ constructor(name?: string, network?: NetworkType, walletType?: WalletTypeEnum);
33
+ protected initialize({ name, mnemonic, derivationPath, privateKey, privateKeyWif, publicKey, publicKeyCompressed, publicKeyHash, address, }?: WalletOptions): Promise<this>;
28
34
  getSeed(): MnemonicI;
29
35
  getInfo(): WalletInfoI;
30
- getPublicKey(hex?: boolean): string | Uint8Array;
31
- getPublicKeyCompressed(hex?: boolean): string | Uint8Array;
32
- constructor(name?: string, network?: NetworkType, walletType?: WalletTypeEnum);
36
+ deriveHdPaths(hdPaths: string[]): Promise<any[]>;
37
+ getXPubKeys(paths?: string[]): Promise<any[]>;
33
38
  /**
34
39
  * fromId - create a wallet from encoded walletId string
35
40
  *
@@ -57,15 +62,14 @@ export declare class Wallet extends BaseWallet {
57
62
  /**
58
63
  * fromSeed - create a wallet using the seed phrase and derivation path
59
64
  *
60
- * unless specified the derivation path m/44'/245'/0'/0/0 will be userd
61
- * this derivation path is standard for Electron Cash SLP and other SLP enabled wallets
65
+ * unless specified the derivation path m/44'/0'/0'/0/0 will be used
62
66
  *
63
- * @param seed BIP39 12 word seed phrase
67
+ * @param mnemonic BIP39 12 word seed phrase
64
68
  * @param derivationPath BIP44 HD wallet derivation path to get a single the private key from hierarchy
65
69
  *
66
70
  * @returns instantiated wallet
67
71
  */
68
- static fromSeed<T extends typeof Wallet>(this: T, seed: string, derivationPath?: string): Promise<InstanceType<T>>;
72
+ static fromSeed<T extends typeof Wallet>(this: T, mnemonic: string, derivationPath?: string): Promise<InstanceType<T>>;
69
73
  /**
70
74
  * newRandom - create a random wallet
71
75
  *
@@ -77,15 +81,10 @@ export declare class Wallet extends BaseWallet {
77
81
  * @returns instantiated wallet
78
82
  */
79
83
  static newRandom<T extends typeof Wallet>(this: T, name?: string, dbName?: string): Promise<InstanceType<T>>;
80
- protected generate(): Promise<this>;
81
- private _generateWif;
82
- private _generateMnemonic;
83
84
  protected fromId: (walletId: string) => Promise<this>;
84
- getXPubKeys(paths?: any): Promise<any[]>;
85
85
  protected fromSeed(mnemonic: string, derivationPath?: string): Promise<this>;
86
- deriveHdPaths(hdPaths: string[]): Promise<any[]>;
87
86
  protected fromPrivateKey(privateKey: string | Uint8Array): Promise<this>;
88
- protected fromWIF(secret: string): Promise<this>;
87
+ protected fromWIF(privateKeyWif: string): Promise<this>;
89
88
  /**
90
89
  * newRandom (internal) if the wallet is named, get or create it; otherwise create a random
91
90
  * unnamed wallet
@@ -100,10 +99,6 @@ export declare class Wallet extends BaseWallet {
100
99
  * @throws {Error} if called on BaseWallet
101
100
  */
102
101
  toDbString(): string;
103
- getMaxAmountToSend(params?: {
104
- outputCount?: number;
105
- options?: SendRequestOptionsI;
106
- }): Promise<BalanceResponse>;
107
102
  /**
108
103
  * sendMax Send all available funds to a destination cash address
109
104
  *
@@ -125,8 +120,7 @@ export declare class Wallet extends BaseWallet {
125
120
  sourceOutputs: any[];
126
121
  }>;
127
122
  signUnsignedTransaction(transaction: Uint8Array | string, sourceOutputs: SourceOutput[]): Promise<Uint8Array>;
128
- private deriveInfo;
129
- sign(message: string): Promise<import("../message/interface.js").SignedMessageResponseI>;
123
+ sign(message: string, privateKey?: Uint8Array | undefined): SignedMessageResponseI;
130
124
  }
131
125
  /**
132
126
  * Class to manage a testnet wallet.
@@ -1 +1 @@
1
- {"version":3,"file":"Wif.d.ts","sourceRoot":"","sources":["../../../src/wallet/Wif.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wif.d.ts","sourceRoot":"","sources":["../../../src/wallet/Wif.ts"],"names":[],"mappings":"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"}