account

package
v0.0.0-...-67b0b38 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2018 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultBookKeeperCount = 4
	WalletFileName         = "/root/.Stc/wallet.dat"
	MAINACCOUNT            = "main-account"
	SUBACCOUNT             = "sub-account"
	MaxSignalQueueLen      = 5
)
View Source
const (
	WalletStoreVersion = "1.0.0"
)

Variables

This section is empty.

Functions

func GetBookKeepers

func GetBookKeepers() []*crypto.PubKey

Types

type Account

type Account struct {
	PrivateKey  []byte
	PublicKey   *crypto.PubKey
	ProgramHash Uint160
}

func NewAccount

func NewAccount() (*Account, error)

func NewAccountWithPrivatekey

func NewAccountWithPrivatekey(privateKey []byte) (*Account, error)

func (*Account) PrivKey

func (ac *Account) PrivKey() []byte

func (*Account) PubKey

func (ac *Account) PubKey() *crypto.PubKey

type AccountData

type AccountData struct {
	Address             string
	ProgramHash         string
	PrivateKeyEncrypted string
	Type                string
}

type AddressType

type AddressType byte
const (
	SingleSign AddressType = 0
	MultiSign  AddressType = 1
)

type Client

type Client interface {
	Sign(context *ct.ContractContext) error

	ContainsAccount(pubKey *crypto.PubKey) bool
	CreateAccount() (*Account, error)
	DeleteAccount(programHash Uint160) error
	GetAccount(pubKey *crypto.PubKey) (*Account, error)
	GetDefaultAccount() (*Account, error)
	GetAccountByProgramHash(programHash Uint160) *Account
	GetAccounts() []*Account

	CreateContract(account *Account) error
	CreateMultiSignContract(contractOwner Uint160, m int, publicKeys []*crypto.PubKey) error
	GetContracts() []*ct.Contract
	DeleteContract(programHash Uint160) error

	GetCoins() map[*transaction.UTXOTxInput]*Coin
	DeleteCoinsData(programHash Uint160) error
}

func GetClient

func GetClient() Client

type ClientImpl

type ClientImpl struct {
	FileStore
	// contains filtered or unexported fields
}

func Create

func Create(path string, passwordKey []byte) (*ClientImpl, error)

func NewClient

func NewClient(path string, password []byte, create bool) *ClientImpl

func Open

func Open(path string, passwordKey []byte) (*ClientImpl, error)

func Recover

func Recover(path string, password []byte, privateKeyHex string) (*ClientImpl, error)

func (*ClientImpl) ChangePassword

func (cl *ClientImpl) ChangePassword(oldPassword []byte, newPassword []byte) bool

func (*ClientImpl) ContainsAccount

func (cl *ClientImpl) ContainsAccount(pubKey *crypto.PubKey) bool

func (*ClientImpl) CreateAccount

func (cl *ClientImpl) CreateAccount() (*Account, error)

CreateAccount create a new Account then save it

func (*ClientImpl) CreateAccountByPrivateKey

func (cl *ClientImpl) CreateAccountByPrivateKey(privateKey []byte) (*Account, error)

func (*ClientImpl) CreateContract

func (cl *ClientImpl) CreateContract(account *Account) error

CreateContract creates a singlesig contract to wallet

func (*ClientImpl) CreateMultiSignContract

func (cl *ClientImpl) CreateMultiSignContract(contractOwner Uint160, m int, publicKeys []*crypto.PubKey) error

CreateMultiSignContract creates a multisig contract to wallet

func (*ClientImpl) DecryptPrivateKey

func (cl *ClientImpl) DecryptPrivateKey(prikey []byte) ([]byte, error)

func (*ClientImpl) DeleteAccount

func (cl *ClientImpl) DeleteAccount(programHash Uint160) error

func (*ClientImpl) DeleteCoins

func (client *ClientImpl) DeleteCoins() error

func (*ClientImpl) DeleteContract

func (cl *ClientImpl) DeleteContract(programHash Uint160) error

func (*ClientImpl) EncryptPrivateKey

func (cl *ClientImpl) EncryptPrivateKey(prikey []byte) ([]byte, error)

func (*ClientImpl) GetAccount

func (cl *ClientImpl) GetAccount(pubKey *crypto.PubKey) (*Account, error)

func (*ClientImpl) GetAccountByProgramHash

func (cl *ClientImpl) GetAccountByProgramHash(programHash Uint160) *Account

func (*ClientImpl) GetAccounts

func (client *ClientImpl) GetAccounts() []*Account

func (*ClientImpl) GetCoins

