Documentation
¶
Index ¶
Constants ¶
View Source
const ( DbTypeBolt = "bbolt" DbTypeSqlite = "sqlite" )
View Source
const ( GoeleVersionMajor = "0" GoeleVersionMinor = "1" GoeleVersionPatch = "0" GoeleVersion = GoeleVersionMajor + "." + GoeleVersionMinor + "." + GoeleVersionPatch )
View Source
const (
// Electrum Wallet
GAP_LIMIT = 10
)
Variables ¶
This section is empty.
Functions ¶
func GetConfigPath ¶
Types ¶
type ClientConfig ¶
type ClientConfig struct { // Coin ticker to id the coin Coin string // bip44 mainnet CoinType wallet.CoinType // Net type - mainnet, testnet or regtest NetType string // Network parameters - make more general if it cannot adapt to other coins. Params *chaincfg.Params // Location of the data directory DataDir string // We use this electrumX server to bootstrap others so it should // be set. TrustedPeer *electrumx.NodeServerAddr // A localhost socks5 proxy port can be set here and will be used as to proxy // ElectrumX server onion connections. // // If not "" setting this enables goele to connect to a limited number of // onion servers. Default is "". // // You should have already set up a localhost socks5 proxy and tor service. // // Note: This is tested on Linux and is still considered *Experimental* ProxyPort string // Store the seed in encrypted storage - default false StoreEncSeed bool // Database implementation type (bbolt or sqlite) DbType string // An implementation of the Datastore interface DB wallet.Datastore // The default fee-per-byte for each level LowFee int64 MediumFee int64 HighFee int64 // The highest allowable fee-per-byte MaxFee int64 // External API to query to look up fees. If this field is nil then the // default fees will be used. If the API is unreachable then the default // fees will likewise be used. If the API returns a fee greater than MaxFee // then the MaxFee will be used instead. FeeAPI url.URL // If not testing do not overwrite existing wallet files Testing bool // Test RPC server RPCTestPort int }
func NewDefaultConfig ¶
func NewDefaultConfig() *ClientConfig
func (*ClientConfig) MakeElectrumXConfig ¶
func (cc *ClientConfig) MakeElectrumXConfig() *electrumx.ElectrumXConfig
func (*ClientConfig) MakeWalletConfig ¶
func (cc *ClientConfig) MakeWalletConfig() *wallet.WalletConfig
type ElectrumClient ¶
type ElectrumClient interface { Start(ctx context.Context) error Stop() // GetConfig() *ClientConfig GetWallet() wallet.ElectrumWallet GetX() electrumx.ElectrumX // RegisterTipChangeNotify() (<-chan int64, error) UnregisterTipChangeNotify() // CreateWallet(pw string) error LoadWallet(pw string) error RecreateWallet(ctx context.Context, pw, mnenomic string) error // SyncWallet(ctx context.Context) error RescanWallet(ctx context.Context) error ImportAndSweep(ctx context.Context, keyPairs []string) error // // Subset of electrum-like methods Tip() int64 Synced() bool GetBlockHeader(height int64) (*electrumx.ClientBlockHeader, error) GetBlockHeaders(startHeight, count int64) ([]*electrumx.ClientBlockHeader, error) Spend(pw string, amount int64, toAddress string, feeLevel wallet.FeeLevel) (int, string, string, error) GetPrivKeyForAddress(pw, addr string) (string, error) ListUnspent() ([]wallet.Utxo, error) ListConfirmedUnspent() ([]wallet.Utxo, error) ListFrozenUnspent() ([]wallet.Utxo, error) FreezeUTXO(txid string, out uint32) error UnfreezeUTXO(txid string, out uint32) error UnusedAddress(ctx context.Context) (string, error) ChangeAddress(ctx context.Context) (string, error) ValidateAddress(addr string) (bool, bool, error) SignTx(pw string, txBytes []byte) ([]byte, error) GetWalletTx(txid string) (int, bool, []byte, error) GetWalletSpents() ([]wallet.Stxo, error) Balance() (int64, int64, int64, error) // adapt and pass thru to electrumx Broadcast(ctx context.Context, rawTx []byte) (string, error) FeeRate(ctx context.Context, confTarget int64) (int64, error) //pass thru directly to electrumx GetTransaction(ctx context.Context, txid string) (*electrumx.GetTransactionResult, error) GetRawTransaction(ctx context.Context, txid string) ([]byte, error) GetAddressHistory(ctx context.Context, addr string) (electrumx.HistoryResult, error) GetAddressUnspent(ctx context.Context, addr string) (electrumx.ListUnspentResult, error) }
Click to show internal directories.
Click to hide internal directories.