wallet

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2025 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Version1 = 1 // Initial version

	VersionLatest = Version1
)

Variables

View Source
var (
	// ErrInvalidNetwork describes an error in which the network is invalid.
	ErrInvalidNetwork = errors.New("invalid network")

	// ErrOffline describes an error in which the wallet is offline.
	ErrOffline = errors.New("wallet is in offline mode")

	// ErrHistoryExists describes an error in which the transaction already exists
	// in history.
	ErrHistoryExists = errors.New("transaction already exists")
)

Functions

func CheckMnemonic

func CheckMnemonic(mnemonic string) error

CheckMnemonic is a wrapper for `vault.CheckMnemonic`.

func GenerateMnemonic

func GenerateMnemonic(entropy int) (string, error)

GenerateMnemonic is a wrapper for `vault.GenerateMnemonic`.

func OptionFee

func OptionFee(feeStr string) func(builder *txBuilder) error

OptionFee sets the transaction fee using a string input.

func OptionLockTime

func OptionLockTime(lockTime uint32) func(builder *txBuilder) error

OptionLockTime sets the lock time for the transaction.

func OptionMemo

func OptionMemo(memo string) func(builder *txBuilder) error

OptionMemo sets a memo or note for the transaction.

Types

type CRCNotMatchError

type CRCNotMatchError struct {
	Expected uint32
	Got      uint32
}

CRCNotMatchError describes an error in which the wallet CRC is not matched.

func (CRCNotMatchError) Error

func (e CRCNotMatchError) Error() string

type Config

type Config struct {
	// private config
	WalletsDir string            `toml:"-"`
	ChainType  genesis.ChainType `toml:"-"`
}

func DefaultConfig

func DefaultConfig() *Config

type ExitsError

type ExitsError struct {
	Path string
}

ExitsError describes an error in which a wallet exists in the given path.

func (ExitsError) Error

func (e ExitsError) Error() string

type HistoryInfo

type HistoryInfo struct {
	TxID        string
	Time        *time.Time
	PayloadType string
	Desc        string
	Amount      amount.Amount
}

type Info

type Info struct {
	WalletName string
	Version    int64
	Network    string
	DefaultFee amount.Amount
	UUID       string
	Encrypted  bool
	CreatedAt  time.Time
}

type Manager

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

func NewWalletManager

func NewWalletManager(conf *Config) *Manager

func (*Manager) AddressHistory

func (wm *Manager) AddressHistory(
	walletName, address string,
) ([]HistoryInfo, error)

func (*Manager) CreateWallet

func (wm *Manager) CreateWallet(
	walletName, password string,
) (string, error)

func (*Manager) GetAddressInfo

func (wm *Manager) GetAddressInfo(walletName, address string) (*vault.AddressInfo, error)

func (*Manager) GetNewAddress

func (wm *Manager) GetNewAddress(
	walletName, label, password string,
	addressType crypto.AddressType,
) (*vault.AddressInfo, error)

func (*Manager) GetValidatorAddress

func (*Manager) GetValidatorAddress(
	publicKey string,
) (string, error)

func (*Manager) ListAddress

func (wm *Manager) ListAddress(walletName string) ([]vault.AddressInfo, error)

func (*Manager) ListWallet

func (wm *Manager) ListWallet() ([]string, error)

func (*Manager) LoadWallet

func (wm *Manager) LoadWallet(walletName, serverAddr string) error

func (*Manager) RestoreWallet

func (wm *Manager) RestoreWallet(walletName, mnemonic, password string) error

func (*Manager) SetAddressLabel

func (wm *Manager) SetAddressLabel(walletName, address, label string) error

func (*Manager) SignMessage

func (wm *Manager) SignMessage(walletName, password, addr, msg string) (string, error)

func (*Manager) SignRawTransaction

func (wm *Manager) SignRawTransaction(
	walletName, password string, rawTx []byte,
) (txID, data []byte, err error)

func (*Manager) TotalBalance

func (wm *Manager) TotalBalance(
	walletName string,
) (amount.Amount, error)

func (*Manager) TotalStake

