// 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 dag 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 transaction 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) }