Documentation
¶
Index ¶
- Variables
- func DeriveP2PK(key *hdkeychain.ExtendedKey) (*btcec.PrivateKey, error)
- func GetKeysetKeys(mintURL, id string) (map[uint64]*secp256k1.PublicKey, error)
- func GetMintActiveKeyset(mintURL string, unit cashu.Unit) (*crypto.WalletKeyset, error)
- func GetMintInactiveKeysets(mintURL string, unit cashu.Unit) (map[string]crypto.WalletKeyset, error)
- func InitStorage(path string) (storage.WalletDB, error)
- func Restore(walletPath, mnemonic string, mintsToRestore []string) (uint64, error)
- type Config
- type Wallet
- func (w *Wallet) AddMint(mint string) (*walletMint, error)
- func (w *Wallet) CheckMeltQuoteState(quoteId string) (*nut05.PostMeltQuoteBolt11Response, error)
- func (w *Wallet) CurrentMint() string
- func (w *Wallet) GetBalance() uint64
- func (w *Wallet) GetBalanceByMints() map[string]uint64
- func (w *Wallet) GetMeltQuoteById(id string) *storage.MeltQuote
- func (w *Wallet) GetMeltQuotes() []storage.MeltQuote
- func (w *Wallet) GetMintQuoteById(id string) *storage.MintQuote
- func (w *Wallet) GetMintQuoteByPaymentRequest(request string) (*storage.MintQuote, error)
- func (w *Wallet) GetMintQuotes() []storage.MintQuote
- func (w *Wallet) GetPendingMeltQuotes() []string
- func (w *Wallet) GetReceivePubkey() *btcec.PublicKey
- func (w *Wallet) HTLCLockedProofs(amount uint64, mintURL string, preimage string, tags *nut11.P2PKTags, ...) (cashu.Proofs, error)
- func (w *Wallet) Melt(quoteId string) (*nut05.PostMeltQuoteBolt11Response, error)
- func (w *Wallet) MintQuoteState(quoteId string) (*nut04.PostMintQuoteBolt11Response, error)
- func (w *Wallet) MintSwap(amount uint64, from, to string) (uint64, error)
- func (w *Wallet) MintTokens(quoteId string) (uint64, error)
- func (w *Wallet) Mnemonic() string
- func (w *Wallet) MultiMintPayment(request string, split map[string]uint64) ([]nut05.PostMeltQuoteBolt11Response, error)
- func (w *Wallet) PendingBalance() uint64
- func (w *Wallet) Receive(token cashu.Token, swapToTrusted bool) (uint64, error)
- func (w *Wallet) ReceiveHTLC(token cashu.Token, preimage string) (uint64, error)
- func (w *Wallet) ReclaimUnspentProofs() (uint64, error)
- func (w *Wallet) RemoveSpentProofs() error
- func (w *Wallet) RequestMeltQuote(request, mint string) (*nut05.PostMeltQuoteBolt11Response, error)
- func (w *Wallet) RequestMint(amount uint64, mint string) (*nut04.PostMintQuoteBolt11Response, error)
- func (w *Wallet) Send(amount uint64, mintURL string, includeFees bool) (cashu.Proofs, error)
- func (w *Wallet) SendToPubkey(amount uint64, mintURL string, pubkey *btcec.PublicKey, tags *nut11.P2PKTags, ...) (cashu.Proofs, error)
- func (w *Wallet) Shutdown() error
- func (w *Wallet) TrustedMints() []string
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func DeriveP2PK ¶ added in v0.2.0
func DeriveP2PK(key *hdkeychain.ExtendedKey) (*btcec.PrivateKey, error)
Derive key that wallet will use to receive locked ecash
func GetKeysetKeys ¶ added in v0.4.0
func GetMintActiveKeyset ¶ added in v0.4.0
GetMintActiveKeyset gets the active keyset with the specified unit
func GetMintInactiveKeysets ¶
Types ¶
type Wallet ¶
type Wallet struct {
// contains filtered or unexported fields
}
func LoadWallet ¶
func (*Wallet) AddMint ¶ added in v0.4.0
AddMint adds the mint to the list of mints trusted by the wallet
func (*Wallet) CheckMeltQuoteState ¶ added in v0.3.0
func (w *Wallet) CheckMeltQuoteState(quoteId string) (*nut05.PostMeltQuoteBolt11Response, error)
func (*Wallet) CurrentMint ¶
CurrentMint returns the current mint url
func (*Wallet) GetBalance ¶
GetBalance returns the total balance aggregated from all proofs
func (*Wallet) GetBalanceByMints ¶
GetBalanceByMints returns a map of string mint and a uint64 that represents the balance for that mint
func (*Wallet) GetMeltQuoteById ¶ added in v0.4.0
func (*Wallet) GetMeltQuotes ¶ added in v0.4.0
func (*Wallet) GetMintQuoteById ¶ added in v0.4.0
func (*Wallet) GetMintQuoteByPaymentRequest ¶ added in v0.4.0
func (*Wallet) GetMintQuotes ¶ added in v0.4.0
func (*Wallet) GetPendingMeltQuotes ¶ added in v0.3.0
GetPendingMeltQuotes return a list of pending quote ids
func (*Wallet) GetReceivePubkey ¶ added in v0.2.0
GetReceivePubkey retrieves public key to which the wallet can receive locked ecash
func (*Wallet) HTLCLockedProofs ¶ added in v0.3.0
func (w *Wallet) HTLCLockedProofs( amount uint64, mintURL string, preimage string, tags *nut11.P2PKTags, includeFees bool, ) (cashu.Proofs, error)
HTLCLockedProofs returns proofs that are locked to the hash of the preimage
func (*Wallet) Melt ¶
func (w *Wallet) Melt(quoteId string) (*nut05.PostMeltQuoteBolt11Response, error)
Melt will melt proofs by requesting the mint to pay the payment request from the melt quote passed
func (*Wallet) MintQuoteState ¶ added in v0.3.0
func (w *Wallet) MintQuoteState(quoteId string) (*nut04.PostMintQuoteBolt11Response, error)
func (*Wallet) MintTokens ¶
MintTokens will check whether if the mint quote has been paid. If yes, it will create blinded messages that will send to the mint to get the blinded signatures. If successful, it will unblind the signatures to generate proofs and store the proofs in the db.
func (*Wallet) MultiMintPayment ¶ added in v0.4.0
func (w *Wallet) MultiMintPayment(request string, split map[string]uint64) ([]nut05.PostMeltQuoteBolt11Response, error)
MultiMintPayment tries an MPP according to NUT-15. The split is a map where the key is the mint and the uint64 is the amount in msat.
func (*Wallet) PendingBalance ¶ added in v0.3.0
func (*Wallet) Receive ¶
Receives Cashu token. If swap is true, it will swap the funds to the configured default mint. If false, it will add the proofs from the mint and add that mint to the list of trusted mints.
func (*Wallet) ReceiveHTLC ¶ added in v0.3.0
ReceiveHTLC will add the preimage and any signatures if needed in order to redeem the locked ecash. If successful, it will make a swap and store the new proofs. It will add the mint in the token to the list of trusted mints.
func (*Wallet) ReclaimUnspentProofs ¶ added in v0.4.0
ReclaimUnspentProofs will check the state of pending proofs and try to reclaim proofs that are in a unspent state
func (*Wallet) RemoveSpentProofs ¶ added in v0.4.0
RemoveSpentProofs will check the state of pending proofs and remove the ones in spent state
func (*Wallet) RequestMeltQuote ¶ added in v0.4.0
func (w *Wallet) RequestMeltQuote(request, mint string) (*nut05.PostMeltQuoteBolt11Response, error)
RequestMeltQuote will request a melt quote to the mint for the specified request
func (*Wallet) RequestMint ¶
func (w *Wallet) RequestMint(amount uint64, mint string) (*nut04.PostMintQuoteBolt11Response, error)
RequestMint requests a mint quote to the mint for the specified amount
func (*Wallet) SendToPubkey ¶ added in v0.2.0
func (w *Wallet) SendToPubkey( amount uint64, mintURL string, pubkey *btcec.PublicKey, tags *nut11.P2PKTags, includeFees bool, ) (cashu.Proofs, error)
SendToPubkey returns proofs that are locked to the passed pubkey