40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
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")
|
|
}
|
|
}
|