wallet

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2024 License: MIT Imports: 35 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrMintNotExist            = errors.New("mint does not exist")
	ErrInsufficientMintBalance = errors.New("not enough funds in selected mint")
)

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 GetActiveKeysets

func GetActiveKeysets(mintURL string) (*nut01.GetKeysResponse, error)

func GetAllKeysets

func GetAllKeysets(mintURL string) (*nut02.GetKeysetsResponse, error)

func GetKeysetById added in v0.2.0

func GetKeysetById(mintURL, id string) (*nut01.GetKeysResponse, error)

func GetMintActiveKeysets

func GetMintActiveKeysets(mintURL string) (map[string]crypto.WalletKeyset, error)

func GetMintInactiveKeysets

func GetMintInactiveKeysets(mintURL string) (map[string]crypto.WalletKeyset, error)

func GetMintInfo added in v0.2.0

func GetMintInfo(mintURL string) (*nut06.MintInfo, error)

func GetMintQuoteState

func GetMintQuoteState(mintURL, quoteId string) (*nut04.PostMintQuoteBolt11Response, error)

func InitStorage

func InitStorage(path string) (storage.DB, error)

func PostCheckProofState added in v0.2.0

func PostCheckProofState(mintURL string, stateRequest nut07.PostCheckStateRequest) (
	*nut07.PostCheckStateResponse, error)

func PostMeltBolt11

func PostMeltBolt11(mintURL string, meltRequest nut05.PostMeltBolt11Request) (
	*nut05.PostMeltQuoteBolt11Response, error)

func PostMeltQuoteBolt11

func PostMeltQuoteBolt11(mintURL string, meltQuoteRequest nut05.PostMeltQuoteBolt11Request) (
	*nut05.PostMeltQuoteBolt11Response, error)

func PostMintBolt11

func PostMintBolt11(mintURL string, mintRequest nut04.PostMintBolt11Request) (
	*nut04.PostMintBolt11Response, error)

func PostMintQuoteBolt11

func PostMintQuoteBolt11(mintURL string, mintQuoteRequest nut04.PostMintQuoteBolt11Request) (
	*nut04.PostMintQuoteBolt11Response, error)

func PostRestore added in v0.2.0

func PostRestore(mintURL string, restoreRequest nut09.PostRestoreRequest) (
	*nut09.PostRestoreResponse, error)

func PostSwap

func PostSwap(mintURL string, swapRequest nut03.PostSwapRequest) (*nut03.PostSwapResponse, error)

func Restore added in v0.2.0

func Restore(walletPath, mnemonic string, mintsToRestore []string) (cashu.Proofs, error)

Types

type Config

type Config struct {
	WalletPath     string
	CurrentMintURL string
}

type Wallet

type Wallet struct {
	// contains filtered or unexported fields
}

func LoadWallet

func LoadWallet(config Config) (*Wallet, error)

func (*Wallet) CurrentMint

func (w *Wallet) CurrentMint() string

CurrentMint returns the current mint url

func (*Wallet) GetAllInvoices

func (w *Wallet) GetAllInvoices() []storage.Invoice

func (*Wallet) GetBalance

func (w *Wallet) GetBalance() uint64

GetBalance returns the total balance aggregated from all proofs

func (*Wallet) GetBalanceByMints

func (w *Wallet) GetBalanceByMints() map[string]uint64

GetBalanceByMints returns a map of string mint and a uint64 that represents the balance for that mint

func (*Wallet) GetInvoiceByPaymentHash

func (w *Wallet) GetInvoiceByPaymentHash(hash string) *storage.Invoice

func (*Wallet) GetInvoiceByPaymentRequest

func (w *Wallet) GetInvoiceByPaymentRequest(pr string) (*storage.Invoice, error)

func (*Wallet) GetReceivePubkey added in v0.2.0

func (w *Wallet) GetReceivePubkey() *btcec.PublicKey

GetReceivePubkey retrieves public key to which the wallet can receive locked ecash

func (*Wallet) Melt

func (w *Wallet) Melt(invoice string, mintURL string) (*nut05.PostMeltQuoteBolt11Response, error)

Melt will request the mint to pay the given invoice

func (*Wallet) MintTokens

func (w *Wallet) MintTokens(quoteId string) (cashu.Proofs, error)

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) Mnemonic added in v0.2.0

func (w *Wallet) Mnemonic() string

func (*Wallet) Receive

func (w *Wallet) Receive(token cashu.Token, swapToTrusted bool) (uint64, error)

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) RequestMint

func (w *Wallet) RequestMint(amount uint64) (*nut04.PostMintQuoteBolt11Response, error)

RequestMint requests a mint quote to the wallet's current mint for the specified amount

func (*Wallet) Send

func (w *Wallet) Send(amount uint64, mintURL string, includeFees bool) (*cashu.Token, error)

Send will return a cashu token with proofs for the given amount

func (*Wallet) SendToPubkey added in v0.2.0

func (w *Wallet) SendToPubkey(
	amount uint64,
	mintURL string,
	pubkey *btcec.PublicKey,
	includeFees bool,
) (*cashu.Token, error)

SendToPubkey returns a cashu token with proofs that are locked to the passed pubkey

func (*Wallet) TrustedMints

func (w *Wallet) TrustedMints() []string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL