You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.9 KiB
95 lines
2.9 KiB
// Copyright (c) 2014 The btcsuite developers |
|
// Use of this source code is governed by an ISC |
|
// license that can be found in the LICENSE file. |
|
|
|
// NOTE: This file is intended to house the RPC websocket notifications that are |
|
// supported by a wallet server. |
|
|
|
package btcjson |
|
|
|
const ( |
|
// AccountBalanceNtfnMethod is the method used for account balance |
|
// notifications. |
|
AccountBalanceNtfnMethod = "accountbalance" |
|
|
|
// BtcdConnectedNtfnMethod is the method used for notifications when |
|
// a wallet server is connected to a chain server. |
|
BtcdConnectedNtfnMethod = "btcdconnected" |
|
|
|
// WalletLockStateNtfnMethod is the method used to notify the lock state |
|
// of a wallet has changed. |
|
WalletLockStateNtfnMethod = "walletlockstate" |
|
|
|
// NewTxNtfnMethod is the method used to notify that a wallet server has |
|
// added a new transaction to the transaciton store. |
|
NewTxNtfnMethod = "newtx" |
|
) |
|
|
|
// AccountBalanceNtfn defines the accountbalance JSON-RPC notification. |
|
type AccountBalanceNtfn struct { |
|
Account string |
|
Balance float64 // In BTC |
|
Confirmed bool // Whether Balance is confirmed or unconfirmed. |
|
} |
|
|
|
// NewAccountBalanceNtfn returns a new instance which can be used to issue an |
|
// accountbalance JSON-RPC notification. |
|
func NewAccountBalanceNtfn(account string, balance float64, confirmed bool) *AccountBalanceNtfn { |
|
return &AccountBalanceNtfn{ |
|
Account: account, |
|
Balance: balance, |
|
Confirmed: confirmed, |
|
} |
|
} |
|
|
|
// BtcdConnectedNtfn defines the btcdconnected JSON-RPC notification. |
|
type BtcdConnectedNtfn struct { |
|
Connected bool |
|
} |
|
|
|
// NewBtcdConnectedNtfn returns a new instance which can be used to issue a |
|
// btcdconnected JSON-RPC notification. |
|
func NewBtcdConnectedNtfn(connected bool) *BtcdConnectedNtfn { |
|
return &BtcdConnectedNtfn{ |
|
Connected: connected, |
|
} |
|
} |
|
|
|
// WalletLockStateNtfn defines the walletlockstate JSON-RPC notification. |
|
type WalletLockStateNtfn struct { |
|
Locked bool |
|
} |
|
|
|
// NewWalletLockStateNtfn returns a new instance which can be used to issue a |
|
// walletlockstate JSON-RPC notification. |
|
func NewWalletLockStateNtfn(locked bool) *WalletLockStateNtfn { |
|
return &WalletLockStateNtfn{ |
|
Locked: locked, |
|
} |
|
} |
|
|
|
// NewTxNtfn defines the newtx JSON-RPC notification. |
|
type NewTxNtfn struct { |
|
Account string |
|
Details ListTransactionsResult |
|
} |
|
|
|
// NewNewTxNtfn returns a new instance which can be used to issue a newtx |
|
// JSON-RPC notification. |
|
func NewNewTxNtfn(account string, details ListTransactionsResult) *NewTxNtfn { |
|
return &NewTxNtfn{ |
|
Account: account, |
|
Details: details, |
|
} |
|
} |
|
|
|
func init() { |
|
// The commands in this file are only usable with a wallet server via |
|
// websockets and are notifications. |
|
flags := UFWalletOnly | UFWebsocketOnly | UFNotification |
|
|
|
MustRegisterCmd(AccountBalanceNtfnMethod, (*AccountBalanceNtfn)(nil), flags) |
|
MustRegisterCmd(BtcdConnectedNtfnMethod, (*BtcdConnectedNtfn)(nil), flags) |
|
MustRegisterCmd(WalletLockStateNtfnMethod, (*WalletLockStateNtfn)(nil), flags) |
|
MustRegisterCmd(NewTxNtfnMethod, (*NewTxNtfn)(nil), flags) |
|
}
|
|
|