Documentation
¶
Overview ¶
Package wallet provides multi-chain wallet implementation.
Index ¶
- Variables
- type PQWallet
- func (w *PQWallet) Account(id account.AccountID) (*account.PQAccount, bool)
- func (w *PQWallet) AccountIDs() []account.AccountID
- func (w *PQWallet) AddAccount(a *account.PQAccount) error
- func (w *PQWallet) AddRecovery(r *account.RecoveryAccount) error
- func (w *PQWallet) Recovery(id account.AccountID) (*account.RecoveryAccount, bool)
- func (w *PQWallet) RemoveAccount(id account.AccountID) bool
- func (w *PQWallet) SignTx(id account.AccountID, env account.TxAuthEnvelope) error
- type TransferInput
- type TransferOutput
- type TransferTx
- type UTXO
- type Wallet
- func (w *Wallet) AddUTXO(utxo *UTXO)
- func (w *Wallet) CreateTransferTx(to ids.ShortID, assetID ids.ID, amount uint64, memo []byte) (*TransferTx, error)
- func (w *Wallet) GenerateKey() (ids.ShortID, error)
- func (w *Wallet) GetAddress() (ids.ShortID, error)
- func (w *Wallet) GetAllAddresses() []ids.ShortID
- func (w *Wallet) GetBLSKey() (*bls.SecretKey, error)
- func (w *Wallet) GetBalance(assetID ids.ID) uint64
- func (w *Wallet) GetUTXOs(assetID ids.ID, amount uint64) ([]*UTXO, uint64, error)
- func (w *Wallet) ImportKey(privateKey crypto.PrivateKey) (ids.ShortID, error)
- func (w *Wallet) RemoveUTXO(utxoID ids.ID)
- func (w *Wallet) SetBLSKey(key *bls.SecretKey)
- func (w *Wallet) Sign(ctx context.Context, tx chain.Transaction) error
Constants ¶
This section is empty.
Variables ¶
var ( ErrInsufficientFunds = errors.New("insufficient funds") ErrNoUTXOs = errors.New("no UTXOs available") ErrInvalidAddress = errors.New("invalid address") )
var ErrAccountNotFound = errors.New("wallet: account not found")
ErrAccountNotFound is returned by PQWallet.SignTx when the supplied AccountID is not in the wallet.
Functions ¶
This section is empty.
Types ¶
type PQWallet ¶ added in v1.17.0
type PQWallet struct {
// contains filtered or unexported fields
}
PQWallet is the post-quantum native wallet facade. It stores PQAccounts (ML-DSA-65) and RecoveryAccounts (SLH-DSA-SHAKE-192s) by their canonical 48-byte AccountID, exposes Sign on accounts by ID, and is safe for concurrent use across goroutines.
PQWallet is intentionally separate from the secp256k1 Wallet type in this package: classical-compat keys live in a strictly disjoint keyring so a chain that refuses WalletSchemeSecp256k1 cannot accidentally see one. Callers that mix classical and PQ keys hold both Wallet and PQWallet instances.
func NewPQWallet ¶ added in v1.17.0
func NewPQWallet() *PQWallet
NewPQWallet returns an empty PQWallet. The wallet is in-memory only; persistence is the caller's responsibility (typically through account.SealPQAccount + a file/keychain store).
func (*PQWallet) Account ¶ added in v1.17.0
Account returns the PQ account with the given AccountID. The second return value is false if no such account is present.
func (*PQWallet) AccountIDs ¶ added in v1.17.0
AccountIDs returns a slice of all hot (PQ) AccountIDs known to the wallet. Order is not stable across calls.
func (*PQWallet) AddAccount ¶ added in v1.17.0
AddAccount inserts a PQ account into the wallet. Returns an error if an account with the same AccountID is already present (idempotent inserts are NOT allowed — callers must choose to overwrite by calling RemoveAccount first).
func (*PQWallet) AddRecovery ¶ added in v1.17.0
func (w *PQWallet) AddRecovery(r *account.RecoveryAccount) error
AddRecovery inserts an SLH-DSA recovery account into the wallet.
func (*PQWallet) Recovery ¶ added in v1.17.0
Recovery returns the SLH-DSA recovery account with the given AccountID.
func (*PQWallet) RemoveAccount ¶ added in v1.17.0
RemoveAccount removes the account with the given AccountID. Returns false if no such account was present.
func (*PQWallet) SignTx ¶ added in v1.17.0
SignTx signs the envelope under the account identified by id. Thin wrapper around account.SignTx; returns ErrAccountNotFound if no such account exists. Mirrors the existing Wallet.Sign shape for callers who treat the wallet as the single signing entry point.
type TransferInput ¶
TransferInput represents an input to a transfer transaction
type TransferOutput ¶
TransferOutput represents an output from a transfer transaction
type TransferTx ¶
type TransferTx struct {
NetworkID uint32
ChainID ids.ID
Inputs []TransferInput
Outputs []TransferOutput
Memo []byte
}
TransferTx represents a transfer transaction
type Wallet ¶
type Wallet struct {
// contains filtered or unexported fields
}
Wallet manages keys and transactions for personal usage
func (*Wallet) CreateTransferTx ¶
func (w *Wallet) CreateTransferTx( to ids.ShortID, assetID ids.ID, amount uint64, memo []byte, ) (*TransferTx, error)
CreateTransferTx creates a transfer transaction
func (*Wallet) GenerateKey ¶
GenerateKey generates a new key and adds it to the wallet
func (*Wallet) GetAddress ¶
GetAddress returns a wallet address
func (*Wallet) GetAllAddresses ¶
GetAllAddresses returns all wallet addresses
func (*Wallet) GetBalance ¶
GetBalance returns the balance for a specific asset
func (*Wallet) RemoveUTXO ¶
RemoveUTXO removes a UTXO from the wallet
Directories
¶
| Path | Synopsis |
|---|---|
|
Package account implements PQ-native wallet account types.
|
Package account implements PQ-native wallet account types. |
|
chain
|
|
|
c
Package c provides C-Chain wallet backend implementation.
|
Package c provides C-Chain wallet backend implementation. |
|
p
Package p provides P-Chain wallet backend implementation.
|
Package p provides P-Chain wallet backend implementation. |
|
p/builder
Package builder provides P-Chain transaction builder implementation.
|
Package builder provides P-Chain transaction builder implementation. |
|
p/pcodecs
Package pcodecs is the canonical construction site for the proto/p wire codecs used by the SDK's PVM wallet stack.
|
Package pcodecs is the canonical construction site for the proto/p wire codecs used by the SDK's PVM wallet stack. |
|
p/signer
Package signer provides P-Chain transaction signing implementation.
|
Package signer provides P-Chain transaction signing implementation. |
|
p/wallet
Package wallet provides P-Chain wallet implementation.
|
Package wallet provides P-Chain wallet implementation. |
|
x
Package x provides X-Chain wallet backend implementation.
|
Package x provides X-Chain wallet backend implementation. |
|
x/builder
Package builder provides X-Chain transaction builder implementation.
|
Package builder provides X-Chain transaction builder implementation. |
|
x/signer
Package signer provides X-Chain transaction signing implementation.
|
Package signer provides X-Chain transaction signing implementation. |
|
Package crypto provides cryptographic interfaces for wallet signing.
|
Package crypto provides cryptographic interfaces for wallet signing. |
|
classic
Package classic provides classic cryptographic signing implementation.
|
Package classic provides classic cryptographic signing implementation. |
|
pqc
Package pqc provides post-quantum cryptography signing implementation.
|
Package pqc provides post-quantum cryptography signing implementation. |
|
Package primary provides primary network wallet operations.
|
Package primary provides primary network wallet operations. |
|
common
Package common provides common wallet utilities.
|
Package common provides common wallet utilities. |
|
common/utxotest
Package utxotest provides UTXO testing utilities.
|
Package utxotest provides UTXO testing utilities. |