@witnet/sdk 1.0.3 → 1.0.4

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 (197) hide show
  1. package/.env_witnet +6 -6
  2. package/LICENSE +21 -21
  3. package/README.md +103 -103
  4. package/dist/bin/helpers.d.ts +88 -0
  5. package/dist/bin/helpers.d.ts.map +1 -0
  6. package/dist/bin/helpers.js +866 -0
  7. package/dist/index.d.ts +4 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +42 -0
  10. package/dist/lib/crypto/account.d.ts +18 -0
  11. package/dist/lib/crypto/account.d.ts.map +1 -0
  12. package/dist/lib/crypto/account.js +152 -0
  13. package/dist/lib/crypto/coinbase.d.ts +9 -0
  14. package/dist/lib/crypto/coinbase.d.ts.map +1 -0
  15. package/dist/lib/crypto/coinbase.js +39 -0
  16. package/dist/lib/crypto/index.d.ts +7 -0
  17. package/dist/lib/crypto/index.d.ts.map +1 -0
  18. package/dist/lib/crypto/index.js +28 -0
  19. package/dist/lib/crypto/interfaces.d.ts +80 -0
  20. package/dist/lib/crypto/interfaces.d.ts.map +1 -0
  21. package/dist/lib/crypto/interfaces.js +3 -0
  22. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +47 -0
  23. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -0
  24. package/dist/lib/crypto/payloads/DataRequestPayload.js +384 -0
  25. package/dist/lib/crypto/payloads/StakePayload.d.ts +27 -0
  26. package/dist/lib/crypto/payloads/StakePayload.d.ts.map +1 -0
  27. package/dist/lib/crypto/payloads/StakePayload.js +184 -0
  28. package/dist/lib/crypto/payloads/UnstakePayload.d.ts +35 -0
  29. package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -0
  30. package/dist/lib/crypto/payloads/UnstakePayload.js +244 -0
  31. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +24 -0
  32. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -0
  33. package/dist/lib/crypto/payloads/ValueTransferPayload.js +182 -0
  34. package/dist/lib/crypto/payloads.d.ts +54 -0
  35. package/dist/lib/crypto/payloads.d.ts.map +1 -0
  36. package/dist/lib/crypto/payloads.js +224 -0
  37. package/dist/lib/crypto/signer.d.ts +26 -0
  38. package/dist/lib/crypto/signer.d.ts.map +1 -0
  39. package/dist/lib/crypto/signer.js +299 -0
  40. package/dist/lib/crypto/transmitters/DataRequests.d.ts +14 -0
  41. package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +1 -0
  42. package/dist/lib/crypto/transmitters/DataRequests.js +62 -0
  43. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +11 -0
  44. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -0
  45. package/dist/lib/crypto/transmitters/StakeDeposits.js +48 -0
  46. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +17 -0
  47. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -0
  48. package/dist/lib/crypto/transmitters/StakeWithdrawals.js +115 -0
  49. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +10 -0
  50. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -0
  51. package/dist/lib/crypto/transmitters/ValueTransfers.js +47 -0
  52. package/dist/lib/crypto/transmitters.d.ts +46 -0
  53. package/dist/lib/crypto/transmitters.d.ts.map +1 -0
  54. package/dist/lib/crypto/transmitters.js +506 -0
  55. package/dist/lib/crypto/types.d.ts +127 -0
  56. package/dist/lib/crypto/types.d.ts.map +1 -0
  57. package/dist/lib/crypto/types.js +261 -0
  58. package/dist/lib/crypto/utils.d.ts +10 -0
  59. package/dist/lib/crypto/utils.d.ts.map +1 -0
  60. package/dist/lib/crypto/utils.js +97 -0
  61. package/dist/lib/crypto/wallet.d.ts +26 -0
  62. package/dist/lib/crypto/wallet.d.ts.map +1 -0
  63. package/dist/lib/crypto/wallet.js +327 -0
  64. package/dist/lib/helpers.d.ts +90 -0
  65. package/dist/lib/helpers.d.ts.map +1 -0
  66. package/dist/lib/helpers.js +1031 -0
  67. package/dist/lib/index.d.ts +5 -0
  68. package/dist/lib/index.d.ts.map +1 -0
  69. package/dist/lib/index.js +21 -0
  70. package/dist/lib/radon/artifacts.d.ts +55 -0
  71. package/dist/lib/radon/artifacts.d.ts.map +1 -0
  72. package/dist/lib/radon/artifacts.js +347 -0
  73. package/dist/lib/radon/ccdr/eth.d.ts +100 -0
  74. package/dist/lib/radon/ccdr/eth.d.ts.map +1 -0
  75. package/dist/lib/radon/ccdr/eth.js +237 -0
  76. package/dist/lib/radon/ccdr/index.d.ts +34 -0
  77. package/dist/lib/radon/ccdr/index.d.ts.map +1 -0
  78. package/dist/lib/radon/ccdr/index.js +63 -0
  79. package/dist/lib/radon/ccdr/wit.d.ts +29 -0
  80. package/dist/lib/radon/ccdr/wit.d.ts.map +1 -0
  81. package/dist/lib/radon/ccdr/wit.js +60 -0
  82. package/dist/lib/radon/filters.d.ts +14 -0
  83. package/dist/lib/radon/filters.d.ts.map +1 -0
  84. package/dist/lib/radon/filters.js +47 -0
  85. package/dist/lib/radon/index.d.ts +36 -0
  86. package/dist/lib/radon/index.d.ts.map +1 -0
  87. package/dist/lib/radon/index.js +154 -0
  88. package/dist/lib/radon/reducers.d.ts +29 -0
  89. package/dist/lib/radon/reducers.d.ts.map +1 -0
  90. package/dist/lib/radon/reducers.js +101 -0
  91. package/dist/lib/radon/retrievals.d.ts +120 -0
  92. package/dist/lib/radon/retrievals.d.ts.map +1 -0
  93. package/dist/lib/radon/retrievals.js +358 -0
  94. package/dist/lib/radon/sources.d.ts +102 -0
  95. package/dist/lib/radon/sources.d.ts.map +1 -0
  96. package/dist/lib/radon/sources.js +294 -0
  97. package/dist/lib/radon/types.d.ts +521 -0
  98. package/dist/lib/radon/types.d.ts.map +1 -0
  99. package/dist/lib/radon/types.js +1066 -0
  100. package/dist/lib/radon/utils.d.ts +55 -0
  101. package/dist/lib/radon/utils.d.ts.map +1 -0
  102. package/dist/lib/radon/utils.js +181 -0
  103. package/dist/lib/rpc/farm.d.ts +66 -0
  104. package/dist/lib/rpc/farm.d.ts.map +1 -0
  105. package/dist/lib/rpc/farm.js +808 -0
  106. package/dist/lib/rpc/index.d.ts +3 -0
  107. package/dist/lib/rpc/index.d.ts.map +1 -0
  108. package/dist/lib/rpc/index.js +19 -0
  109. package/dist/lib/rpc/node.d.ts +38 -0
  110. package/dist/lib/rpc/node.d.ts.map +1 -0
  111. package/dist/lib/rpc/node.js +335 -0
  112. package/dist/lib/rpc/nodes.d.ts +40 -0
  113. package/dist/lib/rpc/nodes.d.ts.map +1 -0
  114. package/dist/lib/rpc/nodes.js +531 -0
  115. package/dist/lib/rpc/provider.d.ts +72 -0
  116. package/dist/lib/rpc/provider.d.ts.map +1 -0
  117. package/dist/lib/rpc/provider.js +402 -0
  118. package/dist/lib/rpc/reporter.d.ts +18 -0
  119. package/dist/lib/rpc/reporter.d.ts.map +1 -0
  120. package/dist/lib/rpc/reporter.js +99 -0
  121. package/dist/lib/rpc/types.d.ts +396 -0
  122. package/dist/lib/rpc/types.d.ts.map +1 -0
  123. package/dist/lib/rpc/types.js +81 -0
  124. package/dist/lib/rpc/wallet.d.ts +72 -0
  125. package/dist/lib/rpc/wallet.d.ts.map +1 -0
  126. package/dist/lib/rpc/wallet.js +41 -0
  127. package/dist/lib/types.d.ts +19 -0
  128. package/dist/lib/types.d.ts.map +1 -0
  129. package/dist/lib/types.js +7 -0
  130. package/dist/lib/utils.d.ts +5 -0
  131. package/dist/lib/utils.d.ts.map +1 -0
  132. package/dist/lib/utils.js +51 -0
  133. package/dist/package.json +1 -1
  134. package/dist/src/bin/helpers.js +1 -1
  135. package/dist/src/index.js +1 -1
  136. package/dist/src/lib/crypto/account.js +1 -1
  137. package/dist/src/lib/crypto/coinbase.js +1 -1
  138. package/dist/src/lib/crypto/index.js +1 -1
  139. package/dist/src/lib/crypto/interfaces.js +1 -1
  140. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +1 -1
  141. package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
  142. package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
  143. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
  144. package/dist/src/lib/crypto/payloads.js +1 -1
  145. package/dist/src/lib/crypto/signer.js +1 -1
  146. package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -1
  147. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
  148. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
  149. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
  150. package/dist/src/lib/crypto/transmitters.js +1 -1
  151. package/dist/src/lib/crypto/types.js +1 -1
  152. package/dist/src/lib/crypto/utils.js +1 -1
  153. package/dist/src/lib/crypto/wallet.js +1 -1
  154. package/dist/src/lib/index.js +1 -1
  155. package/dist/src/lib/radon/ccdr/eth.js +1 -1
  156. package/dist/src/lib/radon/ccdr/index.js +1 -1
  157. package/dist/src/lib/radon/ccdr/wit.js +1 -1
  158. package/dist/src/lib/radon/filters.js +1 -1
  159. package/dist/src/lib/radon/index.js +1 -1
  160. package/dist/src/lib/radon/reducers.js +1 -1
  161. package/dist/src/lib/radon/types.js +1 -1
  162. package/dist/src/lib/radon/utils.js +1 -1
  163. package/dist/src/lib/rpc/index.js +1 -1
  164. package/dist/src/lib/rpc/nodes.js +1 -1
  165. package/dist/src/lib/rpc/provider.js +1 -1
  166. package/dist/src/lib/rpc/reporter.js +1 -1
  167. package/dist/src/lib/rpc/types.js +1 -1
  168. package/dist/src/lib/types.d.ts +1 -1
  169. package/dist/src/lib/types.d.ts.map +1 -1
  170. package/dist/src/lib/types.js +1 -1
  171. package/dist/src/lib/utils.js +1 -1
  172. package/dist/witnet/assets/index.js +1 -1
  173. package/dist/witnet/assets/modals/index.js +1 -1
  174. package/dist/witnet/assets/modals/web3/eth.js +1 -1
  175. package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
  176. package/dist/witnet/assets/modals/web3/wit.js +1 -1
  177. package/dist/witnet/assets/requests.js +1 -1
  178. package/package.json +1 -1
  179. package/src/bin/cli/history.js +31 -31
  180. package/src/bin/cli/inspect.js +405 -405
  181. package/src/bin/cli/network.js +594 -594
  182. package/src/bin/cli/nodes.js +364 -364
  183. package/src/bin/cli/radon.js +815 -815
  184. package/src/bin/cli/wallet.js +1117 -1117
  185. package/src/bin/helpers.js +840 -840
  186. package/src/bin/postinstall.js +9 -9
  187. package/src/bin/toolkit.js +295 -295
  188. package/witnet/assets/_index.js +8 -8
  189. package/witnet/assets/_requests.js +25 -25
  190. package/witnet/assets/_sources.js +36 -36
  191. package/witnet/assets/_templates.js +36 -36
  192. package/witnet/assets/index.js +4 -4
  193. package/witnet/assets/modals/index.js +9 -9
  194. package/witnet/assets/modals/web3/eth.js +29 -29
  195. package/witnet/assets/modals/web3/ipfs.js +19 -19
  196. package/witnet/assets/modals/web3/wit.js +21 -21
  197. package/witnet/assets/requests.js +95 -95
