Add createrawtransaction support to btcctl.
This commit is contained in:
parent
b6b2fd15b3
commit
a8ff7fecb4
1 changed files with 25 additions and 0 deletions
|
@ -45,6 +45,7 @@ var (
|
||||||
// to validate correctness and perform the command.
|
// to validate correctness and perform the command.
|
||||||
var commandHandlers = map[string]*handlerData{
|
var commandHandlers = map[string]*handlerData{
|
||||||
"addnode": &handlerData{2, 0, displayJSONDump, nil, makeAddNode, "<ip> <add/remove/onetry>"},
|
"addnode": &handlerData{2, 0, displayJSONDump, nil, makeAddNode, "<ip> <add/remove/onetry>"},
|
||||||
|
"createrawtransaction": &handlerData{2, 0, displayGeneric, nil, makeCreateRawTransaction, "\"[{\"txid\":\"id\",\"vout\":n},...]\" \"{\"address\":amount,...}\""},
|
||||||
"debuglevel": &handlerData{1, 0, displayGeneric, nil, makeDebugLevel, "<levelspec>"},
|
"debuglevel": &handlerData{1, 0, displayGeneric, nil, makeDebugLevel, "<levelspec>"},
|
||||||
"decoderawtransaction": &handlerData{1, 0, displayJSONDump, nil, makeDecodeRawTransaction, "<txhash>"},
|
"decoderawtransaction": &handlerData{1, 0, displayJSONDump, nil, makeDecodeRawTransaction, "<txhash>"},
|
||||||
"dumpprivkey": &handlerData{1, 0, displayGeneric, nil, makeDumpPrivKey, "<bitcoinaddress>"},
|
"dumpprivkey": &handlerData{1, 0, displayGeneric, nil, makeDumpPrivKey, "<bitcoinaddress>"},
|
||||||
|
@ -151,6 +152,30 @@ func makeAddNode(args []interface{}) (btcjson.Cmd, error) {
|
||||||
args[1].(string))
|
args[1].(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// makeCreateRawTransaction generates the cmd structure for createrawtransaction
|
||||||
|
// comands.
|
||||||
|
func makeCreateRawTransaction(args []interface{}) (btcjson.Cmd, error) {
|
||||||
|
// First unmarshal the JSON provided by the parameters into interfaces.
|
||||||
|
var iinputs, iamounts interface{}
|
||||||
|
err := json.Unmarshal([]byte(args[0].(string)), &iinputs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
err = json.Unmarshal([]byte(args[1].(string)), &iamounts)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate and convert the interfaces to concrete types.
|
||||||
|
inputs, amounts, err := btcjson.ConvertCreateRawTxParams(iinputs,
|
||||||
|
iamounts)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return btcjson.NewCreateRawTransactionCmd("btcctl", inputs, amounts)
|
||||||
|
}
|
||||||
|
|
||||||
// makeDebugLevel generates the cmd structure for debuglevel commands.
|
// makeDebugLevel generates the cmd structure for debuglevel commands.
|
||||||
func makeDebugLevel(args []interface{}) (btcjson.Cmd, error) {
|
func makeDebugLevel(args []interface{}) (btcjson.Cmd, error) {
|
||||||
return btcjson.NewDebugLevelCmd("btcctl", args[0].(string))
|
return btcjson.NewDebugLevelCmd("btcctl", args[0].(string))
|
||||||
|
|
Loading…
Reference in a new issue