fix NewImportAddressCmd rescan wrong parameters

fix #1126
This commit is contained in:
Grace Noah 2018-02-20 08:36:14 +00:00
parent 1cd648d784
commit ea82dfdee1
3 changed files with 15 additions and 12 deletions

View file

@ -36,14 +36,16 @@ func NewDumpWalletCmd(filename string) *DumpWalletCmd {
// ImportAddressCmd defines the importaddress JSON-RPC command. // ImportAddressCmd defines the importaddress JSON-RPC command.
type ImportAddressCmd struct { type ImportAddressCmd struct {
Address string Address string
Account string
Rescan *bool `jsonrpcdefault:"true"` Rescan *bool `jsonrpcdefault:"true"`
} }
// NewImportAddressCmd returns a new instance which can be used to issue an // NewImportAddressCmd returns a new instance which can be used to issue an
// importaddress JSON-RPC command. // importaddress JSON-RPC command.
func NewImportAddressCmd(address string, rescan *bool) *ImportAddressCmd { func NewImportAddressCmd(address string, account string, rescan *bool) *ImportAddressCmd {
return &ImportAddressCmd{ return &ImportAddressCmd{
Address: address, Address: address,
Account: account,
Rescan: rescan, Rescan: rescan,
} }
} }

View file

@ -58,12 +58,12 @@ func TestBtcWalletExtCmds(t *testing.T) {
{ {
name: "importaddress", name: "importaddress",
newCmd: func() (interface{}, error) { newCmd: func() (interface{}, error) {
return btcjson.NewCmd("importaddress", "1Address") return btcjson.NewCmd("importaddress", "1Address", "")
}, },
staticCmd: func() interface{} { staticCmd: func() interface{} {
return btcjson.NewImportAddressCmd("1Address", nil) return btcjson.NewImportAddressCmd("1Address", "", nil)
}, },
marshalled: `{"jsonrpc":"1.0","method":"importaddress","params":["1Address"],"id":1}`, marshalled: `{"jsonrpc":"1.0","method":"importaddress","params":["1Address",""],"id":1}`,
unmarshalled: &btcjson.ImportAddressCmd{ unmarshalled: &btcjson.ImportAddressCmd{
Address: "1Address", Address: "1Address",
Rescan: btcjson.Bool(true), Rescan: btcjson.Bool(true),
@ -72,14 +72,15 @@ func TestBtcWalletExtCmds(t *testing.T) {
{ {
name: "importaddress optional", name: "importaddress optional",
newCmd: func() (interface{}, error) { newCmd: func() (interface{}, error) {
return btcjson.NewCmd("importaddress", "1Address", false) return btcjson.NewCmd("importaddress", "1Address", "acct", false)
}, },
staticCmd: func() interface{} { staticCmd: func() interface{} {
return btcjson.NewImportAddressCmd("1Address", btcjson.Bool(false)) return btcjson.NewImportAddressCmd("1Address", "acct", btcjson.Bool(false))
}, },
marshalled: `{"jsonrpc":"1.0","method":"importaddress","params":["1Address",false],"id":1}`, marshalled: `{"jsonrpc":"1.0","method":"importaddress","params":["1Address","acct",false],"id":1}`,
unmarshalled: &btcjson.ImportAddressCmd{ unmarshalled: &btcjson.ImportAddressCmd{
Address: "1Address", Address: "1Address",
Account: "acct",
Rescan: btcjson.Bool(false), Rescan: btcjson.Bool(false),
}, },
}, },

View file

@ -2078,7 +2078,7 @@ func (r FutureImportAddressResult) Receive() error {
// //
// See ImportAddress for the blocking version and more details. // See ImportAddress for the blocking version and more details.
func (c *Client) ImportAddressAsync(address string) FutureImportAddressResult { func (c *Client) ImportAddressAsync(address string) FutureImportAddressResult {
cmd := btcjson.NewImportAddressCmd(address, nil) cmd := btcjson.NewImportAddressCmd(address, "", nil)
return c.sendCmd(cmd) return c.sendCmd(cmd)
} }
@ -2092,15 +2092,15 @@ func (c *Client) ImportAddress(address string) error {
// returned instance. // returned instance.
// //
// See ImportAddress for the blocking version and more details. // See ImportAddress for the blocking version and more details.
func (c *Client) ImportAddressRescanAsync(address string, rescan bool) FutureImportAddressResult { func (c *Client) ImportAddressRescanAsync(address string, account string, rescan bool) FutureImportAddressResult {
cmd := btcjson.NewImportAddressCmd(address, &rescan) cmd := btcjson.NewImportAddressCmd(address, account, &rescan)
return c.sendCmd(cmd) return c.sendCmd(cmd)
} }
// ImportAddressRescan imports the passed public address. When rescan is true, // ImportAddressRescan imports the passed public address. When rescan is true,
// the block history is scanned for transactions addressed to provided address. // the block history is scanned for transactions addressed to provided address.
func (c *Client) ImportAddressRescan(address string, rescan bool) error { func (c *Client) ImportAddressRescan(address string, account string, rescan bool) error {
return c.ImportAddressRescanAsync(address, rescan).Receive() return c.ImportAddressRescanAsync(address, account, rescan).Receive()
} }
// FutureImportPrivKeyResult is a future promise to deliver the result of an // FutureImportPrivKeyResult is a future promise to deliver the result of an