@bsv/wallet-toolbox 1.1.2 → 1.1.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.
- package/README.md +12 -74
- package/docs/README.md +70 -6
- package/docs/client.md +401 -54
- package/docs/monitor.md +1 -2
- package/docs/setup.md +510 -0
- package/docs/storage.md +6 -8
- package/docs/wallet.md +401 -54
- package/out/src/Setup.d.ts +57 -0
- package/out/src/Setup.d.ts.map +1 -0
- package/out/src/Setup.js +88 -0
- package/out/src/Setup.js.map +1 -0
- package/out/src/SetupClient.d.ts +125 -0
- package/out/src/SetupClient.d.ts.map +1 -0
- package/out/src/SetupClient.js +222 -0
- package/out/src/SetupClient.js.map +1 -0
- package/out/src/Wallet.d.ts +10 -0
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js.map +1 -1
- package/out/src/index.all.d.ts +2 -0
- package/out/src/index.all.d.ts.map +1 -1
- package/out/src/index.all.js +4 -1
- package/out/src/index.all.js.map +1 -1
- package/out/src/index.client.d.ts +1 -0
- package/out/src/index.client.d.ts.map +1 -1
- package/out/src/index.client.js +3 -1
- package/out/src/index.client.js.map +1 -1
- package/out/src/index.d.ts +0 -1
- package/out/src/index.d.ts.map +1 -1
- package/out/src/index.js +0 -24
- package/out/src/index.js.map +1 -1
- package/out/src/sdk/types.d.ts +5 -0
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js +14 -11
- package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js.map +1 -1
- package/out/test/examples/README.man.test.js +9 -8
- package/out/test/examples/README.man.test.js.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.d.ts +11 -2
- package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.js +13 -4
- package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
- package/out/test/wallet/list/listActions2.test.js +121 -155
- package/out/test/wallet/list/listActions2.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/Setup.ts +130 -0
- package/src/SetupClient.ts +364 -0
- package/src/Wallet.ts +10 -0
- package/src/index.all.ts +10 -0
- package/src/index.client.ts +1 -0
- package/src/index.ts +0 -1
- package/src/sdk/types.ts +7 -0
- package/src/services/chaintracker/__tests/ChaintracksChainTracker.test.ts +22 -17
- package/test/examples/README.man.test.ts +11 -11
- package/test/utils/TestUtilsWalletStorage.ts +23 -5
- package/test/wallet/list/listActions2.test.ts +119 -173
- package/ts2md.json +6 -0
package/docs/wallet.md
CHANGED
|
@@ -6,46 +6,48 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
|
|
|
6
6
|
|
|
7
7
|
| | | |
|
|
8
8
|
| --- | --- | --- |
|
|
9
|
-
| [ArcMinerGetTxData](#interface-arcminergettxdata) | [
|
|
10
|
-
| [ArcMinerPostBeefDataApi](#interface-arcminerpostbeefdataapi) | [
|
|
11
|
-
| [ArcMinerPostTxsData](#interface-arcminerposttxsdata) | [
|
|
12
|
-
| [ArcServiceConfig](#interface-arcserviceconfig) | [
|
|
13
|
-
| [AuthId](#interface-authid) | [
|
|
14
|
-
| [BaseBlockHeader](#interface-baseblockheader) | [
|
|
15
|
-
| [BlockHeader](#interface-blockheader) | [
|
|
16
|
-
| [BsvExchangeRate](#interface-bsvexchangerate) | [
|
|
17
|
-
| [CertOpsWallet](#interface-certopswallet) | [
|
|
18
|
-
| [CommitNewTxResults](#interface-commitnewtxresults) | [
|
|
19
|
-
| [EntityTimeStamp](#interface-entitytimestamp) | [
|
|
20
|
-
| [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [
|
|
21
|
-
| [FiatExchangeRates](#interface-fiatexchangerates) | [
|
|
22
|
-
| [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [
|
|
23
|
-
| [FindCertificatesArgs](#interface-findcertificatesargs) | [
|
|
24
|
-
| [FindCommissionsArgs](#interface-findcommissionsargs) | [
|
|
25
|
-
| [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [
|
|
26
|
-
| [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [
|
|
27
|
-
| [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [
|
|
28
|
-
| [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [
|
|
29
|
-
| [FindOutputTagsArgs](#interface-findoutputtagsargs) | [
|
|
30
|
-
| [FindOutputsArgs](#interface-findoutputsargs) | [
|
|
31
|
-
| [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [
|
|
32
|
-
| [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [
|
|
33
|
-
| [FindProvenTxsArgs](#interface-findproventxsargs) | [
|
|
34
|
-
| [FindSincePagedArgs](#interface-findsincepagedargs) | [
|
|
35
|
-
| [FindSyncStatesArgs](#interface-findsyncstatesargs) | [
|
|
36
|
-
| [FindTransactionsArgs](#interface-findtransactionsargs) | [
|
|
37
|
-
| [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [
|
|
38
|
-
| [FindTxLabelsArgs](#interface-findtxlabelsargs) | [
|
|
39
|
-
| [FindUsersArgs](#interface-findusersargs) | [
|
|
40
|
-
| [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [
|
|
41
|
-
| [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [
|
|
42
|
-
| [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [
|
|
43
|
-
| [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [
|
|
44
|
-
| [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [
|
|
45
|
-
| [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [
|
|
46
|
-
| [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [
|
|
47
|
-
| [GetMerklePathResult](#interface-getmerklepathresult) | [
|
|
48
|
-
| [GetRawTxResult](#interface-getrawtxresult) | [
|
|
9
|
+
| [ArcMinerGetTxData](#interface-arcminergettxdata) | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [SyncChunk](#interface-syncchunk) |
|
|
10
|
+
| [ArcMinerPostBeefDataApi](#interface-arcminerpostbeefdataapi) | [GetUtxoStatusResult](#interface-getutxostatusresult) | [TaskPurgeParams](#interface-taskpurgeparams) |
|
|
11
|
+
| [ArcMinerPostTxsData](#interface-arcminerposttxsdata) | [KeyPair](#interface-keypair) | [TrxToken](#interface-trxtoken) |
|
|
12
|
+
| [ArcServiceConfig](#interface-arcserviceconfig) | [MonitorOptions](#interface-monitoroptions) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
|
|
13
|
+
| [AuthId](#interface-authid) | [OutPoint](#interface-outpoint) | [TxScriptOffsets](#interface-txscriptoffsets) |
|
|
14
|
+
| [BaseBlockHeader](#interface-baseblockheader) | [Paged](#interface-paged) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
|
|
15
|
+
| [BlockHeader](#interface-blockheader) | [PendingSignAction](#interface-pendingsignaction) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
|
|
16
|
+
| [BsvExchangeRate](#interface-bsvexchangerate) | [PendingStorageInput](#interface-pendingstorageinput) | [ValidAbortActionArgs](#interface-validabortactionargs) |
|
|
17
|
+
| [CertOpsWallet](#interface-certopswallet) | [PostBeefResult](#interface-postbeefresult) | [ValidAcquireCertificateArgs](#interface-validacquirecertificateargs) |
|
|
18
|
+
| [CommitNewTxResults](#interface-commitnewtxresults) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [ValidAcquireDirectCertificateArgs](#interface-validacquiredirectcertificateargs) |
|
|
19
|
+
| [EntityTimeStamp](#interface-entitytimestamp) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [ValidAcquireIssuanceCertificateArgs](#interface-validacquireissuancecertificateargs) |
|
|
20
|
+
| [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [ValidBasketInsertion](#interface-validbasketinsertion) |
|
|
21
|
+
| [FiatExchangeRates](#interface-fiatexchangerates) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [ValidCreateActionArgs](#interface-validcreateactionargs) |
|
|
22
|
+
| [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [PostTxsResult](#interface-posttxsresult) | [ValidCreateActionInput](#interface-validcreateactioninput) |
|
|
23
|
+
| [FindCertificatesArgs](#interface-findcertificatesargs) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [ValidCreateActionOptions](#interface-validcreateactionoptions) |
|
|
24
|
+
| [FindCommissionsArgs](#interface-findcommissionsargs) | [ProvenOrRawTx](#interface-provenorrawtx) | [ValidCreateActionOutput](#interface-validcreateactionoutput) |
|
|
25
|
+
| [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [PurgeParams](#interface-purgeparams) | [ValidDiscoverByAttributesArgs](#interface-validdiscoverbyattributesargs) |
|
|
26
|
+
| [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [PurgeResults](#interface-purgeresults) | [ValidDiscoverByIdentityKeyArgs](#interface-validdiscoverbyidentitykeyargs) |
|
|
27
|
+
| [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [ValidInternalizeActionArgs](#interface-validinternalizeactionargs) |
|
|
28
|
+
| [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [ScriptTemplateParamsSABPPP](#interface-scripttemplateparamssabppp) | [ValidInternalizeOutput](#interface-validinternalizeoutput) |
|
|
29
|
+
| [FindOutputTagsArgs](#interface-findoutputtagsargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [ValidListActionsArgs](#interface-validlistactionsargs) |
|
|
30
|
+
| [FindOutputsArgs](#interface-findoutputsargs) | [SetupEnv](#interface-setupenv) | [ValidListCertificatesArgs](#interface-validlistcertificatesargs) |
|
|
31
|
+
| [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [SetupWallet](#interface-setupwallet) | [ValidListOutputsArgs](#interface-validlistoutputsargs) |
|
|
32
|
+
| [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [SetupWalletArgs](#interface-setupwalletargs) | [ValidProcessActionArgs](#interface-validprocessactionargs) |
|
|
33
|
+
| [FindProvenTxsArgs](#interface-findproventxsargs) | [SetupWalletClient](#interface-setupwalletclient) | [ValidProcessActionOptions](#interface-validprocessactionoptions) |
|
|
34
|
+
| [FindSincePagedArgs](#interface-findsincepagedargs) | [SetupWalletClientArgs](#interface-setupwalletclientargs) | [ValidProveCertificateArgs](#interface-validprovecertificateargs) |
|
|
35
|
+
| [FindSyncStatesArgs](#interface-findsyncstatesargs) | [StorageCreateActionResult](#interface-storagecreateactionresult) | [ValidRelinquishCertificateArgs](#interface-validrelinquishcertificateargs) |
|
|
36
|
+
| [FindTransactionsArgs](#interface-findtransactionsargs) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) | [ValidRelinquishOutputArgs](#interface-validrelinquishoutputargs) |
|
|
37
|
+
| [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) | [ValidSignActionArgs](#interface-validsignactionargs) |
|
|
38
|
+
| [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StorageFeeModel](#interface-storagefeemodel) | [ValidSignActionOptions](#interface-validsignactionoptions) |
|
|
39
|
+
| [FindUsersArgs](#interface-findusersargs) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) | [ValidWalletPayment](#interface-validwalletpayment) |
|
|
40
|
+
| [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageIdentity](#interface-storageidentity) | [ValidWalletSignerArgs](#interface-validwalletsignerargs) |
|
|
41
|
+
| [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) | [WalletArgs](#interface-walletargs) |
|
|
42
|
+
| [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageProcessActionArgs](#interface-storageprocessactionargs) | [WalletServices](#interface-walletservices) |
|
|
43
|
+
| [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageProcessActionResults](#interface-storageprocessactionresults) | [WalletServicesOptions](#interface-walletservicesoptions) |
|
|
44
|
+
| [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageProvenOrReq](#interface-storageprovenorreq) | [WalletSigner](#interface-walletsigner) |
|
|
45
|
+
| [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageProviderOptions](#interface-storageprovideroptions) | [WalletStorage](#interface-walletstorage) |
|
|
46
|
+
| [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageReaderOptions](#interface-storagereaderoptions) | [WalletStorageProvider](#interface-walletstorageprovider) |
|
|
47
|
+
| [GetMerklePathResult](#interface-getmerklepathresult) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [WalletStorageReader](#interface-walletstoragereader) |
|
|
48
|
+
| [GetRawTxResult](#interface-getrawtxresult) | [StorageSyncReader](#interface-storagesyncreader) | [WalletStorageSync](#interface-walletstoragesync) |
|
|
49
|
+
| [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) | [WalletStorageWriter](#interface-walletstoragewriter) |
|
|
50
|
+
| [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageSyncReaderWriter](#interface-storagesyncreaderwriter) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
|
|
49
51
|
|
|
50
52
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
51
53
|
|
|
@@ -1512,6 +1514,102 @@ export interface ScriptTemplateParamsSABPPP {
|
|
|
1512
1514
|
|
|
1513
1515
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1514
1516
|
|
|
1517
|
+
---
|
|
1518
|
+
### Interface: ScriptTemplateUnlock
|
|
1519
|
+
|
|
1520
|
+
```ts
|
|
1521
|
+
export interface ScriptTemplateUnlock {
|
|
1522
|
+
sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>;
|
|
1523
|
+
estimateLength: (tx: Transaction, inputIndex: number) => Promise<number>;
|
|
1524
|
+
}
|
|
1525
|
+
```
|
|
1526
|
+
|
|
1527
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1528
|
+
|
|
1529
|
+
---
|
|
1530
|
+
### Interface: SetupEnv
|
|
1531
|
+
|
|
1532
|
+
```ts
|
|
1533
|
+
export interface SetupEnv {
|
|
1534
|
+
chain: sdk.Chain;
|
|
1535
|
+
identityKey: string;
|
|
1536
|
+
identityKey2: string;
|
|
1537
|
+
taalApiKey: string;
|
|
1538
|
+
devKeys: Record<string, string>;
|
|
1539
|
+
mySQLConnection: string;
|
|
1540
|
+
}
|
|
1541
|
+
```
|
|
1542
|
+
|
|
1543
|
+
See also: [Chain](#type-chain)
|
|
1544
|
+
|
|
1545
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1546
|
+
|
|
1547
|
+
---
|
|
1548
|
+
### Interface: SetupWallet
|
|
1549
|
+
|
|
1550
|
+
```ts
|
|
1551
|
+
export interface SetupWallet {
|
|
1552
|
+
rootKey: PrivateKey;
|
|
1553
|
+
identityKey: string;
|
|
1554
|
+
keyDeriver: KeyDeriver;
|
|
1555
|
+
chain: sdk.Chain;
|
|
1556
|
+
storage: WalletStorageManager;
|
|
1557
|
+
services: Services;
|
|
1558
|
+
monitor: Monitor;
|
|
1559
|
+
wallet: Wallet;
|
|
1560
|
+
}
|
|
1561
|
+
```
|
|
1562
|
+
|
|
1563
|
+
See also: [Chain](#type-chain), [Monitor](#class-monitor), [Services](#class-services), [Wallet](#class-wallet), [WalletStorageManager](#class-walletstoragemanager)
|
|
1564
|
+
|
|
1565
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1566
|
+
|
|
1567
|
+
---
|
|
1568
|
+
### Interface: SetupWalletArgs
|
|
1569
|
+
|
|
1570
|
+
Arguments used to construct a `Wallet`
|
|
1571
|
+
|
|
1572
|
+
```ts
|
|
1573
|
+
export interface SetupWalletArgs {
|
|
1574
|
+
env: SetupEnv;
|
|
1575
|
+
chain?: sdk.Chain;
|
|
1576
|
+
rootKeyHex?: string;
|
|
1577
|
+
privKeyHex?: string;
|
|
1578
|
+
active?: sdk.WalletStorageProvider;
|
|
1579
|
+
backups?: sdk.WalletStorageProvider[];
|
|
1580
|
+
}
|
|
1581
|
+
```
|
|
1582
|
+
|
|
1583
|
+
See also: [Chain](#type-chain), [SetupEnv](#interface-setupenv), [WalletStorageProvider](#interface-walletstorageprovider)
|
|
1584
|
+
|
|
1585
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1586
|
+
|
|
1587
|
+
---
|
|
1588
|
+
### Interface: SetupWalletClient
|
|
1589
|
+
|
|
1590
|
+
```ts
|
|
1591
|
+
export interface SetupWalletClient extends SetupWallet {
|
|
1592
|
+
endpointUrl: string;
|
|
1593
|
+
}
|
|
1594
|
+
```
|
|
1595
|
+
|
|
1596
|
+
See also: [SetupWallet](#interface-setupwallet)
|
|
1597
|
+
|
|
1598
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1599
|
+
|
|
1600
|
+
---
|
|
1601
|
+
### Interface: SetupWalletClientArgs
|
|
1602
|
+
|
|
1603
|
+
```ts
|
|
1604
|
+
export interface SetupWalletClientArgs extends SetupWalletArgs {
|
|
1605
|
+
endpointUrl?: string;
|
|
1606
|
+
}
|
|
1607
|
+
```
|
|
1608
|
+
|
|
1609
|
+
See also: [SetupWalletArgs](#interface-setupwalletargs)
|
|
1610
|
+
|
|
1611
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
1612
|
+
|
|
1515
1613
|
---
|
|
1516
1614
|
### Interface: StorageCreateActionResult
|
|
1517
1615
|
|
|
@@ -3081,18 +3179,19 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
|
|
|
3081
3179
|
|
|
3082
3180
|
| | | |
|
|
3083
3181
|
| --- | --- | --- |
|
|
3084
|
-
| [CertOps](#class-certops) | [
|
|
3085
|
-
| [Monitor](#class-monitor) | [
|
|
3086
|
-
| [PrivilegedKeyManager](#class-privilegedkeymanager) | [
|
|
3087
|
-
| [ScriptTemplateSABPPP](#class-scripttemplatesabppp) | [
|
|
3088
|
-
| [ServiceCollection](#class-servicecollection) | [
|
|
3089
|
-
| [Services](#class-services) | [
|
|
3090
|
-
| [
|
|
3091
|
-
| [
|
|
3092
|
-
| [
|
|
3093
|
-
| [
|
|
3094
|
-
| [
|
|
3095
|
-
| [
|
|
3182
|
+
| [CertOps](#class-certops) | [TaskCheckForProofs](#class-taskcheckforproofs) | [WERR_INVALID_PUBLIC_KEY](#class-werr_invalid_public_key) |
|
|
3183
|
+
| [Monitor](#class-monitor) | [TaskClock](#class-taskclock) | [WERR_MISSING_PARAMETER](#class-werr_missing_parameter) |
|
|
3184
|
+
| [PrivilegedKeyManager](#class-privilegedkeymanager) | [TaskFailAbandoned](#class-taskfailabandoned) | [WERR_NETWORK_CHAIN](#class-werr_network_chain) |
|
|
3185
|
+
| [ScriptTemplateSABPPP](#class-scripttemplatesabppp) | [TaskNewHeader](#class-tasknewheader) | [WERR_NOT_ACTIVE](#class-werr_not_active) |
|
|
3186
|
+
| [ServiceCollection](#class-servicecollection) | [TaskPurge](#class-taskpurge) | [WERR_NOT_IMPLEMENTED](#class-werr_not_implemented) |
|
|
3187
|
+
| [Services](#class-services) | [TaskReviewStatus](#class-taskreviewstatus) | [WERR_UNAUTHORIZED](#class-werr_unauthorized) |
|
|
3188
|
+
| [Setup](#class-setup) | [TaskSendWaiting](#class-tasksendwaiting) | [Wallet](#class-wallet) |
|
|
3189
|
+
| [SetupClient](#class-setupclient) | [TaskSyncWhenIdle](#class-tasksyncwhenidle) | [WalletError](#class-walleterror) |
|
|
3190
|
+
| [StorageClient](#class-storageclient) | [WERR_BAD_REQUEST](#class-werr_bad_request) | [WalletMonitorTask](#class-walletmonitortask) |
|
|
3191
|
+
| [StorageProvider](#class-storageprovider) | [WERR_INSUFFICIENT_FUNDS](#class-werr_insufficient_funds) | [WalletSigner](#class-walletsigner) |
|
|
3192
|
+
| [StorageReader](#class-storagereader) | [WERR_INTERNAL](#class-werr_internal) | [WalletStorageManager](#class-walletstoragemanager) |
|
|
3193
|
+
| [StorageReaderWriter](#class-storagereaderwriter) | [WERR_INVALID_OPERATION](#class-werr_invalid_operation) | |
|
|
3194
|
+
| [StorageSyncReader](#class-storagesyncreader) | [WERR_INVALID_PARAMETER](#class-werr_invalid_parameter) | |
|
|
3096
3195
|
|
|
3097
3196
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
3098
3197
|
|
|
@@ -3502,6 +3601,225 @@ See also: [PostTxsResult](#interface-posttxsresult)
|
|
|
3502
3601
|
|
|
3503
3602
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
3504
3603
|
|
|
3604
|
+
---
|
|
3605
|
+
### Class: Setup
|
|
3606
|
+
|
|
3607
|
+
Enables code that imports only from `SetupClient` to still reference everything as just `Setup`
|
|
3608
|
+
|
|
3609
|
+
```ts
|
|
3610
|
+
export class Setup extends SetupClient {
|
|
3611
|
+
}
|
|
3612
|
+
```
|
|
3613
|
+
|
|
3614
|
+
See also: [SetupClient](#class-setupclient)
|
|
3615
|
+
|
|
3616
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
3617
|
+
|
|
3618
|
+
---
|
|
3619
|
+
### Class: SetupClient
|
|
3620
|
+
|
|
3621
|
+
The `SetupClient` class provides static setup functions to construct BRC-100 compatible
|
|
3622
|
+
wallets in a variety of configurations.
|
|
3623
|
+
|
|
3624
|
+
It serves as a starting point for experimentation and customization.
|
|
3625
|
+
|
|
3626
|
+
`SetupClient` references only browser compatible code including storage via `StorageClient`.
|
|
3627
|
+
`Setup` extends `SetupClient` adding database storage via `Knex` and `StorageKnex`.
|
|
3628
|
+
|
|
3629
|
+
```ts
|
|
3630
|
+
export abstract class SetupClient {
|
|
3631
|
+
static makeEnv(): string {
|
|
3632
|
+
const testPrivKey1 = PrivateKey.fromRandom();
|
|
3633
|
+
const testIdentityKey1 = testPrivKey1.toPublicKey().toString();
|
|
3634
|
+
const testPrivKey2 = PrivateKey.fromRandom();
|
|
3635
|
+
const testIdentityKey2 = testPrivKey2.toPublicKey().toString();
|
|
3636
|
+
const mainPrivKey1 = PrivateKey.fromRandom();
|
|
3637
|
+
const mainIdentityKey1 = mainPrivKey1.toPublicKey().toString();
|
|
3638
|
+
const mainPrivKey2 = PrivateKey.fromRandom();
|
|
3639
|
+
const mainIdentityKey2 = mainPrivKey2.toPublicKey().toString();
|
|
3640
|
+
const log = `
|
|
3641
|
+
# Add the following to .env file:
|
|
3642
|
+
MAIN_TAAL_API_KEY='mainnet_9596de07e92300c6287e4393594ae39c'
|
|
3643
|
+
TEST_TAAL_API_KEY='testnet_0e6cf72133b43ea2d7861da2a38684e3'
|
|
3644
|
+
MY_TEST_IDENTITY = '${testIdentityKey1}'
|
|
3645
|
+
MY_TEST_IDENTITY2 = '${testIdentityKey2}'
|
|
3646
|
+
MY_MAIN_IDENTITY = '${mainIdentityKey1}'
|
|
3647
|
+
MY_MAIN_IDENTITY2 = '${mainIdentityKey2}'
|
|
3648
|
+
DEV_KEYS = '{
|
|
3649
|
+
"${testIdentityKey1}": "${testPrivKey1.toString()}",
|
|
3650
|
+
"${testIdentityKey2}": "${testPrivKey2.toString()}"
|
|
3651
|
+
"${mainIdentityKey1}": "${mainPrivKey1.toString()}",
|
|
3652
|
+
"${mainIdentityKey2}": "${mainPrivKey2.toString()}"
|
|
3653
|
+
}'
|
|
3654
|
+
MYSQL_CONNECTION='{"port":3306,"host":"127.0.0.1","user":"root","password":"<your_password>","database":"<your_database>", "timezone": "Z"}'
|
|
3655
|
+
`;
|
|
3656
|
+
console.log(log);
|
|
3657
|
+
return log;
|
|
3658
|
+
}
|
|
3659
|
+
static getEnv(chain: sdk.Chain): SetupEnv
|
|
3660
|
+
static async createWallet(args: SetupWalletArgs): Promise<SetupWallet> {
|
|
3661
|
+
args.chain ||= args.env.chain;
|
|
3662
|
+
args.rootKeyHex ||= args.env.devKeys[args.env.identityKey];
|
|
3663
|
+
const rootKey = PrivateKey.fromHex(args.rootKeyHex);
|
|
3664
|
+
const identityKey = rootKey.toPublicKey().toString();
|
|
3665
|
+
const keyDeriver = new KeyDeriver(rootKey);
|
|
3666
|
+
const chain = args.chain;
|
|
3667
|
+
const storage = new WalletStorageManager(identityKey, args.active, args.backups);
|
|
3668
|
+
if (storage.stores.length > 0)
|
|
3669
|
+
await storage.makeAvailable();
|
|
3670
|
+
const serviceOptions = Services.createDefaultOptions(chain);
|
|
3671
|
+
serviceOptions.taalApiKey = args.env.taalApiKey;
|
|
3672
|
+
const services = new Services(args.chain);
|
|
3673
|
+
const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
|
|
3674
|
+
const monitor = new Monitor(monopts);
|
|
3675
|
+
monitor.addDefaultTasks();
|
|
3676
|
+
let privilegedKeyManager: sdk.PrivilegedKeyManager | undefined = undefined;
|
|
3677
|
+
if (args.privKeyHex) {
|
|
3678
|
+
const privKey = PrivateKey.fromString(args.privKeyHex);
|
|
3679
|
+
privilegedKeyManager = new sdk.PrivilegedKeyManager(async () => privKey);
|
|
3680
|
+
}
|
|
3681
|
+
const wallet = new Wallet({
|
|
3682
|
+
chain,
|
|
3683
|
+
keyDeriver,
|
|
3684
|
+
storage,
|
|
3685
|
+
services,
|
|
3686
|
+
monitor,
|
|
3687
|
+
privilegedKeyManager
|
|
3688
|
+
});
|
|
3689
|
+
const r: SetupWallet = {
|
|
3690
|
+
rootKey,
|
|
3691
|
+
identityKey,
|
|
3692
|
+
keyDeriver,
|
|
3693
|
+
chain,
|
|
3694
|
+
storage,
|
|
3695
|
+
services,
|
|
3696
|
+
monitor,
|
|
3697
|
+
wallet
|
|
3698
|
+
};
|
|
3699
|
+
return r;
|
|
3700
|
+
}
|
|
3701
|
+
static async createWalletWithStorageClient(args: SetupWalletClientArgs): Promise<SetupWalletClient>
|
|
3702
|
+
static getKeyPair(priv?: string | PrivateKey): KeyPairAddress
|
|
3703
|
+
static getLockP2PKH(address: string)
|
|
3704
|
+
static getUnlockP2PKH(priv: PrivateKey, satoshis: number): sdk.ScriptTemplateUnlock
|
|
3705
|
+
static createP2PKHOutputs(outputs: {
|
|
3706
|
+
address: string;
|
|
3707
|
+
satoshis: number;
|
|
3708
|
+
outputDescription?: string;
|
|
3709
|
+
basket?: string;
|
|
3710
|
+
tags?: string[];
|
|
3711
|
+
}[]): CreateActionOutput[]
|
|
3712
|
+
static async createP2PKHOutputsAction(wallet: WalletInterface, outputs: {
|
|
3713
|
+
address: string;
|
|
3714
|
+
satoshis: number;
|
|
3715
|
+
outputDescription?: string;
|
|
3716
|
+
basket?: string;
|
|
3717
|
+
tags?: string[];
|
|
3718
|
+
}[], options?: CreateActionOptions): Promise<{
|
|
3719
|
+
cr: CreateActionResult;
|
|
3720
|
+
outpoints: string[] | undefined;
|
|
3721
|
+
}>
|
|
3722
|
+
static async fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF)
|
|
3723
|
+
}
|
|
3724
|
+
```
|
|
3725
|
+
|
|
3726
|
+
See also: [Chain](#type-chain), [KeyPairAddress](#type-keypairaddress), [Monitor](#class-monitor), [PrivilegedKeyManager](#class-privilegedkeymanager), [ScriptTemplateUnlock](#interface-scripttemplateunlock), [Services](#class-services), [SetupEnv](#interface-setupenv), [SetupWallet](#interface-setupwallet), [SetupWalletArgs](#interface-setupwalletargs), [SetupWalletClient](#interface-setupwalletclient), [SetupWalletClientArgs](#interface-setupwalletclientargs), [Wallet](#class-wallet), [WalletStorageManager](#class-walletstoragemanager)
|
|
3727
|
+
|
|
3728
|
+
<details>
|
|
3729
|
+
|
|
3730
|
+
<summary>Class SetupClient Details</summary>
|
|
3731
|
+
|
|
3732
|
+
#### Method createWallet
|
|
3733
|
+
|
|
3734
|
+
Create a `Wallet`. Storage can optionally be provided or configured later.
|
|
3735
|
+
|
|
3736
|
+
The following components are configured: KeyDeriver, WalletStorageManager, WalletService, WalletStorage.
|
|
3737
|
+
Optionally, PrivilegedKeyManager is also configured.
|
|
3738
|
+
|
|
3739
|
+
```ts
|
|
3740
|
+
static async createWallet(args: SetupWalletArgs): Promise<SetupWallet> {
|
|
3741
|
+
args.chain ||= args.env.chain;
|
|
3742
|
+
args.rootKeyHex ||= args.env.devKeys[args.env.identityKey];
|
|
3743
|
+
const rootKey = PrivateKey.fromHex(args.rootKeyHex);
|
|
3744
|
+
const identityKey = rootKey.toPublicKey().toString();
|
|
3745
|
+
const keyDeriver = new KeyDeriver(rootKey);
|
|
3746
|
+
const chain = args.chain;
|
|
3747
|
+
const storage = new WalletStorageManager(identityKey, args.active, args.backups);
|
|
3748
|
+
if (storage.stores.length > 0)
|
|
3749
|
+
await storage.makeAvailable();
|
|
3750
|
+
const serviceOptions = Services.createDefaultOptions(chain);
|
|
3751
|
+
serviceOptions.taalApiKey = args.env.taalApiKey;
|
|
3752
|
+
const services = new Services(args.chain);
|
|
3753
|
+
const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
|
|
3754
|
+
const monitor = new Monitor(monopts);
|
|
3755
|
+
monitor.addDefaultTasks();
|
|
3756
|
+
let privilegedKeyManager: sdk.PrivilegedKeyManager | undefined = undefined;
|
|
3757
|
+
if (args.privKeyHex) {
|
|
3758
|
+
const privKey = PrivateKey.fromString(args.privKeyHex);
|
|
3759
|
+
privilegedKeyManager = new sdk.PrivilegedKeyManager(async () => privKey);
|
|
3760
|
+
}
|
|
3761
|
+
const wallet = new Wallet({
|
|
3762
|
+
chain,
|
|
3763
|
+
keyDeriver,
|
|
3764
|
+
storage,
|
|
3765
|
+
services,
|
|
3766
|
+
monitor,
|
|
3767
|
+
privilegedKeyManager
|
|
3768
|
+
});
|
|
3769
|
+
const r: SetupWallet = {
|
|
3770
|
+
rootKey,
|
|
3771
|
+
identityKey,
|
|
3772
|
+
keyDeriver,
|
|
3773
|
+
chain,
|
|
3774
|
+
storage,
|
|
3775
|
+
services,
|
|
3776
|
+
monitor,
|
|
3777
|
+
wallet
|
|
3778
|
+
};
|
|
3779
|
+
return r;
|
|
3780
|
+
}
|
|
3781
|
+
```
|
|
3782
|
+
See also: [Monitor](#class-monitor), [PrivilegedKeyManager](#class-privilegedkeymanager), [Services](#class-services), [SetupWallet](#interface-setupwallet), [SetupWalletArgs](#interface-setupwalletargs), [Wallet](#class-wallet), [WalletStorageManager](#class-walletstoragemanager)
|
|
3783
|
+
|
|
3784
|
+
#### Method getEnv
|
|
3785
|
+
|
|
3786
|
+
Reads a .env file of the format created by `makeEnv`.
|
|
3787
|
+
|
|
3788
|
+
Returns values for designated `chain`.
|
|
3789
|
+
|
|
3790
|
+
Access private keys through the `devKeys` object: `devKeys[identityKey]`
|
|
3791
|
+
|
|
3792
|
+
```ts
|
|
3793
|
+
static getEnv(chain: sdk.Chain): SetupEnv
|
|
3794
|
+
```
|
|
3795
|
+
See also: [Chain](#type-chain), [SetupEnv](#interface-setupenv)
|
|
3796
|
+
|
|
3797
|
+
Returns
|
|
3798
|
+
|
|
3799
|
+
with configuration environment secrets used by `Setup` functions.
|
|
3800
|
+
|
|
3801
|
+
Argument Details
|
|
3802
|
+
|
|
3803
|
+
+ **chain**
|
|
3804
|
+
+ Which chain to use: 'test' or 'main'
|
|
3805
|
+
|
|
3806
|
+
#### Method makeEnv
|
|
3807
|
+
|
|
3808
|
+
Creates content for .env file with some private keys, identity keys, sample API keys, and sample MySQL connection string.
|
|
3809
|
+
|
|
3810
|
+
Two new, random private keys are generated each time, with their associated public identity keys.
|
|
3811
|
+
|
|
3812
|
+
Loading secrets from a .env file is intended only for experimentation and getting started.
|
|
3813
|
+
Private keys should never be included directly in your source code.
|
|
3814
|
+
|
|
3815
|
+
```ts
|
|
3816
|
+
static makeEnv(): string
|
|
3817
|
+
```
|
|
3818
|
+
|
|
3819
|
+
</details>
|
|
3820
|
+
|
|
3821
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
3822
|
+
|
|
3505
3823
|
---
|
|
3506
3824
|
### Class: StorageClient
|
|
3507
3825
|
|
|
@@ -4484,6 +4802,21 @@ See also: [Chain](#type-chain), [KeyPair](#interface-keypair), [Monitor](#class-
|
|
|
4484
4802
|
|
|
4485
4803
|
<summary>Class Wallet Details</summary>
|
|
4486
4804
|
|
|
4805
|
+
#### Property beef
|
|
4806
|
+
|
|
4807
|
+
The wallet creates a `BeefParty` when it is created.
|
|
4808
|
+
All the Beefs that pass through the wallet are merged into this beef.
|
|
4809
|
+
Thus what it contains at any time is the union of all transactions and proof data processed.
|
|
4810
|
+
The class `BeefParty` derives from `Beef`, adding the ability to track the source of merged data.
|
|
4811
|
+
|
|
4812
|
+
This allows it to generate beefs to send to a particular “party” (storage or the user)
|
|
4813
|
+
that includes “txid only proofs” for transactions they already know about.
|
|
4814
|
+
Over time, this allows an active wallet to drastically reduce the amount of data transmitted.
|
|
4815
|
+
|
|
4816
|
+
```ts
|
|
4817
|
+
beef: BeefParty
|
|
4818
|
+
```
|
|
4819
|
+
|
|
4487
4820
|
#### Method getKnownTxids
|
|
4488
4821
|
|
|
4489
4822
|
```ts
|
|
@@ -6548,8 +6881,9 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
|
|
|
6548
6881
|
| [GetRawTxService](#type-getrawtxservice) | [StorageProvidedBy](#type-storageprovidedby) |
|
|
6549
6882
|
| [GetUtxoStatusOutputFormat](#type-getutxostatusoutputformat) | [SyncProtocolVersion](#type-syncprotocolversion) |
|
|
6550
6883
|
| [GetUtxoStatusService](#type-getutxostatusservice) | [SyncStatus](#type-syncstatus) |
|
|
6551
|
-
| [
|
|
6552
|
-
| [
|
|
6884
|
+
| [KeyPairAddress](#type-keypairaddress) | [TransactionStatus](#type-transactionstatus) |
|
|
6885
|
+
| [MonitorStorage](#type-monitorstorage) | [UpdateFiatExchangeRateService](#type-updatefiatexchangerateservice) |
|
|
6886
|
+
| [PostBeefService](#type-postbeefservice) | |
|
|
6553
6887
|
|
|
6554
6888
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
6555
6889
|
|
|
@@ -6614,6 +6948,19 @@ See also: [Chain](#type-chain), [GetUtxoStatusOutputFormat](#type-getutxostatuso
|
|
|
6614
6948
|
|
|
6615
6949
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
6616
6950
|
|
|
6951
|
+
---
|
|
6952
|
+
### Type: KeyPairAddress
|
|
6953
|
+
|
|
6954
|
+
```ts
|
|
6955
|
+
export type KeyPairAddress = {
|
|
6956
|
+
privateKey: PrivateKey;
|
|
6957
|
+
publicKey: PublicKey;
|
|
6958
|
+
address: string;
|
|
6959
|
+
}
|
|
6960
|
+
```
|
|
6961
|
+
|
|
6962
|
+
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
6963
|
+
|
|
6617
6964
|
---
|
|
6618
6965
|
### Type: MonitorStorage
|
|
6619
6966
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { KeyDeriver, PrivateKey } from '@bsv/sdk';
|
|
2
|
+
import { Monitor, sdk, Services, SetupClient, Wallet, WalletStorageManager } from './index.client';
|
|
3
|
+
import { Knex } from 'knex';
|
|
4
|
+
import { SetupWallet, SetupWalletArgs, StorageKnex } from './index.all';
|
|
5
|
+
/**
|
|
6
|
+
* The 'Setup` class provides static setup functions to construct BRC-100 compatible
|
|
7
|
+
* wallets in a variety of configurations.
|
|
8
|
+
*
|
|
9
|
+
* It serves as a starting point for experimentation and customization.
|
|
10
|
+
*
|
|
11
|
+
* `SetupClient` references only browser compatible code including storage via `StorageClient`.
|
|
12
|
+
* `Setup` extends `SetupClient` adding database storage via `Knex` and `StorageKnex`.
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class Setup extends SetupClient {
|
|
16
|
+
/**
|
|
17
|
+
* Adds `Knex` based storage to a `Wallet` configured by `Setup.createWalletOnly`
|
|
18
|
+
*
|
|
19
|
+
* @param args.knex `Knex` object configured for either MySQL or SQLite database access.
|
|
20
|
+
* Schema will be created and migrated as needed.
|
|
21
|
+
* For MySQL, a schema corresponding to databaseName must exist with full access permissions.
|
|
22
|
+
* @param args.databaseName Name for this storage. For MySQL, the schema name within the MySQL instance.
|
|
23
|
+
* @param args.chain Which chain this wallet is on: 'main' or 'test'. Defaults to 'test'.
|
|
24
|
+
* @param args.rootKeyHex
|
|
25
|
+
*
|
|
26
|
+
* @publicbody
|
|
27
|
+
*/
|
|
28
|
+
static createKnexWallet(args: SetupWalletKnexArgs): Promise<SetupWalletKnex>;
|
|
29
|
+
static createSQLiteKnex(filename: string): Knex;
|
|
30
|
+
static createMySQLKnex(connection: string, database?: string): Knex;
|
|
31
|
+
static createMySQLWallet(args: SetupWalletMySQLArgs): Promise<SetupWalletKnex>;
|
|
32
|
+
static createSQLiteWallet(args: SetupWalletSQLiteArgs): Promise<SetupWalletKnex>;
|
|
33
|
+
}
|
|
34
|
+
export interface SetupWalletKnexArgs extends SetupWalletArgs {
|
|
35
|
+
knex: Knex<any, any[]>;
|
|
36
|
+
databaseName: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SetupWalletMySQLArgs extends SetupWalletArgs {
|
|
39
|
+
databaseName: string;
|
|
40
|
+
}
|
|
41
|
+
export interface SetupWalletSQLiteArgs extends SetupWalletArgs {
|
|
42
|
+
filePath: string;
|
|
43
|
+
databaseName: string;
|
|
44
|
+
}
|
|
45
|
+
export interface SetupWalletKnex extends SetupWallet {
|
|
46
|
+
activeStorage: StorageKnex;
|
|
47
|
+
userId: number;
|
|
48
|
+
rootKey: PrivateKey;
|
|
49
|
+
identityKey: string;
|
|
50
|
+
keyDeriver: KeyDeriver;
|
|
51
|
+
chain: sdk.Chain;
|
|
52
|
+
storage: WalletStorageManager;
|
|
53
|
+
services: Services;
|
|
54
|
+
monitor: Monitor;
|
|
55
|
+
wallet: Wallet;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=Setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Setup.d.ts","sourceRoot":"","sources":["../../src/Setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EACL,OAAO,EACP,GAAG,EACH,QAAQ,EACR,WAAW,EACX,MAAM,EACN,oBAAoB,EACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,IAAI,EAAoB,MAAM,MAAM,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEvE;;;;;;;;;GASG;AACH,8BAAsB,KAAM,SAAQ,WAAW;IAC7C;;;;;;;;;;;OAWG;WACU,gBAAgB,CAC3B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,eAAe,CAAC;IAsB3B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU/C,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;WAetD,iBAAiB,CAC5B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,eAAe,CAAC;WAOd,kBAAkB,CAC7B,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,eAAe,CAAC;CAM5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,aAAa,EAAE,WAAW,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IAEd,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IAChB,OAAO,EAAE,oBAAoB,CAAA;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf"}
|