func (client *ClientImpl) GetCoins() map[*transaction.UTXOTxInput]*Coin

func (*ClientImpl) GetContract

func (cl *ClientImpl) GetContract(programHash Uint160) *ct.Contract

func (*ClientImpl) GetContracts

func (client *ClientImpl) GetContracts() []*ct.Contract

GetContracts returns all contracts in wallet

func (*ClientImpl) GetDefaultAccount

func (cl *ClientImpl) GetDefaultAccount() (*Account, error)

func (*ClientImpl) LoadAccounts

func (cl *ClientImpl) LoadAccounts() error

LoadAccounts loads all accounts from wallet file to memory

func (*ClientImpl) LoadCoins

func (client *ClientImpl) LoadCoins() error

func (*ClientImpl) LoadContracts

func (cl *ClientImpl) LoadContracts() error

LoadContracts loads all contracts from db to memory

func (*ClientImpl) ProcessBlocks

func (client *ClientImpl) ProcessBlocks()

func (*ClientImpl) ProcessOneBlock

func (client *ClientImpl) ProcessOneBlock(block *ledger.Block)

func (*ClientImpl) ProcessSignals

func (client *ClientImpl) ProcessSignals()

func (*ClientImpl) Rebuild

func (client *ClientImpl) Rebuild() error

func (*ClientImpl) SaveAccount

func (cl *ClientImpl) SaveAccount(ac *Account) error

SaveAccount saves a Account to memory and db

func (*ClientImpl) SaveCoins

func (client *ClientImpl) SaveCoins() error

func (*ClientImpl) SaveContract

func (cl *ClientImpl) SaveContract(ct *ct.Contract) error

SaveContract saves a contract to memory and db

func (*ClientImpl) Sign

func (cl *ClientImpl) Sign(context *ct.ContractContext) error

type Coin

type Coin struct {
	Output      *transaction.TxOutput
	AddressType AddressType
}

func (*Coin) Deserialize

func (coin *Coin) Deserialize(r io.Reader, version string) error

func (*Coin) Serialize

func (coin *Coin) Serialize(w io.Writer, version string) error

type CoinData

type CoinData string

type ContractData

type ContractData struct {
	ProgramHash string
	RawData     string
}

type FileData

type FileData struct {
	WalletData
	Account  []AccountData
	Contract []ContractData
	Coins    CoinData
}

type FileStore

type FileStore struct {
	// this lock could be hold by readDB, writeDB and interrupt signals.
	sync.Mutex
	// contains filtered or unexported fields
}

func (*FileStore) BuildDatabase

func (cs *FileStore) BuildDatabase(path string)

func (*FileStore) DeleteAccountData

func (cs *FileStore) DeleteAccountData(programHash string) error

func (*FileStore) DeleteCoinsData

func (cs *FileStore) DeleteCoinsData(programHash Uint160) error

func (*FileStore) DeleteContractData

func (cs *FileStore) DeleteContractData(programHash string) error

func (*FileStore) LoadAccountData

func (cs *FileStore) LoadAccountData() ([]AccountData, error)

func (*FileStore) LoadCoinsData

func (cs *FileStore) LoadCoinsData() (map[*transaction.UTXOTxInput]*Coin, error)

func (*FileStore) LoadContractData

func (cs *FileStore) LoadContractData() ([]ContractData, error)

func (*FileStore) LoadStoredData

func (cs *FileStore) LoadStoredData(name string) ([]byte, error)

func (*FileStore) SaveAccountData

func (cs *FileStore) SaveAccountData(programHash []byte, encryptedPrivateKey []byte) error

func (*FileStore) SaveCoinsData

func (cs *FileStore) SaveCoinsData(coins map[*transaction.UTXOTxInput]*Coin) error

func (*FileStore) SaveContractData

func (cs *FileStore) SaveContractData(ct *ct.Contract) error

func (*FileStore) SaveStoredData

func (cs *FileStore) SaveStoredData(name string, value []byte) error

type IClientStore

type IClientStore interface {
	BuildDatabase(path string)
	SaveStoredData(name string, value []byte)
	LoadStoredData(name string) []byte
	CreateAccount() (*Account, error)
	CreateAccountByPrivateKey(privateKey []byte) (*Account, error)
	LoadAccounts() map[Uint160]*Account
	CreateContract(account *Account) error
	LoadContracts() map[Uint160]*ct.Contract
	SaveHeight(height uint32) error
	LoadHeight() (uint32, error)
}

type WalletData

type WalletData struct {
	PasswordHash string
	IV           string
	MasterKey    string
	Height       uint32
	Version      string
}

Jump to

Keyboard shortcuts

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