func (wm *Manager) TotalStake(walletName string) (amount.Amount, error)

func (*Manager) UnloadWallet

func (wm *Manager) UnloadWallet(
	walletName string,
) error

func (*Manager) WalletInfo

func (wm *Manager) WalletInfo(walletName string) (*Info, error)

type Option

type Option func(*walletOpt)

func WithCustomServers

func WithCustomServers(servers []string) Option

func WithTimeout

func WithTimeout(timeout time.Duration) Option

type Store

type Store struct {
	Version   int               `json:"version"`
	UUID      uuid.UUID         `json:"uuid"`
	CreatedAt time.Time         `json:"created_at"`
	Network   genesis.ChainType `json:"network"`
	VaultCRC  uint32            `json:"crc"`
	Vault     *vault.Vault      `json:"vault"`
	History   history           `json:"history"`
}

func FromBytes

func FromBytes(data []byte) (*Store, error)

func (*Store) Clone

func (s *Store) Clone() *Store

func (*Store) ToBytes

func (s *Store) ToBytes() ([]byte, error)

func (*Store) UpgradeWallet

func (s *Store) UpgradeWallet(walletPath string) error

func (*Store) ValidateCRC

func (s *Store) ValidateCRC() error

type TxOption

type TxOption func(builder *txBuilder) error

TxOption defines a function type used to apply options to a txBuilder.

type UnsupportedVersionError

type UnsupportedVersionError struct {
	WalletVersion    int
	SupportedVersion int
}

UnsupportedVersionError indicates the wallet version is incompatible with the software's supported version.

func (UnsupportedVersionError) Error

func (e UnsupportedVersionError) Error() string

type Wallet

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

func Create

func Create(walletPath, mnemonic, password string, chain genesis.ChainType,
	options ...Option,
) (*Wallet, error)

Create creates a wallet from mnemonic (seed phrase) and save it at the given path.

func Open

func Open(walletPath string, offline bool, options ...Option) (*Wallet, error)

Open tries to open a wallet at the given path. If the wallet doesn’t exist on this path, it returns an error. A wallet can be opened in offline or online modes. Offline wallet doesn’t have any connection to any node. Online wallet has a connection to one of the pre-defined servers.

func (*Wallet) AddTransaction

func (w *Wallet) AddTransaction(txID tx.ID) error

func (*Wallet) AddressCount

func (w *Wallet) AddressCount() int

AddressCount returns the number of addresses inside the wallet.

func (*Wallet) AddressFromPath

func (w *Wallet) AddressFromPath(p string) *vault.AddressInfo

func (*Wallet) AddressInfo

func (w *Wallet) AddressInfo(addr string) *vault.AddressInfo

func (*Wallet) AddressInfos

func (w *Wallet) AddressInfos() []vault.AddressInfo

func (*Wallet) AllAccountAddresses

func (w *Wallet) AllAccountAddresses() []vault.AddressInfo

func (*Wallet) AllValidatorAddresses

func (w *Wallet) AllValidatorAddresses() []vault.AddressInfo

func (*Wallet) Balance

func (w *Wallet) Balance(addrStr string) (amount.Amount, error)

Balance returns balance of the account associated with the address..

func (*Wallet) BroadcastTransaction

func (w *Wallet) BroadcastTransaction(trx *tx.Tx) (string, error)

func (*Wallet) CoinType

func (w *Wallet) CoinType() uint32

func (*Wallet) Contains

func (w *Wallet) Contains(addr string) bool

func (*Wallet) CreationTime

func (w *Wallet) CreationTime() time.Time

func (*Wallet) History

func (w *Wallet) History(addr string) []HistoryInfo

func (*Wallet) ImportBLSPrivateKey

func (w *Wallet) ImportBLSPrivateKey(password string, prv *bls.PrivateKey) error

func (*Wallet) ImportEd25519PrivateKey

func (w *Wallet) ImportEd25519PrivateKey(password string, prv *ed25519.PrivateKey) error

func (*Wallet) Info

func (w *Wallet) Info() *Info

func (*Wallet) IsEncrypted

func (w *Wallet) IsEncrypted() bool

