@bsv/wallet-toolbox 1.4.11 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/mobile/out/src/CWIStyleWalletManager.js +1 -1
- package/mobile/out/src/CWIStyleWalletManager.js.map +1 -1
- package/mobile/out/src/SetupClient.mobile.d.ts +90 -0
- package/mobile/out/src/SetupClient.mobile.d.ts.map +1 -0
- package/mobile/out/src/SetupClient.mobile.js +183 -0
- package/mobile/out/src/SetupClient.mobile.js.map +1 -0
- package/mobile/out/src/SetupWallet.mobile.d.ts +93 -0
- package/mobile/out/src/SetupWallet.mobile.d.ts.map +1 -0
- package/mobile/out/src/SetupWallet.mobile.js +3 -0
- package/mobile/out/src/SetupWallet.mobile.js.map +1 -0
- package/mobile/out/src/monitor/tasks/TaskReviewStatus.d.ts +1 -1
- package/mobile/out/src/monitor/tasks/TaskReviewStatus.js +1 -1
- package/mobile/out/src/services/chaintracker/{BHServiceClient.d.ts → BhsChainTracker.d.ts} +16 -12
- package/mobile/out/src/services/chaintracker/BhsChainTracker.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/BhsChainTracker.js +84 -0
- package/mobile/out/src/services/chaintracker/BhsChainTracker.js.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
- package/mobile/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
- package/mobile/out/src/services/chaintracker/index.d.ts +1 -1
- package/mobile/out/src/services/chaintracker/index.js +1 -1
- package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts +1 -1
- package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/mobile/out/src/services/createDefaultWalletServicesOptions.js +7 -10
- package/mobile/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/mobile/out/src/storage/WalletStorageManager.d.ts +25 -19
- package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/mobile/out/src/storage/WalletStorageManager.js +69 -64
- package/mobile/out/src/storage/WalletStorageManager.js.map +1 -1
- package/mobile/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/mobile/out/src/storage/methods/createAction.js +4 -9
- package/mobile/out/src/storage/methods/createAction.js.map +1 -1
- package/mobile/out/src/storage/methods/processAction.js +1 -1
- package/mobile/out/src/storage/methods/processAction.js.map +1 -1
- package/mobile/package-lock.json +6 -6
- package/mobile/package.json +2 -2
- package/out/src/AuthFetchDebug.d.ts +88 -0
- package/out/src/AuthFetchDebug.d.ts.map +1 -0
- package/out/src/AuthFetchDebug.js +518 -0
- package/out/src/AuthFetchDebug.js.map +1 -0
- package/out/src/SetupClient.mobile.d.ts +90 -0
- package/out/src/SetupClient.mobile.d.ts.map +1 -0
- package/out/src/SetupClient.mobile.js +183 -0
- package/out/src/SetupClient.mobile.js.map +1 -0
- package/out/src/SetupWallet.mobile.d.ts +93 -0
- package/out/src/SetupWallet.mobile.d.ts.map +1 -0
- package/out/src/SetupWallet.mobile.js +3 -0
- package/out/src/SetupWallet.mobile.js.map +1 -0
- package/out/src/SimplifiedFetchTransport.d.ts +1 -0
- package/out/src/SimplifiedFetchTransport.d.ts.map +1 -0
- package/out/src/SimplifiedFetchTransport.js +2 -0
- package/out/src/SimplifiedFetchTransport.js.map +1 -0
- package/out/src/services/BhsChainTracker.d.ts +1 -0
- package/out/src/services/BhsChainTracker.d.ts.map +1 -0
- package/out/src/services/BhsChainTracker.js +2 -0
- package/out/src/services/BhsChainTracker.js.map +1 -0
- package/out/src/services/chaintracker/BhsChainTracker.d.ts +38 -0
- package/out/src/services/chaintracker/BhsChainTracker.d.ts.map +1 -0
- package/out/src/services/chaintracker/BhsChainTracker.js +84 -0
- package/out/src/services/chaintracker/BhsChainTracker.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts +98 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js +38 -0
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -0
- package/out/src/storage/StorageProvider copy.d.ts +209 -0
- package/out/src/storage/StorageProvider copy.d.ts.map +1 -0
- package/out/src/storage/StorageProvider copy.js +550 -0
- package/out/src/storage/StorageProvider copy.js.map +1 -0
- package/out/src/storage/StorageProvider.mobile.d.ts +209 -0
- package/out/src/storage/StorageProvider.mobile.d.ts.map +1 -0
- package/out/src/storage/StorageProvider.mobile.js +550 -0
- package/out/src/storage/StorageProvider.mobile.js.map +1 -0
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/remoting/StorageClient copy.d.ts +283 -0
- package/out/src/storage/remoting/StorageClient copy.d.ts.map +1 -0
- package/out/src/storage/remoting/StorageClient copy.js +477 -0
- package/out/src/storage/remoting/StorageClient copy.js.map +1 -0
- package/out/test/Wallet/action/abortAction.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/abortAction.test.js.map +1 -1
- package/out/test/Wallet/action/createAction.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/createAction.test.js.map +1 -1
- package/out/test/{wallet → Wallet}/action/createAction2.test.d.ts.map +1 -1
- package/out/test/{wallet → Wallet}/action/createAction2.test.js.map +1 -1
- package/out/test/Wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.js.map +1 -1
- package/out/test/Wallet/action/internalizeAction.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/internalizeAction.test.js.map +1 -1
- package/out/test/Wallet/action/relinquishOutput.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/action/relinquishOutput.test.js.map +1 -1
- package/out/test/Wallet/construct/Wallet.constructor.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.js.map +1 -1
- package/out/test/Wallet/list/listActions.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listActions.test.js.map +1 -1
- package/out/test/Wallet/list/listActions2.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listActions2.test.js.map +1 -1
- package/out/test/Wallet/list/listCertificates.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listCertificates.test.js.map +1 -1
- package/out/test/Wallet/list/listOutputs.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/list/listOutputs.test.js.map +1 -1
- package/out/test/Wallet/sync/Wallet.sync.test.d.ts.map +1 -0
- package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/storage/WalletStorageManager.ts +1 -3
- package/mobile/out/src/services/chaintracker/BHServiceClient.d.ts.map +0 -1
- package/mobile/out/src/services/chaintracker/BHServiceClient.js +0 -163
- package/mobile/out/src/services/chaintracker/BHServiceClient.js.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +0 -140
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +0 -467
- package/mobile/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts +0 -20
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +0 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +0 -31
- package/mobile/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +0 -1
- package/mobile/out/src/utility/utilityHelpers.buffer.d.ts +0 -18
- package/mobile/out/src/utility/utilityHelpers.buffer.d.ts.map +0 -1
- package/mobile/out/src/utility/utilityHelpers.buffer.js +0 -45
- package/mobile/out/src/utility/utilityHelpers.buffer.js.map +0 -1
- package/out/test/wallet/action/abortAction.test.d.ts.map +0 -1
- package/out/test/wallet/action/createAction.test.d.ts.map +0 -1
- package/out/test/wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +0 -1
- package/out/test/wallet/action/internalizeAction.test.d.ts.map +0 -1
- package/out/test/wallet/action/relinquishOutput.test.d.ts.map +0 -1
- package/out/test/wallet/construct/Wallet.constructor.test.d.ts.map +0 -1
- package/out/test/wallet/list/listActions.test.d.ts.map +0 -1
- package/out/test/wallet/list/listActions2.test.d.ts.map +0 -1
- package/out/test/wallet/list/listCertificates.test.d.ts.map +0 -1
- package/out/test/wallet/list/listOutputs.test.d.ts.map +0 -1
- package/out/test/wallet/sync/Wallet.sync.test.d.ts.map +0 -1
- /package/out/test/{wallet → Wallet}/action/abortAction.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/abortAction.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction2.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/createAction2.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/internalizeAction.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/internalizeAction.test.js +0 -0
- /package/out/test/{wallet → Wallet}/action/relinquishOutput.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/action/relinquishOutput.test.js +0 -0
- /package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/construct/Wallet.constructor.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions2.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listActions2.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listCertificates.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listCertificates.test.js +0 -0
- /package/out/test/{wallet → Wallet}/list/listOutputs.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/list/listOutputs.test.js +0 -0
- /package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.d.ts +0 -0
- /package/out/test/{wallet → Wallet}/sync/Wallet.sync.test.js +0 -0
- /package/test/{wallet → Wallet}/action/abortAction.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/createAction.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/createAction2.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/createActionToGenerateBeefs.man.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/internalizeAction.test.ts +0 -0
- /package/test/{wallet → Wallet}/action/relinquishOutput.test.ts +0 -0
- /package/test/{wallet → Wallet}/construct/Wallet.constructor.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listActions.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listActions2.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listCertificates.test.ts +0 -0
- /package/test/{wallet → Wallet}/list/listOutputs.test.ts +0 -0
- /package/test/{wallet → Wallet}/sync/Wallet.sync.test.ts +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { BEEF, CreateActionOptions, CreateActionOutput, CreateActionResult, LockingScript, PrivateKey, WalletInterface } from '@bsv/sdk';
|
|
2
|
+
import { sdk, Wallet } from './index.mobile';
|
|
3
|
+
import { KeyPairAddress, SetupClientWalletArgs, SetupWallet, SetupWalletClient } from './SetupWallet.mobile';
|
|
4
|
+
/**
|
|
5
|
+
* Mobile-friendly version of the Setup class provides static setup functions to construct BRC-100 compatible
|
|
6
|
+
* wallets without IndexDB dependencies for mobile environments.
|
|
7
|
+
*
|
|
8
|
+
* It serves as a starting point for experimentation and customization.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class SetupClient {
|
|
11
|
+
/**
|
|
12
|
+
* Create a `Wallet`. Storage can optionally be provided or configured later.
|
|
13
|
+
*
|
|
14
|
+
* The following components are configured: KeyDeriver, WalletStorageManager, WalletService, WalletStorage.
|
|
15
|
+
* Optionally, PrivilegedKeyManager is also configured.
|
|
16
|
+
*
|
|
17
|
+
* @publicbody
|
|
18
|
+
*/
|
|
19
|
+
static createWallet(args: SetupClientWalletArgs): Promise<SetupWallet>;
|
|
20
|
+
/**
|
|
21
|
+
* Setup a new `Wallet` without requiring a .env file.
|
|
22
|
+
*
|
|
23
|
+
* @param args.chain - 'main' or 'test'
|
|
24
|
+
* @param args.rootKeyHex - Root private key for wallet's key deriver.
|
|
25
|
+
* @param args.storageUrl - Optional. `StorageClient` and `chain` compatible endpoint URL.
|
|
26
|
+
* @param args.privilegedKeyGetter - Optional. Method that will return the privileged `PrivateKey`, on demand.
|
|
27
|
+
*/
|
|
28
|
+
static createWalletClientNoEnv(args: {
|
|
29
|
+
chain: sdk.Chain;
|
|
30
|
+
rootKeyHex: string;
|
|
31
|
+
storageUrl?: string;
|
|
32
|
+
privilegedKeyGetter?: () => Promise<PrivateKey>;
|
|
33
|
+
}): Promise<Wallet>;
|
|
34
|
+
/**
|
|
35
|
+
* @publicbody
|
|
36
|
+
*/
|
|
37
|
+
static createWalletClient(args: SetupClientWalletClientArgs): Promise<SetupWalletClient>;
|
|
38
|
+
/**
|
|
39
|
+
* @publicbody
|
|
40
|
+
*/
|
|
41
|
+
static getKeyPair(priv?: string | PrivateKey): KeyPairAddress;
|
|
42
|
+
/**
|
|
43
|
+
* @publicbody
|
|
44
|
+
*/
|
|
45
|
+
static getLockP2PKH(address: string): LockingScript;
|
|
46
|
+
/**
|
|
47
|
+
* @publicbody
|
|
48
|
+
*/
|
|
49
|
+
static getUnlockP2PKH(priv: PrivateKey, satoshis: number): sdk.ScriptTemplateUnlock;
|
|
50
|
+
/**
|
|
51
|
+
* @publicbody
|
|
52
|
+
*/
|
|
53
|
+
static createP2PKHOutputs(outputs: {
|
|
54
|
+
address: string;
|
|
55
|
+
satoshis: number;
|
|
56
|
+
outputDescription?: string;
|
|
57
|
+
basket?: string;
|
|
58
|
+
tags?: string[];
|
|
59
|
+
}[]): CreateActionOutput[];
|
|
60
|
+
/**
|
|
61
|
+
* @publicbody
|
|
62
|
+
*/
|
|
63
|
+
static createP2PKHOutputsAction(wallet: WalletInterface, outputs: {
|
|
64
|
+
address: string;
|
|
65
|
+
satoshis: number;
|
|
66
|
+
outputDescription?: string;
|
|
67
|
+
basket?: string;
|
|
68
|
+
tags?: string[];
|
|
69
|
+
}[], options?: CreateActionOptions): Promise<{
|
|
70
|
+
cr: CreateActionResult;
|
|
71
|
+
outpoints: string[] | undefined;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* @publicbody
|
|
75
|
+
*/
|
|
76
|
+
static fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF): Promise<void>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Extension `SetupWalletClientArgs` of `SetupWalletArgs` is used by `createWalletClient`
|
|
80
|
+
* to construct a `SetupWalletClient`.
|
|
81
|
+
*/
|
|
82
|
+
export interface SetupClientWalletClientArgs extends SetupClientWalletArgs {
|
|
83
|
+
/**
|
|
84
|
+
* The endpoint URL of a service hosting the `StorageServer` JSON-RPC service to
|
|
85
|
+
* which a `StorageClient` instance should connect to function as
|
|
86
|
+
* the active storage provider of the newly created wallet.
|
|
87
|
+
*/
|
|
88
|
+
endpointUrl?: string;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=SetupClient.mobile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupClient.mobile.d.ts","sourceRoot":"","sources":["../../src/SetupClient.mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAEJ,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAElB,aAAa,EAEb,UAAU,EAEV,eAAe,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAW,GAAG,EAA2B,MAAM,EAAwB,MAAM,gBAAgB,CAAA;AACpG,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE5G;;;;;GAKG;AACH,8BAAsB,WAAW;IAC/B;;;;;;;OAOG;WACU,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqC5E;;;;;;;OAOG;WACU,uBAAuB,CAAC,IAAI,EAAE;QACzC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;KAChD,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnB;;OAEG;WACU,kBAAkB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAc9F;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc;IAS7D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAMnD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,oBAAoB;IAYnF;;OAEG;IACH,MAAM,CAAC,kBAAkB,CACvB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAChB,EAAE,GACF,kBAAkB,EAAE;IAgBvB;;OAEG;WACU,wBAAwB,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAChB,EAAE,EACH,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAChC,CAAC;IAwBF;;OAEG;WACU,4BAA4B,CACvC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,cAAc,EACxB,SAAS,CAAC,EAAE,IAAI;CAInB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetupClient = void 0;
|
|
4
|
+
const sdk_1 = require("@bsv/sdk");
|
|
5
|
+
const index_mobile_1 = require("./index.mobile");
|
|
6
|
+
/**
|
|
7
|
+
* Mobile-friendly version of the Setup class provides static setup functions to construct BRC-100 compatible
|
|
8
|
+
* wallets without IndexDB dependencies for mobile environments.
|
|
9
|
+
*
|
|
10
|
+
* It serves as a starting point for experimentation and customization.
|
|
11
|
+
*/
|
|
12
|
+
class SetupClient {
|
|
13
|
+
/**
|
|
14
|
+
* Create a `Wallet`. Storage can optionally be provided or configured later.
|
|
15
|
+
*
|
|
16
|
+
* The following components are configured: KeyDeriver, WalletStorageManager, WalletService, WalletStorage.
|
|
17
|
+
* Optionally, PrivilegedKeyManager is also configured.
|
|
18
|
+
*
|
|
19
|
+
* @publicbody
|
|
20
|
+
*/
|
|
21
|
+
static async createWallet(args) {
|
|
22
|
+
const chain = args.chain;
|
|
23
|
+
const rootKey = sdk_1.PrivateKey.fromHex(args.rootKeyHex);
|
|
24
|
+
const identityKey = rootKey.toPublicKey().toString();
|
|
25
|
+
const keyDeriver = new sdk_1.KeyDeriver(rootKey);
|
|
26
|
+
const storage = new index_mobile_1.WalletStorageManager(identityKey, args.active, args.backups);
|
|
27
|
+
if (storage.canMakeAvailable())
|
|
28
|
+
await storage.makeAvailable();
|
|
29
|
+
const serviceOptions = index_mobile_1.Services.createDefaultOptions(chain);
|
|
30
|
+
serviceOptions.taalApiKey = args.taalApiKey;
|
|
31
|
+
const services = new index_mobile_1.Services(serviceOptions);
|
|
32
|
+
const monopts = index_mobile_1.Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
|
|
33
|
+
const monitor = new index_mobile_1.Monitor(monopts);
|
|
34
|
+
monitor.addDefaultTasks();
|
|
35
|
+
const privilegedKeyManager = args.privilegedKeyGetter
|
|
36
|
+
? new index_mobile_1.sdk.PrivilegedKeyManager(args.privilegedKeyGetter)
|
|
37
|
+
: undefined;
|
|
38
|
+
const wallet = new index_mobile_1.Wallet({
|
|
39
|
+
chain,
|
|
40
|
+
keyDeriver,
|
|
41
|
+
storage,
|
|
42
|
+
services,
|
|
43
|
+
monitor,
|
|
44
|
+
privilegedKeyManager
|
|
45
|
+
});
|
|
46
|
+
const r = {
|
|
47
|
+
rootKey,
|
|
48
|
+
identityKey,
|
|
49
|
+
keyDeriver,
|
|
50
|
+
chain,
|
|
51
|
+
storage,
|
|
52
|
+
services,
|
|
53
|
+
monitor,
|
|
54
|
+
wallet
|
|
55
|
+
};
|
|
56
|
+
return r;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Setup a new `Wallet` without requiring a .env file.
|
|
60
|
+
*
|
|
61
|
+
* @param args.chain - 'main' or 'test'
|
|
62
|
+
* @param args.rootKeyHex - Root private key for wallet's key deriver.
|
|
63
|
+
* @param args.storageUrl - Optional. `StorageClient` and `chain` compatible endpoint URL.
|
|
64
|
+
* @param args.privilegedKeyGetter - Optional. Method that will return the privileged `PrivateKey`, on demand.
|
|
65
|
+
*/
|
|
66
|
+
static async createWalletClientNoEnv(args) {
|
|
67
|
+
const chain = args.chain;
|
|
68
|
+
const endpointUrl = args.storageUrl || `https://${args.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`;
|
|
69
|
+
const rootKey = sdk_1.PrivateKey.fromHex(args.rootKeyHex);
|
|
70
|
+
const keyDeriver = new sdk_1.KeyDeriver(rootKey);
|
|
71
|
+
const storage = new index_mobile_1.WalletStorageManager(keyDeriver.identityKey);
|
|
72
|
+
const services = new index_mobile_1.Services(chain);
|
|
73
|
+
const privilegedKeyManager = args.privilegedKeyGetter
|
|
74
|
+
? new index_mobile_1.sdk.PrivilegedKeyManager(args.privilegedKeyGetter)
|
|
75
|
+
: undefined;
|
|
76
|
+
const wallet = new index_mobile_1.Wallet({
|
|
77
|
+
chain,
|
|
78
|
+
keyDeriver,
|
|
79
|
+
storage,
|
|
80
|
+
services,
|
|
81
|
+
privilegedKeyManager
|
|
82
|
+
});
|
|
83
|
+
const client = new index_mobile_1.StorageClient(wallet, endpointUrl);
|
|
84
|
+
await storage.addWalletStorageProvider(client);
|
|
85
|
+
await storage.makeAvailable();
|
|
86
|
+
return wallet;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @publicbody
|
|
90
|
+
*/
|
|
91
|
+
static async createWalletClient(args) {
|
|
92
|
+
const wo = await SetupClient.createWallet(args);
|
|
93
|
+
const endpointUrl = args.endpointUrl || `https://${args.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`;
|
|
94
|
+
const client = new index_mobile_1.StorageClient(wo.wallet, endpointUrl);
|
|
95
|
+
await wo.storage.addWalletStorageProvider(client);
|
|
96
|
+
await wo.storage.makeAvailable();
|
|
97
|
+
return {
|
|
98
|
+
...wo,
|
|
99
|
+
endpointUrl
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @publicbody
|
|
104
|
+
*/
|
|
105
|
+
static getKeyPair(priv) {
|
|
106
|
+
if (priv === undefined)
|
|
107
|
+
priv = sdk_1.PrivateKey.fromRandom();
|
|
108
|
+
else if (typeof priv === 'string')
|
|
109
|
+
priv = new sdk_1.PrivateKey(priv, 'hex');
|
|
110
|
+
const pub = sdk_1.PublicKey.fromPrivateKey(priv);
|
|
111
|
+
const address = pub.toAddress();
|
|
112
|
+
return { privateKey: priv, publicKey: pub, address };
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @publicbody
|
|
116
|
+
*/
|
|
117
|
+
static getLockP2PKH(address) {
|
|
118
|
+
const p2pkh = new sdk_1.P2PKH();
|
|
119
|
+
const lock = p2pkh.lock(address);
|
|
120
|
+
return lock;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @publicbody
|
|
124
|
+
*/
|
|
125
|
+
static getUnlockP2PKH(priv, satoshis) {
|
|
126
|
+
const p2pkh = new sdk_1.P2PKH();
|
|
127
|
+
const lock = SetupClient.getLockP2PKH(SetupClient.getKeyPair(priv).address);
|
|
128
|
+
// Prepare to pay with SIGHASH_ALL and without ANYONE_CAN_PAY.
|
|
129
|
+
// In otherwords:
|
|
130
|
+
// - all outputs must remain in the current order, amount and locking scripts.
|
|
131
|
+
// - all inputs must remain from the current outpoints and sequence numbers.
|
|
132
|
+
// (unlock scripts are never signed)
|
|
133
|
+
const unlock = p2pkh.unlock(priv, 'all', false, satoshis, lock);
|
|
134
|
+
return unlock;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @publicbody
|
|
138
|
+
*/
|
|
139
|
+
static createP2PKHOutputs(outputs) {
|
|
140
|
+
const os = [];
|
|
141
|
+
const count = outputs.length;
|
|
142
|
+
for (let i = 0; i < count; i++) {
|
|
143
|
+
const o = outputs[i];
|
|
144
|
+
os.push({
|
|
145
|
+
basket: o.basket,
|
|
146
|
+
tags: o.tags,
|
|
147
|
+
satoshis: o.satoshis,
|
|
148
|
+
lockingScript: SetupClient.getLockP2PKH(o.address).toHex(),
|
|
149
|
+
outputDescription: o.outputDescription || `p2pkh ${i}`
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return os;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* @publicbody
|
|
156
|
+
*/
|
|
157
|
+
static async createP2PKHOutputsAction(wallet, outputs, options) {
|
|
158
|
+
const os = SetupClient.createP2PKHOutputs(outputs);
|
|
159
|
+
const createArgs = {
|
|
160
|
+
description: `createP2PKHOutputs`,
|
|
161
|
+
outputs: os,
|
|
162
|
+
options: {
|
|
163
|
+
...options,
|
|
164
|
+
// Don't randomize so we can simplify outpoint creation
|
|
165
|
+
randomizeOutputs: false
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
const cr = await wallet.createAction(createArgs);
|
|
169
|
+
let outpoints;
|
|
170
|
+
if (cr.txid) {
|
|
171
|
+
outpoints = os.map((o, i) => `${cr.txid}.${i}`);
|
|
172
|
+
}
|
|
173
|
+
return { cr, outpoints };
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @publicbody
|
|
177
|
+
*/
|
|
178
|
+
static async fundWalletFromP2PKHOutpoints(wallet, outpoints, p2pkhKey, inputBEEF) {
|
|
179
|
+
// TODO
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.SetupClient = SetupClient;
|
|
183
|
+
//# sourceMappingURL=SetupClient.mobile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupClient.mobile.js","sourceRoot":"","sources":["../../src/SetupClient.mobile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { PrivateKey, KeyDeriver, PublicKey } from '@bsv/sdk';
|
|
2
|
+
import { WalletStorageManager, Monitor, sdk } from './index.mobile';
|
|
3
|
+
import { Services } from './services';
|
|
4
|
+
import { Wallet } from './Wallet';
|
|
5
|
+
/**
|
|
6
|
+
* When creating a BRC-100 compatible `Wallet`, many components come into play.
|
|
7
|
+
*
|
|
8
|
+
* All of the `createWallet` functions in the `Setup` and `SetupClient` classes return
|
|
9
|
+
* an object with direct access to each component to facilitate experimentation, testing
|
|
10
|
+
* and customization.
|
|
11
|
+
*/
|
|
12
|
+
export interface SetupWallet {
|
|
13
|
+
/**
|
|
14
|
+
* The rootKey of the `KeyDeriver`. The private key from which other keys are derived.
|
|
15
|
+
*/
|
|
16
|
+
rootKey: PrivateKey;
|
|
17
|
+
/**
|
|
18
|
+
* The pubilc key associated with the `rootKey` which also serves as the wallet's identity.
|
|
19
|
+
*/
|
|
20
|
+
identityKey: string;
|
|
21
|
+
/**
|
|
22
|
+
* The `KeyDeriver` component used by the wallet for key derivation and cryptographic functions.
|
|
23
|
+
*/
|
|
24
|
+
keyDeriver: KeyDeriver;
|
|
25
|
+
/**
|
|
26
|
+
* The chain ('main' or 'test') which the wallet accesses.
|
|
27
|
+
*/
|
|
28
|
+
chain: sdk.Chain;
|
|
29
|
+
/**
|
|
30
|
+
* The `WalletStorageManager` that manages all the configured storage providers (active and backups)
|
|
31
|
+
* accessed by the wallet.
|
|
32
|
+
*/
|
|
33
|
+
storage: WalletStorageManager;
|
|
34
|
+
/**
|
|
35
|
+
* The network `Services` component which provides the wallet with access to external services hosted
|
|
36
|
+
* on the public network.
|
|
37
|
+
*/
|
|
38
|
+
services: Services;
|
|
39
|
+
/**
|
|
40
|
+
* The background task `Monitor` component available to the wallet to offload tasks
|
|
41
|
+
* that speed up wallet operations and maintain data integrity.
|
|
42
|
+
*/
|
|
43
|
+
monitor: Monitor;
|
|
44
|
+
/**
|
|
45
|
+
* The actual BRC-100 `Wallet` to which all the other properties and components contribute.
|
|
46
|
+
*
|
|
47
|
+
* Note that internally, the wallet is itself linked to all these properties and components.
|
|
48
|
+
* They are included in this interface to facilitate access after wallet construction for
|
|
49
|
+
* experimentation, testing and customization. Any changes made to the configuration of these
|
|
50
|
+
* properties and components may thus directly impact your wallet.
|
|
51
|
+
*/
|
|
52
|
+
wallet: Wallet;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A private key and associated public key and address.
|
|
56
|
+
*/
|
|
57
|
+
export interface KeyPairAddress {
|
|
58
|
+
privateKey: PrivateKey;
|
|
59
|
+
publicKey: PublicKey;
|
|
60
|
+
address: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Arguments used by `createWallet` to construct a `SetupWallet`.
|
|
64
|
+
*
|
|
65
|
+
* Extension `SetupWalletClientArgs` used by `createWalletClient` to construct a `SetupWalletClient`.
|
|
66
|
+
*
|
|
67
|
+
* @publicbody
|
|
68
|
+
*/
|
|
69
|
+
export interface SetupClientWalletArgs {
|
|
70
|
+
chain: sdk.Chain;
|
|
71
|
+
rootKeyHex: string;
|
|
72
|
+
/**
|
|
73
|
+
* When requesting privileged operations (e.g., sign), this method will be called
|
|
74
|
+
* to allow signing. This method will automatically be linked to a key derivation
|
|
75
|
+
* path known to be privileged, if available.
|
|
76
|
+
*/
|
|
77
|
+
privilegedKeyGetter?: () => Promise<PrivateKey>;
|
|
78
|
+
active?: sdk.WalletStorageProvider;
|
|
79
|
+
backups?: sdk.WalletStorageProvider[];
|
|
80
|
+
taalApiKey?: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extension `SetupWalletClient` of `SetupWallet` is returned by `createWalletClient`
|
|
84
|
+
*/
|
|
85
|
+
export interface SetupWalletClient extends SetupWallet {
|
|
86
|
+
/**
|
|
87
|
+
* The endpoint URL of a service hosting the `StorageServer` JSON-RPC service to
|
|
88
|
+
* which the wallet's `StorageClient` is connected to function as
|
|
89
|
+
* the active storage provider of the wallet.
|
|
90
|
+
*/
|
|
91
|
+
endpointUrl: string;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=SetupWallet.mobile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupWallet.mobile.d.ts","sourceRoot":"","sources":["../../src/SetupWallet.mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC;;;;;;GAMG;AAEH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,OAAO,EAAE,UAAU,CAAA;IACnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAA;IACtB;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IAChB;;;OAGG;IACH,OAAO,EAAE,oBAAoB,CAAA;IAC7B;;;OAGG;IACH,QAAQ,EAAE,QAAQ,CAAA;IAClB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;;OAOG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAA;IAClC,OAAO,CAAC,EAAE,GAAG,CAAC,qBAAqB,EAAE,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetupWallet.mobile.js","sourceRoot":"","sources":["../../src/SetupWallet.mobile.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=SimplifiedFetchTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimplifiedFetchTransport.d.ts","sourceRoot":"","sources":["../../src/SimplifiedFetchTransport.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimplifiedFetchTransport.js","sourceRoot":"","sources":["../../src/SimplifiedFetchTransport.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=BhsChainTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BhsChainTracker.d.ts","sourceRoot":"","sources":["../../../src/services/BhsChainTracker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BhsChainTracker.js","sourceRoot":"","sources":["../../../src/services/BhsChainTracker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BlockHeadersService } from '@bsv/sdk';
|
|
2
|
+
import { ChaintracksServiceClient, ChaintracksServiceClientOptions } from './chaintracks/ChaintracksServiceClient';
|
|
3
|
+
import { sdk } from '../../index.client';
|
|
4
|
+
import { BlockHeader } from './chaintracks';
|
|
5
|
+
export interface BhsChainTrackerOptions {
|
|
6
|
+
url: string;
|
|
7
|
+
apiKey: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class BHServiceClient implements ChaintracksServiceClient {
|
|
10
|
+
bhs: BlockHeadersService;
|
|
11
|
+
cache: Record<number, string>;
|
|
12
|
+
chain: sdk.Chain;
|
|
13
|
+
serviceUrl: string;
|
|
14
|
+
opts: BhsChainTrackerOptions;
|
|
15
|
+
options: ChaintracksServiceClientOptions;
|
|
16
|
+
constructor(chain: sdk.Chain, options: BhsChainTrackerOptions);
|
|
17
|
+
currentHeight(): Promise<number>;
|
|
18
|
+
isValidRootForHeight(root: string, height: number): Promise<boolean>;
|
|
19
|
+
getPresentHeight(): Promise<number>;
|
|
20
|
+
findHeaderForHeight(height: number): Promise<undefined>;
|
|
21
|
+
findHeaderForBlockHash(hash: string): Promise<undefined>;
|
|
22
|
+
findHeaderForMerkleRoot(merkleRoot: string, height?: number): Promise<undefined>;
|
|
23
|
+
getHeaders(height: number, count: number): Promise<string>;
|
|
24
|
+
startListening(): Promise<void>;
|
|
25
|
+
listening(): Promise<void>;
|
|
26
|
+
isSynchronized(): Promise<boolean>;
|
|
27
|
+
getChain(): Promise<sdk.Chain>;
|
|
28
|
+
isListening(): Promise<boolean>;
|
|
29
|
+
getChainTipHeader(): Promise<BlockHeader>;
|
|
30
|
+
findChainTipHashHex(): Promise<string>;
|
|
31
|
+
findChainWorkForBlockHash(hash: string): Promise<string | undefined>;
|
|
32
|
+
findChainTipHeader(): Promise<BlockHeader>;
|
|
33
|
+
getJsonOrUndefined<T>(path: string): Promise<T | undefined>;
|
|
34
|
+
getJson<T>(path: string): Promise<T>;
|
|
35
|
+
postJsonVoid<T>(path: string, params: T): Promise<void>;
|
|
36
|
+
addHeader(header: any): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=BhsChainTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BhsChainTracker.d.ts","sourceRoot":"","sources":["../../../../src/services/chaintracker/BhsChainTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAA;AAClH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,GAAG,EAAE,mBAAmB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,sBAAsB,CAAA;IAC5B,OAAO,EAAE,+BAA+B,CAAA;gBAE5B,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,sBAAsB;IAUvD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpE,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIvD,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxD,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIhF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAI9B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;IAIzC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIpE,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI1C,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI3D,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5C"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BHServiceClient = void 0;
|
|
4
|
+
const sdk_1 = require("@bsv/sdk");
|
|
5
|
+
const ChaintracksServiceClient_1 = require("./chaintracks/ChaintracksServiceClient");
|
|
6
|
+
class BHServiceClient {
|
|
7
|
+
constructor(chain, options) {
|
|
8
|
+
this.bhs = new sdk_1.BlockHeadersService(options.url, { apiKey: options.apiKey });
|
|
9
|
+
this.cache = {};
|
|
10
|
+
this.chain = chain;
|
|
11
|
+
this.serviceUrl = options.url;
|
|
12
|
+
this.opts = options;
|
|
13
|
+
this.options = ChaintracksServiceClient_1.ChaintracksServiceClient.createChaintracksServiceClientOptions();
|
|
14
|
+
this.options.useAuthrite = true;
|
|
15
|
+
}
|
|
16
|
+
async currentHeight() {
|
|
17
|
+
return await this.bhs.currentHeight();
|
|
18
|
+
}
|
|
19
|
+
async isValidRootForHeight(root, height) {
|
|
20
|
+
const cachedRoot = this.cache[height];
|
|
21
|
+
if (cachedRoot) {
|
|
22
|
+
return cachedRoot === root;
|
|
23
|
+
}
|
|
24
|
+
const isValid = await this.bhs.isValidRootForHeight(root, height);
|
|
25
|
+
this.cache[height] = root;
|
|
26
|
+
return isValid;
|
|
27
|
+
}
|
|
28
|
+
async getPresentHeight() {
|
|
29
|
+
return await this.bhs.currentHeight();
|
|
30
|
+
}
|
|
31
|
+
async findHeaderForHeight(height) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
async findHeaderForBlockHash(hash) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
async findHeaderForMerkleRoot(merkleRoot, height) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
async getHeaders(height, count) {
|
|
41
|
+
return '';
|
|
42
|
+
}
|
|
43
|
+
async startListening() {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
async listening() {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
async isSynchronized() {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
async getChain() {
|
|
53
|
+
return this.chain;
|
|
54
|
+
}
|
|
55
|
+
async isListening() {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
async getChainTipHeader() {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
async findChainTipHashHex() {
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
async findChainWorkForBlockHash(hash) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
async findChainTipHeader() {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
async getJsonOrUndefined(path) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
async getJson(path) {
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
76
|
+
async postJsonVoid(path, params) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
async addHeader(header) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.BHServiceClient = BHServiceClient;
|
|
84
|
+
//# sourceMappingURL=BhsChainTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BhsChainTracker.js","sourceRoot":"","sources":["../../../../src/services/chaintracker/BhsChainTracker.ts"],"names":[],"mappings":";;;AAAA,kCAA8C;AAC9C,qFAAkH;AASlH,MAAa,eAAe;IAQ1B,YAAY,KAAgB,EAAE,OAA+B;QAC3D,IAAI,CAAC,GAAG,GAAG,IAAI,yBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3E,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,mDAAwB,CAAC,qCAAqC,EAAE,CAAA;QAC/E,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,MAAc;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,KAAK,IAAI,CAAA;QAC5B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACjE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACzB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,UAAkB,EAAE,MAAe;QAC/D,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAAa;QAC5C,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAM;IACR,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAM;IACR,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,SAAmC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAAY;QAC1C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,SAAmC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAI,IAAY;QACtC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,IAAY;QAC3B,OAAO,EAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAI,IAAY,EAAE,MAAS;QAC3C,OAAM;IACR,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAW;QACzB,OAAM;IACR,CAAC;CAEF;AAxGD,0CAwGC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These are fields of 80 byte serialized header in order whose double sha256 hash is a block's hash value
|
|
3
|
+
* and the next block's previousHash value.
|
|
4
|
+
*
|
|
5
|
+
* All block hash values and merkleRoot values are 32 byte hex string values with the byte order reversed from the serialized byte order.
|
|
6
|
+
*/
|
|
7
|
+
export interface BaseBlockHeader {
|
|
8
|
+
/**
|
|
9
|
+
* Block header version value. Serialized length is 4 bytes.
|
|
10
|
+
*/
|
|
11
|
+
version: number;
|
|
12
|
+
/**
|
|
13
|
+
* Hash of previous block's block header. Serialized length is 32 bytes.
|
|
14
|
+
*/
|
|
15
|
+
previousHash: string;
|
|
16
|
+
/**
|
|
17
|
+
* Root hash of the merkle tree of all transactions in this block. Serialized length is 32 bytes.
|
|
18
|
+
*/
|
|
19
|
+
merkleRoot: string;
|
|
20
|
+
/**
|
|
21
|
+
* Block header time value. Serialized length is 4 bytes.
|
|
22
|
+
*/
|
|
23
|
+
time: number;
|
|
24
|
+
/**
|
|
25
|
+
* Block header bits value. Serialized length is 4 bytes.
|
|
26
|
+
*/
|
|
27
|
+
bits: number;
|
|
28
|
+
/**
|
|
29
|
+
* Block header nonce value. Serialized length is 4 bytes.
|
|
30
|
+
*/
|
|
31
|
+
nonce: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A `BaseBlockHeader` extended with its computed hash and height in its chain.
|
|
35
|
+
*/
|
|
36
|
+
export interface BlockHeader extends BaseBlockHeader {
|
|
37
|
+
/**
|
|
38
|
+
* Height of the header, starting from zero.
|
|
39
|
+
*/
|
|
40
|
+
height: number;
|
|
41
|
+
/**
|
|
42
|
+
* The double sha256 hash of the serialized `BaseBlockHeader` fields.
|
|
43
|
+
*/
|
|
44
|
+
hash: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The "live" portion of the block chain is recent history that can conceivably be subject to reorganizations.
|
|
48
|
+
* The additional fields support tracking orphan blocks, chain forks, and chain reorgs.
|
|
49
|
+
*/
|
|
50
|
+
export interface LiveBlockHeader extends BlockHeader {
|
|
51
|
+
/**
|
|
52
|
+
* The cummulative chainwork achieved by the addition of this block to the chain.
|
|
53
|
+
* Chainwork only matters in selecting the active chain.
|
|
54
|
+
*/
|
|
55
|
+
chainWork: string;
|
|
56
|
+
/**
|
|
57
|
+
* True only if this header is currently a chain tip. e.g. There is no header that follows it by previousHash or previousHeaderId.
|
|
58
|
+
*/
|
|
59
|
+
isChainTip: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* True only if this header is currently on the active chain.
|
|
62
|
+
*/
|
|
63
|
+
isActive: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* As there may be more than one header with identical height values due to orphan tracking,
|
|
66
|
+
* headers are assigned a unique headerId while part of the "live" portion of the block chain.
|
|
67
|
+
*/
|
|
68
|
+
headerId: number;
|
|
69
|
+
/**
|
|
70
|
+
* Every header in the "live" portion of the block chain is linked to an ancestor header through
|
|
71
|
+
* both its previousHash and previousHeaderId properties.
|
|
72
|
+
*
|
|
73
|
+
* Due to forks, there may be multiple headers with identical `previousHash` and `previousHeaderId` values.
|
|
74
|
+
* Of these, only one (the header on the active chain) will have `isActive` === true.
|
|
75
|
+
*/
|
|
76
|
+
previousHeaderId: number | null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Type guard function.
|
|
80
|
+
* @publicbody
|
|
81
|
+
*/
|
|
82
|
+
export declare function isLive(header: BlockHeader | LiveBlockHeader): header is LiveBlockHeader;
|
|
83
|
+
/**
|
|
84
|
+
* Type guard function.
|
|
85
|
+
* @publicbody
|
|
86
|
+
*/
|
|
87
|
+
export declare function isBaseBlockHeader(header: BaseBlockHeader | BlockHeader | LiveBlockHeader): header is BaseBlockHeader;
|
|
88
|
+
/**
|
|
89
|
+
* Type guard function.
|
|
90
|
+
* @publicbody
|
|
91
|
+
*/
|
|
92
|
+
export declare function isBlockHeader(header: BaseBlockHeader | BlockHeader | LiveBlockHeader): header is LiveBlockHeader;
|
|
93
|
+
/**
|
|
94
|
+
* Type guard function.
|
|
95
|
+
* @publicbody
|
|
96
|
+
*/
|
|
97
|
+
export declare function isLiveBlockHeader(header: BaseBlockHeader | BlockHeader | LiveBlockHeader): header is LiveBlockHeader;
|
|
98
|
+
//# sourceMappingURL=BlockHeaderApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockHeaderApi.d.ts","sourceRoot":"","sources":["../../../../../src/services/chaintracker/chaintracks/BlockHeaderApi.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAMD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,IAAI,eAAe,CAEvF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,IAAI,eAAe,CAEpH;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,IAAI,eAAe,CAEhH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,IAAI,eAAe,CAEpH"}
|