gitlab.com/SiaPrime/SiaPrime@v1.4.1/modules/renter/proto/seeds_test.go (about) 1 package proto 2 3 import ( 4 "bytes" 5 "testing" 6 7 "gitlab.com/NebulousLabs/fastrand" 8 "gitlab.com/SiaPrime/SiaPrime/crypto" 9 "gitlab.com/SiaPrime/SiaPrime/modules" 10 "gitlab.com/SiaPrime/SiaPrime/types" 11 ) 12 13 // TestEphemeralRenterSeed tests the ephemeralRenterSeed methods. 14 func TestEphemeralRenterSeed(t *testing.T) { 15 // Create random wallet seed. 16 var walletSeed modules.Seed 17 fastrand.Read(walletSeed[:]) 18 19 renterSeed := DeriveRenterSeed(walletSeed) 20 fastrand.Read(renterSeed[:]) 21 22 // Test for blockheights 0 to ephemeralSeedInterval-1 23 for bh := types.BlockHeight(0); bh < ephemeralSeedInterval; bh++ { 24 expectedSeed := crypto.HashAll(renterSeed, 0) 25 seed := renterSeed.EphemeralRenterSeed(bh) 26 if !bytes.Equal(expectedSeed[:], seed[:]) { 27 t.Fatal("Seeds don't match for blockheight", bh) 28 } 29 } 30 // Test for blockheights ephemeralSeedInterval to 2*ephemeralSeedInterval-1 31 for bh := ephemeralSeedInterval; bh < 2*ephemeralSeedInterval; bh++ { 32 expectedSeed := crypto.HashAll(renterSeed, 1) 33 seed := renterSeed.EphemeralRenterSeed(bh) 34 if !bytes.Equal(expectedSeed[:], seed[:]) { 35 t.Fatal("Seeds don't match for blockheight", bh) 36 } 37 } 38 }