func (*Wallet) IsOffline

func (w *Wallet) IsOffline() bool

func (*Wallet) Label

func (w *Wallet) Label(addr string) string

Label returns label of addr.

func (*Wallet) MakeBondTx

func (w *Wallet) MakeBondTx(sender, receiver, pubKey string, amt amount.Amount,
	options ...TxOption,
) (*tx.Tx, error)

MakeBondTx creates a new bond transaction based on the given parameters.

func (*Wallet) MakeTransferTx

func (w *Wallet) MakeTransferTx(sender, receiver string, amt amount.Amount,
	options ...TxOption,
) (*tx.Tx, error)

MakeTransferTx creates a new transfer transaction based on the given parameters.

func (*Wallet) MakeUnbondTx

func (w *Wallet) MakeUnbondTx(addr string, opts ...TxOption) (*tx.Tx, error)

MakeUnbondTx creates a new unbond transaction based on the given parameters.

func (*Wallet) MakeWithdrawTx

func (w *Wallet) MakeWithdrawTx(sender, receiver string, amt amount.Amount,
	options ...TxOption,
) (*tx.Tx, error)

MakeWithdrawTx creates a new withdraw transaction based on the given parameters.

func (*Wallet) Mnemonic

func (w *Wallet) Mnemonic(password string) (string, error)

func (*Wallet) Name

func (w *Wallet) Name() string

func (*Wallet) Network

func (w *Wallet) Network() genesis.ChainType

func (*Wallet) Neuter

func (w *Wallet) Neuter(path string) *Wallet

Neuter clones the wallet and neuters it and saves it at the given path.

func (*Wallet) NewBLSAccountAddress

func (w *Wallet) NewBLSAccountAddress(label string) (*vault.AddressInfo, error)

NewBLSAccountAddress create a new BLS-based account address and associates it with the given label.

func (*Wallet) NewEd25519AccountAddress

func (w *Wallet) NewEd25519AccountAddress(label, password string) (*vault.AddressInfo, error)

NewEd25519AccountAddress create a new Ed25519-based account address and associates it with the given label. The password is required to access the master private key needed for address generation.

func (*Wallet) NewValidatorAddress

func (w *Wallet) NewValidatorAddress(label string) (*vault.AddressInfo, error)

NewValidatorAddress creates a new BLS validator address and associates it with the given label.

func (*Wallet) Path

func (w *Wallet) Path() string

func (*Wallet) PrivateKey

func (w *Wallet) PrivateKey(password, addr string) (crypto.PrivateKey, error)

func (*Wallet) PrivateKeys

func (w *Wallet) PrivateKeys(password string, addrs []string) ([]crypto.PrivateKey, error)

func (*Wallet) RecoveryAddresses added in v0.2.0

func (w *Wallet) RecoveryAddresses(ctx context.Context, password string,
	eventFunc func(addr string),
) error

RecoveryAddresses recovers active addresses in the wallet.

func (*Wallet) Save

func (w *Wallet) Save() error

func (*Wallet) SetDefaultFee

func (w *Wallet) SetDefaultFee(fee amount.Amount)

func (*Wallet) SetLabel

func (w *Wallet) SetLabel(addr, label string) error

SetLabel sets label for addr.

func (*Wallet) SignMessage

func (w *Wallet) SignMessage(password, addr, msg string) (string, error)

func (*Wallet) SignTransaction

func (w *Wallet) SignTransaction(password string, trx *tx.Tx) error

func (*Wallet) Stake

func (w *Wallet) Stake(addrStr string) (amount.Amount, error)

Stake returns stake of the validator associated with the address..

func (*Wallet) TotalBalance

func (w *Wallet) TotalBalance() (amount.Amount, error)

TotalBalance return the total available balance of the wallet.

func (*Wallet) TotalStake

func (w *Wallet) TotalStake() (amount.Amount, error)

TotalStake return total available stake of the wallet.

func (*Wallet) UpdatePassword

func (w *Wallet) UpdatePassword(oldPassword, newPassword string, opts ...encrypter.Option) error

func (*Wallet) Version

func (w *Wallet) Version() int

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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