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