// DoubleSha256 calculates sha256(sha256(b)) and returns the resulting bytes. func DoubleSha256(b []byte) []byte { hasher := fastsha256.New() hasher.Write(b) sum := hasher.Sum(nil) hasher.Reset() hasher.Write(sum) return hasher.Sum(nil) }
func NewCoin(index int64, value dcrutil.Amount, numConfs int64) coinset.Coin { h := fastsha256.New() h.Write([]byte(fmt.Sprintf("%d", index))) hash, _ := chainhash.NewHash(h.Sum(nil)) c := &TestCoin{ TxHash: hash, TxIndex: 0, TxValue: value, TxNumConfs: numConfs, } return coinset.Coin(c) }
// outBailmentIDHash returns a byte slice which is used when sorting // OutputRequests. func (r OutputRequest) outBailmentIDHash() []byte { if r.cachedHash != nil { return r.cachedHash } str := r.Server + strconv.Itoa(int(r.Transaction)) hasher := fastsha256.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) r.cachedHash = id return id }
// Hash160 calculates the hash ripemd160(sha256(b)). func Hash160(buf []byte) []byte { return calcHash(calcHash(buf, fastsha256.New()), ripemd160.New()) }