diff options
author | obscuren <geffobscura@gmail.com> | 2014-02-25 18:20:24 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-02-25 18:20:24 +0800 |
commit | c7e73ba12d747186002433db54d002ab43bed171 (patch) | |
tree | 32ffc1d36bc773f8230012dc6b01db54566fda97 /ethutil | |
parent | b30b9ab8cb13ddbc68a4912c9f06116c0f59bc27 (diff) | |
download | dexon-c7e73ba12d747186002433db54d002ab43bed171.tar.gz dexon-c7e73ba12d747186002433db54d002ab43bed171.tar.zst dexon-c7e73ba12d747186002433db54d002ab43bed171.zip |
Added currency converting
Diffstat (limited to 'ethutil')
-rw-r--r-- | ethutil/common.go | 35 | ||||
-rw-r--r-- | ethutil/common_test.go | 17 |
2 files changed, 52 insertions, 0 deletions
diff --git a/ethutil/common.go b/ethutil/common.go new file mode 100644 index 000000000..07df6bb13 --- /dev/null +++ b/ethutil/common.go @@ -0,0 +1,35 @@ +package ethutil + +import ( + "fmt" + "math/big" +) + +var ( + Ether = BigPow(10, 18) + Finney = BigPow(10, 15) + Szabo = BigPow(10, 12) + Vito = BigPow(10, 9) + Turing = BigPow(10, 6) + Eins = BigPow(10, 3) + Wei = big.NewInt(1) +) + +func CurrencyToString(num *big.Int) string { + switch { + case num.Cmp(Ether) >= 0: + return fmt.Sprintf("%v Ether", new(big.Int).Div(num, Ether)) + case num.Cmp(Finney) >= 0: + return fmt.Sprintf("%v Finney", new(big.Int).Div(num, Finney)) + case num.Cmp(Szabo) >= 0: + return fmt.Sprintf("%v Szabo", new(big.Int).Div(num, Szabo)) + case num.Cmp(Vito) >= 0: + return fmt.Sprintf("%v Vito", new(big.Int).Div(num, Vito)) + case num.Cmp(Turing) >= 0: + return fmt.Sprintf("%v Turing", new(big.Int).Div(num, Turing)) + case num.Cmp(Eins) >= 0: + return fmt.Sprintf("%v Eins", new(big.Int).Div(num, Eins)) + } + + return fmt.Sprintf("%v Wei", num) +} diff --git a/ethutil/common_test.go b/ethutil/common_test.go new file mode 100644 index 000000000..3a6a37ff5 --- /dev/null +++ b/ethutil/common_test.go @@ -0,0 +1,17 @@ +package ethutil + +import ( + "fmt" + "math/big" + "testing" +) + +func TestCommon(t *testing.T) { + fmt.Println(CurrencyToString(BigPow(10, 19))) + fmt.Println(CurrencyToString(BigPow(10, 16))) + fmt.Println(CurrencyToString(BigPow(10, 13))) + fmt.Println(CurrencyToString(BigPow(10, 10))) + fmt.Println(CurrencyToString(BigPow(10, 7))) + fmt.Println(CurrencyToString(BigPow(10, 4))) + fmt.Println(CurrencyToString(big.NewInt(10))) +} |