mainnet-js 3.1.7 → 4.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.html +1 -1
- package/dist/{mainnet-3.1.7.js → mainnet-4.0.0-next.2.js} +66 -166
- package/dist/module/cache/walletCache.d.ts +16 -6
- package/dist/module/cache/walletCache.d.ts.map +1 -1
- package/dist/module/cache/walletCache.js +92 -34
- package/dist/module/cache/walletCache.js.map +1 -1
- package/dist/module/mine/mine.d.ts.map +1 -1
- package/dist/module/mine/mine.js +14 -19
- package/dist/module/mine/mine.js.map +1 -1
- package/dist/module/network/Connection.d.ts +1 -12
- package/dist/module/network/Connection.d.ts.map +1 -1
- package/dist/module/network/Connection.js +12 -33
- package/dist/module/network/Connection.js.map +1 -1
- package/dist/module/network/ElectrumNetworkProvider.d.ts +4 -7
- package/dist/module/network/ElectrumNetworkProvider.d.ts.map +1 -1
- package/dist/module/network/ElectrumNetworkProvider.js +43 -70
- package/dist/module/network/ElectrumNetworkProvider.js.map +1 -1
- package/dist/module/network/configuration.d.ts +2 -4
- package/dist/module/network/configuration.d.ts.map +1 -1
- package/dist/module/network/configuration.js +25 -50
- package/dist/module/network/configuration.js.map +1 -1
- package/dist/module/network/constant.d.ts +7 -7
- package/dist/module/network/constant.d.ts.map +1 -1
- package/dist/module/network/constant.js +20 -24
- package/dist/module/network/constant.js.map +1 -1
- package/dist/module/network/default.d.ts +3 -2
- package/dist/module/network/default.d.ts.map +1 -1
- package/dist/module/network/default.js +19 -51
- package/dist/module/network/default.js.map +1 -1
- package/dist/module/network/index.d.ts +2 -2
- package/dist/module/network/index.d.ts.map +1 -1
- package/dist/module/network/index.js +2 -2
- package/dist/module/network/index.js.map +1 -1
- package/dist/module/network/interface.d.ts +0 -6
- package/dist/module/network/interface.d.ts.map +1 -1
- package/dist/module/wallet/Base.d.ts.map +1 -1
- package/dist/module/wallet/Base.js +33 -12
- package/dist/module/wallet/Base.js.map +1 -1
- package/dist/module/wallet/HDWallet.d.ts.map +1 -1
- package/dist/module/wallet/HDWallet.js +16 -35
- package/dist/module/wallet/HDWallet.js.map +1 -1
- package/dist/module/wallet/Watch.d.ts +22 -1
- package/dist/module/wallet/Watch.d.ts.map +1 -1
- package/dist/module/wallet/Watch.js +137 -6
- package/dist/module/wallet/Watch.js.map +1 -1
- package/dist/module/wallet/Wif.d.ts +1 -1
- package/dist/module/wallet/Wif.d.ts.map +1 -1
- package/dist/module/wallet/Wif.js +0 -4
- package/dist/module/wallet/Wif.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/src/cache/walletCache.ts +122 -57
- package/src/mine/mine.ts +18 -22
- package/src/network/Connection.test.ts +8 -7
- package/src/network/Connection.ts +16 -42
- package/src/network/ElectrumNetworkProvider.ts +54 -88
- package/src/network/Rpc.test.ts +6 -5
- package/src/network/configuration.test.ts +23 -25
- package/src/network/configuration.ts +29 -55
- package/src/network/constant.ts +20 -25
- package/src/network/default.ts +25 -87
- package/src/network/electrum.test.ts +47 -11
- package/src/network/index.ts +7 -2
- package/src/network/interface.ts +0 -7
- package/src/network/subscription.test.ts +268 -0
- package/src/wallet/Base.ts +39 -17
- package/src/wallet/Cashtokens.test.headless.js +6 -0
- package/src/wallet/Cashtokens.test.ts +13 -0
- package/src/wallet/HDWallet.test.ts +4 -4
- package/src/wallet/HDWallet.ts +19 -35
- package/src/wallet/WalletCache.test.ts +6 -2
- package/src/wallet/Watch.ts +199 -7
- package/src/wallet/Wif.test.ts +6 -0
- package/src/wallet/Wif.ts +2 -9
- package/tsconfig.browser.json +10 -1
- package/tsconfig.json +12 -1
- package/webpack.config.cjs +1 -0
- package/dist/module/network/util.d.ts +0 -3
- package/dist/module/network/util.d.ts.map +0 -1
- package/dist/module/network/util.js +0 -27
- package/dist/module/network/util.js.map +0 -1
- package/src/network/util.test.ts +0 -24
- package/src/network/util.ts +0 -30
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { HdPrivateNodeValid, HdPublicNodeValid } from "@bitauth/libauth";
|
|
2
2
|
import { TxI, Utxo } from "../interface.js";
|
|
3
|
-
import { CacheProvider } from "./interface.js";
|
|
4
3
|
export declare const stringify: (_: any) => string;
|
|
5
4
|
export declare const parse: (data: string) => any;
|
|
6
5
|
export interface WalletCacheEntry {
|
|
@@ -23,12 +22,25 @@ export interface WalletCache {
|
|
|
23
22
|
}
|
|
24
23
|
export interface WalletCacheI extends WalletCache {
|
|
25
24
|
init(): Promise<void>;
|
|
26
|
-
persist(): Promise<void>;
|
|
25
|
+
persist(immediate?: boolean): Promise<void>;
|
|
27
26
|
get(address: string): WalletCacheEntry | undefined;
|
|
28
27
|
getByIndex(addressIndex: number, change: boolean): WalletCacheEntry;
|
|
29
28
|
setStatusAndUtxos(address: string, status: string | null, utxos: Utxo[], rawHistory: TxI[], lastConfirmedHeight: number): void;
|
|
30
29
|
}
|
|
31
|
-
export declare class
|
|
30
|
+
export declare class SingleAddressWalletCache implements WalletCacheI {
|
|
31
|
+
walletId: string;
|
|
32
|
+
writeTimeout: number;
|
|
33
|
+
private entry;
|
|
34
|
+
private _storage;
|
|
35
|
+
private debounceTimer;
|
|
36
|
+
constructor(walletId: string, address: string, tokenAddress: string, writeTimeout?: number);
|
|
37
|
+
init(): Promise<void>;
|
|
38
|
+
persist(immediate?: boolean): Promise<void>;
|
|
39
|
+
get(address: string): WalletCacheEntry | undefined;
|
|
40
|
+
getByIndex(_index: number, _change: boolean): WalletCacheEntry;
|
|
41
|
+
setStatusAndUtxos(address: string, status: string | null, utxos: Utxo[], rawHistory: TxI[], lastConfirmedHeight: number): void;
|
|
42
|
+
}
|
|
43
|
+
export declare class HDWalletCache implements WalletCacheI {
|
|
32
44
|
walletId: string;
|
|
33
45
|
hdNode: HdPublicNodeValid | HdPrivateNodeValid;
|
|
34
46
|
networkPrefix: string;
|
|
@@ -37,11 +49,9 @@ export declare class PersistentWalletCache implements WalletCacheI {
|
|
|
37
49
|
private walletCache;
|
|
38
50
|
private indexCache;
|
|
39
51
|
private debounceTimer;
|
|
40
|
-
get storage(): CacheProvider | undefined;
|
|
41
52
|
constructor(walletId: string, hdNode: HdPublicNodeValid | HdPrivateNodeValid, networkPrefix: string, writeTimeout?: number);
|
|
42
53
|
init(): Promise<void>;
|
|
43
|
-
|
|
44
|
-
persist(): Promise<void>;
|
|
54
|
+
persist(immediate?: boolean): Promise<void>;
|
|
45
55
|
getByIndex(addressIndex: number, change: boolean): WalletCacheEntry;
|
|
46
56
|
get(address: string): WalletCacheEntry | undefined;
|
|
47
57
|
setStatusAndUtxos(address: string, status: string | null, utxos: Utxo[], rawHistory: TxI[], lastConfirmedHeight: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletCache.d.ts","sourceRoot":"","sources":["../../../src/cache/walletCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,kBAAkB,EAClB,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"walletCache.d.ts","sourceRoot":"","sources":["../../../src/cache/walletCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,30 +17,85 @@ export const parse = (data) => JSON.parse(data, (key, value) => {
|
|
|
17
17
|
}
|
|
18
18
|
return value;
|
|
19
19
|
});
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
function getStorage() {
|
|
21
|
+
if (Config.UseMemoryCache)
|
|
22
|
+
return new MemoryCache();
|
|
23
|
+
if (Config.UseLocalStorageCache)
|
|
24
|
+
return new WebStorageCache();
|
|
25
|
+
if (Config.UseIndexedDBCache)
|
|
26
|
+
return new IndexedDbCache("WalletCache");
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
/// Cache for single-address wallets (WatchWallet, Wif)
|
|
30
|
+
export class SingleAddressWalletCache {
|
|
31
|
+
constructor(walletId, address, tokenAddress, writeTimeout = 2000) {
|
|
32
|
+
this.walletId = walletId;
|
|
33
|
+
this.writeTimeout = writeTimeout;
|
|
34
|
+
this.entry = {
|
|
35
|
+
address,
|
|
36
|
+
tokenAddress,
|
|
37
|
+
privateKey: undefined,
|
|
38
|
+
publicKey: new Uint8Array(),
|
|
39
|
+
publicKeyHash: new Uint8Array(),
|
|
40
|
+
index: 0,
|
|
41
|
+
change: false,
|
|
42
|
+
status: null,
|
|
43
|
+
utxos: [],
|
|
44
|
+
rawHistory: [],
|
|
45
|
+
lastConfirmedHeight: 0,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
async init() {
|
|
49
|
+
this._storage = getStorage();
|
|
50
|
+
await this._storage?.init();
|
|
51
|
+
const data = await this._storage?.getItem(`walletCache-${this.walletId}`);
|
|
52
|
+
if (data) {
|
|
53
|
+
try {
|
|
54
|
+
const parsed = parse(data);
|
|
55
|
+
// Restore persisted fields, keep address identity from constructor
|
|
56
|
+
const addr = this.entry.address;
|
|
57
|
+
const tokenAddr = this.entry.tokenAddress;
|
|
58
|
+
Object.assign(this.entry, parsed, {
|
|
59
|
+
address: addr,
|
|
60
|
+
tokenAddress: tokenAddr,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (_e) {
|
|
64
|
+
// ignore
|
|
65
|
+
}
|
|
31
66
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
67
|
+
}
|
|
68
|
+
async persist(immediate = false) {
|
|
69
|
+
if (this.debounceTimer)
|
|
70
|
+
clearTimeout(this.debounceTimer);
|
|
71
|
+
if (immediate) {
|
|
72
|
+
this.debounceTimer = undefined;
|
|
73
|
+
await this._storage?.setItem(`walletCache-${this.walletId}`, stringify(this.entry));
|
|
36
74
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
75
|
+
else {
|
|
76
|
+
this.debounceTimer = setTimeout(() => {
|
|
77
|
+
this.debounceTimer = undefined;
|
|
78
|
+
this._storage?.setItem(`walletCache-${this.walletId}`, stringify(this.entry));
|
|
79
|
+
}, this.writeTimeout);
|
|
41
80
|
}
|
|
42
|
-
return this._storage;
|
|
43
81
|
}
|
|
82
|
+
get(address) {
|
|
83
|
+
return address === this.entry.address ? this.entry : undefined;
|
|
84
|
+
}
|
|
85
|
+
getByIndex(_index, _change) {
|
|
86
|
+
return this.entry;
|
|
87
|
+
}
|
|
88
|
+
setStatusAndUtxos(address, status, utxos, rawHistory, lastConfirmedHeight) {
|
|
89
|
+
if (address !== this.entry.address)
|
|
90
|
+
return;
|
|
91
|
+
this.entry.status = status;
|
|
92
|
+
this.entry.utxos = utxos;
|
|
93
|
+
this.entry.rawHistory = rawHistory;
|
|
94
|
+
this.entry.lastConfirmedHeight = lastConfirmedHeight;
|
|
95
|
+
this.persist();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export class HDWalletCache {
|
|
44
99
|
constructor(walletId, hdNode, networkPrefix, writeTimeout = 2000) {
|
|
45
100
|
this.walletId = walletId;
|
|
46
101
|
this.hdNode = hdNode;
|
|
@@ -53,8 +108,9 @@ export class PersistentWalletCache {
|
|
|
53
108
|
}
|
|
54
109
|
}
|
|
55
110
|
async init() {
|
|
56
|
-
|
|
57
|
-
|
|
111
|
+
this._storage = getStorage();
|
|
112
|
+
await this._storage?.init();
|
|
113
|
+
const data = await this._storage?.getItem(`walletCache-${this.walletId}`);
|
|
58
114
|
if (data) {
|
|
59
115
|
try {
|
|
60
116
|
const parsed = parse(data);
|
|
@@ -66,21 +122,23 @@ export class PersistentWalletCache {
|
|
|
66
122
|
}
|
|
67
123
|
}
|
|
68
124
|
}
|
|
69
|
-
|
|
70
|
-
if (this.debounceTimer)
|
|
71
|
-
clearTimeout(this.debounceTimer);
|
|
72
|
-
this.debounceTimer = setTimeout(() => {
|
|
73
|
-
this.persist().catch(() => { });
|
|
74
|
-
}, this.writeTimeout);
|
|
75
|
-
}
|
|
76
|
-
async persist() {
|
|
125
|
+
async persist(immediate = false) {
|
|
77
126
|
if (this.debounceTimer)
|
|
78
127
|
clearTimeout(this.debounceTimer);
|
|
79
|
-
this.
|
|
80
|
-
this.storage?.setItem(`walletCache-${this.walletId}`, stringify({
|
|
128
|
+
const write = () => this._storage?.setItem(`walletCache-${this.walletId}`, stringify({
|
|
81
129
|
walletCache: this.walletCache,
|
|
82
130
|
indexCache: this.indexCache,
|
|
83
131
|
}));
|
|
132
|
+
if (immediate) {
|
|
133
|
+
this.debounceTimer = undefined;
|
|
134
|
+
await write();
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.debounceTimer = setTimeout(() => {
|
|
138
|
+
this.debounceTimer = undefined;
|
|
139
|
+
write();
|
|
140
|
+
}, this.writeTimeout);
|
|
141
|
+
}
|
|
84
142
|
}
|
|
85
143
|
getByIndex(addressIndex, change) {
|
|
86
144
|
const id = `${this.walletId}-${addressIndex}-${change}`;
|
|
@@ -121,7 +179,7 @@ export class PersistentWalletCache {
|
|
|
121
179
|
index: addressIndex,
|
|
122
180
|
change,
|
|
123
181
|
};
|
|
124
|
-
this.
|
|
182
|
+
this.persist();
|
|
125
183
|
}
|
|
126
184
|
return this.walletCache[id];
|
|
127
185
|
}
|
|
@@ -146,7 +204,7 @@ export class PersistentWalletCache {
|
|
|
146
204
|
this.walletCache[key].utxos = utxos;
|
|
147
205
|
this.walletCache[key].rawHistory = rawHistory;
|
|
148
206
|
this.walletCache[key].lastConfirmedHeight = lastConfirmedHeight;
|
|
149
|
-
this.
|
|
207
|
+
this.persist();
|
|
150
208
|
}
|
|
151
209
|
}
|
|
152
210
|
//# sourceMappingURL=walletCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletCache.js","sourceRoot":"","sources":["../../../src/cache/walletCache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EAER,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,OAAO,EAGP,QAAQ,EACR,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAClC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC,CAAC,CAAC;AACL,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAqCL,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"walletCache.js","sourceRoot":"","sources":["../../../src/cache/walletCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mine.d.ts","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mine.d.ts","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,0BAGd;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,KAAG,OAAO,CAAC,GAAG,CAiBd,CAAC"}
|
package/dist/module/mine/mine.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { binToBase64, utf8ToBin } from "@bitauth/libauth";
|
|
2
|
+
import { http } from "@rpckit/http";
|
|
3
|
+
import { fallback } from "@rpckit/fallback";
|
|
2
4
|
/**
|
|
3
5
|
* Mine blocks to a regtest address
|
|
4
6
|
*
|
|
@@ -9,24 +11,17 @@ import { binToBase64, utf8ToBin } from "@bitauth/libauth";
|
|
|
9
11
|
* This function assumes a local regtest bitcoin node with RPC_* matching the docker configuration
|
|
10
12
|
*/
|
|
11
13
|
export const mine = async ({ cashaddr, blocks, }) => {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
nblocks: blocks,
|
|
25
|
-
address: cashaddr,
|
|
26
|
-
},
|
|
27
|
-
}),
|
|
28
|
-
});
|
|
29
|
-
const json = await response.json();
|
|
30
|
-
return json.result;
|
|
14
|
+
const auth = "Basic " +
|
|
15
|
+
binToBase64(utf8ToBin(`${process.env.RPC_USER}:${process.env.RPC_PASS}`));
|
|
16
|
+
const transports = ["127.0.0.1", "host.docker.internal"].map((host) => http(`http://${host}:${process.env.RPC_PORT}/`, {
|
|
17
|
+
headers: { Authorization: auth },
|
|
18
|
+
}));
|
|
19
|
+
const transport = fallback(transports);
|
|
20
|
+
try {
|
|
21
|
+
return await transport.request("generatetoaddress", blocks, cashaddr);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
await transport.close();
|
|
25
|
+
}
|
|
31
26
|
};
|
|
32
27
|
//# sourceMappingURL=mine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,EACzB,QAAQ,EACR,MAAM,GAIP,EAAgB,EAAE;IACjB,MAAM,IAAI,GACR,QAAQ;QACR,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpE,IAAI,CAAC,UAAU,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE;QAC9C,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KACjC,CAAC,CACuB,CAAC;IAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
import { default as NetworkProvider } from "./NetworkProvider.js";
|
|
2
1
|
import { Network } from "../interface.js";
|
|
3
|
-
|
|
4
|
-
export declare function initProvider(network: Network): Promise<NetworkProvider | undefined>;
|
|
2
|
+
export declare function initProvider(network: Network): Promise<import("./NetworkProvider.js").default | undefined>;
|
|
5
3
|
export declare function initProviders(networks?: Network[]): Promise<void>;
|
|
6
4
|
export declare function disconnectProviders(networks?: Network[]): Promise<void>;
|
|
7
|
-
export declare class Connection {
|
|
8
|
-
network: Network;
|
|
9
|
-
servers?: string[];
|
|
10
|
-
networkPrefix: CashAddressNetworkPrefix;
|
|
11
|
-
networkProvider: NetworkProvider;
|
|
12
|
-
constructor(network?: Network, servers?: string[] | string);
|
|
13
|
-
ready(): Promise<this>;
|
|
14
|
-
disconnect(): Promise<this>;
|
|
15
|
-
}
|
|
16
5
|
//# sourceMappingURL=Connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../../src/network/Connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Connection.d.ts","sourceRoot":"","sources":["../../../src/network/Connection.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,+DAQlD;AAED,wBAAsB,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,iBAcvD;AAUD,wBAAsB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,iBAG7D"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createProvider, setGlobalProvider, getGlobalProvider, removeGlobalProvider, } from "./default.js";
|
|
2
2
|
import { networkTickerMap } from "./constant.js";
|
|
3
|
-
import { prefixFromNetworkMap } from "../enum.js";
|
|
4
3
|
export async function initProvider(network) {
|
|
5
4
|
if (!getGlobalProvider(network)) {
|
|
6
|
-
const
|
|
7
|
-
|
|
5
|
+
const provider = await createProvider(network);
|
|
6
|
+
await provider.connect();
|
|
8
7
|
setGlobalProvider(network, provider);
|
|
9
8
|
return provider;
|
|
10
9
|
}
|
|
@@ -12,44 +11,24 @@ export async function initProvider(network) {
|
|
|
12
11
|
}
|
|
13
12
|
export async function initProviders(networks) {
|
|
14
13
|
networks = networks ? networks : Object.keys(networkTickerMap);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const results = await Promise.allSettled(networks.map((n) => initProvider(n)));
|
|
15
|
+
for (let i = 0; i < results.length; i++) {
|
|
16
|
+
if (results[i].status === "rejected") {
|
|
17
|
+
const { reason } = results[i];
|
|
18
|
+
const message = reason instanceof Error ? reason.message : reason;
|
|
19
|
+
console.warn(`Warning, couldn't establish a connection for ${networks[i]}: ${message}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
19
22
|
}
|
|
20
23
|
async function disconnectProvider(network) {
|
|
21
24
|
const provider = getGlobalProvider(network);
|
|
22
25
|
if (provider) {
|
|
23
26
|
await provider.disconnect();
|
|
24
27
|
removeGlobalProvider(network);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// console.warn(
|
|
29
|
-
// `Ignoring attempt to disconnect non-existent ${network} provider`
|
|
30
|
-
// );
|
|
31
|
-
return true;
|
|
32
28
|
}
|
|
33
29
|
}
|
|
34
30
|
export async function disconnectProviders(networks) {
|
|
35
31
|
networks = networks ? networks : Object.keys(networkTickerMap);
|
|
36
|
-
|
|
37
|
-
await Promise.all(disconnectPromises);
|
|
38
|
-
}
|
|
39
|
-
export class Connection {
|
|
40
|
-
constructor(network, servers) {
|
|
41
|
-
this.network = network ? network : "mainnet";
|
|
42
|
-
this.networkPrefix = prefixFromNetworkMap[this.network];
|
|
43
|
-
this.networkProvider = getNetworkProvider(this.network, servers, true);
|
|
44
|
-
}
|
|
45
|
-
async ready() {
|
|
46
|
-
await this.networkProvider.connect();
|
|
47
|
-
await this.networkProvider.ready();
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
async disconnect() {
|
|
51
|
-
await this.networkProvider.disconnect();
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
32
|
+
await Promise.all(networks.map((n) => disconnectProvider(n)));
|
|
54
33
|
}
|
|
55
34
|
//# sourceMappingURL=Connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/network/Connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../../../src/network/Connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB;IACjD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAoB;IACtD,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAe,CAAC;IAC9E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAA0B,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAClE,OAAO,CAAC,IAAI,CACV,gDAAgD,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAoB;IAC5D,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAe,CAAC;IAC9E,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Transport } from "@rpckit/core";
|
|
2
|
+
import type { ElectrumCashSchema } from "@rpckit/core/electrum-cash";
|
|
2
3
|
import { default as NetworkProvider } from "./NetworkProvider.js";
|
|
3
4
|
import { HexHeaderI, TxI, Utxo, HeaderI } from "../interface.js";
|
|
4
5
|
import { Network } from "../interface.js";
|
|
@@ -7,15 +8,13 @@ import { CancelFn } from "../wallet/interface.js";
|
|
|
7
8
|
import { CacheProvider } from "../cache/interface.js";
|
|
8
9
|
export default class ElectrumNetworkProvider implements NetworkProvider {
|
|
9
10
|
network: Network;
|
|
10
|
-
|
|
11
|
-
electrum: ElectrumClient<ElectrumClientEvents>;
|
|
11
|
+
transport: Transport<ElectrumCashSchema>;
|
|
12
12
|
subscriptions: number;
|
|
13
|
-
private subscriptionMap;
|
|
14
13
|
private currentHeight;
|
|
15
14
|
private headerCancelFn?;
|
|
16
15
|
private _cache;
|
|
17
16
|
get cache(): CacheProvider | undefined;
|
|
18
|
-
constructor(
|
|
17
|
+
constructor(transport: Transport<ElectrumCashSchema>, network?: Network);
|
|
19
18
|
getUtxos(cashaddr: string): Promise<Utxo[]>;
|
|
20
19
|
getBalance(cashaddr: string): Promise<bigint>;
|
|
21
20
|
getHeader(height: number, verbose?: boolean): Promise<HeaderI | HexHeaderI>;
|
|
@@ -38,8 +37,6 @@ export default class ElectrumNetworkProvider implements NetworkProvider {
|
|
|
38
37
|
subscribeToAddress(cashaddr: string, callback: (data: any) => void): Promise<CancelFn>;
|
|
39
38
|
subscribeToTransaction(txHash: string, callback: (data: any) => void): Promise<CancelFn>;
|
|
40
39
|
private performRequest;
|
|
41
|
-
private trackSubscription;
|
|
42
|
-
private untrackSubscription;
|
|
43
40
|
subscribeRequest(methodName: string, callback: (data: any) => void, ...parameters: (string | number | boolean)[]): Promise<CancelFn>;
|
|
44
41
|
ready(): Promise<boolean | unknown>;
|
|
45
42
|
connect(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElectrumNetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ElectrumNetworkProvider.d.ts","sourceRoot":"","sources":["../../../src/network/ElectrumNetworkProvider.ts"],"names":[],"mappings":"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"}
|