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.
43 lines
802 B
43 lines
802 B
package shachain |
|
|
|
import ( |
|
"bytes" |
|
"testing" |
|
|
|
"github.com/btcsuite/btcd/chaincfg/chainhash" |
|
) |
|
|
|
// TestShaChainProducerRestore checks the ability of shachain producer to be |
|
// properly recreated from binary representation. |
|
func TestShaChainProducerRestore(t *testing.T) { |
|
t.Parallel() |
|
|
|
var err error |
|
|
|
seed := chainhash.DoubleHashH([]byte("shachaintest")) |
|
sender := NewRevocationProducer(seed) |
|
|
|
s1, err := sender.AtIndex(0) |
|
if err != nil { |
|
t.Fatal(err) |
|
} |
|
|
|
var b bytes.Buffer |
|
if err := sender.Encode(&b); err != nil { |
|
t.Fatal(err) |
|
} |
|
|
|
sender, err = NewRevocationProducerFromBytes(b.Bytes()) |
|
if err != nil { |
|
t.Fatal(err) |
|
} |
|
|
|
s3, err := sender.AtIndex(0) |
|
if err != nil { |
|
t.Fatal(err) |
|
} |
|
|
|
if !s1.IsEqual(s3) { |
|
t.Fatalf("secrets should match: %v:%v", s1.String(), s3.String()) |
|
} |
|
}
|
|
|