func (x Currency) Div64(y uint64) (c Currency) {
	c.i.Div(&x.i, new(big.Int).SetUint64(y))
	return
}
Div64 returns a new Currency value c = x / y.
package types
import (
	"errors"
	"math"
	"math/big"
	"github.com/NebulousLabs/Sia/build"
)
type (
	Currency struct {
		i big.Int
	}
)
var (
	ErrNegativeCurrency = errors.New("negative currency not allowed")
	ErrUint64Overflow = errors.New("cannot return the uint64 of this currency - result is an overflow")
	ZeroCurrency = NewCurrency64(0)
)
func NewCurrency(b *big.Int) (c Currency) {
	if b.Sign() < 0 {
		build.Critical(ErrNegativeCurrency)
	} else {
		c.i = *b
	}
	return
}
func NewCurrency64(x uint64) (c Currency) {
	c.i.SetUint64(x)
	return
}
func (x Currency) Add(y Currency) (c Currency) {
	c.i.Add(&x.i, &y.i)
	return
}
func (x Currency) Big() *big.Int {
	return new(big.Int).Set(&x.i)
}
func (x Currency) Cmp(y Currency) int {
	return x.i.Cmp(&y.i)
}
func (x Currency) Cmp64(y uint64) int {
	return x.Cmp(NewCurrency64(y))
}
func (x Currency) Div(y Currency) (c Currency) {
	c.i.Div(&x.i, &y.i)
	return
}