25 lines
		
	
	
		
			430 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			430 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package ethutil
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/rand"
 | 
						|
	"encoding/binary"
 | 
						|
	"io"
 | 
						|
)
 | 
						|
 | 
						|
func randomUint64(r io.Reader) (uint64, error) {
 | 
						|
	b := make([]byte, 8)
 | 
						|
	n, err := r.Read(b)
 | 
						|
	if n != len(b) {
 | 
						|
		return 0, io.ErrShortBuffer
 | 
						|
	}
 | 
						|
	if err != nil {
 | 
						|
		return 0, err
 | 
						|
	}
 | 
						|
	return binary.BigEndian.Uint64(b), nil
 | 
						|
}
 | 
						|
 | 
						|
// RandomUint64 returns a cryptographically random uint64 value.
 | 
						|
func RandomUint64() (uint64, error) {
 | 
						|
	return randomUint64(rand.Reader)
 | 
						|
}
 |