@bsv/wallet-toolbox 1.1.22 → 1.1.24

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/docs/wallet.md CHANGED
@@ -13,57 +13,55 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
13
13
 
14
14
  | | | |
15
15
  | --- | --- | --- |
16
- | [ArcConfig](#interface-arcconfig) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableProvenTx](#interface-tableproventx) |
17
- | [ArcMinerGetTxData](#interface-arcminergettxdata) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableProvenTxReq](#interface-tableproventxreq) |
18
- | [AuthId](#interface-authid) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
19
- | [BaseBlockHeader](#interface-baseblockheader) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TableSettings](#interface-tablesettings) |
20
- | [BlockHeader](#interface-blockheader) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TableSyncState](#interface-tablesyncstate) |
21
- | [BsvExchangeRate](#interface-bsvexchangerate) | [PostTxsResult](#interface-posttxsresult) | [TableTransaction](#interface-tabletransaction) |
22
- | [CertOpsWallet](#interface-certopswallet) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TableTxLabel](#interface-tabletxlabel) |
23
- | [CommitNewTxResults](#interface-commitnewtxresults) | [ProvenOrRawTx](#interface-provenorrawtx) | [TableTxLabelMap](#interface-tabletxlabelmap) |
24
- | [EntitySyncMap](#interface-entitysyncmap) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [TableUser](#interface-tableuser) |
25
- | [EntityTimeStamp](#interface-entitytimestamp) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [TaskPurgeParams](#interface-taskpurgeparams) |
26
- | [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [TrxToken](#interface-trxtoken) |
27
- | [FiatExchangeRates](#interface-fiatexchangerates) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
28
- | [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [PurgeParams](#interface-purgeparams) | [TxScriptOffsets](#interface-txscriptoffsets) |
29
- | [FindCertificatesArgs](#interface-findcertificatesargs) | [PurgeResults](#interface-purgeresults) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
30
- | [FindCommissionsArgs](#interface-findcommissionsargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
31
- | [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [ScriptTemplateParamsBRC29](#interface-scripttemplateparamsbrc29) | [ValidAbortActionArgs](#interface-validabortactionargs) |
32
- | [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [ValidAcquireCertificateArgs](#interface-validacquirecertificateargs) |
33
- | [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [SetupEnv](#interface-setupenv) | [ValidAcquireDirectCertificateArgs](#interface-validacquiredirectcertificateargs) |
34
- | [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [SetupWallet](#interface-setupwallet) | [ValidAcquireIssuanceCertificateArgs](#interface-validacquireissuancecertificateargs) |
35
- | [FindOutputTagsArgs](#interface-findoutputtagsargs) | [SetupWalletArgs](#interface-setupwalletargs) | [ValidBasketInsertion](#interface-validbasketinsertion) |
36
- | [FindOutputsArgs](#interface-findoutputsargs) | [SetupWalletClient](#interface-setupwalletclient) | [ValidCreateActionArgs](#interface-validcreateactionargs) |
37
- | [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [SetupWalletClientArgs](#interface-setupwalletclientargs) | [ValidCreateActionInput](#interface-validcreateactioninput) |
38
- | [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [StorageCreateActionResult](#interface-storagecreateactionresult) | [ValidCreateActionOptions](#interface-validcreateactionoptions) |
39
- | [FindProvenTxsArgs](#interface-findproventxsargs) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) | [ValidCreateActionOutput](#interface-validcreateactionoutput) |
40
- | [FindSincePagedArgs](#interface-findsincepagedargs) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) | [ValidDiscoverByAttributesArgs](#interface-validdiscoverbyattributesargs) |
41
- | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [StorageFeeModel](#interface-storagefeemodel) | [ValidDiscoverByIdentityKeyArgs](#interface-validdiscoverbyidentitykeyargs) |
42
- | [FindTransactionsArgs](#interface-findtransactionsargs) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) | [ValidInternalizeActionArgs](#interface-validinternalizeactionargs) |
43
- | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [StorageIdentity](#interface-storageidentity) | [ValidInternalizeOutput](#interface-validinternalizeoutput) |
44
- | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) | [ValidListActionsArgs](#interface-validlistactionsargs) |
45
- | [FindUsersArgs](#interface-findusersargs) | [StorageProcessActionArgs](#interface-storageprocessactionargs) | [ValidListCertificatesArgs](#interface-validlistcertificatesargs) |
46
- | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageProcessActionResults](#interface-storageprocessactionresults) | [ValidListOutputsArgs](#interface-validlistoutputsargs) |
47
- | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageProvenOrReq](#interface-storageprovenorreq) | [ValidProcessActionArgs](#interface-validprocessactionargs) |
48
- | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageProviderOptions](#interface-storageprovideroptions) | [ValidProcessActionOptions](#interface-validprocessactionoptions) |
49
- | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageReaderOptions](#interface-storagereaderoptions) | [ValidProveCertificateArgs](#interface-validprovecertificateargs) |
50
- | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [ValidRelinquishCertificateArgs](#interface-validrelinquishcertificateargs) |
51
- | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageSyncReader](#interface-storagesyncreader) | [ValidRelinquishOutputArgs](#interface-validrelinquishoutputargs) |
52
- | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) | [ValidSignActionArgs](#interface-validsignactionargs) |
53
- | [GetMerklePathResult](#interface-getmerklepathresult) | [StorageSyncReaderWriter](#interface-storagesyncreaderwriter) | [ValidSignActionOptions](#interface-validsignactionoptions) |
54
- | [GetRawTxResult](#interface-getrawtxresult) | [SyncChunk](#interface-syncchunk) | [ValidWalletPayment](#interface-validwalletpayment) |
55
- | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [SyncError](#interface-syncerror) | [ValidWalletSignerArgs](#interface-validwalletsignerargs) |
56
- | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [SyncMap](#interface-syncmap) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
57
- | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [TableCertificate](#interface-tablecertificate) | [WalletArgs](#interface-walletargs) |
58
- | [GetUtxoStatusResult](#interface-getutxostatusresult) | [TableCertificateField](#interface-tablecertificatefield) | [WalletServices](#interface-walletservices) |
59
- | [KeyPair](#interface-keypair) | [TableCertificateX](#interface-tablecertificatex) | [WalletServicesOptions](#interface-walletservicesoptions) |
60
- | [KeyPairAddress](#interface-keypairaddress) | [TableCommission](#interface-tablecommission) | [WalletSigner](#interface-walletsigner) |
61
- | [MonitorOptions](#interface-monitoroptions) | [TableMonitorEvent](#interface-tablemonitorevent) | [WalletStorage](#interface-walletstorage) |
62
- | [OutPoint](#interface-outpoint) | [TableOutput](#interface-tableoutput) | [WalletStorageProvider](#interface-walletstorageprovider) |
63
- | [Paged](#interface-paged) | [TableOutputBasket](#interface-tableoutputbasket) | [WalletStorageReader](#interface-walletstoragereader) |
64
- | [PendingSignAction](#interface-pendingsignaction) | [TableOutputTag](#interface-tableoutputtag) | [WalletStorageSync](#interface-walletstoragesync) |
65
- | [PendingStorageInput](#interface-pendingstorageinput) | [TableOutputTagMap](#interface-tableoutputtagmap) | [WalletStorageWriter](#interface-walletstoragewriter) |
66
- | [PostBeefResult](#interface-postbeefresult) | [TableOutputX](#interface-tableoutputx) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
16
+ | [ArcConfig](#interface-arcconfig) | [PostBeefResult](#interface-postbeefresult) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
17
+ | [ArcMinerGetTxData](#interface-arcminergettxdata) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableSettings](#interface-tablesettings) |
18
+ | [AuthId](#interface-authid) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableSyncState](#interface-tablesyncstate) |
19
+ | [BaseBlockHeader](#interface-baseblockheader) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableTransaction](#interface-tabletransaction) |
20
+ | [BlockHeader](#interface-blockheader) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TableTxLabel](#interface-tabletxlabel) |
21
+ | [BsvExchangeRate](#interface-bsvexchangerate) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TableTxLabelMap](#interface-tabletxlabelmap) |
22
+ | [CertOpsWallet](#interface-certopswallet) | [PostTxsResult](#interface-posttxsresult) | [TableUser](#interface-tableuser) |
23
+ | [CommitNewTxResults](#interface-commitnewtxresults) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TaskPurgeParams](#interface-taskpurgeparams) |
24
+ | [EntitySyncMap](#interface-entitysyncmap) | [ProvenOrRawTx](#interface-provenorrawtx) | [TrxToken](#interface-trxtoken) |
25
+ | [EntityTimeStamp](#interface-entitytimestamp) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
26
+ | [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [TxScriptOffsets](#interface-txscriptoffsets) |
27
+ | [FiatExchangeRates](#interface-fiatexchangerates) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
28
+ | [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
29
+ | [FindCertificatesArgs](#interface-findcertificatesargs) | [PurgeParams](#interface-purgeparams) | [ValidAbortActionArgs](#interface-validabortactionargs) |
30
+ | [FindCommissionsArgs](#interface-findcommissionsargs) | [PurgeResults](#interface-purgeresults) | [ValidAcquireCertificateArgs](#interface-validacquirecertificateargs) |
31
+ | [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [ValidAcquireDirectCertificateArgs](#interface-validacquiredirectcertificateargs) |
32
+ | [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [ScriptTemplateParamsBRC29](#interface-scripttemplateparamsbrc29) | [ValidAcquireIssuanceCertificateArgs](#interface-validacquireissuancecertificateargs) |
33
+ | [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [ValidBasketInsertion](#interface-validbasketinsertion) |
34
+ | [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [StorageCreateActionResult](#interface-storagecreateactionresult) | [ValidCreateActionArgs](#interface-validcreateactionargs) |
35
+ | [FindOutputTagsArgs](#interface-findoutputtagsargs) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) | [ValidCreateActionInput](#interface-validcreateactioninput) |
36
+ | [FindOutputsArgs](#interface-findoutputsargs) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) | [ValidCreateActionOptions](#interface-validcreateactionoptions) |
37
+ | [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [StorageFeeModel](#interface-storagefeemodel) | [ValidCreateActionOutput](#interface-validcreateactionoutput) |
38
+ | [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) | [ValidDiscoverByAttributesArgs](#interface-validdiscoverbyattributesargs) |
39
+ | [FindProvenTxsArgs](#interface-findproventxsargs) | [StorageIdentity](#interface-storageidentity) | [ValidDiscoverByIdentityKeyArgs](#interface-validdiscoverbyidentitykeyargs) |
40
+ | [FindSincePagedArgs](#interface-findsincepagedargs) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) | [ValidInternalizeActionArgs](#interface-validinternalizeactionargs) |
41
+ | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [StorageProcessActionArgs](#interface-storageprocessactionargs) | [ValidInternalizeOutput](#interface-validinternalizeoutput) |
42
+ | [FindTransactionsArgs](#interface-findtransactionsargs) | [StorageProcessActionResults](#interface-storageprocessactionresults) | [ValidListActionsArgs](#interface-validlistactionsargs) |
43
+ | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [StorageProvenOrReq](#interface-storageprovenorreq) | [ValidListCertificatesArgs](#interface-validlistcertificatesargs) |
44
+ | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StorageProviderOptions](#interface-storageprovideroptions) | [ValidListOutputsArgs](#interface-validlistoutputsargs) |
45
+ | [FindUsersArgs](#interface-findusersargs) | [StorageReaderOptions](#interface-storagereaderoptions) | [ValidProcessActionArgs](#interface-validprocessactionargs) |
46
+ | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [ValidProcessActionOptions](#interface-validprocessactionoptions) |
47
+ | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageSyncReader](#interface-storagesyncreader) | [ValidProveCertificateArgs](#interface-validprovecertificateargs) |
48
+ | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) | [ValidRelinquishCertificateArgs](#interface-validrelinquishcertificateargs) |
49
+ | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageSyncReaderWriter](#interface-storagesyncreaderwriter) | [ValidRelinquishOutputArgs](#interface-validrelinquishoutputargs) |
50
+ | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [SyncChunk](#interface-syncchunk) | [ValidSignActionArgs](#interface-validsignactionargs) |
51
+ | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [SyncError](#interface-syncerror) | [ValidSignActionOptions](#interface-validsignactionoptions) |
52
+ | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [SyncMap](#interface-syncmap) | [ValidWalletPayment](#interface-validwalletpayment) |
53
+ | [GetMerklePathResult](#interface-getmerklepathresult) | [TableCertificate](#interface-tablecertificate) | [ValidWalletSignerArgs](#interface-validwalletsignerargs) |
54
+ | [GetRawTxResult](#interface-getrawtxresult) | [TableCertificateField](#interface-tablecertificatefield) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
55
+ | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [TableCertificateX](#interface-tablecertificatex) | [WalletArgs](#interface-walletargs) |
56
+ | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [TableCommission](#interface-tablecommission) | [WalletServices](#interface-walletservices) |
57
+ | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [TableMonitorEvent](#interface-tablemonitorevent) | [WalletServicesOptions](#interface-walletservicesoptions) |
58
+ | [GetUtxoStatusResult](#interface-getutxostatusresult) | [TableOutput](#interface-tableoutput) | [WalletSigner](#interface-walletsigner) |
59
+ | [KeyPair](#interface-keypair) | [TableOutputBasket](#interface-tableoutputbasket) | [WalletStorage](#interface-walletstorage) |
60
+ | [MonitorOptions](#interface-monitoroptions) | [TableOutputTag](#interface-tableoutputtag) | [WalletStorageProvider](#interface-walletstorageprovider) |
61
+ | [OutPoint](#interface-outpoint) | [TableOutputTagMap](#interface-tableoutputtagmap) | [WalletStorageReader](#interface-walletstoragereader) |
62
+ | [Paged](#interface-paged) | [TableOutputX](#interface-tableoutputx) | [WalletStorageSync](#interface-walletstoragesync) |
63
+ | [PendingSignAction](#interface-pendingsignaction) | [TableProvenTx](#interface-tableproventx) | [WalletStorageWriter](#interface-walletstoragewriter) |
64
+ | [PendingStorageInput](#interface-pendingstorageinput) | [TableProvenTxReq](#interface-tableproventxreq) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
67
65
 
68
66
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
69
67
 
@@ -1046,21 +1044,6 @@ export interface KeyPair {
1046
1044
 
1047
1045
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1048
1046
 
1049
- ---
1050
- ##### Interface: KeyPairAddress
1051
-
1052
- A private key and associated public key and address.
1053
-
1054
- ```ts
1055
- export interface KeyPairAddress {
1056
- privateKey: PrivateKey;
1057
- publicKey: PublicKey;
1058
- address: string;
1059
- }
1060
- ```
1061
-
1062
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1063
-
1064
1047
  ---
1065
1048
  ##### Interface: MonitorOptions
1066
1049
 
@@ -1623,315 +1606,6 @@ export interface ScriptTemplateUnlock {
1623
1606
 
1624
1607
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1625
1608
 
1626
- ---
1627
- ##### Interface: SetupEnv
1628
-
1629
- `SetupEnv` provides a starting point for managing secrets that
1630
- must not appear in source code.
1631
-
1632
- The `makeEnv` and `getEnv` functions of the `Setup` and `SetupClient` classes
1633
- provide an easy way to create and import these secrets and related properties.
1634
-
1635
- ```ts
1636
- export interface SetupEnv {
1637
- chain: sdk.Chain;
1638
- identityKey: string;
1639
- identityKey2: string;
1640
- filePath: string | undefined;
1641
- taalApiKey: string;
1642
- devKeys: Record<string, string>;
1643
- mySQLConnection: string;
1644
- }
1645
- ```
1646
-
1647
- See also: [Chain](./client.md#type-chain)
1648
-
1649
- ###### Property chain
1650
-
1651
- The chan being accessed: 'main' for mainnet, 'test' for 'testnet'.
1652
-
1653
- ```ts
1654
- chain: sdk.Chain
1655
- ```
1656
- See also: [Chain](./client.md#type-chain)
1657
-
1658
- ###### Property devKeys
1659
-
1660
- A map of public keys (identity keys, hex strings) to private keys (hex strings).
1661
-
1662
- ```ts
1663
- devKeys: Record<string, string>
1664
- ```
1665
-
1666
- ###### Property filePath
1667
-
1668
- Filepath to sqlite file to be used for identityKey wallet.
1669
-
1670
- ```ts
1671
- filePath: string | undefined
1672
- ```
1673
-
1674
- ###### Property identityKey
1675
-
1676
- The user's primary identity key (public key).
1677
-
1678
- ```ts
1679
- identityKey: string
1680
- ```
1681
-
1682
- ###### Property identityKey2
1683
-
1684
- A secondary identity key (public key), used to test exchanges with other users.
1685
-
1686
- ```ts
1687
- identityKey2: string
1688
- ```
1689
-
1690
- ###### Property mySQLConnection
1691
-
1692
- A MySQL connection string including user and password properties.
1693
- Must be valid to make use of MySQL `Setup` class support.
1694
-
1695
- ```ts
1696
- mySQLConnection: string
1697
- ```
1698
-
1699
- ###### Property taalApiKey
1700
-
1701
- A vaild TAAL API key for use by `Services`
1702
-
1703
- ```ts
1704
- taalApiKey: string
1705
- ```
1706
-
1707
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1708
-
1709
- ---
1710
- ##### Interface: SetupWallet
1711
-
1712
- When creating a BRC-100 compatible `Wallet`, many components come into play.
1713
-
1714
- All of the `createWallet` functions in the `Setup` and `SetupClient` classes return
1715
- an object with direct access to each component to facilitate experimentation, testing
1716
- and customization.
1717
-
1718
- ```ts
1719
- export interface SetupWallet {
1720
- rootKey: PrivateKey;
1721
- identityKey: string;
1722
- keyDeriver: KeyDeriver;
1723
- chain: sdk.Chain;
1724
- storage: WalletStorageManager;
1725
- services: Services;
1726
- monitor: Monitor;
1727
- wallet: Wallet;
1728
- }
1729
- ```
1730
-
1731
- See also: [Chain](./client.md#type-chain), [Monitor](./monitor.md#class-monitor), [Services](./services.md#class-services), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager)
1732
-
1733
- ###### Property chain
1734
-
1735
- The chain ('main' or 'test') which the wallet accesses.
1736
-
1737
- ```ts
1738
- chain: sdk.Chain
1739
- ```
1740
- See also: [Chain](./client.md#type-chain)
1741
-
1742
- ###### Property identityKey
1743
-
1744
- The pubilc key associated with the `rootKey` which also serves as the wallet's identity.
1745
-
1746
- ```ts
1747
- identityKey: string
1748
- ```
1749
-
1750
- ###### Property keyDeriver
1751
-
1752
- The `KeyDeriver` component used by the wallet for key derivation and cryptographic functions.
1753
-
1754
- ```ts
1755
- keyDeriver: KeyDeriver
1756
- ```
1757
-
1758
- ###### Property monitor
1759
-
1760
- The background task `Monitor` component available to the wallet to offload tasks
1761
- that speed up wallet operations and maintain data integrity.
1762
-
1763
- ```ts
1764
- monitor: Monitor
1765
- ```
1766
- See also: [Monitor](./monitor.md#class-monitor)
1767
-
1768
- ###### Property rootKey
1769
-
1770
- The rootKey of the `KeyDeriver`. The private key from which other keys are derived.
1771
-
1772
- ```ts
1773
- rootKey: PrivateKey
1774
- ```
1775
-
1776
- ###### Property services
1777
-
1778
- The network `Services` component which provides the wallet with access to external services hosted
1779
- on the public network.
1780
-
1781
- ```ts
1782
- services: Services
1783
- ```
1784
- See also: [Services](./services.md#class-services)
1785
-
1786
- ###### Property storage
1787
-
1788
- The `WalletStorageManager` that manages all the configured storage providers (active and backups)
1789
- accessed by the wallet.
1790
-
1791
- ```ts
1792
- storage: WalletStorageManager
1793
- ```
1794
- See also: [WalletStorageManager](./storage.md#class-walletstoragemanager)
1795
-
1796
- ###### Property wallet
1797
-
1798
- The actual BRC-100 `Wallet` to which all the other properties and components contribute.
1799
-
1800
- Note that internally, the wallet is itself linked to all these properties and components.
1801
- They are included in this interface to facilitate access after wallet construction for
1802
- experimentation, testing and customization. Any changes made to the configuration of these
1803
- components after construction may disrupt the normal operation of the wallet.
1804
-
1805
- ```ts
1806
- wallet: Wallet
1807
- ```
1808
- See also: [Wallet](./client.md#class-wallet)
1809
-
1810
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1811
-
1812
- ---
1813
- ##### Interface: SetupWalletArgs
1814
-
1815
- Arguments used by `createWallet` to construct a `SetupWallet`.
1816
-
1817
- Extension `SetupWalletClientArgs` used by `createWalletClient` to construct a `SetupWalletClient`.
1818
-
1819
- Extension `SetupWalletKnexArgs` used by `createWalletKnex` to construct a `SetupWalletKnex`.
1820
-
1821
- Extension `SetupWalletMySQLArgs` used by `createWalletMySQL` to construct a `SetupWalletKnex`.
1822
-
1823
- Extension `SetupWalletSQLiteArgs` used by `createWalletSQLite` to construct a `SetupWalletKnex`.
1824
-
1825
- ```ts
1826
- export interface SetupWalletArgs {
1827
- env: SetupEnv;
1828
- rootKeyHex?: string;
1829
- privKeyHex?: string;
1830
- active?: sdk.WalletStorageProvider;
1831
- backups?: sdk.WalletStorageProvider[];
1832
- }
1833
- ```
1834
-
1835
- See also: [SetupEnv](./setup.md#interface-setupenv), [WalletStorageProvider](./client.md#interface-walletstorageprovider)
1836
-
1837
- ###### Property active
1838
-
1839
- Optional. Active wallet storage. Can be added later.
1840
-
1841
- ```ts
1842
- active?: sdk.WalletStorageProvider
1843
- ```
1844
- See also: [WalletStorageProvider](./client.md#interface-walletstorageprovider)
1845
-
1846
- ###### Property backups
1847
-
1848
- Optional. One or more storage providers managed as backup destinations. Can be added later.
1849
-
1850
- ```ts
1851
- backups?: sdk.WalletStorageProvider[]
1852
- ```
1853
- See also: [WalletStorageProvider](./client.md#interface-walletstorageprovider)
1854
-
1855
- ###### Property env
1856
-
1857
- Configuration "secrets" typically obtained by `Setup.makeEnv` and `Setup.getEnv` functions.
1858
-
1859
- ```ts
1860
- env: SetupEnv
1861
- ```
1862
- See also: [SetupEnv](./setup.md#interface-setupenv)
1863
-
1864
- ###### Property privKeyHex
1865
-
1866
- Optional. The privileged private key used to initialize the `PrivilegedKeyManager`.
1867
- Defaults to undefined.
1868
-
1869
- ```ts
1870
- privKeyHex?: string
1871
- ```
1872
-
1873
- ###### Property rootKeyHex
1874
-
1875
- Optional. The non-privileged private key used to initialize the `KeyDeriver` and determine the `identityKey`.
1876
- Defaults to `env.devKeys[env.identityKey]
1877
-
1878
- ```ts
1879
- rootKeyHex?: string
1880
- ```
1881
-
1882
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1883
-
1884
- ---
1885
- ##### Interface: SetupWalletClient
1886
-
1887
- Extension `SetupWalletClient` of `SetupWallet` is returned by `createWalletClient`
1888
-
1889
- ```ts
1890
- export interface SetupWalletClient extends SetupWallet {
1891
- endpointUrl: string;
1892
- }
1893
- ```
1894
-
1895
- See also: [SetupWallet](./setup.md#interface-setupwallet)
1896
-
1897
- ###### Property endpointUrl
1898
-
1899
- The endpoint URL of the service hosting the `StorageServer` JSON-RPC service to
1900
- which a `StorageClient` instance is connected to function as
1901
- the active storage provider of the wallet.
1902
-
1903
- ```ts
1904
- endpointUrl: string
1905
- ```
1906
-
1907
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1908
-
1909
- ---
1910
- ##### Interface: SetupWalletClientArgs
1911
-
1912
- Extension `SetupWalletClientArgs` of `SetupWalletArgs` is used by `createWalletClient`
1913
- to construct a `SetupWalletClient`.
1914
-
1915
- ```ts
1916
- export interface SetupWalletClientArgs extends SetupWalletArgs {
1917
- endpointUrl?: string;
1918
- }
1919
- ```
1920
-
1921
- See also: [SetupWalletArgs](./setup.md#interface-setupwalletargs)
1922
-
1923
- ###### Property endpointUrl
1924
-
1925
- The endpoint URL of a service hosting the `StorageServer` JSON-RPC service to
1926
- which a `StorageClient` instance should connect to function as
1927
- the active storage provider of the newly created wallet.
1928
-
1929
- ```ts
1930
- endpointUrl?: string
1931
- ```
1932
-
1933
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1934
-
1935
1609
  ---
1936
1610
  ##### Interface: StorageCreateActionResult
1937
1611
 
@@ -4041,25 +3715,25 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
4041
3715
 
4042
3716
  | | | |
4043
3717
  | --- | --- | --- |
4044
- | [ARC](#class-arc) | [PrivilegedKeyManager](#class-privilegedkeymanager) | [WERR_BAD_REQUEST](#class-werr_bad_request) |
4045
- | [CertOps](#class-certops) | [ScriptTemplateBRC29](#class-scripttemplatebrc29) | [WERR_BROADCAST_UNAVAILABLE](#class-werr_broadcast_unavailable) |
4046
- | [EntityBase](#class-entitybase) | [SdkWhatsOnChain](#class-sdkwhatsonchain) | [WERR_INSUFFICIENT_FUNDS](#class-werr_insufficient_funds) |
4047
- | [EntityCertificate](#class-entitycertificate) | [ServiceCollection](#class-servicecollection) | [WERR_INTERNAL](#class-werr_internal) |
4048
- | [EntityCertificateField](#class-entitycertificatefield) | [Services](#class-services) | [WERR_INVALID_OPERATION](#class-werr_invalid_operation) |
4049
- | [EntityCommission](#class-entitycommission) | [SetupClient](#class-setupclient) | [WERR_INVALID_PARAMETER](#class-werr_invalid_parameter) |
4050
- | [EntityOutput](#class-entityoutput) | [StorageClient](#class-storageclient) | [WERR_INVALID_PUBLIC_KEY](#class-werr_invalid_public_key) |
4051
- | [EntityOutputBasket](#class-entityoutputbasket) | [StorageProvider](#class-storageprovider) | [WERR_MISSING_PARAMETER](#class-werr_missing_parameter) |
4052
- | [EntityOutputTag](#class-entityoutputtag) | [StorageReader](#class-storagereader) | [WERR_NETWORK_CHAIN](#class-werr_network_chain) |
4053
- | [EntityOutputTagMap](#class-entityoutputtagmap) | [StorageReaderWriter](#class-storagereaderwriter) | [WERR_NOT_ACTIVE](#class-werr_not_active) |
4054
- | [EntityProvenTx](#class-entityproventx) | [StorageSyncReader](#class-storagesyncreader) | [WERR_NOT_IMPLEMENTED](#class-werr_not_implemented) |
4055
- | [EntityProvenTxReq](#class-entityproventxreq) | [TaskCheckForProofs](#class-taskcheckforproofs) | [WERR_UNAUTHORIZED](#class-werr_unauthorized) |
4056
- | [EntitySyncState](#class-entitysyncstate) | [TaskClock](#class-taskclock) | [Wallet](#class-wallet) |
4057
- | [EntityTransaction](#class-entitytransaction) | [TaskFailAbandoned](#class-taskfailabandoned) | [WalletError](#class-walleterror) |
4058
- | [EntityTxLabel](#class-entitytxlabel) | [TaskNewHeader](#class-tasknewheader) | [WalletMonitorTask](#class-walletmonitortask) |
4059
- | [EntityTxLabelMap](#class-entitytxlabelmap) | [TaskPurge](#class-taskpurge) | [WalletSigner](#class-walletsigner) |
4060
- | [EntityUser](#class-entityuser) | [TaskReviewStatus](#class-taskreviewstatus) | [WalletStorageManager](#class-walletstoragemanager) |
4061
- | [MergeEntity](#class-mergeentity) | [TaskSendWaiting](#class-tasksendwaiting) | [WhatsOnChain](#class-whatsonchain) |
4062
- | [Monitor](#class-monitor) | [TaskSyncWhenIdle](#class-tasksyncwhenidle) | |
3718
+ | [ARC](#class-arc) | [PrivilegedKeyManager](#class-privilegedkeymanager) | [WERR_BROADCAST_UNAVAILABLE](#class-werr_broadcast_unavailable) |
3719
+ | [CertOps](#class-certops) | [ScriptTemplateBRC29](#class-scripttemplatebrc29) | [WERR_INSUFFICIENT_FUNDS](#class-werr_insufficient_funds) |
3720
+ | [EntityBase](#class-entitybase) | [SdkWhatsOnChain](#class-sdkwhatsonchain) | [WERR_INTERNAL](#class-werr_internal) |
3721
+ | [EntityCertificate](#class-entitycertificate) | [ServiceCollection](#class-servicecollection) | [WERR_INVALID_OPERATION](#class-werr_invalid_operation) |
3722
+ | [EntityCertificateField](#class-entitycertificatefield) | [Services](#class-services) | [WERR_INVALID_PARAMETER](#class-werr_invalid_parameter) |
3723
+ | [EntityCommission](#class-entitycommission) | [StorageClient](#class-storageclient) | [WERR_INVALID_PUBLIC_KEY](#class-werr_invalid_public_key) |
3724
+ | [EntityOutput](#class-entityoutput) | [StorageProvider](#class-storageprovider) | [WERR_MISSING_PARAMETER](#class-werr_missing_parameter) |
3725
+ | [EntityOutputBasket](#class-entityoutputbasket) | [StorageReader](#class-storagereader) | [WERR_NETWORK_CHAIN](#class-werr_network_chain) |
3726
+ | [EntityOutputTag](#class-entityoutputtag) | [StorageReaderWriter](#class-storagereaderwriter) | [WERR_NOT_ACTIVE](#class-werr_not_active) |
3727
+ | [EntityOutputTagMap](#class-entityoutputtagmap) | [StorageSyncReader](#class-storagesyncreader) | [WERR_NOT_IMPLEMENTED](#class-werr_not_implemented) |
3728
+ | [EntityProvenTx](#class-entityproventx) | [TaskCheckForProofs](#class-taskcheckforproofs) | [WERR_UNAUTHORIZED](#class-werr_unauthorized) |
3729
+ | [EntityProvenTxReq](#class-entityproventxreq) | [TaskClock](#class-taskclock) | [Wallet](#class-wallet) |
3730
+ | [EntitySyncState](#class-entitysyncstate) | [TaskFailAbandoned](#class-taskfailabandoned) | [WalletError](#class-walleterror) |
3731
+ | [EntityTransaction](#class-entitytransaction) | [TaskNewHeader](#class-tasknewheader) | [WalletMonitorTask](#class-walletmonitortask) |
3732
+ | [EntityTxLabel](#class-entitytxlabel) | [TaskPurge](#class-taskpurge) | [WalletSigner](#class-walletsigner) |
3733
+ | [EntityTxLabelMap](#class-entitytxlabelmap) | [TaskReviewStatus](#class-taskreviewstatus) | [WalletStorageManager](#class-walletstoragemanager) |
3734
+ | [EntityUser](#class-entityuser) | [TaskSendWaiting](#class-tasksendwaiting) | [WhatsOnChain](#class-whatsonchain) |
3735
+ | [MergeEntity](#class-mergeentity) | [TaskSyncWhenIdle](#class-tasksyncwhenidle) | |
3736
+ | [Monitor](#class-monitor) | [WERR_BAD_REQUEST](#class-werr_bad_request) | |
4063
3737
 
4064
3738
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4065
3739
 
@@ -5525,354 +5199,6 @@ See also: [ARC](./services.md#class-arc), [BlockHeader](./client.md#interface-bl
5525
5199
 
5526
5200
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5527
5201
 
5528
- ---
5529
- ##### Class: SetupClient
5530
-
5531
- The `SetupClient` class provides static setup functions to construct BRC-100 compatible
5532
- wallets in a variety of configurations.
5533
-
5534
- It serves as a starting point for experimentation and customization.
5535
-
5536
- `SetupClient` references only browser compatible code including storage via `StorageClient`.
5537
- `Setup` extends `SetupClient` adding database storage via `Knex` and `StorageKnex`.
5538
-
5539
- ```ts
5540
- export abstract class SetupClient {
5541
- static noEnv(chain: sdk.Chain): boolean
5542
- static makeEnv(): string {
5543
- const testPrivKey1 = PrivateKey.fromRandom();
5544
- const testIdentityKey1 = testPrivKey1.toPublicKey().toString();
5545
- const testPrivKey2 = PrivateKey.fromRandom();
5546
- const testIdentityKey2 = testPrivKey2.toPublicKey().toString();
5547
- const mainPrivKey1 = PrivateKey.fromRandom();
5548
- const mainIdentityKey1 = mainPrivKey1.toPublicKey().toString();
5549
- const mainPrivKey2 = PrivateKey.fromRandom();
5550
- const mainIdentityKey2 = mainPrivKey2.toPublicKey().toString();
5551
- const log = `
5552
- # .env file template for working with wallet-toolbox Setup functions.
5553
- MY_TEST_IDENTITY = '${testIdentityKey1}'
5554
- MY_TEST_IDENTITY2 = '${testIdentityKey2}'
5555
- MY_MAIN_IDENTITY = '${mainIdentityKey1}'
5556
- MY_MAIN_IDENTITY2 = '${mainIdentityKey2}'
5557
- MAIN_TAAL_API_KEY='mainnet_9596de07e92300c6287e4393594ae39c'
5558
- TEST_TAAL_API_KEY='testnet_0e6cf72133b43ea2d7861da2a38684e3'
5559
- MYSQL_CONNECTION='{"port":3306,"host":"127.0.0.1","user":"root","password":"your_password","database":"your_database", "timezone": "Z"}'
5560
- DEV_KEYS = '{
5561
- "${testIdentityKey1}": "${testPrivKey1.toString()}",
5562
- "${testIdentityKey2}": "${testPrivKey2.toString()}",
5563
- "${mainIdentityKey1}": "${mainPrivKey1.toString()}",
5564
- "${mainIdentityKey2}": "${mainPrivKey2.toString()}"
5565
- }'
5566
- `;
5567
- console.log(log);
5568
- return log;
5569
- }
5570
- static getEnv(chain: sdk.Chain): SetupEnv {
5571
- const identityKey = chain === "main"
5572
- ? process.env.MY_MAIN_IDENTITY
5573
- : process.env.MY_TEST_IDENTITY;
5574
- const identityKey2 = chain === "main"
5575
- ? process.env.MY_MAIN_IDENTITY2
5576
- : process.env.MY_TEST_IDENTITY2;
5577
- const filePath = chain === "main"
5578
- ? process.env.MY_MAIN_FILEPATH
5579
- : process.env.MY_TEST_FILEPATH;
5580
- const DEV_KEYS = process.env.DEV_KEYS || "{}";
5581
- const mySQLConnection = process.env.MYSQL_CONNECTION || "{}";
5582
- const taalApiKey = verifyTruthy(chain === "main"
5583
- ? process.env.MAIN_TAAL_API_KEY
5584
- : process.env.TEST_TAAL_API_KEY, `.env value for '${chain.toUpperCase()}_TAAL_API_KEY' is required.`);
5585
- if (!identityKey || !identityKey2)
5586
- throw new sdk.WERR_INVALID_OPERATION(".env is not a valid SetupEnv configuration.");
5587
- return {
5588
- chain,
5589
- identityKey,
5590
- identityKey2,
5591
- filePath,
5592
- taalApiKey,
5593
- devKeys: JSON.parse(DEV_KEYS) as Record<string, string>,
5594
- mySQLConnection
5595
- };
5596
- }
5597
- static async createWallet(args: SetupWalletArgs): Promise<SetupWallet> {
5598
- const chain = args.env.chain;
5599
- args.rootKeyHex ||= args.env.devKeys[args.env.identityKey];
5600
- const rootKey = PrivateKey.fromHex(args.rootKeyHex);
5601
- const identityKey = rootKey.toPublicKey().toString();
5602
- const keyDeriver = new KeyDeriver(rootKey);
5603
- const storage = new WalletStorageManager(identityKey, args.active, args.backups);
5604
- if (storage.stores.length > 0)
5605
- await storage.makeAvailable();
5606
- const serviceOptions = Services.createDefaultOptions(chain);
5607
- serviceOptions.taalApiKey = args.env.taalApiKey;
5608
- const services = new Services(chain);
5609
- const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
5610
- const monitor = new Monitor(monopts);
5611
- monitor.addDefaultTasks();
5612
- let privilegedKeyManager: sdk.PrivilegedKeyManager | undefined = undefined;
5613
- if (args.privKeyHex) {
5614
- const privKey = PrivateKey.fromString(args.privKeyHex);
5615
- privilegedKeyManager = new sdk.PrivilegedKeyManager(async () => privKey);
5616
- }
5617
- const wallet = new Wallet({
5618
- chain,
5619
- keyDeriver,
5620
- storage,
5621
- services,
5622
- monitor,
5623
- privilegedKeyManager
5624
- });
5625
- const r: SetupWallet = {
5626
- rootKey,
5627
- identityKey,
5628
- keyDeriver,
5629
- chain,
5630
- storage,
5631
- services,
5632
- monitor,
5633
- wallet
5634
- };
5635
- return r;
5636
- }
5637
- static async createWalletClient(args: SetupWalletClientArgs): Promise<SetupWalletClient> {
5638
- const wo = await SetupClient.createWallet(args);
5639
- const endpointUrl = args.endpointUrl ||
5640
- `https://${args.env.chain !== "main" ? "staging-" : ""}storage.babbage.systems`;
5641
- const client = new StorageClient(wo.wallet, endpointUrl);
5642
- await wo.storage.addWalletStorageProvider(client);
5643
- await wo.storage.makeAvailable();
5644
- return {
5645
- ...wo,
5646
- endpointUrl
5647
- };
5648
- }
5649
- static getKeyPair(priv?: string | PrivateKey): KeyPairAddress {
5650
- if (priv === undefined)
5651
- priv = PrivateKey.fromRandom();
5652
- else if (typeof priv === "string")
5653
- priv = new PrivateKey(priv, "hex");
5654
- const pub = PublicKey.fromPrivateKey(priv);
5655
- const address = pub.toAddress();
5656
- return { privateKey: priv, publicKey: pub, address };
5657
- }
5658
- static getLockP2PKH(address: string): LockingScript {
5659
- const p2pkh = new P2PKH();
5660
- const lock = p2pkh.lock(address);
5661
- return lock;
5662
- }
5663
- static getUnlockP2PKH(priv: PrivateKey, satoshis: number): sdk.ScriptTemplateUnlock {
5664
- const p2pkh = new P2PKH();
5665
- const lock = SetupClient.getLockP2PKH(SetupClient.getKeyPair(priv).address);
5666
- const unlock = p2pkh.unlock(priv, "all", false, satoshis, lock);
5667
- return unlock;
5668
- }
5669
- static createP2PKHOutputs(outputs: {
5670
- address: string;
5671
- satoshis: number;
5672
- outputDescription?: string;
5673
- basket?: string;
5674
- tags?: string[];
5675
- }[]): CreateActionOutput[] {
5676
- const os: CreateActionOutput[] = [];
5677
- const count = outputs.length;
5678
- for (let i = 0; i < count; i++) {
5679
- const o = outputs[i];
5680
- os.push({
5681
- basket: o.basket,
5682
- tags: o.tags,
5683
- satoshis: o.satoshis,
5684
- lockingScript: SetupClient.getLockP2PKH(o.address).toHex(),
5685
- outputDescription: o.outputDescription || `p2pkh ${i}`
5686
- });
5687
- }
5688
- return os;
5689
- }
5690
- static async createP2PKHOutputsAction(wallet: WalletInterface, outputs: {
5691
- address: string;
5692
- satoshis: number;
5693
- outputDescription?: string;
5694
- basket?: string;
5695
- tags?: string[];
5696
- }[], options?: CreateActionOptions): Promise<{
5697
- cr: CreateActionResult;
5698
- outpoints: string[] | undefined;
5699
- }> {
5700
- const os = SetupClient.createP2PKHOutputs(outputs);
5701
- const createArgs: CreateActionArgs = {
5702
- description: `createP2PKHOutputs`,
5703
- outputs: os,
5704
- options: {
5705
- ...options,
5706
- randomizeOutputs: false
5707
- }
5708
- };
5709
- const cr = await wallet.createAction(createArgs);
5710
- let outpoints: string[] | undefined;
5711
- if (cr.txid) {
5712
- outpoints = os.map((o, i) => `${cr.txid}.${i}`);
5713
- }
5714
- return { cr, outpoints };
5715
- }
5716
- static async fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF) {
5717
- }
5718
- }
5719
- ```
5720
-
5721
- See also: [Chain](./client.md#type-chain), [KeyPairAddress](./setup.md#interface-keypairaddress), [Monitor](./monitor.md#class-monitor), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [ScriptTemplateUnlock](./client.md#interface-scripttemplateunlock), [Services](./services.md#class-services), [Setup](./setup.md#class-setup), [SetupEnv](./setup.md#interface-setupenv), [SetupWallet](./setup.md#interface-setupwallet), [SetupWalletArgs](./setup.md#interface-setupwalletargs), [SetupWalletClient](./setup.md#interface-setupwalletclient), [SetupWalletClientArgs](./setup.md#interface-setupwalletclientargs), [StorageClient](./storage.md#class-storageclient), [WERR_INVALID_OPERATION](./client.md#class-werr_invalid_operation), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager), [createAction](./storage.md#function-createaction), [verifyTruthy](./client.md#function-verifytruthy)
5722
-
5723
- ###### Method createWallet
5724
-
5725
- Create a `Wallet`. Storage can optionally be provided or configured later.
5726
-
5727
- The following components are configured: KeyDeriver, WalletStorageManager, WalletService, WalletStorage.
5728
- Optionally, PrivilegedKeyManager is also configured.
5729
-
5730
- ```ts
5731
- static async createWallet(args: SetupWalletArgs): Promise<SetupWallet> {
5732
- const chain = args.env.chain;
5733
- args.rootKeyHex ||= args.env.devKeys[args.env.identityKey];
5734
- const rootKey = PrivateKey.fromHex(args.rootKeyHex);
5735
- const identityKey = rootKey.toPublicKey().toString();
5736
- const keyDeriver = new KeyDeriver(rootKey);
5737
- const storage = new WalletStorageManager(identityKey, args.active, args.backups);
5738
- if (storage.stores.length > 0)
5739
- await storage.makeAvailable();
5740
- const serviceOptions = Services.createDefaultOptions(chain);
5741
- serviceOptions.taalApiKey = args.env.taalApiKey;
5742
- const services = new Services(chain);
5743
- const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
5744
- const monitor = new Monitor(monopts);
5745
- monitor.addDefaultTasks();
5746
- let privilegedKeyManager: sdk.PrivilegedKeyManager | undefined = undefined;
5747
- if (args.privKeyHex) {
5748
- const privKey = PrivateKey.fromString(args.privKeyHex);
5749
- privilegedKeyManager = new sdk.PrivilegedKeyManager(async () => privKey);
5750
- }
5751
- const wallet = new Wallet({
5752
- chain,
5753
- keyDeriver,
5754
- storage,
5755
- services,
5756
- monitor,
5757
- privilegedKeyManager
5758
- });
5759
- const r: SetupWallet = {
5760
- rootKey,
5761
- identityKey,
5762
- keyDeriver,
5763
- chain,
5764
- storage,
5765
- services,
5766
- monitor,
5767
- wallet
5768
- };
5769
- return r;
5770
- }
5771
- ```
5772
- See also: [Monitor](./monitor.md#class-monitor), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [Services](./services.md#class-services), [SetupWallet](./setup.md#interface-setupwallet), [SetupWalletArgs](./setup.md#interface-setupwalletargs), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager)
5773
-
5774
- ###### Method getEnv
5775
-
5776
- Reads a .env file of the format created by `makeEnv`.
5777
-
5778
- Returns values for designated `chain`.
5779
-
5780
- Access private keys through the `devKeys` object: `devKeys[identityKey]`
5781
-
5782
- ```ts
5783
- static getEnv(chain: sdk.Chain): SetupEnv {
5784
- const identityKey = chain === "main"
5785
- ? process.env.MY_MAIN_IDENTITY
5786
- : process.env.MY_TEST_IDENTITY;
5787
- const identityKey2 = chain === "main"
5788
- ? process.env.MY_MAIN_IDENTITY2
5789
- : process.env.MY_TEST_IDENTITY2;
5790
- const filePath = chain === "main"
5791
- ? process.env.MY_MAIN_FILEPATH
5792
- : process.env.MY_TEST_FILEPATH;
5793
- const DEV_KEYS = process.env.DEV_KEYS || "{}";
5794
- const mySQLConnection = process.env.MYSQL_CONNECTION || "{}";
5795
- const taalApiKey = verifyTruthy(chain === "main"
5796
- ? process.env.MAIN_TAAL_API_KEY
5797
- : process.env.TEST_TAAL_API_KEY, `.env value for '${chain.toUpperCase()}_TAAL_API_KEY' is required.`);
5798
- if (!identityKey || !identityKey2)
5799
- throw new sdk.WERR_INVALID_OPERATION(".env is not a valid SetupEnv configuration.");
5800
- return {
5801
- chain,
5802
- identityKey,
5803
- identityKey2,
5804
- filePath,
5805
- taalApiKey,
5806
- devKeys: JSON.parse(DEV_KEYS) as Record<string, string>,
5807
- mySQLConnection
5808
- };
5809
- }
5810
- ```
5811
- See also: [Chain](./client.md#type-chain), [SetupEnv](./setup.md#interface-setupenv), [WERR_INVALID_OPERATION](./client.md#class-werr_invalid_operation), [verifyTruthy](./client.md#function-verifytruthy)
5812
-
5813
- Returns
5814
-
5815
- with configuration environment secrets used by `Setup` functions.
5816
-
5817
- Argument Details
5818
-
5819
- + **chain**
5820
- + Which chain to use: 'test' or 'main'
5821
-
5822
- ###### Method makeEnv
5823
-
5824
- Creates content for .env file with some private keys, identity keys, sample API keys, and sample MySQL connection string.
5825
-
5826
- Two new, random private keys are generated each time, with their associated public identity keys.
5827
-
5828
- Loading secrets from a .env file is intended only for experimentation and getting started.
5829
- Private keys should never be included directly in your source code.
5830
-
5831
- ```ts
5832
- static makeEnv(): string {
5833
- const testPrivKey1 = PrivateKey.fromRandom();
5834
- const testIdentityKey1 = testPrivKey1.toPublicKey().toString();
5835
- const testPrivKey2 = PrivateKey.fromRandom();
5836
- const testIdentityKey2 = testPrivKey2.toPublicKey().toString();
5837
- const mainPrivKey1 = PrivateKey.fromRandom();
5838
- const mainIdentityKey1 = mainPrivKey1.toPublicKey().toString();
5839
- const mainPrivKey2 = PrivateKey.fromRandom();
5840
- const mainIdentityKey2 = mainPrivKey2.toPublicKey().toString();
5841
- const log = `
5842
- # .env file template for working with wallet-toolbox Setup functions.
5843
- MY_TEST_IDENTITY = '${testIdentityKey1}'
5844
- MY_TEST_IDENTITY2 = '${testIdentityKey2}'
5845
- MY_MAIN_IDENTITY = '${mainIdentityKey1}'
5846
- MY_MAIN_IDENTITY2 = '${mainIdentityKey2}'
5847
- MAIN_TAAL_API_KEY='mainnet_9596de07e92300c6287e4393594ae39c'
5848
- TEST_TAAL_API_KEY='testnet_0e6cf72133b43ea2d7861da2a38684e3'
5849
- MYSQL_CONNECTION='{"port":3306,"host":"127.0.0.1","user":"root","password":"your_password","database":"your_database", "timezone": "Z"}'
5850
- DEV_KEYS = '{
5851
- "${testIdentityKey1}": "${testPrivKey1.toString()}",
5852
- "${testIdentityKey2}": "${testPrivKey2.toString()}",
5853
- "${mainIdentityKey1}": "${mainPrivKey1.toString()}",
5854
- "${mainIdentityKey2}": "${mainPrivKey2.toString()}"
5855
- }'
5856
- `;
5857
- console.log(log);
5858
- return log;
5859
- }
5860
- ```
5861
- See also: [Setup](./setup.md#class-setup)
5862
-
5863
- ###### Method noEnv
5864
-
5865
- ```ts
5866
- static noEnv(chain: sdk.Chain): boolean
5867
- ```
5868
- See also: [Chain](./client.md#type-chain)
5869
-
5870
- Returns
5871
-
5872
- true if .env is not valid for chain
5873
-
5874
- Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5875
-
5876
5202
  ---
5877
5203
  ##### Class: StorageClient
5878
5204