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.

39 lines
1.1 KiB

package frontend
import (
"encoding/json"
"strconv"
"strings"
"testing"
)
// a well-formed raw transaction
const coinbaseTxHex = "0400008085202f89010000000000000000000000000000000000000" +
"000000000000000000000000000ffffffff03580101ffffffff0200ca9a3b000000001976a9146b" +
"9ae8c14e917966b0afdf422d32dbac40486d3988ac80b2e60e0000000017a9146708e6670db0b95" +
"0dac68031025cc5b63213a4918700000000000000000000000000000000000000"
func TestSendTransaction(t *testing.T) {
client, err := NewZRPCFromCreds("127.0.0.1:8232", "user", "password")
if err != nil {
t.Fatalf("Couldn't init JSON-RPC client: %v", err)
}
params := make([]json.RawMessage, 1)
params[0] = json.RawMessage("\"" + coinbaseTxHex + "\"")
_, err = client.RawRequest("sendrawtransaction", params)
if err == nil {
t.Fatal("somehow succeeded at sending a coinbase tx")
}
errParts := strings.SplitN(err.Error(), ":", 2)
errCode, err := strconv.ParseInt(errParts[0], 10, 64)
if err != nil {
t.Errorf("couldn't parse error code: %v", err)
}
errMsg := strings.TrimSpace(errParts[1])
if errCode != -26 || errMsg != "16: coinbase" {
t.Error("got the wrong errors")
}
}