func newClient(btcConf *util.BitcoindConf) (*Client, error) { c := Client{ BtcConf: btcConf, Cred: cred.Cred{OcCred: *cred.NewOcCred()}, } return &c, nil }
func TestPeerFromReq(t *testing.T) { defer os.RemoveAll(testutil.InitDir(t)) ocCred := cred.NewOcCred() btcConf, err := util.LoadBitcoindConf("") if err != nil { t.Fatal(err) } // TODO(ortutay): this test is flakey, as we may not have any BTC at all btcCreds, err := cred.GetBtcCredInRange(0, util.B2S(1000), btcConf) if err != nil { t.Fatal(err) } req := calc.NewCalcReq([]string{"1 2 +"}) err = ocCred.SignOcReq(req) if err != nil { t.Fatal(err) } for _, bc := range *btcCreds { err = bc.SignOcReq(req, btcConf) if err != nil { t.Fatal(err) } } p, err := NewPeerFromReq(req, btcConf) if err != nil { t.Fatal(err) } if p.ID != req.ID { t.FailNow() } }
func TestPeerFromReqCoinReuse(t *testing.T) { defer os.RemoveAll(testutil.InitDir(t)) ocCred1 := cred.NewOcCred() ocCred2 := cred.NewOcCred() btcConf, err := util.LoadBitcoindConf("") if err != nil { t.Fatal(err) } // TODO(ortutay): this test is flakey, as we may not have any BTC at all btcCreds, err := cred.GetBtcCredInRange(0, util.B2S(1000), btcConf) if err != nil { t.Fatal(err) } req1 := calc.NewCalcReq([]string{"1 2 +"}) err = ocCred1.SignOcReq(req1) if err != nil { t.Fatal(err) } req2 := calc.NewCalcReq([]string{"1 2 +"}) err = ocCred2.SignOcReq(req2) if err != nil { t.Fatal(err) } for _, bc := range *btcCreds { err = bc.SignOcReq(req1, btcConf) err = bc.SignOcReq(req2, btcConf) if err != nil { t.Fatal(err) } } p1, err := NewPeerFromReq(req1, btcConf) if err != nil { t.Fatal(err) } if p1.ID != req1.ID { t.FailNow() } p2, err := NewPeerFromReq(req2, btcConf) if err == nil || err != COIN_REUSE { t.Fatal("Expected COIN_REUSE error") } if p2 != nil { t.FailNow() } }