From 15635025c4968bee177a789937ff54f372c1c3ec Mon Sep 17 00:00:00 2001 From: David Hill Date: Thu, 12 Jan 2017 09:47:46 -0500 Subject: [PATCH] Drop fastsha256 in favor of crypto/sha256 (#468) --- .travis.yml | 4 ++-- config.go | 8 ++++---- glide.lock | 29 ++++++++++++++++----------- glide.yaml | 17 ++++++++++------ rpc/legacyrpc/server.go | 12 +++++------ snacl/snacl.go | 26 ++++++++++++------------ votingpool/example_test.go | 4 ++-- votingpool/input_selection_wb_test.go | 8 ++++---- votingpool/withdrawal.go | 6 +++--- votingpool/withdrawal_wb_test.go | 20 +++++++++--------- waddrmgr/db.go | 16 +++++++-------- wtxmgr/query_test.go | 14 ++++++------- wtxmgr/tx_test.go | 6 +++--- 13 files changed, 90 insertions(+), 80 deletions(-) diff --git a/.travis.yml b/.travis.yml index 20758a5..2298cc4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: go go: - - 1.6.3 - - 1.7.3 + - 1.6.x + - 1.7.x sudo: false before_install: - GLIDE_TAG=v0.12.3 diff --git a/config.go b/config.go index d141639..efc7570 100644 --- a/config.go +++ b/config.go @@ -1,4 +1,4 @@ -// Copyright (c) 2013-2016 The btcsuite developers +// Copyright (c) 2013-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -500,9 +500,9 @@ func loadConfig() (*config, []string, error) { } localhostListeners := map[string]struct{}{ - "localhost": struct{}{}, - "127.0.0.1": struct{}{}, - "::1": struct{}{}, + "localhost": {}, + "127.0.0.1": {}, + "::1": {}, } RPCHost, _, err := net.SplitHostPort(cfg.RPCConnect) if err != nil { diff --git a/glide.lock b/glide.lock index 72765d6..65b11bd 100644 --- a/glide.lock +++ b/glide.lock @@ -1,10 +1,10 @@ -hash: 5efa5cef5495a0b5256f45ecb2456ea21101934ed56e780a46b1c16e30177ebc -updated: 2016-10-27T11:54:19.492811-05:00 +hash: d945622a1e24954b5ffe2855e922e687132ccc13fb1a1bc5d57c15c72603948a +updated: 2017-01-11T20:24:15.024651319-05:00 imports: - name: github.com/boltdb/bolt version: 583e8937c61f1af6513608ccc75c97b6abdf4ff9 - name: github.com/btcsuite/btcd - version: f6ad7eb2c963151c71de2bd37d04d9af644a891d + version: 7c0fd83c87b2d2be405489cff522e0110328cd1e subpackages: - blockchain - btcec @@ -17,16 +17,14 @@ imports: - name: github.com/btcsuite/btclog version: 73889fb79bd687870312b6e40effcecffbd57d30 - name: github.com/btcsuite/btcrpcclient - version: 2b780d16b042054d07aa322146194118fd7f7b81 + version: 5ce0ed600997eafaed25ad4936c1d84ec6ad2b5a - name: github.com/btcsuite/btcutil - version: 9b9ce80a2edafc6198569550fcc01df11d214425 + version: 86346b5a958c0cf94186b87855469ae991be501c subpackages: - base58 - hdkeychain -- name: github.com/btcsuite/fastsha256 - version: 637e656429416087660c84436a2a035d69d54e2e - name: github.com/btcsuite/go-socks - version: cfe8b59e565c1a5bd4e2005d77cd9aa8b2e14524 + version: 4720035b7bfd2a9bb130b1c184f8bbe41b6f0d0f subpackages: - socks - name: github.com/btcsuite/golangcrypto @@ -44,13 +42,13 @@ imports: - name: github.com/btcsuite/websocket version: 31079b6807923eb23992c421b114992b95131b55 - name: github.com/golang/protobuf - version: 98fa357170587e470c5f27d3c3ea0947b71eb455 + version: 8ee79997227bf9b34611aee7946ae64735e6fd93 subpackages: - proto - name: github.com/jessevdk/go-flags version: 1679536dcc895411a9f5848d9a0250be7856448c - name: golang.org/x/net - version: c46f265c325130a7a6c7b27db8c6fe14b64f1a68 + version: 60c41d1de8da134c05b7b40154a9a82bf5b7edb9 subpackages: - context - http2 @@ -60,9 +58,16 @@ imports: - lex/httplex - trace - name: golang.org/x/sys - version: c200b10b5d5e122be351b67af224adc6128af5bf + version: d75a52659825e75fff6158388dddc6a5b04f9ba5 subpackages: - unix +- name: golang.org/x/text + version: 44f4f658a783b0cee41fe0a23b8fc91d9c120558 + subpackages: + - secure/bidirule + - transform + - unicode/bidi + - unicode/norm - name: google.golang.org/grpc version: b7f1379d3cbbbeb2ca3405852012e237aa05459e subpackages: @@ -76,6 +81,6 @@ imports: - transport testImports: - name: github.com/davecgh/go-spew - version: 6d212800a42e8ab5c146b8ace3490ee17e5225f9 + version: 346938d642f2ec3594ed81d874461961cd0faa76 subpackages: - spew diff --git a/glide.yaml b/glide.yaml index ac7f2f3..4d9fb02 100644 --- a/glide.yaml +++ b/glide.yaml @@ -1,11 +1,14 @@ package: github.com/btcsuite/btcwallet import: +- package: github.com/boltdb/bolt + version: ^1.3.0 - package: github.com/btcsuite/btcd subpackages: - blockchain - btcec - btcjson - chaincfg + - chaincfg/chainhash - txscript - wire - package: github.com/btcsuite/btclog @@ -13,7 +16,6 @@ import: - package: github.com/btcsuite/btcutil subpackages: - hdkeychain -- package: github.com/btcsuite/fastsha256 - package: github.com/btcsuite/golangcrypto subpackages: - nacl/secretbox @@ -25,16 +27,19 @@ import: - package: github.com/golang/protobuf subpackages: - proto +- package: github.com/jessevdk/go-flags + version: 1679536dcc895411a9f5848d9a0250be7856448c - package: golang.org/x/net subpackages: - context - package: google.golang.org/grpc - version: ^1.0.0 + version: 1.0.3 subpackages: - codes - credentials - grpclog -- package: github.com/jessevdk/go-flags - version: 1679536dcc895411a9f5848d9a0250be7856448c -- package: github.com/boltdb/bolt - version: ^1.3.0 +testImport: +- package: github.com/davecgh/go-spew + version: ^1.1.0 + subpackages: + - spew diff --git a/rpc/legacyrpc/server.go b/rpc/legacyrpc/server.go index 2262676..7e159ea 100644 --- a/rpc/legacyrpc/server.go +++ b/rpc/legacyrpc/server.go @@ -1,10 +1,11 @@ -// Copyright (c) 2013-2015 The btcsuite developers +// Copyright (c) 2013-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. package legacyrpc import ( + "crypto/sha256" "crypto/subtle" "encoding/base64" "encoding/json" @@ -21,7 +22,6 @@ import ( "github.com/btcsuite/btcd/btcjson" "github.com/btcsuite/btcwallet/chain" "github.com/btcsuite/btcwallet/wallet" - "github.com/btcsuite/fastsha256" "github.com/btcsuite/websocket" ) @@ -66,7 +66,7 @@ type Server struct { handlerMu sync.Mutex listeners []net.Listener - authsha [fastsha256.Size]byte + authsha [sha256.Size]byte upgrader websocket.Upgrader maxPostClients int64 // Max concurrent HTTP POST clients. @@ -105,7 +105,7 @@ func NewServer(opts *Options, walletLoader *wallet.Loader, listeners []net.Liste listeners: listeners, // A hash of the HTTP basic auth string is used for a constant // time comparison. - authsha: fastsha256.Sum256(httpBasicAuth(opts.Username, opts.Password)), + authsha: sha256.Sum256(httpBasicAuth(opts.Username, opts.Password)), upgrader: websocket.Upgrader{ // Allow all origins. CheckOrigin: func(r *http.Request) bool { return true }, @@ -301,7 +301,7 @@ func (s *Server) checkAuthHeader(r *http.Request) error { return ErrNoAuth } - authsha := fastsha256.Sum256([]byte(authhdr[0])) + authsha := sha256.Sum256([]byte(authhdr[0])) cmp := subtle.ConstantTimeCompare(authsha[:], s.authsha[:]) if cmp != 1 { return errors.New("bad auth") @@ -378,7 +378,7 @@ func (s *Server) invalidAuth(req *btcjson.Request) bool { // Check credentials. login := authCmd.Username + ":" + authCmd.Passphrase auth := "Basic " + base64.StdEncoding.EncodeToString([]byte(login)) - authSha := fastsha256.Sum256([]byte(auth)) + authSha := sha256.Sum256([]byte(auth)) return subtle.ConstantTimeCompare(authSha[:], s.authsha[:]) != 1 } diff --git a/snacl/snacl.go b/snacl/snacl.go index d85f81b..e893759 100644 --- a/snacl/snacl.go +++ b/snacl/snacl.go @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The btcsuite developers +// Copyright (c) 2014-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -6,6 +6,7 @@ package snacl import ( "crypto/rand" + "crypto/sha256" "crypto/subtle" "encoding/binary" "errors" @@ -13,7 +14,6 @@ import ( "runtime/debug" "github.com/btcsuite/btcwallet/internal/zero" - "github.com/btcsuite/fastsha256" "github.com/btcsuite/golangcrypto/nacl/secretbox" "github.com/btcsuite/golangcrypto/scrypt" ) @@ -96,7 +96,7 @@ func GenerateCryptoKey() (*CryptoKey, error) { // Parameters are not secret and can be stored in plain text. type Parameters struct { Salt [KeySize]byte - Digest [fastsha256.Size]byte + Digest [sha256.Size]byte N int R int P int @@ -141,14 +141,14 @@ func (sk *SecretKey) Marshal() []byte { // The marshalled format for the the params is as follows: //

// - // KeySize + fastsha256.Size + N (8 bytes) + R (8 bytes) + P (8 bytes) - marshalled := make([]byte, KeySize+fastsha256.Size+24) + // KeySize + sha256.Size + N (8 bytes) + R (8 bytes) + P (8 bytes) + marshalled := make([]byte, KeySize+sha256.Size+24) b := marshalled copy(b[:KeySize], params.Salt[:]) b = b[KeySize:] - copy(b[:fastsha256.Size], params.Digest[:]) - b = b[fastsha256.Size:] + copy(b[:sha256.Size], params.Digest[:]) + b = b[sha256.Size:] binary.LittleEndian.PutUint64(b[:8], uint64(params.N)) b = b[8:] binary.LittleEndian.PutUint64(b[:8], uint64(params.R)) @@ -168,16 +168,16 @@ func (sk *SecretKey) Unmarshal(marshalled []byte) error { // The marshalled format for the the params is as follows: //

// - // KeySize + fastsha256.Size + N (8 bytes) + R (8 bytes) + P (8 bytes) - if len(marshalled) != KeySize+fastsha256.Size+24 { + // KeySize + sha256.Size + N (8 bytes) + R (8 bytes) + P (8 bytes) + if len(marshalled) != KeySize+sha256.Size+24 { return ErrMalformed } params := &sk.Parameters copy(params.Salt[:], marshalled[:KeySize]) marshalled = marshalled[KeySize:] - copy(params.Digest[:], marshalled[:fastsha256.Size]) - marshalled = marshalled[fastsha256.Size:] + copy(params.Digest[:], marshalled[:sha256.Size]) + marshalled = marshalled[sha256.Size:] params.N = int(binary.LittleEndian.Uint64(marshalled[:8])) marshalled = marshalled[8:] params.R = int(binary.LittleEndian.Uint64(marshalled[:8])) @@ -203,7 +203,7 @@ func (sk *SecretKey) DeriveKey(password *[]byte) error { } // verify password - digest := fastsha256.Sum256(sk.Key[:]) + digest := sha256.Sum256(sk.Key[:]) if subtle.ConstantTimeCompare(digest[:], sk.Parameters.Digest[:]) != 1 { return ErrInvalidPassword } @@ -242,7 +242,7 @@ func NewSecretKey(password *[]byte, N, r, p int) (*SecretKey, error) { } // store digest - sk.Parameters.Digest = fastsha256.Sum256(sk.Key[:]) + sk.Parameters.Digest = sha256.Sum256(sk.Key[:]) return &sk, nil } diff --git a/votingpool/example_test.go b/votingpool/example_test.go index 6d438ce..ffbcdf3 100644 --- a/votingpool/example_test.go +++ b/votingpool/example_test.go @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 The btcsuite developers + * Copyright (c) 2014-2017 The btcsuite developers * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -203,7 +203,7 @@ func Example_startWithdrawal() { addr, _ := btcutil.DecodeAddress("1MirQ9bwyQcGVJPwKUgapu5ouK2E2Ey4gX", mgr.ChainParams()) pkScript, _ := txscript.PayToAddrScript(addr) requests := []votingpool.OutputRequest{ - votingpool.OutputRequest{ + { PkScript: pkScript, Address: addr, Amount: 1e6, diff --git a/votingpool/input_selection_wb_test.go b/votingpool/input_selection_wb_test.go index 1ec64a6..1aebda4 100644 --- a/votingpool/input_selection_wb_test.go +++ b/votingpool/input_selection_wb_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2016 The btcsuite developers +// Copyright (c) 2015-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -264,9 +264,9 @@ func TestCreditSortingByAddress(t *testing.T) { c6 := newDummyCredit(t, pool, 2, 0, 0, shaHash0, 0) randomCredits := [][]credit{ - []credit{c6, c5, c4, c3, c2, c1, c0}, - []credit{c2, c1, c0, c6, c5, c4, c3}, - []credit{c6, c4, c5, c2, c3, c0, c1}, + {c6, c5, c4, c3, c2, c1, c0}, + {c2, c1, c0, c6, c5, c4, c3}, + {c6, c4, c5, c2, c3, c0, c1}, } want := []credit{c0, c1, c2, c3, c4, c5, c6} diff --git a/votingpool/withdrawal.go b/votingpool/withdrawal.go index 846406e..13734c9 100644 --- a/votingpool/withdrawal.go +++ b/votingpool/withdrawal.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2016 The btcsuite developers +// Copyright (c) 2015-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -6,6 +6,7 @@ package votingpool import ( "bytes" + "crypto/sha256" "fmt" "math" "reflect" @@ -19,7 +20,6 @@ import ( "github.com/btcsuite/btcwallet/waddrmgr" "github.com/btcsuite/btcwallet/walletdb" "github.com/btcsuite/btcwallet/wtxmgr" - "github.com/btcsuite/fastsha256" ) // Maximum tx size (in bytes). This should be the same as bitcoind's @@ -212,7 +212,7 @@ func (r OutputRequest) outBailmentIDHash() []byte { return r.cachedHash } str := r.Server + strconv.Itoa(int(r.Transaction)) - hasher := fastsha256.New() + hasher := sha256.New() // hasher.Write() always returns nil as the error, so it's safe to ignore it here. _, _ = hasher.Write([]byte(str)) id := hasher.Sum(nil) diff --git a/votingpool/withdrawal_wb_test.go b/votingpool/withdrawal_wb_test.go index aa00a8f..b8236bf 100644 --- a/votingpool/withdrawal_wb_test.go +++ b/votingpool/withdrawal_wb_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 The btcsuite developers +// Copyright (c) 2015-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -413,14 +413,14 @@ func TestRollbackLastOutputWhenNewOutputAdded(t *testing.T) { firstTx := w.transactions[0] req1 := requests[0] checkTxOutputs(t, firstTx, - []*withdrawalTxOut{&withdrawalTxOut{request: req1, amount: req1.Amount}}) + []*withdrawalTxOut{{request: req1, amount: req1.Amount}}) checkTxChangeAmount(t, firstTx, btcutil.Amount(4)) // Second tx should have one output with 2 and one changeoutput with 3 satoshis. secondTx := w.transactions[1] req2 := requests[1] checkTxOutputs(t, secondTx, - []*withdrawalTxOut{&withdrawalTxOut{request: req2, amount: req2.Amount}}) + []*withdrawalTxOut{{request: req2, amount: req2.Amount}}) checkTxChangeAmount(t, secondTx, btcutil.Amount(3)) } @@ -469,7 +469,7 @@ func TestRollbackLastOutputWhenNewInputAdded(t *testing.T) { firstTx := w.transactions[0] req1 := requests[0] checkTxOutputs(t, firstTx, - []*withdrawalTxOut{&withdrawalTxOut{request: req1, amount: req1.Amount}}) + []*withdrawalTxOut{{request: req1, amount: req1.Amount}}) checkTxInputs(t, firstTx, eligible[5:6]) // Second tx should have outputs for the two last requests (in the same @@ -478,8 +478,8 @@ func TestRollbackLastOutputWhenNewInputAdded(t *testing.T) { // that's how fulfillRequests() consumes them) and no change output. secondTx := w.transactions[1] wantOutputs := []*withdrawalTxOut{ - &withdrawalTxOut{request: requests[1], amount: requests[1].Amount}, - &withdrawalTxOut{request: requests[2], amount: requests[2].Amount}} + {request: requests[1], amount: requests[1].Amount}, + {request: requests[2], amount: requests[2].Amount}} checkTxOutputs(t, secondTx, wantOutputs) wantInputs := []credit{eligible[4], eligible[3], eligible[2]} checkTxInputs(t, secondTx, wantInputs) @@ -804,7 +804,7 @@ func TestSignMultiSigUTXOUnparseablePkScript(t *testing.T) { msgtx := tx.toMsgTx() unparseablePkScript := []byte{0x01} - err := signMultiSigUTXO(mgr, msgtx, 0, unparseablePkScript, []RawSig{RawSig{}}) + err := signMultiSigUTXO(mgr, msgtx, 0, unparseablePkScript, []RawSig{{}}) TstCheckError(t, "", err, ErrTxSigning) } @@ -819,7 +819,7 @@ func TestSignMultiSigUTXOPkScriptNotP2SH(t *testing.T) { pubKeyHashPkScript, _ := txscript.PayToAddrScript(addr.(*btcutil.AddressPubKeyHash)) msgtx := tx.toMsgTx() - err := signMultiSigUTXO(mgr, msgtx, 0, pubKeyHashPkScript, []RawSig{RawSig{}}) + err := signMultiSigUTXO(mgr, msgtx, 0, pubKeyHashPkScript, []RawSig{{}}) TstCheckError(t, "", err, ErrTxSigning) } @@ -839,7 +839,7 @@ func TestSignMultiSigUTXORedeemScriptNotFound(t *testing.T) { msgtx := tx.toMsgTx() pkScript, _ := txscript.PayToAddrScript(addr.(*btcutil.AddressScriptHash)) - err := signMultiSigUTXO(mgr, msgtx, 0, pkScript, []RawSig{RawSig{}}) + err := signMultiSigUTXO(mgr, msgtx, 0, pkScript, []RawSig{{}}) TstCheckError(t, "", err, ErrTxSigning) } @@ -875,7 +875,7 @@ func TestSignMultiSigUTXOWrongRawSigs(t *testing.T) { mgr := pool.Manager() tx := createWithdrawalTx(t, pool, []int64{4e6}, []int64{}) - sigs := []RawSig{RawSig{0x00}, RawSig{0x01}} + sigs := []RawSig{{0x00}, {0x01}} idx := 0 // The index of the tx input we're going to sign. pkScript := tx.inputs[idx].PkScript diff --git a/waddrmgr/db.go b/waddrmgr/db.go index 9113967..c5cbd64 100644 --- a/waddrmgr/db.go +++ b/waddrmgr/db.go @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2016 The btcsuite developers +// Copyright (c) 2014-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -6,6 +6,7 @@ package waddrmgr import ( "bytes" + "crypto/sha256" "encoding/binary" "fmt" "time" @@ -14,7 +15,6 @@ import ( "github.com/btcsuite/btcd/chaincfg/chainhash" "github.com/btcsuite/btcutil/hdkeychain" "github.com/btcsuite/btcwallet/walletdb" - "github.com/btcsuite/fastsha256" ) const ( @@ -1006,7 +1006,7 @@ func fetchAddressByHash(tx walletdb.Tx, addrHash []byte) (interface{}, error) { func fetchAddressUsed(tx walletdb.Tx, addressID []byte) bool { bucket := tx.RootBucket().Bucket(usedAddrBucketName) - addrHash := fastsha256.Sum256(addressID) + addrHash := sha256.Sum256(addressID) return bucket.Get(addrHash[:]) != nil } @@ -1014,7 +1014,7 @@ func fetchAddressUsed(tx walletdb.Tx, addressID []byte) bool { func markAddressUsed(tx walletdb.Tx, addressID []byte) error { bucket := tx.RootBucket().Bucket(usedAddrBucketName) - addrHash := fastsha256.Sum256(addressID) + addrHash := sha256.Sum256(addressID) val := bucket.Get(addrHash[:]) if val != nil { return nil @@ -1033,7 +1033,7 @@ func markAddressUsed(tx walletdb.Tx, addressID []byte) error { // The caller should prefix the error message with the address which caused the // failure. func fetchAddress(tx walletdb.Tx, addressID []byte) (interface{}, error) { - addrHash := fastsha256.Sum256(addressID) + addrHash := sha256.Sum256(addressID) return fetchAddressByHash(tx, addrHash[:]) } @@ -1045,7 +1045,7 @@ func putAddress(tx walletdb.Tx, addressID []byte, row *dbAddressRow) error { // Write the serialized value keyed by the hash of the address. The // additional hash is used to conceal the actual address while still // allowed keyed lookups. - addrHash := fastsha256.Sum256(addressID) + addrHash := sha256.Sum256(addressID) err := bucket.Put(addrHash[:], serializeAddressRow(row)) if err != nil { str := fmt.Sprintf("failed to store address %x", addressID) @@ -1151,7 +1151,7 @@ func putScriptAddress(tx walletdb.Tx, addressID []byte, account uint32, func existsAddress(tx walletdb.Tx, addressID []byte) bool { bucket := tx.RootBucket().Bucket(addrBucketName) - addrHash := fastsha256.Sum256(addressID) + addrHash := sha256.Sum256(addressID) return bucket.Get(addrHash[:]) != nil } @@ -1161,7 +1161,7 @@ func existsAddress(tx walletdb.Tx, addressID []byte) bool { func fetchAddrAccount(tx walletdb.Tx, addressID []byte) (uint32, error) { bucket := tx.RootBucket().Bucket(addrAcctIdxBucketName) - addrHash := fastsha256.Sum256(addressID) + addrHash := sha256.Sum256(addressID) val := bucket.Get(addrHash[:]) if val == nil { str := "address not found" diff --git a/wtxmgr/query_test.go b/wtxmgr/query_test.go index 98c4ef8..d67e25f 100644 --- a/wtxmgr/query_test.go +++ b/wtxmgr/query_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2016 The btcsuite developers +// Copyright (c) 2015-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -516,8 +516,8 @@ func TestStoreQueries(t *testing.T) { newState = lastState.deepCopy() newState.blocks = [][]TxDetails{ newState.blocks[0], - []TxDetails{newState.blocks[1][0]}, - []TxDetails{newState.blocks[1][1]}, + {newState.blocks[1][0]}, + {newState.blocks[1][1]}, } newState.blocks[1][0].Block = b101 newState.txDetails[recA.Hash][1].Block = b101 @@ -558,17 +558,17 @@ func TestPreviousPkScripts(t *testing.T) { buildTx := func(prevHash *chainhash.Hash, script0, script1 []byte) *wire.MsgTx { return &wire.MsgTx{ TxIn: []*wire.TxIn{ - &wire.TxIn{PreviousOutPoint: wire.OutPoint{ + {PreviousOutPoint: wire.OutPoint{ Hash: *prevHash, Index: 0, }}, - &wire.TxIn{PreviousOutPoint: wire.OutPoint{ + {PreviousOutPoint: wire.OutPoint{ Hash: *prevHash, Index: 1, }}, }, TxOut: []*wire.TxOut{ - &wire.TxOut{Value: 1e8, PkScript: script0}, - &wire.TxOut{Value: 1e8, PkScript: script1}, + {Value: 1e8, PkScript: script0}, + {Value: 1e8, PkScript: script1}, }, } } diff --git a/wtxmgr/tx_test.go b/wtxmgr/tx_test.go index fe3113a..322b618 100644 --- a/wtxmgr/tx_test.go +++ b/wtxmgr/tx_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2013-2016 The btcsuite developers +// Copyright (c) 2013-2017 The btcsuite developers // Use of this source code is governed by an ISC // license that can be found in the LICENSE file. @@ -606,7 +606,7 @@ func TestFindingSpentCredits(t *testing.T) { func newCoinBase(outputValues ...int64) *wire.MsgTx { tx := wire.MsgTx{ TxIn: []*wire.TxIn{ - &wire.TxIn{ + { PreviousOutPoint: wire.OutPoint{Index: ^uint32(0)}, }, }, @@ -620,7 +620,7 @@ func newCoinBase(outputValues ...int64) *wire.MsgTx { func spendOutput(txHash *chainhash.Hash, index uint32, outputValues ...int64) *wire.MsgTx { tx := wire.MsgTx{ TxIn: []*wire.TxIn{ - &wire.TxIn{ + { PreviousOutPoint: wire.OutPoint{Hash: *txHash, Index: index}, }, },