aboutsummaryrefslogtreecommitdiffstats
path: root/ethutil
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-02-25 18:20:24 +0800
committerobscuren <geffobscura@gmail.com>2014-02-25 18:20:24 +0800
commitc7e73ba12d747186002433db54d002ab43bed171 (patch)
tree32ffc1d36bc773f8230012dc6b01db54566fda97 /ethutil
parentb30b9ab8cb13ddbc68a4912c9f06116c0f59bc27 (diff)
downloaddexon-c7e73ba12d747186002433db54d002ab43bed171.tar.gz
dexon-c7e73ba12d747186002433db54d002ab43bed171.tar.zst
dexon-c7e73ba12d747186002433db54d002ab43bed171.zip
Added currency converting
Diffstat (limited to 'ethutil')
-rw-r--r--ethutil/common.go35
-rw-r--r--ethutil/common_test.go17
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)))
+}