@@ -0,0 +1,127 @@
1
+ import { Epoch, Hash, HexString, Nanowits } from "../types";
2
+ export type KeyPath = Array<number>;
3
+ export type KeyedSignature = {
4
+ signature: {
5
+ Secp256k1: {
6
+ der: Array<number>;
7
+ };
8
+ };
9
+ public_key: {
10
+ bytes: Array<number>;
11
+ compressed: number;
12
+ };
13
+ };
14
+ export type PublicKeyHashString = HexString;
15
+ interface Key {
16
+ bytes: Uint8Array;
17
+ }
18
+ export interface PrivateKey extends Key {
19
+ type: "private";
20
+ }
21
+ export interface PublicKey extends Key {
22
+ type: "public";
23
+ }
24
+ export type TransactionCallback = (receipt: TransactionReceipt, error?: any) => any;
25
+ export type TransactionParams = {
26
+ deadline?: Epoch;
27
+ fees: Nanowits;
28
+ };
29
+ export type TransactionReceipt = {
30
+ authorization?: HexString;
31
+ blockEpoch?: Epoch;
32
+ blockHash?: Hash;
33
+ blockMiner?: PublicKeyHashString;
34
+ burns?: Nanowits;
35
+ confirmations?: number;
36
+ change?: Nanowits;
37
+ droHash?: Hash;
38
+ error?: Error;
39
+ fees: Nanowits;
40
+ from?: Array<PublicKeyHashString> | PublicKeyHashString;
41
+ hash: Hash;
42
+ outputLock?: number;
43
+ radArgs?: any;
44
+ radHash?: HexString;
45
+ recipients?: Array<[PublicKeyHashString, Nanowits]>;
46
+ status?: TransactionStatus;
47
+ timestamp: number;
48
+ type: string;
49
+ tx?: any;
50
+ value?: Nanowits;
51
+ weight: number;
52
+ withdrawer?: PublicKeyHashString;
53
+ witnesses?: number | Record<PublicKeyHashString, Nanowits>;
54
+ };
55
+ export declare enum TransactionStatus {
56
+ Pending = "pending",
57
+ Confirmed = "confirmed",
58
+ Finalized = "finalized",
59
+ Mined = "mined",
60
+ Relayed = "relayed"
61
+ }
62
+ export type Transmission = {
63
+ bytecode?: Uint8Array;
64
+ hash?: Hash;
65
+ message: any;
66
+ };
67
+ export type UtxoPointer = {
68
+ transaction_id: Hash;
69
+ output_index: number;
70
+ };
71
+ export declare enum UtxoSelectionStrategy {
72
+ BigFirst = "big-first",
73
+ Random = "random",
74
+ SlimFit = "slim-fit",
75
+ SmallFirst = "small-first"
76
+ }
77
+ export declare class PublicKey implements Key {
78
+ readonly compressed: number;
79
+ readonly bytes: Uint8Array;
80
+ static fromProtobuf(protobuf: {
81
+ compressed: number;
82
+ bytes: Array<number>;
83
+ }): PublicKey;
84
+ static fromUint8Array(uint8Array: Uint8Array): PublicKey;
85
+ static recoverFrom(recoverable: any, msg: Uint8Array): PublicKey;
86
+ constructor(compressed: number, bytes: Uint8Array);
87
+ equals(pubKey: PublicKey): boolean;
88
+ hash(): PublicKeyHash;
89
+ toString(): string;
90
+ toUint8Array(): Uint8Array;
91
+ }
92
+ export declare class PublicKeyHash {
93
+ static fromHash(hash: Uint8Array): PublicKeyHash;
94
+ static fromHexString(hash: HexString): PublicKeyHash;
95
+ static fromPublicKey(pk: PublicKey): PublicKeyHash;
96
+ static fromBech32(pkh: string): PublicKeyHash;
97
+ protected words: number[];
98
+ constructor(words: number[]);
99
+ toBech32(network?: string): string;
100
+ toBytes20(): Uint8Array;
101
+ toBytes32(): Uint8Array;
102
+ toHexString(): string;
103
+ }
104
+ export declare class Signature {
105
+ static fromHexString(hex: string): Signature;
106
+ readonly bytes: Uint8Array;
107
+ constructor(bytes: Uint8Array);
108
+ toHexString(): string;
109
+ }
110
+ export declare class RecoverableSignature extends Signature {
111
+ static from(recoverable: any, msg: Uint8Array): RecoverableSignature;
112
+ static fromKeyedSignature(ks: KeyedSignature, msg: Uint8Array): RecoverableSignature;
113
+ readonly message: Uint8Array;
114
+ readonly pubKey: PublicKey;
115
+ readonly recoveryId: number;
116
+ constructor(pubKey: PublicKey, bytes: Uint8Array, msg: Uint8Array);
117
+ toHexString(): string;
118
+ toKeyedSignature(): any;
119
+ toProtobuf(): any;
120
+ }
121
+ export declare class TransmissionError extends Error {
122
+ readonly error?: any;
123
+ readonly inFlight: Transmission;
124
+ constructor(inFlight: Transmission, error?: any);
125
+ }
126
+ export {};
127
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/crypto/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
33
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
+ if (ar || !(i in from)) {
36
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
+ ar[i] = from[i];
38
+ }
39
+ }
40
+ return to.concat(ar || Array.prototype.slice.call(from));
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.TransmissionError = exports.RecoverableSignature = exports.Signature = exports.PublicKeyHash = exports.PublicKey = exports.UtxoSelectionStrategy = exports.TransactionStatus = void 0;
44
+ var secp256k1 = require('secp256k1');
45
+ var bech32_1 = require("bech32");
46
+ var helpers_1 = require("../../bin/helpers");
47
+ var utils_1 = require("./utils");
48
+ var TransactionStatus;
49
+ (function (TransactionStatus) {
50
+ /// Awating to be relayed by the RPC provider
51
+ TransactionStatus["Pending"] = "pending";
52
+ /// Remains on-chain after certain amount of epochs since mined
53
+ TransactionStatus["Confirmed"] = "confirmed";
54
+ /// Remains on-chain after end of next super-epoch to the one on which the tx got mined
55
+ TransactionStatus["Finalized"] = "finalized";
56
+ /// Relayed and allegedly included in a block
57
+ TransactionStatus["Mined"] = "mined";
58
+ /// Relayed to the mempool
59
+ TransactionStatus["Relayed"] = "relayed";
60
+ })(TransactionStatus || (exports.TransactionStatus = TransactionStatus = {}));
61
+ var UtxoSelectionStrategy;
62
+ (function (UtxoSelectionStrategy) {
63
+ UtxoSelectionStrategy["BigFirst"] = "big-first";
64
+ UtxoSelectionStrategy["Random"] = "random";
65
+ UtxoSelectionStrategy["SlimFit"] = "slim-fit";
66
+ UtxoSelectionStrategy["SmallFirst"] = "small-first";
67
+ })(UtxoSelectionStrategy || (exports.UtxoSelectionStrategy = UtxoSelectionStrategy = {}));
68
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
69
+ /// EXPORTED CLASSES
70
+ /// ===================================================================================================================
71
+ var PublicKey = /** @class */ (function () {
72
+ function PublicKey(compressed, bytes) {
73
+ this.compressed = compressed;
74
+ this.bytes = bytes;
75
+ }
76
+ PublicKey.fromProtobuf = function (protobuf) {
77
+ return new PublicKey(protobuf.compressed, Uint8Array.from(protobuf.bytes));
78
+ };
79
+ PublicKey.fromUint8Array = function (uint8Array) {
80
+ return new PublicKey(uint8Array[0], uint8Array.slice(1));
81
+ };
82
+ PublicKey.recoverFrom = function (recoverable, msg) {
83
+ var bytes;
84
+ if ((0, helpers_1.isHexString)(recoverable)) {
85
+ bytes = (0, helpers_1.fromHexString)(recoverable);
86
+ }
87
+ else if (recoverable instanceof Buffer) {
88
+ bytes = Uint8Array.from(recoverable.buffer);
89
+ }
90
+ else if (recoverable instanceof Uint8Array) {
91
+ bytes = recoverable;
92
+ }
93
+ else {
94
+ throw new TypeError("PublicKey: unsupported recoverable signature format: ".concat(recoverable));
95
+ }
96
+ if (bytes.length !== 65) {
97
+ throw new TypeError("PublicKey: expected recoverable signature with length 65: ".concat((0, helpers_1.toHexString)(bytes)));
98
+ }
99
+ var _a = __read([bytes[0], bytes.slice(1)], 2), recoveryId = _a[0], signature = _a[1];
100
+ return PublicKey.fromUint8Array(secp256k1.ecdsaRecover(signature, recoveryId, msg));
101
+ };
102
+ PublicKey.prototype.equals = function (pubKey) {
103
+ return pubKey.compressed === this.compressed && matchingUint8Arrays(pubKey.bytes, pubKey.bytes);
104
+ };
105
+ PublicKey.prototype.hash = function () {
106
+ return PublicKeyHash.fromPublicKey(this);
107
+ };
108
+ PublicKey.prototype.toString = function () {
109
+ return (0, helpers_1.toHexString)(__spreadArray([this.compressed], __read(this.bytes), false));
110
+ };
111
+ PublicKey.prototype.toUint8Array = function () {
112
+ return Uint8Array.from(__spreadArray([this.compressed], __read(this.bytes), false));
113
+ };
114
+ return PublicKey;
115
+ }());
116
+ exports.PublicKey = PublicKey;
117
+ ;
118
+ /// ===================================================================================================================
119
+ var PublicKeyHash = /** @class */ (function () {
120
+ function PublicKeyHash(words) {
121
+ this.words = words;
122
+ }
123
+ PublicKeyHash.fromHash = function (hash) {
124
+ return new PublicKeyHash(bech32_1.bech32.toWords(hash));
125
+ };
126
+ PublicKeyHash.fromHexString = function (hash) {
127
+ return PublicKeyHash.fromHash((0, helpers_1.fromHexString)(hash));
128
+ };
129
+ PublicKeyHash.fromPublicKey = function (pk) {
130
+ return PublicKeyHash.fromHash((0, utils_1.sha256)(Buffer.from(__spreadArray([pk.compressed], __read(pk.bytes), false))).subarray(0, 20));
131
+ };
132
+ PublicKeyHash.fromBech32 = function (pkh) {
133
+ try {
134
+ pkh = pkh.toLowerCase();
135
+ if (pkh.startsWith('wit')) {
136
+ return new PublicKeyHash(bech32_1.bech32.decode(pkh, 66).words);
137
+ }
138
+ else if (pkh.startsWith('twit')) {
139
+ return new PublicKeyHash(bech32_1.bech32.decode(pkh, 67).words);
140
+ }
141
+ else {
142
+ throw new TypeError("PublicKeyHash: invalid bech32 string: ".concat(pkh));
143
+ }
144
+ }
145
+ catch (_a) {
146
+ throw new TypeError("PublicKeyHash: invalid bech32 string: ".concat(pkh));
147
+ }
148
+ };
149
+ PublicKeyHash.prototype.toBech32 = function (network) {
150
+ if (network === void 0) { network = "mainnet"; }
151
+ return network === "mainnet" ? bech32_1.bech32.encode('wit', this.words, 66) : bech32_1.bech32.encode('twit', this.words, 67);
152
+ };
153
+ PublicKeyHash.prototype.toBytes20 = function () {
154
+ return Uint8Array.from(bech32_1.bech32.fromWords(this.words).slice(0, 20));
155
+ };
156
+ PublicKeyHash.prototype.toBytes32 = function () {
157
+ return Uint8Array.from(__spreadArray(__spreadArray([], __read(bech32_1.bech32.fromWords(this.words).slice(0, 20)), false), __read(new Array(12).fill(0)), false));
158
+ };
159
+ PublicKeyHash.prototype.toHexString = function () {
160
+ return (0, helpers_1.toHexString)(this.toBytes20());
161
+ };
162
+ return PublicKeyHash;
163
+ }());
164
+ exports.PublicKeyHash = PublicKeyHash;
165
+ /// ===================================================================================================================
166
+ var Signature = /** @class */ (function () {
167
+ function Signature(bytes) {
168
+ this.bytes = bytes;
169
+ }
170
+ Signature.fromHexString = function (hex) {
171
+ return new Signature((0, helpers_1.fromHexString)(hex));
172
+ };
173
+ Signature.prototype.toHexString = function () {
174
+ return (0, helpers_1.toHexString)(this.bytes);
175
+ };
176
+ return Signature;
177
+ }());
178
+ exports.Signature = Signature;
179
+ /// ===================================================================================================================
180
+ var RecoverableSignature = /** @class */ (function (_super) {
181
+ __extends(RecoverableSignature, _super);
182
+ function RecoverableSignature(pubKey, bytes, msg) {
183
+ var _this = _super.call(this, bytes) || this;
184
+ var pubKeyRaw = pubKey.toUint8Array();
185
+ var recoveryId;
186
+ for (recoveryId = 0; recoveryId < 4; recoveryId++) {
187
+ var recovered = void 0;
188
+ try {
189
+ recovered = secp256k1.ecdsaRecover(bytes, recoveryId, msg);
190
+ if (matchingUint8Arrays(recovered, pubKeyRaw))
191
+ break;
192
+ }
193
+ catch (_a) { }
194
+ }
195
+ _this.message = msg;
196
+ _this.pubKey = pubKey;
197
+ _this.recoveryId = recoveryId;
198
+ return _this;
199
+ }
200
+ RecoverableSignature.from = function (recoverable, msg) {
201
+ var bytes;
202
+ if ((0, helpers_1.isHexString)(recoverable)) {
203
+ bytes = (0, helpers_1.fromHexString)(recoverable).slice(1);
204
+ }
205
+ else if (recoverable instanceof Buffer) {
206
+ bytes = Uint8Array.from(recoverable.buffer).slice(1);
207
+ }
208
+ else if (recoverable instanceof Uint8Array) {
209
+ bytes = recoverable.slice(1);
210
+ }
211
+ else {
212
+ throw new TypeError("RecoverableSignature: unsupported recoverable signature format: ".concat(recoverable));
213
+ }
214
+ if (bytes.length !== 64) {
215
+ throw new TypeError("RecoverableSignatre: expected recoverable signature with length 65: ".concat((0, helpers_1.toHexString)(bytes)));
216
+ }
217
+ return new RecoverableSignature(PublicKey.recoverFrom(recoverable, msg), bytes, msg);
218
+ };
219
+ RecoverableSignature.fromKeyedSignature = function (ks, msg) {
220
+ return new RecoverableSignature(PublicKey.fromProtobuf(ks.public_key), secp256k1.signatureImport(Uint8Array.from(ks.signature.Secp256k1.der)), msg);
221
+ };
222
+ RecoverableSignature.prototype.toHexString = function () {
223
+ return (0, helpers_1.toHexString)(__spreadArray([this.recoveryId], __read(this.bytes), false));
224
+ };
225
+ RecoverableSignature.prototype.toKeyedSignature = function () {
226
+ return {
227
+ signature: { Secp256k1: { der: Array.from(secp256k1.signatureExport(this.bytes)) } },
228
+ public_key: {
229
+ bytes: Array.from(this.pubKey.bytes),
230
+ compressed: this.pubKey.compressed,
231
+ }
232
+ };
233
+ };
234
+ RecoverableSignature.prototype.toProtobuf = function () {
235
+ return {
236
+ signature: { Secp256k1: { der: Array.from(secp256k1.signatureExport(this.bytes)) } },
237
+ publicKey: { publicKey: Array.from(__spreadArray([this.pubKey.compressed], __read(this.pubKey.bytes), false)) },
238
+ };
239
+ };
240
+ return RecoverableSignature;
241
+ }(Signature));
242
+ exports.RecoverableSignature = RecoverableSignature;
243
+ /// ===================================================================================================================
244
+ var TransmissionError = /** @class */ (function (_super) {
245
+ __extends(TransmissionError, _super);
246
+ function TransmissionError(inFlight, error) {
247
+ var _this = _super.call(this, JSON.stringify(error)) || this;
248
+ error === null || error === void 0 ? true : delete error.stack;
249
+ _this.error = error;
250
+ _this.inFlight = inFlight;
251
+ return _this;
252
+ }
253
+ return TransmissionError;
254
+ }(Error));
255
+ exports.TransmissionError = TransmissionError;
256
+ /// -------------------------------------------------------------------------------------------------------------------
257
+ /// --- Internal functions
258
+ function matchingUint8Arrays(a, b) {
259
+ return a.length === b.length && a.every(function (value, index) { return value === b[index]; });
260
+ }
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyeXB0by90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3RDLGlDQUErQjtBQUcvQiw2Q0FBMkU7QUFDM0UsaUNBQWdDO0FBMkRoQyxJQUFZLGlCQWVYO0FBZkQsV0FBWSxpQkFBaUI7SUFDekIsNkNBQTZDO0lBQzdDLHdDQUFtQixDQUFBO0lBRW5CLCtEQUErRDtJQUMvRCw0Q0FBdUIsQ0FBQTtJQUV2Qix1RkFBdUY7SUFDdkYsNENBQXVCLENBQUE7SUFFdkIsNkNBQTZDO0lBQzdDLG9DQUFlLENBQUE7SUFFZiwyQkFBMkI7SUFDM0Isd0NBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQWZXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBZTVCO0FBZUQsSUFBWSxxQkFLWDtBQUxELFdBQVkscUJBQXFCO0lBQzdCLCtDQUFzQixDQUFBO0lBQ3RCLDBDQUFpQixDQUFBO0lBQ2pCLDZDQUFvQixDQUFBO0lBQ3BCLG1EQUEwQixDQUFBO0FBQzlCLENBQUMsRUFMVyxxQkFBcUIscUNBQXJCLHFCQUFxQixRQUtoQztBQUdELHVIQUF1SDtBQUN2SCxxQkFBcUI7QUFFckIsdUhBQXVIO0FBQ3ZIO0lBa0NJLG1CQUFZLFVBQWtCLEVBQUUsS0FBaUI7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQWhDTSxzQkFBWSxHQUFuQixVQUFvQixRQUFzRDtRQUN0RSxPQUFPLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMs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bnQiOlsiY29uc3Qgc2VjcDI1NmsxID0gcmVxdWlyZSgnc2VjcDI1NmsxJylcbmltcG9ydCB7IGJlY2gzMiB9IGZyb20gJ2JlY2gzMidcbmltcG9ydCB7IEVwb2NoLCBIYXNoLCBIZXhTdHJpbmcsIE5hbm93aXRzIH0gZnJvbSBcIi4uL3R5cGVzXCJcblxuaW1wb3J0IHsgZnJvbUhleFN0cmluZywgaXNIZXhTdHJpbmcsIHRvSGV4U3RyaW5nIH0gZnJvbSBcIi4uLy4uL2Jpbi9oZWxwZXJzXCJcbmltcG9ydCB7IHNoYTI1NiB9IGZyb20gXCIuL3V0aWxzXCJcblxuZXhwb3J0IHR5cGUgS2V5UGF0aCA9IEFycmF5PG51bWJlcj5cblxuZXhwb3J0IHR5cGUgS2V5ZWRTaWduYXR1cmUgPSB7XG4gICAgc2lnbmF0dXJlOiB7IFNlY3AyNTZrMTogeyBkZXI6IEFycmF5PG51bWJlcj4gfX0sXG4gICAgcHVibGljX2tleToge1xuICAgICAgICBieXRlczogQXJyYXk8bnVtYmVyPjtcbiAgICAgICAgY29tcHJlc3NlZDogbnVtYmVyLFxuICAgIH0sXG59O1xuXG5leHBvcnQgdHlwZSBQdWJsaWNLZXlIYXNoU3RyaW5nID0gSGV4U3RyaW5nXG5cbmludGVyZmFjZSBLZXkge1xuICAgIGJ5dGVzOiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVLZXkgZXh0ZW5kcyBLZXkge1xuICAgIHR5cGU6IFwicHJpdmF0ZVwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0tleSBleHRlbmRzIEtleSB7XG4gICAgdHlwZTogXCJwdWJsaWNcIjtcbn1cblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25DYWxsYmFjayA9IChyZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQsIGVycm9yPzogYW55KSA9PiBhbnlcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25QYXJhbXMgPSB7XG4gICAgZGVhZGxpbmU/OiBFcG9jaCxcbiAgICBmZWVzOiBOYW5vd2l0cyxcbn1cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCA9IHtcbiAgICBhdXRob3JpemF0aW9uPzogSGV4U3RyaW5nO1xuICAgIGJsb2NrRXBvY2g/OiBFcG9jaDtcbiAgICBibG9ja0hhc2g/OiBIYXNoO1xuICAgIGJsb2NrTWluZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuICAgIGJ1cm5zPzogTmFub3dpdHM7XG4gICAgY29uZmlybWF0aW9ucz86IG51bWJlcjtcbiAgICBjaGFuZ2U/OiBOYW5vd2l0cztcbiAgICBkcm9IYXNoPzogSGFzaDtcbiAgICBlcnJvcj86IEVycm9yLFxuICAgIGZlZXM6IE5hbm93aXRzO1xuICAgIGZyb20/OiBBcnJheTxQdWJsaWNLZXlIYXNoU3RyaW5nPiB8IFB1YmxpY0tleUhhc2hTdHJpbmc7XG4gICAgaGFzaDogSGFzaDtcbiAgICBvdXRwdXRMb2NrPzogbnVtYmVyO1xuICAgIHJhZEFyZ3M/OiBhbnk7XG4gICAgcmFkSGFzaD86IEhleFN0cmluZztcbiAgICByZWNpcGllbnRzPzogQXJyYXk8W1B1YmxpY0tleUhhc2hTdHJpbmcsIE5hbm93aXRzXT47XG4gICAgc3RhdHVzPzogVHJhbnNhY3Rpb25TdGF0dXM7XG4gICAgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHR4PzogYW55O1xuICAgIHZhbHVlPzogTmFub3dpdHM7XG4gICAgd2VpZ2h0OiBudW1iZXI7XG4gICAgd2l0aGRyYXdlcj86IFB1YmxpY0tleUhhc2hTdHJpbmc7XG4gICAgd2l0bmVzc2VzPzogbnVtYmVyIHwgUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIE5hbm93aXRzPjtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25TdGF0dXMge1xuICAgIC8vLyBBd2F0aW5nIHRvIGJlIHJlbGF5ZWQgYnkgdGhlIFJQQyBwcm92aWRlclxuICAgIFBlbmRpbmcgPSBcInBlbmRpbmdcIiwgXG5cbiAgICAvLy8gUmVtYWlucyBvbi1jaGFpbiBhZnRlciBjZXJ0YWluIGFtb3VudCBvZiBlcG9jaHMgc2luY2UgbWluZWRcbiAgICBDb25maXJtZWQgPSBcImNvbmZpcm1lZFwiLFxuXG4gICAgLy8vIFJlbWFpbnMgb24tY2hhaW4gYWZ0ZXIgZW5kIG9mIG5leHQgc3VwZXItZXBvY2ggdG8gdGhlIG9uZSBvbiB3aGljaCB0aGUgdHggZ290IG1pbmVkXG4gICAgRmluYWxpemVkID0gXCJmaW5hbGl6ZWRcIixcbiAgICBcbiAgICAvLy8gUmVsYXllZCBhbmQgYWxsZWdlZGx5IGluY2x1ZGVkIGluIGEgYmxvY2tcbiAgICBNaW5lZCA9IFwibWluZWRcIixcbiAgICBcbiAgICAvLy8gUmVsYXllZCB0byB0aGUgbWVtcG9vbCBcbiAgICBSZWxheWVkID0gXCJyZWxheWVkXCIsXG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zbWlzc2lvbiA9IHtcbiAgICBieXRlY29kZT86IFVpbnQ4QXJyYXksXG4gICAgaGFzaD86IEhhc2g7XG4gICAgbWVzc2FnZTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBVdHhvUG9pbnRlciA9IHtcbiAgICAvLyB0cmFuc2FjdGlvbiBpZGVudGlmaWVyXG4gICAgdHJhbnNhY3Rpb25faWQ6IEhhc2g7XG4gICAgLy8gb3V0cHV0IGluZGV4IHdpdGhpbiByZWZlcnJlZCB0cmFuc2FjdGlvblxuICAgIG91dHB1dF9pbmRleDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGVudW0gVXR4b1NlbGVjdGlvblN0cmF0ZWd5IHtcbiAgICBCaWdGaXJzdCA9IFwiYmlnLWZpcnN0XCIsXG4gICAgUmFuZG9tID0gXCJyYW5kb21cIixcbiAgICBTbGltRml0ID0gXCJzbGltLWZpdFwiLFxuICAgIFNtYWxsRmlyc3QgPSBcInNtYWxsLWZpcnN0XCIsXG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBFWFBPUlRFRCBDTEFTU0VTIFxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZXhwb3J0IGNsYXNzIFB1YmxpY0tleSBpbXBsZW1lbnRzIEtleSB7XG4gICAgXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbXByZXNzZWQ6IG51bWJlcjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXk7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvYnVmKHByb3RvYnVmOiB7IGNvbXByZXNzZWQ6IG51bWJlciwgYnl0ZXM6IEFycmF5PG51bWJlcj4gfSk6IFB1YmxpY0tleSB7XG4gICAgICAgIHJldHVybiBuZXcgUHVibGljS2V5KHByb3RvYnVmLmNvbXByZXNzZWQsIFVpbnQ4QXJyYXkuZnJvbShwcm90b2J1Zi5ieXRlcykpXG4gICAgfVxuXG4gICAgc3RhdGljIGZyb21VaW50OEFycmF5KHVpbnQ4QXJyYXk6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXkge1xuICAgICAgICByZXR1cm4gbmV3IFB1YmxpY0tleShcbiAgICAgICAgICAgIHVpbnQ4QXJyYXlbMF0sXG4gICAgICAgICAgICB1aW50OEFycmF5LnNsaWNlKDEpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHN0YXRpYyByZWNvdmVyRnJvbShyZWNvdmVyYWJsZTogYW55LCBtc2c6IFVpbnQ4QXJyYXkpOiBQdWJsaWNLZXkge1xuICAgICAgICBsZXQgYnl0ZXNcbiAgICAgICAgaWYgKGlzSGV4U3RyaW5nKHJlY292ZXJhYmxlKSkge1xuICAgICAgICAgICAgYnl0ZXMgPSBmcm9tSGV4U3RyaW5nKHJlY292ZXJhYmxlKVxuICAgICAgICB9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICBieXRlcyA9IFVpbnQ4QXJyYXkuZnJvbShyZWNvdmVyYWJsZS5idWZmZXIpXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICBieXRlcyA9IHJlY292ZXJhYmxlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXk6IHVuc3VwcG9ydGVkIHJlY292ZXJhYmxlIHNpZ25hdHVyZSBmb3JtYXQ6ICR7cmVjb3ZlcmFibGV9YClcbiAgICAgICAgfVxuICAgICAgICBpZiAoYnl0ZXMubGVuZ3RoICE9PSA2NSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUHVibGljS2V5OiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWApXG4gICAgICAgIH0gXG4gICAgICAgIGNvbnN0IFsgcmVjb3ZlcnlJZCwgc2lnbmF0dXJlIF0gPSBbIGJ5dGVzWzBdLCBieXRlcy5zbGljZSgxKSBdXG4gICAgICAgIHJldHVybiBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkoc2VjcDI1NmsxLmVjZHNhUmVjb3ZlcihzaWduYXR1cmUsIHJlY292ZXJ5SWQsIG1zZykpXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoY29tcHJlc3NlZDogbnVtYmVyLCBieXRlczogVWludDhBcnJheSkge1xuICAgICAgICB0aGlzLmNvbXByZXNzZWQgPSBjb21wcmVzc2VkXG4gICAgICAgIHRoaXMuYnl0ZXMgPSBieXRlc1xuICAgIH1cblxuICAgIHB1YmxpYyBlcXVhbHMocHViS2V5OiBQdWJsaWNLZXkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHB1YktleS5jb21wcmVzc2VkID09PSB0aGlzLmNvbXByZXNzZWQgJiYgbWF0Y2hpbmdVaW50OEFycmF5cyhwdWJLZXkuYnl0ZXMsIHB1YktleS5ieXRlcylcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzaCgpOiBQdWJsaWNLZXlIYXNoIHtcbiAgICAgICAgcmV0dXJuIFB1YmxpY0tleUhhc2guZnJvbVB1YmxpY0tleSh0aGlzKVxuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdG9IZXhTdHJpbmcoW3RoaXMuY29tcHJlc3NlZCwgLi4udGhpcy5ieXRlc10pXG4gICAgfVxuXG4gICAgcHVibGljIHRvVWludDhBcnJheSgpOiBVaW50OEFycmF5IHtcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbdGhpcy5jb21wcmVzc2VkLCAuLi50aGlzLmJ5dGVzXSlcbiAgICB9XG59O1xuXG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgUHVibGljS2V5SGFzaCB7XG5cbiAgICBzdGF0aWMgZnJvbUhhc2goaGFzaDogVWludDhBcnJheSk6IFB1YmxpY0tleUhhc2gge1xuICAgICAgICByZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLnRvV29yZHMoaGFzaCkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tSGV4U3RyaW5nKGhhc2g6IEhleFN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xuICAgICAgICByZXR1cm4gUHVibGljS2V5SGFzaC5mcm9tSGFzaChmcm9tSGV4U3RyaW5nKGhhc2gpKVxuICAgIH1cbiAgICBcbiAgICBzdGF0aWMgZnJvbVB1YmxpY0tleShwazogUHVibGljS2V5KTogUHVibGljS2V5SGFzaCB7XG4gICAgICAgIHJldHVybiBQdWJsaWNLZXlIYXNoLmZyb21IYXNoKFxuICAgICAgICAgICAgc2hhMjU2KFxuICAgICAgICAgICAgICAgIEJ1ZmZlci5mcm9tKFtway5jb21wcmVzc2VkLCAuLi5way5ieXRlc10pXG4gICAgICAgICAgICApLnN1YmFycmF5KDAsIDIwKVxuICAgICAgICApO1xuICAgIH1cbiAgICBcbiAgICBzdGF0aWMgZnJvbUJlY2gzMihwa2g6IHN0cmluZyk6IFB1YmxpY0tleUhhc2gge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcGtoID0gcGtoLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIGlmIChwa2guc3RhcnRzV2l0aCgnd2l0JykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFB1YmxpY0tleUhhc2goYmVjaDMyLmRlY29kZShwa2gsIDY2KS53b3JkcylcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGtoLnN0YXJ0c1dpdGgoJ3R3aXQnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHVibGljS2V5SGFzaChiZWNoMzIuZGVjb2RlKHBraCwgNjcpLndvcmRzKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBQdWJsaWNLZXlIYXNoOiBpbnZhbGlkIGJlY2gzMiBzdHJpbmc6ICR7cGtofWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFB1YmxpY0tleUhhc2g6IGludmFsaWQgYmVjaDMyIHN0cmluZzogJHtwa2h9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgd29yZHM6IG51bWJlcltdO1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKHdvcmRzOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLndvcmRzID0gd29yZHNcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9CZWNoMzIobmV0d29yayA9IFwibWFpbm5ldFwiKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG5ldHdvcmsgPT09IFwibWFpbm5ldFwiID8gYmVjaDMyLmVuY29kZSgnd2l0JywgdGhpcy53b3JkcywgNjYpIDogYmVjaDMyLmVuY29kZSgndHdpdCcsIHRoaXMud29yZHMsIDY3KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9CeXRlczIwKCk6IFVpbnQ4QXJyYXkge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5mcm9tKGJlY2gzMi5mcm9tV29yZHModGhpcy53b3Jkcykuc2xpY2UoMCwgMjApKVxuICAgIH1cblxuICAgIHB1YmxpYyB0b0J5dGVzMzIoKTogVWludDhBcnJheSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW1xuICAgICAgICAgICAgLi4uYmVjaDMyLmZyb21Xb3Jkcyh0aGlzLndvcmRzKS5zbGljZSgwLCAyMCksXG4gICAgICAgICAgICAuLi5uZXcgQXJyYXkoMTIpLmZpbGwoMCksXG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0hleFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdG9IZXhTdHJpbmcodGhpcy50b0J5dGVzMjAoKSlcbiAgICB9XG59XG5cblxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmUge1xuXG4gICAgc3RhdGljIGZyb21IZXhTdHJpbmcoaGV4OiBzdHJpbmcpOiBTaWduYXR1cmUge1xuICAgICAgICByZXR1cm4gbmV3IFNpZ25hdHVyZShmcm9tSGV4U3RyaW5nKGhleCkpXG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRvbmx5IGJ5dGVzOiBVaW50OEFycmF5O1xuXG4gICAgY29uc3RydWN0b3IgKGJ5dGVzOiBVaW50OEFycmF5KSB7XG4gICAgICAgIHRoaXMuYnl0ZXMgPSBieXRlc1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRvSGV4U3RyaW5nKHRoaXMuYnl0ZXMpXG4gICAgfVxufVxuXG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgUmVjb3ZlcmFibGVTaWduYXR1cmUgZXh0ZW5kcyBTaWduYXR1cmUge1xuXG4gICAgc3RhdGljIGZyb20ocmVjb3ZlcmFibGU6IGFueSwgbXNnOiBVaW50OEFycmF5KTogUmVjb3ZlcmFibGVTaWduYXR1cmUge1xuICAgICAgICBsZXQgYnl0ZXNcbiAgICAgICAgaWYgKGlzSGV4U3RyaW5nKHJlY292ZXJhYmxlKSkge1xuICAgICAgICAgICAgYnl0ZXMgPSBmcm9tSGV4U3RyaW5nKHJlY292ZXJhYmxlKS5zbGljZSgxKVxuICAgICAgICB9IGVsc2UgaWYgKHJlY292ZXJhYmxlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICBieXRlcyA9IFVpbnQ4QXJyYXkuZnJvbShyZWNvdmVyYWJsZS5idWZmZXIpLnNsaWNlKDEpXG4gICAgICAgIH0gZWxzZSBpZiAocmVjb3ZlcmFibGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICBieXRlcyA9IHJlY292ZXJhYmxlLnNsaWNlKDEpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBSZWNvdmVyYWJsZVNpZ25hdHVyZTogdW5zdXBwb3J0ZWQgcmVjb3ZlcmFibGUgc2lnbmF0dXJlIGZvcm1hdDogJHtyZWNvdmVyYWJsZX1gKVxuICAgICAgICB9XG4gICAgICAgIGlmIChieXRlcy5sZW5ndGggIT09IDY0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBSZWNvdmVyYWJsZVNpZ25hdHJlOiBleHBlY3RlZCByZWNvdmVyYWJsZSBzaWduYXR1cmUgd2l0aCBsZW5ndGggNjU6ICR7dG9IZXhTdHJpbmcoYnl0ZXMpfWApXG4gICAgICAgIH0gXG4gICAgICAgIHJldHVybiBuZXcgUmVjb3ZlcmFibGVTaWduYXR1cmUoUHVibGljS2V5LnJlY292ZXJGcm9tKHJlY292ZXJhYmxlLCBtc2cpLCBieXRlcywgbXNnKVxuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tS2V5ZWRTaWduYXR1cmUoa3M6IEtleWVkU2lnbmF0dXJlLCBtc2c6IFVpbnQ4QXJyYXkpOiBSZWNvdmVyYWJsZVNpZ25hdHVyZSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVjb3ZlcmFibGVTaWduYXR1cmUoXG4gICAgICAgICAgICBQdWJsaWNLZXkuZnJvbVByb3RvYnVmKGtzLnB1YmxpY19rZXkpLFxuICAgICAgICAgICAgc2VjcDI1NmsxLnNpZ25hdHVyZUltcG9ydChVaW50OEFycmF5LmZyb20oa3Muc2lnbmF0dXJlLlNlY3AyNTZrMS5kZXIpKSxcbiAgICAgICAgICAgIG1zZ1xuICAgICAgICApICAgXG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2U6IFVpbnQ4QXJyYXlcbiAgICBwdWJsaWMgcmVhZG9ubHkgcHViS2V5OiBQdWJsaWNLZXlcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVjb3ZlcnlJZDogbnVtYmVyXG4gICAgXG4gICAgY29uc3RydWN0b3IgKHB1YktleTogUHVibGljS2V5LCBieXRlczogVWludDhBcnJheSwgbXNnOiBVaW50OEFycmF5KSB7XG4gICAgICAgIHN1cGVyKGJ5dGVzKVxuICAgICAgICBjb25zdCBwdWJLZXlSYXcgPSBwdWJLZXkudG9VaW50OEFycmF5KClcbiAgICAgICAgbGV0IHJlY292ZXJ5SWQ6IG51bWJlcjtcbiAgICAgICAgZm9yIChyZWNvdmVyeUlkID0gMDsgcmVjb3ZlcnlJZCA8IDQ7IHJlY292ZXJ5SWQgKyspIHtcbiAgICAgICAgICAgIGxldCByZWNvdmVyZWQgXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZWNvdmVyZWQgPSBzZWNwMjU2azEuZWNkc2FSZWNvdmVyKGJ5dGVzLCByZWNvdmVyeUlkLCBtc2cpXG4gICAgICAgICAgICAgIGlmIChtYXRjaGluZ1VpbnQ4QXJyYXlzKHJlY292ZXJlZCwgcHViS2V5UmF3KSkgYnJlYWs7XG4gICAgICAgICAgICB9IGNhdGNoIHt9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbXNnXG4gICAgICAgIHRoaXMucHViS2V5ID0gcHViS2V5XG4gICAgICAgIHRoaXMucmVjb3ZlcnlJZCA9IHJlY292ZXJ5SWRcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9IZXhTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRvSGV4U3RyaW5nKFt0aGlzLnJlY292ZXJ5SWQsIC4uLnRoaXMuYnl0ZXNdKVxuICAgIH1cblxuICAgIHB1YmxpYyB0b0tleWVkU2lnbmF0dXJlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9fSxcbiAgICAgICAgICAgIHB1YmxpY19rZXk6IHtcbiAgICAgICAgICAgICAgICBieXRlczogQXJyYXkuZnJvbSh0aGlzLnB1YktleS5ieXRlcyksXG4gICAgICAgICAgICAgICAgY29tcHJlc3NlZDogdGhpcy5wdWJLZXkuY29tcHJlc3NlZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaWduYXR1cmU6IHsgU2VjcDI1NmsxOiB7IGRlcjogQXJyYXkuZnJvbShzZWNwMjU2azEuc2lnbmF0dXJlRXhwb3J0KHRoaXMuYnl0ZXMpKSB9fSxcbiAgICAgICAgICAgIHB1YmxpY0tleTogeyBwdWJsaWNLZXk6IEFycmF5LmZyb20oWyB0aGlzLnB1YktleS5jb21wcmVzc2VkLCAuLi50aGlzLnB1YktleS5ieXRlcyBdKSB9LFxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5leHBvcnQgY2xhc3MgVHJhbnNtaXNzaW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcmVhZG9ubHkgZXJyb3I/OiBhbnk7XG4gICAgcmVhZG9ubHkgaW5GbGlnaHQ6IFRyYW5zbWlzc2lvbjtcbiAgICBjb25zdHJ1Y3RvcihpbkZsaWdodDogVHJhbnNtaXNzaW9uLCBlcnJvcj86IGFueSkge1xuICAgICAgICBzdXBlcihKU09OLnN0cmluZ2lmeShlcnJvcikpXG4gICAgICAgIGRlbGV0ZSBlcnJvcj8uc3RhY2tcbiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yXG4gICAgICAgIHRoaXMuaW5GbGlnaHQgPSBpbkZsaWdodFxuICAgIH1cbn1cblxuXG4vLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8vIC0tLSBJbnRlcm5hbCBmdW5jdGlvbnMgXG5cbmZ1bmN0aW9uIG1hdGNoaW5nVWludDhBcnJheXMoYTogVWludDhBcnJheSwgYjogVWludDhBcnJheSkge1xuICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiB2YWx1ZSA9PT0gYltpbmRleF0pXG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export { bech32 } from 'bech32';
2
+ export { PrivateKey, PublicKey, PublicKeyHash, KeyedSignature, RecoverableSignature, Signature } from "./types";
3
+ export declare function decipherXprv(slip32: string, passwd: string): string;
4
+ export declare const parseXprv: (slip32: string) => {
5
+ chainCode: Uint8Array;
6
+ keyPath: Array<number>;
7
+ privateKey: Uint8Array;
8
+ };
9
+ export declare function sha256(buffer: any): Buffer<ArrayBufferLike>;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/crypto/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAqB/G,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAcnE;AAED,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG;IACvC,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CAyD1B,CAAC;AAEF,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,2BAIjC"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseXprv = exports.Signature = exports.RecoverableSignature = exports.PublicKeyHash = exports.PublicKey = exports.bech32 = void 0;
4
+ exports.decipherXprv = decipherXprv;
5
+ exports.sha256 = sha256;
6
+ var secp256k1 = require("secp256k1");
7
+ var bech32_1 = require("bech32");
8
+ var crypto_1 = require("crypto");
9
+ var bech32_2 = require("bech32");
10
+ Object.defineProperty(exports, "bech32", { enumerable: true, get: function () { return bech32_2.bech32; } });
11
+ var types_1 = require("./types");
12
+ Object.defineProperty(exports, "PublicKey", { enumerable: true, get: function () { return types_1.PublicKey; } });
13
+ Object.defineProperty(exports, "PublicKeyHash", { enumerable: true, get: function () { return types_1.PublicKeyHash; } });
14
+ Object.defineProperty(exports, "RecoverableSignature", { enumerable: true, get: function () { return types_1.RecoverableSignature; } });
15
+ Object.defineProperty(exports, "Signature", { enumerable: true, get: function () { return types_1.Signature; } });
16
+ var CHAIN_CODE_LENGTH = 32;
17
+ var DEPTH_LENGTH = 1;
18
+ var KEY_LENGTH = 33;
19
+ var KEY_PATH_LENGTH = 4;
20
+ var BECH32_LIMIT = (DEPTH_LENGTH
21
+ + ((Math.pow(256, DEPTH_LENGTH) - 1) * KEY_PATH_LENGTH)
22
+ + CHAIN_CODE_LENGTH
23
+ + KEY_LENGTH);
24
+ var getExpectedDataLength = function (depth) { return (DEPTH_LENGTH
25
+ + depth * KEY_PATH_LENGTH
26
+ + CHAIN_CODE_LENGTH
27
+ + KEY_LENGTH); };
28
+ function decipherXprv(slip32, passwd) {
29
+ var _a = bech32_1.bech32.decode(slip32, BECH32_LIMIT), prefix = _a.prefix, words = _a.words;
30
+ if (prefix !== "xprv") {
31
+ throw Error("Invalid XPRV header: \"".concat(prefix, "\" != \"xprv\""));
32
+ }
33
+ var buffer = new Uint8Array(bech32_1.bech32.fromWords(words)).buffer;
34
+ var iv = buffer.slice(0, 16);
35
+ var salt = buffer.slice(16, 48);
36
+ var data = buffer.slice(48);
37
+ var key = (0, crypto_1.pbkdf2Sync)(passwd, Buffer.from(salt), 10000, 32, 'sha256');
38
+ var decipher = (0, crypto_1.createDecipheriv)("aes-256-cbc", key, Buffer.from(iv));
39
+ var decrypted = decipher.update(Buffer.from(data), undefined, 'utf-8');
40
+ decrypted += decipher.final('utf-8');
41
+ return decrypted;
42
+ }
43
+ var parseXprv = function (slip32) {
44
+ // decode slip32 string
45
+ var _a = bech32_1.bech32.decode(slip32, BECH32_LIMIT), prefix = _a.prefix, words = _a.words;
46
+ var bytes = bech32_1.bech32.fromWords(words);
47
+ // check prefix
48
+ if (prefix !== "xprv") {
49
+ throw Error("Invalid XPRV: bad header: \"".concat(prefix, "\" != \"xprv\""));
50
+ }
51
+ // check expected data length
52
+ var depth = bytes[0];
53
+ if (depth !== 0) {
54
+ throw Error("Invalid XPRV: not a master private key (depth: ".concat(depth, ")"));
55
+ }
56
+ var expectedLength = getExpectedDataLength(depth);
57
+ if (bytes.length !== expectedLength) {
58
+ throw Error("Invalid XPRV: bad data length"
59
+ + "(expected: ".concat(expectedLength, ", was: ").concat(bytes.length));
60
+ }
61
+ var buffer = new Uint8Array(bytes).buffer;
62
+ // extract key path (32-bit unsigned integers, big endian)
63
+ var keyPath = [];
64
+ var keyPathView = new DataView(buffer, DEPTH_LENGTH, depth * KEY_PATH_LENGTH);
65
+ for (var i = 0; i < depth; i++) {
66
+ keyPath.push((keyPathView.getUint32(i * KEY_PATH_LENGTH, false)));
67
+ }
68
+ // extract chain code
69
+ var chainCode = new Uint8Array(CHAIN_CODE_LENGTH);
70
+ var chainCodeOffset = DEPTH_LENGTH + depth * KEY_PATH_LENGTH;
71
+ var chainCodeView = new DataView(buffer, chainCodeOffset, CHAIN_CODE_LENGTH);
72
+ for (var i = 0; i < chainCode.length; i++) {
73
+ chainCode[i] = (chainCodeView.getUint8(i));
74
+ }
75
+ // extract key bytes
76
+ var privateKey = new Uint8Array(KEY_LENGTH);
77
+ var privateKeyView = new DataView(buffer, chainCodeOffset + CHAIN_CODE_LENGTH);
78
+ for (var i = 0; i < privateKey.length; i++) {
79
+ privateKey[i] = (privateKeyView.getUint8(i));
80
+ }
81
+ // check if private or public key are valid
82
+ if (privateKey[0] !== 0 || !secp256k1.privateKeyVerify(privateKey.slice(1))) {
83
+ throw Error("Malformed slip32: not a private key");
84
+ }
85
+ return {
86
+ chainCode: chainCode,
87
+ keyPath: keyPath,
88
+ privateKey: privateKey.slice(1),
89
+ };
90
+ };
91
+ exports.parseXprv = parseXprv;
92
+ function sha256(buffer) {
93
+ var hash = (0, crypto_1.createHash)('sha256');
94
+ hash.update(buffer);
95
+ return hash.digest();
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NyeXB0by91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0QkEsb0NBY0M7QUFnRUQsd0JBSUM7QUE5R0QsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBRXRDLGlDQUErQjtBQUMvQixpQ0FBaUU7QUFFakUsaUNBQStCO0FBQXRCLGdHQUFBLE1BQU0sT0FBQTtBQUVmLGlDQUErRztBQUExRixrR0FBQSxTQUFTLE9BQUE7QUFBRSxzR0FBQSxhQUFhLE9BQUE7QUFBa0IsNkdBQUEsb0JBQW9CLE9BQUE7QUFBRSxrR0FBQSxTQUFTLE9BQUE7QUFFOUYsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUE7QUFDNUIsSUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFBO0FBQ3RCLElBQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtBQUNyQixJQUFNLGVBQWUsR0FBRyxDQUFDLENBQUE7QUFFekIsSUFBTSxZQUFZLEdBQUcsQ0FDakIsWUFBWTtNQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUM7TUFDckQsaUJBQWlCO01BQ2pCLFVBQVUsQ0FDbkIsQ0FBQztBQUVGLElBQU0scUJBQXFCLEdBQUcsVUFBQyxLQUFhLElBQUssT0FBQSxDQUM3QyxZQUFZO01BQ04sS0FBSyxHQUFHLGVBQWU7TUFDdkIsaUJBQWlCO01BQ2pCLFVBQVUsQ0FDbkIsRUFMZ0QsQ0FLaEQsQ0FBQztBQUVGLFNBQWdCLFlBQVksQ0FBQyxNQUFjLEVBQUUsTUFBYztJQUNqRCxJQUFBLEtBQW9CLGVBQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFyRCxNQUFNLFlBQUEsRUFBRSxLQUFLLFdBQXdDLENBQUE7SUFDN0QsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDcEIsTUFBTSxLQUFLLENBQUMsaUNBQXlCLE1BQU0sbUJBQWEsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFDRCxJQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxlQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBQzdELElBQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlCLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDN0IsSUFBTSxHQUFHLEdBQUcsSUFBQSxtQkFBVSxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDdEUsSUFBTSxRQUFRLEdBQUcsSUFBQSx5QkFBZ0IsRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RSxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3RFLFNBQVMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BDLE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUM7QUFFTSxJQUFNLFNBQVMsR0FBRyxVQUFDLE1BQWM7SUFLcEMsdUJBQXVCO0lBQ2pCLElBQUEsS0FBb0IsZUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQXJELE1BQU0sWUFBQSxFQUFFLEtBQUssV0FBd0MsQ0FBQTtJQUM3RCxJQUFNLEtBQUssR0FBRyxlQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXJDLGVBQWU7SUFDZixJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNwQixNQUFNLEtBQUssQ0FBQyxzQ0FBOEIsTUFBTSxtQkFBYSxDQUFDLENBQUE7SUFDbEUsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEIsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDZCxNQUFNLEtBQUssQ0FBQyx5REFBa0QsS0FBSyxNQUFHLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBQ0QsSUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDbkQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxDQUNQLCtCQUErQjtjQUN6QixxQkFBYyxjQUFjLG9CQUFVLEtBQUssQ0FBQyxNQUFNLENBQUUsQ0FDN0QsQ0FBQTtJQUNMLENBQUM7SUFDRCxJQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFFM0MsMERBQTBEO0lBQzFELElBQU0sT0FBTyxHQUFrQixFQUFFLENBQUE7SUFDakMsSUFBTSxXQUFXLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUE7SUFDL0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsSUFBTSxTQUFTLEdBQWUsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUMvRCxJQUFNLGVBQWUsR0FBRyxZQUFZLEdBQUcsS0FBSyxHQUFHLGVBQWUsQ0FBQTtJQUM5RCxJQUFNLGFBQWEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDOUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixJQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6RCxJQUFNLGNBQWMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsZUFBZSxHQUFHLGlCQUFpQixDQUFDLENBQUE7SUFDaEYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN6QyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUUsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsT0FBTztRQUNILFNBQVMsV0FBQTtRQUNULE9BQU8sU0FBQTtRQUNQLFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNsQyxDQUFBO0FBQ0wsQ0FBQyxDQUFDO0FBNURXLFFBQUEsU0FBUyxhQTREcEI7QUFFRixTQUFnQixNQUFNLENBQUMsTUFBVztJQUM5QixJQUFNLElBQUksR0FBRyxJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUE7SUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc2VjcDI1NmsxID0gcmVxdWlyZShcInNlY3AyNTZrMVwiKVxuXG5pbXBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInXG5pbXBvcnQgeyBjcmVhdGVEZWNpcGhlcml2LCBjcmVhdGVIYXNoLCBwYmtkZjJTeW5jIH0gZnJvbSAnY3J5cHRvJ1xuXG5leHBvcnQgeyBiZWNoMzIgfSBmcm9tICdiZWNoMzInXG5cbmV4cG9ydCB7IFByaXZhdGVLZXksIFB1YmxpY0tleSwgUHVibGljS2V5SGFzaCwgS2V5ZWRTaWduYXR1cmUsIFJlY292ZXJhYmxlU2lnbmF0dXJlLCBTaWduYXR1cmUgfSBmcm9tIFwiLi90eXBlc1wiXG5cbmNvbnN0IENIQUlOX0NPREVfTEVOR1RIID0gMzJcbmNvbnN0IERFUFRIX0xFTkdUSCA9IDFcbmNvbnN0IEtFWV9MRU5HVEggPSAzM1xuY29uc3QgS0VZX1BBVEhfTEVOR1RIID0gNFxuXG5jb25zdCBCRUNIMzJfTElNSVQgPSAoXG4gICAgREVQVEhfTEVOR1RIIFxuICAgICAgICArICgoTWF0aC5wb3coMjU2LCBERVBUSF9MRU5HVEgpIC0gMSkgKiBLRVlfUEFUSF9MRU5HVEgpIFxuICAgICAgICArIENIQUlOX0NPREVfTEVOR1RIIFxuICAgICAgICArIEtFWV9MRU5HVEhcbik7XG5cbmNvbnN0IGdldEV4cGVjdGVkRGF0YUxlbmd0aCA9IChkZXB0aDogbnVtYmVyKSA9PiAoXG4gICAgREVQVEhfTEVOR1RIXG4gICAgICAgICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEhcbiAgICAgICAgKyBDSEFJTl9DT0RFX0xFTkdUSFxuICAgICAgICArIEtFWV9MRU5HVEhcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNpcGhlclhwcnYoc2xpcDMyOiBzdHJpbmcsIHBhc3N3ZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHByZWZpeCwgd29yZHMgfSA9IGJlY2gzMi5kZWNvZGUoc2xpcDMyLCBCRUNIMzJfTElNSVQpXG4gICAgaWYgKHByZWZpeCAhPT0gXCJ4cHJ2XCIpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgWFBSViBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKVxuICAgIH1cbiAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShiZWNoMzIuZnJvbVdvcmRzKHdvcmRzKSkuYnVmZmVyXG4gICAgY29uc3QgaXYgPSBidWZmZXIuc2xpY2UoMCwgMTYpXG4gICAgY29uc3Qgc2FsdCA9IGJ1ZmZlci5zbGljZSgxNiwgNDgpXG4gICAgY29uc3QgZGF0YSA9IGJ1ZmZlci5zbGljZSg0OClcbiAgICBjb25zdCBrZXkgPSBwYmtkZjJTeW5jKHBhc3N3ZCwgQnVmZmVyLmZyb20oc2FsdCksIDEwMDAwLCAzMiwgJ3NoYTI1NicpICAgIFxuICAgIGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdihcImFlcy0yNTYtY2JjXCIsIGtleSwgQnVmZmVyLmZyb20oaXYpKVxuICAgIGxldCBkZWNyeXB0ZWQgPSBkZWNpcGhlci51cGRhdGUoQnVmZmVyLmZyb20oZGF0YSksIHVuZGVmaW5lZCwgJ3V0Zi04JylcbiAgICBkZWNyeXB0ZWQgKz0gZGVjaXBoZXIuZmluYWwoJ3V0Zi04JylcbiAgICByZXR1cm4gZGVjcnlwdGVkXG59XG5cbmV4cG9ydCBjb25zdCBwYXJzZVhwcnYgPSAoc2xpcDMyOiBzdHJpbmcpOiB7XG4gICAgY2hhaW5Db2RlOiBVaW50OEFycmF5LFxuICAgIGtleVBhdGg6IEFycmF5PG51bWJlcj4sXG4gICAgcHJpdmF0ZUtleTogVWludDhBcnJheSxcbn0gPT4ge1xuICAgIC8vIGRlY29kZSBzbGlwMzIgc3RyaW5nXG4gICAgY29uc3QgeyBwcmVmaXgsIHdvcmRzIH0gPSBiZWNoMzIuZGVjb2RlKHNsaXAzMiwgQkVDSDMyX0xJTUlUKVxuICAgIGNvbnN0IGJ5dGVzID0gYmVjaDMyLmZyb21Xb3Jkcyh3b3JkcylcblxuICAgIC8vIGNoZWNrIHByZWZpeFxuICAgIGlmIChwcmVmaXggIT09IFwieHBydlwiKSB7XG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIFhQUlY6IGJhZCBoZWFkZXI6IFwiJHtwcmVmaXh9XCIgIT0gXCJ4cHJ2XCJgKVxuICAgIH1cblxuICAgIC8vIGNoZWNrIGV4cGVjdGVkIGRhdGEgbGVuZ3RoXG4gICAgY29uc3QgZGVwdGggPSBieXRlc1swXVxuICAgIGlmIChkZXB0aCAhPT0gMCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBYUFJWOiBub3QgYSBtYXN0ZXIgcHJpdmF0ZSBrZXkgKGRlcHRoOiAke2RlcHRofSlgKVxuICAgIH1cbiAgICBjb25zdCBleHBlY3RlZExlbmd0aCA9IGdldEV4cGVjdGVkRGF0YUxlbmd0aChkZXB0aClcbiAgICBpZiAoYnl0ZXMubGVuZ3RoICE9PSBleHBlY3RlZExlbmd0aCkge1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiSW52YWxpZCBYUFJWOiBiYWQgZGF0YSBsZW5ndGhcIlxuICAgICAgICAgICAgICAgICsgYChleHBlY3RlZDogJHtleHBlY3RlZExlbmd0aH0sIHdhczogJHtieXRlcy5sZW5ndGh9YFxuICAgICAgICApXG4gICAgfVxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGJ5dGVzKS5idWZmZXJcblxuICAgIC8vIGV4dHJhY3Qga2V5IHBhdGggKDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYmlnIGVuZGlhbilcbiAgICBjb25zdCBrZXlQYXRoOiBBcnJheTxudW1iZXI+ID0gW11cbiAgICBjb25zdCBrZXlQYXRoVmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIERFUFRIX0xFTkdUSCwgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZXB0aDsgaSsrKSB7XG4gICAgICAgIGtleVBhdGgucHVzaCgoa2V5UGF0aFZpZXcuZ2V0VWludDMyKGkgKiBLRVlfUEFUSF9MRU5HVEgsIGZhbHNlKSkpXG4gICAgfVxuXG4gICAgLy8gZXh0cmFjdCBjaGFpbiBjb2RlXG4gICAgY29uc3QgY2hhaW5Db2RlOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoQ0hBSU5fQ09ERV9MRU5HVEgpXG4gICAgY29uc3QgY2hhaW5Db2RlT2Zmc2V0ID0gREVQVEhfTEVOR1RIICsgZGVwdGggKiBLRVlfUEFUSF9MRU5HVEhcbiAgICBjb25zdCBjaGFpbkNvZGVWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlciwgY2hhaW5Db2RlT2Zmc2V0LCBDSEFJTl9DT0RFX0xFTkdUSClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYWluQ29kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjaGFpbkNvZGVbaV0gPSAoY2hhaW5Db2RlVmlldy5nZXRVaW50OChpKSlcbiAgICB9XG5cbiAgICAvLyBleHRyYWN0IGtleSBieXRlc1xuICAgIGNvbnN0IHByaXZhdGVLZXk6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShLRVlfTEVOR1RIKVxuICAgIGNvbnN0IHByaXZhdGVLZXlWaWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlciwgY2hhaW5Db2RlT2Zmc2V0ICsgQ0hBSU5fQ09ERV9MRU5HVEgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcml2YXRlS2V5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHByaXZhdGVLZXlbaV0gPSAocHJpdmF0ZUtleVZpZXcuZ2V0VWludDgoaSkpXG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgcHJpdmF0ZSBvciBwdWJsaWMga2V5IGFyZSB2YWxpZFxuICAgIGlmIChwcml2YXRlS2V5WzBdICE9PSAwIHx8ICFzZWNwMjU2azEucHJpdmF0ZUtleVZlcmlmeShwcml2YXRlS2V5LnNsaWNlKDEpKSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgTWFsZm9ybWVkIHNsaXAzMjogbm90IGEgcHJpdmF0ZSBrZXlgKVxuICAgIH0gXG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjaGFpbkNvZGUsXG4gICAgICAgIGtleVBhdGgsXG4gICAgICAgIHByaXZhdGVLZXk6IHByaXZhdGVLZXkuc2xpY2UoMSksXG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNoYTI1NihidWZmZXI6IGFueSkge1xuICAgIGNvbnN0IGhhc2ggPSBjcmVhdGVIYXNoKCdzaGEyNTYnKVxuICAgIGhhc2gudXBkYXRlKGJ1ZmZlcilcbiAgICByZXR1cm4gaGFzaC5kaWdlc3QoKVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { Balance, Network, QueryStakesOrder, StakeEntry } from "../types";
2
+ import { IAccount, IBIP32, ICoinbase, IProvider, ISigner, IWallet } from "./interfaces";
3
+ import { PublicKey, PublicKeyHashString, UtxoSelectionStrategy } from "./types";
4
+ export declare class Wallet implements IWallet {
5
+ protected root: IBIP32;
6
+ protected _accounts: Array<IAccount>;
7
+ readonly coinbase: ICoinbase;
8
+ gap: number;
9
+ readonly provider: IProvider;
10
+ strategy: UtxoSelectionStrategy;
11
+ static fromXprv(xprv: string, provider: IProvider, strategy?: UtxoSelectionStrategy, gap?: number): Promise<Wallet>;
12
+ static fromEncryptedXprv(xprv: string, passwd: string, provider: IProvider, strategy?: UtxoSelectionStrategy, gap?: number): Promise<Wallet>;
13
+ constructor(root: IBIP32, provider: IProvider, strategy?: UtxoSelectionStrategy, gap?: number);
14
+ get accounts(): Array<IAccount> | undefined;
15
+ get network(): Network | undefined;
16
+ get pkh(): PublicKeyHashString;
17
+ get publicKey(): PublicKey;
18
+ get signers(): Array<ISigner>;
19
+ deriveAccounts(limit: number): Array<IAccount>;
20
+ exploreAccounts(limit: number, gap?: number): Promise<Array<IAccount>>;
21
+ findAccount(pkh: PublicKeyHashString, gap?: number): IAccount | undefined;
22
+ countUtxos(reload?: boolean): Promise<number>;
23
+ getBalance(): Promise<Balance>;
24
+ getDelegates(order?: QueryStakesOrder, leftJoin?: boolean): Promise<Array<StakeEntry>>;
25
+ }
26
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/lib/crypto/wallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAA;AAGxF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/E,qBAAa,MAAO,YAAW,OAAO;IAClC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAM;IAE1C,SAAgB,QAAQ,EAAE,SAAS,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACnB,SAAgB,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,EAAE,qBAAqB,CAAC;WAE1B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAU5G,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAItI,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,MAAM;IAQ7F,IAAW,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,CAEjD;IAED,IAAW,OAAO,IAAI,OAAO,GAAG,SAAS,CAExC;IAED,IAAW,GAAG,IAAI,mBAAmB,CAEpC;IAED,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED,IAAW,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAQnC;IAEM,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IAcxC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAwB5E,WAAW,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAmBnE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAa7C,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAmB9B,YAAY,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAqBnG"}