func NewCurrency(b *big.Int) (c Currency) {
	if b.Sign() < 0 {
		build.Critical(ErrNegativeCurrency)
	} else {
		c.i = *b
	}
	return
}
NewCurrency creates a Currency value from a big.Int. Undefined behavior
occurs if a negative input is used.
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)
)