wallet

package
v0.76.1-pre Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2020 License: MIT Imports: 15 Imported by: 30

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {

	// NEO public address.
	Address string `json:"address"`

	// Encrypted WIF of the account also known as the key.
	EncryptedWIF string `json:"key"`

	// Label is a label the user had made for this account.
	Label string `json:"label"`

	// Contract is a Contract object which describes the details of the contract.
	// This field can be null (for watch-only address).
	Contract *Contract `json:"contract"`

	// Indicates whether the account is locked by the user.
	// the client shouldn't spend the funds in a locked account.
	Locked bool `json:"lock"`

	// Indicates whether the account is the default change account.
	Default bool `json:"isDefault"`
	// contains filtered or unexported fields
}

Account represents a NEO account. It holds the private and public key along with some metadata.

func NewAccount

func NewAccount() (*Account, error)

NewAccount creates a new Account with a random generated PrivateKey.

func NewAccountFromEncryptedWIF

func NewAccountFromEncryptedWIF(wif string, pass string) (*Account, error)

NewAccountFromEncryptedWIF creates a new Account from the given encrypted WIF.

func NewAccountFromWIF

func NewAccountFromWIF(wif string) (*Account, error)

NewAccountFromWIF creates a new Account from the given WIF.

func (*Account) ConvertMultisig

func (a *Account) ConvertMultisig(m int, pubs []*keys.PublicKey) error

ConvertMultisig sets a's contract to multisig contract with m sufficient signatures.

func (*Account) Decrypt

func (a *Account) Decrypt(passphrase string) error

Decrypt decrypts the EncryptedWIF with the given passphrase returning error if anything goes wrong.

func (*Account) Encrypt

func (a *Account) Encrypt(passphrase string) error

Encrypt encrypts the wallet's PrivateKey with the given passphrase under the NEP-2 standard.

func (*Account) PrivateKey

func (a *Account) PrivateKey() *keys.PrivateKey

PrivateKey returns private key corresponding to the account.

func (*Account) SignTx

func (a *Account) SignTx(t *transaction.Transaction) error

SignTx signs transaction t and updates it's Witnesses.

type Config added in v0.75.0

type Config struct {
	Path     string `yaml:"Path"`
	Password string `yaml:"Password"`
}

Config is a wallet info.

type Contract

type Contract struct {
	// Script of the contract deployed on the blockchain.
	Script []byte `json:"script"`

	// A list of parameters used deploying this contract.
	Parameters []ContractParam `json:"parameters"`

	// Indicates whether the contract has been deployed to the blockchain.
	Deployed bool `json:"deployed"`
}

Contract represents a subset of the smartcontract to embed in the Account so it's NEP-6 compliant.

func (Contract) MarshalJSON

func (c Contract) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler interface.

func (Contract) ScriptHash

func (c Contract) ScriptHash() util.Uint160

ScriptHash returns the hash of contract's script.

func (*Contract) UnmarshalJSON

func (c *Contract) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler interface.

type ContractParam

type ContractParam struct {
	Name string                  `json:"name"`
	Type smartcontract.ParamType `json:"type"`
}

ContractParam is a descriptor of a contract parameter containing type and optional name.

type Extra

type Extra struct {
	// Tokens is a list of imported token contracts.
	Tokens []*Token
}

Extra stores imported token contracts.

type Token

type Token struct {
	Name     string       `json:"name"`
	Hash     util.Uint160 `json:"script_hash"`
	Decimals int64        `json:"decimals"`
	Symbol   string       `json:"symbol"`
}

Token represents imported token contract.

func NewToken

func NewToken(tokenHash util.Uint160, name, symbol string, decimals int64) *Token

NewToken returns new token contract info.

func (*Token) Address

func (t *Token) Address() string

Address returns token address from hash

type Wallet

type Wallet struct {
	// Version of the wallet, used for later upgrades.
	Version string `json:"version"`

	// A list of accounts which describes the details of each account
	// in the wallet.
	Accounts []*Account `json:"accounts"`

	Scrypt keys.ScryptParams `json:"scrypt"`

	// Extra metadata can be used for storing arbitrary data.
	// This field can be empty.
	Extra Extra `json:"extra"`
	// contains filtered or unexported fields
}

Wallet represents a NEO (NEP-2, NEP-6) compliant wallet.

func NewWallet

func NewWallet(location string) (*Wallet, error)

NewWallet creates a new NEO wallet at the given location.

func NewWalletFromFile

func NewWalletFromFile(path string) (*Wallet, error)

NewWalletFromFile creates a Wallet from the given wallet file path

func (*Wallet) AddAccount

func (w *Wallet) AddAccount(acc *Account)

AddAccount adds an existing Account to the wallet.

func (*Wallet) AddToken

func (w *Wallet) AddToken(tok *Token)

AddToken adds new token to a wallet.

func (*Wallet) Close

func (w *Wallet) Close()

Close closes the internal rw if its an io.ReadCloser.

func (*Wallet) CreateAccount

func (w *Wallet) CreateAccount(name, passphrase string) error

CreateAccount generates a new account for the end user and encrypts the private key with the given passphrase.

func (*Wallet) GetAccount

func (w *Wallet) GetAccount(h util.Uint160) *Account

GetAccount returns account corresponding to the provided scripthash.

func (*Wallet) GetChangeAddress

func (w *Wallet) GetChangeAddress() util.Uint160

GetChangeAddress returns the default address to send transaction's change to.

func (*Wallet) JSON

func (w *Wallet) JSON() ([]byte, error)

JSON outputs a pretty JSON representation of the wallet.

func (*Wallet) Path

func (w *Wallet) Path() string

Path returns the location of the wallet on the filesystem.

func (*Wallet) RemoveAccount

func (w *Wallet) RemoveAccount(addr string) error

RemoveAccount removes an Account with the specified addr from the wallet.

func (*Wallet) RemoveToken

func (w *Wallet) RemoveToken(h util.Uint160) error

RemoveToken removes token with the specified hash from the wallet.

func (*Wallet) Save

func (w *Wallet) Save() error

Save saves the wallet data. It's the internal io.ReadWriter that is responsible for saving the data. This can be a buffer, file, etc..

Jump to

Keyboard shortcuts

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