Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
82a41a19
Commit
82a41a19
authored
Mar 22, 2015
by
Taylor Gerring
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move CurrencyToString to size
parent
08b21acf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
95 additions
and
91 deletions
+95
-91
common.go
common/common.go
+0
-57
common_test.go
common/common_test.go
+0
-33
size.go
common/size.go
+61
-1
size_test.go
common/size_test.go
+34
-0
No files found.
common/common.go
View file @
82a41a19
...
@@ -76,63 +76,6 @@ func WindonizePath(path string) string {
...
@@ -76,63 +76,6 @@ func WindonizePath(path string) string {
return
path
return
path
}
}
// The different number of units
var
(
Douglas
=
BigPow
(
10
,
42
)
Einstein
=
BigPow
(
10
,
21
)
Ether
=
BigPow
(
10
,
18
)
Finney
=
BigPow
(
10
,
15
)
Szabo
=
BigPow
(
10
,
12
)
Shannon
=
BigPow
(
10
,
9
)
Babbage
=
BigPow
(
10
,
6
)
Ada
=
BigPow
(
10
,
3
)
Wei
=
big
.
NewInt
(
1
)
)
//
// Currency to string
// Returns a string representing a human readable format
func
CurrencyToString
(
num
*
big
.
Int
)
string
{
var
(
fin
*
big
.
Int
=
num
denom
string
=
"Wei"
)
switch
{
case
num
.
Cmp
(
Douglas
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Douglas
)
denom
=
"Douglas"
case
num
.
Cmp
(
Einstein
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Einstein
)
denom
=
"Einstein"
case
num
.
Cmp
(
Ether
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Ether
)
denom
=
"Ether"
case
num
.
Cmp
(
Finney
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Finney
)
denom
=
"Finney"
case
num
.
Cmp
(
Szabo
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Szabo
)
denom
=
"Szabo"
case
num
.
Cmp
(
Shannon
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Shannon
)
denom
=
"Shannon"
case
num
.
Cmp
(
Babbage
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Babbage
)
denom
=
"Babbage"
case
num
.
Cmp
(
Ada
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Ada
)
denom
=
"Ada"
}
// TODO add comment clarifying expected behavior
if
len
(
fin
.
String
())
>
5
{
return
fmt
.
Sprintf
(
"%sE%d %s"
,
fin
.
String
()[
0
:
5
],
len
(
fin
.
String
())
-
5
,
denom
)
}
return
fmt
.
Sprintf
(
"%v %s"
,
fin
,
denom
)
}
// Common big integers often used
// Common big integers often used
var
(
var
(
Big1
=
big
.
NewInt
(
1
)
Big1
=
big
.
NewInt
(
1
)
...
...
common/common_test.go
View file @
82a41a19
package
common
package
common
import
(
import
(
"math/big"
"os"
"os"
checker
"gopkg.in/check.v1"
checker
"gopkg.in/check.v1"
...
@@ -34,35 +33,3 @@ func (s *CommonSuite) TestWindonziePath(c *checker.C) {
...
@@ -34,35 +33,3 @@ func (s *CommonSuite) TestWindonziePath(c *checker.C) {
c
.
Assert
(
ressep
,
checker
.
Not
(
checker
.
Equals
),
"/"
)
c
.
Assert
(
ressep
,
checker
.
Not
(
checker
.
Equals
),
"/"
)
}
}
}
}
func
(
s
*
CommonSuite
)
TestCommon
(
c
*
checker
.
C
)
{
douglas
:=
CurrencyToString
(
BigPow
(
10
,
43
))
einstein
:=
CurrencyToString
(
BigPow
(
10
,
22
))
ether
:=
CurrencyToString
(
BigPow
(
10
,
19
))
finney
:=
CurrencyToString
(
BigPow
(
10
,
16
))
szabo
:=
CurrencyToString
(
BigPow
(
10
,
13
))
shannon
:=
CurrencyToString
(
BigPow
(
10
,
10
))
babbage
:=
CurrencyToString
(
BigPow
(
10
,
7
))
ada
:=
CurrencyToString
(
BigPow
(
10
,
4
))
wei
:=
CurrencyToString
(
big
.
NewInt
(
10
))
c
.
Assert
(
douglas
,
checker
.
Equals
,
"10 Douglas"
)
c
.
Assert
(
einstein
,
checker
.
Equals
,
"10 Einstein"
)
c
.
Assert
(
ether
,
checker
.
Equals
,
"10 Ether"
)
c
.
Assert
(
finney
,
checker
.
Equals
,
"10 Finney"
)
c
.
Assert
(
szabo
,
checker
.
Equals
,
"10 Szabo"
)
c
.
Assert
(
shannon
,
checker
.
Equals
,
"10 Shannon"
)
c
.
Assert
(
babbage
,
checker
.
Equals
,
"10 Babbage"
)
c
.
Assert
(
ada
,
checker
.
Equals
,
"10 Ada"
)
c
.
Assert
(
wei
,
checker
.
Equals
,
"10 Wei"
)
}
func
(
s
*
CommonSuite
)
TestLarge
(
c
*
checker
.
C
)
{
douglaslarge
:=
CurrencyToString
(
BigPow
(
100000000
,
43
))
adalarge
:=
CurrencyToString
(
BigPow
(
100000000
,
4
))
weilarge
:=
CurrencyToString
(
big
.
NewInt
(
100000000
))
c
.
Assert
(
douglaslarge
,
checker
.
Equals
,
"10000E298 Douglas"
)
c
.
Assert
(
adalarge
,
checker
.
Equals
,
"10000E7 Einstein"
)
c
.
Assert
(
weilarge
,
checker
.
Equals
,
"100 Babbage"
)
}
common/size.go
View file @
82a41a19
package
common
package
common
import
"fmt"
import
(
"fmt"
"math/big"
)
type
StorageSize
float64
type
StorageSize
float64
...
@@ -13,3 +16,60 @@ func (self StorageSize) String() string {
...
@@ -13,3 +16,60 @@ func (self StorageSize) String() string {
return
fmt
.
Sprintf
(
"%.2f B"
,
self
)
return
fmt
.
Sprintf
(
"%.2f B"
,
self
)
}
}
}
}
// The different number of units
var
(
Douglas
=
BigPow
(
10
,
42
)
Einstein
=
BigPow
(
10
,
21
)
Ether
=
BigPow
(
10
,
18
)
Finney
=
BigPow
(
10
,
15
)
Szabo
=
BigPow
(
10
,
12
)
Shannon
=
BigPow
(
10
,
9
)
Babbage
=
BigPow
(
10
,
6
)
Ada
=
BigPow
(
10
,
3
)
Wei
=
big
.
NewInt
(
1
)
)
//
// Currency to string
// Returns a string representing a human readable format
func
CurrencyToString
(
num
*
big
.
Int
)
string
{
var
(
fin
*
big
.
Int
=
num
denom
string
=
"Wei"
)
switch
{
case
num
.
Cmp
(
Douglas
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Douglas
)
denom
=
"Douglas"
case
num
.
Cmp
(
Einstein
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Einstein
)
denom
=
"Einstein"
case
num
.
Cmp
(
Ether
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Ether
)
denom
=
"Ether"
case
num
.
Cmp
(
Finney
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Finney
)
denom
=
"Finney"
case
num
.
Cmp
(
Szabo
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Szabo
)
denom
=
"Szabo"
case
num
.
Cmp
(
Shannon
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Shannon
)
denom
=
"Shannon"
case
num
.
Cmp
(
Babbage
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Babbage
)
denom
=
"Babbage"
case
num
.
Cmp
(
Ada
)
>=
0
:
fin
=
new
(
big
.
Int
)
.
Div
(
num
,
Ada
)
denom
=
"Ada"
}
// TODO add comment clarifying expected behavior
if
len
(
fin
.
String
())
>
5
{
return
fmt
.
Sprintf
(
"%sE%d %s"
,
fin
.
String
()[
0
:
5
],
len
(
fin
.
String
())
-
5
,
denom
)
}
return
fmt
.
Sprintf
(
"%v %s"
,
fin
,
denom
)
}
common/size_test.go
View file @
82a41a19
package
common
package
common
import
(
import
(
"math/big"
checker
"gopkg.in/check.v1"
checker
"gopkg.in/check.v1"
)
)
...
@@ -21,3 +23,35 @@ func (s *SizeSuite) TestStorageSizeString(c *checker.C) {
...
@@ -21,3 +23,35 @@ func (s *SizeSuite) TestStorageSizeString(c *checker.C) {
c
.
Assert
(
StorageSize
(
data2
)
.
String
(),
checker
.
Equals
,
exp2
)
c
.
Assert
(
StorageSize
(
data2
)
.
String
(),
checker
.
Equals
,
exp2
)
c
.
Assert
(
StorageSize
(
data3
)
.
String
(),
checker
.
Equals
,
exp3
)
c
.
Assert
(
StorageSize
(
data3
)
.
String
(),
checker
.
Equals
,
exp3
)
}
}
func
(
s
*
CommonSuite
)
TestCommon
(
c
*
checker
.
C
)
{
douglas
:=
CurrencyToString
(
BigPow
(
10
,
43
))
einstein
:=
CurrencyToString
(
BigPow
(
10
,
22
))
ether
:=
CurrencyToString
(
BigPow
(
10
,
19
))
finney
:=
CurrencyToString
(
BigPow
(
10
,
16
))
szabo
:=
CurrencyToString
(
BigPow
(
10
,
13
))
shannon
:=
CurrencyToString
(
BigPow
(
10
,
10
))
babbage
:=
CurrencyToString
(
BigPow
(
10
,
7
))
ada
:=
CurrencyToString
(
BigPow
(
10
,
4
))
wei
:=
CurrencyToString
(
big
.
NewInt
(
10
))
c
.
Assert
(
douglas
,
checker
.
Equals
,
"10 Douglas"
)
c
.
Assert
(
einstein
,
checker
.
Equals
,
"10 Einstein"
)
c
.
Assert
(
ether
,
checker
.
Equals
,
"10 Ether"
)
c
.
Assert
(
finney
,
checker
.
Equals
,
"10 Finney"
)
c
.
Assert
(
szabo
,
checker
.
Equals
,
"10 Szabo"
)
c
.
Assert
(
shannon
,
checker
.
Equals
,
"10 Shannon"
)
c
.
Assert
(
babbage
,
checker
.
Equals
,
"10 Babbage"
)
c
.
Assert
(
ada
,
checker
.
Equals
,
"10 Ada"
)
c
.
Assert
(
wei
,
checker
.
Equals
,
"10 Wei"
)
}
func
(
s
*
CommonSuite
)
TestLarge
(
c
*
checker
.
C
)
{
douglaslarge
:=
CurrencyToString
(
BigPow
(
100000000
,
43
))
adalarge
:=
CurrencyToString
(
BigPow
(
100000000
,
4
))
weilarge
:=
CurrencyToString
(
big
.
NewInt
(
100000000
))
c
.
Assert
(
douglaslarge
,
checker
.
Equals
,
"10000E298 Douglas"
)
c
.
Assert
(
adalarge
,
checker
.
Equals
,
"10000E7 Einstein"
)
c
.
Assert
(
weilarge
,
checker
.
Equals
,
"100 Babbage"
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment