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
fa910966
Commit
fa910966
authored
Mar 03, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Redone rlp
parent
2f647c44
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
8 deletions
+5
-8
gh_test.go
tests/vm/gh_test.go
+1
-1
vm.go
vm/vm.go
+4
-7
No files found.
tests/vm/gh_test.go
View file @
fa910966
...
...
@@ -80,7 +80,7 @@ func RunVmTest(p string, t *testing.T) {
for
name
,
test
:=
range
tests
{
helper
.
Logger
.
SetLogLevel
(
4
)
if
name
!=
"
env1
"
{
if
name
!=
"
mul7
"
{
continue
}
db
,
_
:=
ethdb
.
NewMemDatabase
()
...
...
vm/vm.go
View file @
fa910966
...
...
@@ -844,7 +844,7 @@ func baseCheck(op OpCode, stack *Stack, gas *big.Int) {
func
toWordSize
(
size
*
big
.
Int
)
*
big
.
Int
{
tmp
:=
new
(
big
.
Int
)
tmp
.
Add
(
tmp
,
u256
(
31
))
tmp
.
Add
(
size
,
u256
(
31
))
tmp
.
Div
(
tmp
,
u256
(
32
))
return
tmp
}
...
...
@@ -951,9 +951,7 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
}
if
newMemSize
.
Cmp
(
ethutil
.
Big0
)
>
0
{
newMemSize
.
Add
(
newMemSize
,
u256
(
31
))
newMemSize
.
Div
(
newMemSize
,
u256
(
32
))
newMemSize
.
Mul
(
newMemSize
,
u256
(
32
))
newMemSize
=
toWordSize
(
newMemSize
)
if
newMemSize
.
Cmp
(
u256
(
int64
(
mem
.
Len
())))
>
0
{
//memGasUsage := new(big.Int).Sub(newMemSize, u256(int64(mem.Len())))
...
...
@@ -961,15 +959,14 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
//memGasUsage.Div(memGasUsage, u256(32))
//Old: full_memory_gas_cost = W + floor(W*W / 1024), W = words in memory
pow
:=
new
(
big
.
Int
)
.
Exp
(
oldSize
,
ethutil
.
Big2
,
Zero
)
oldSize
:=
toWordSize
(
big
.
NewInt
(
int64
(
mem
.
Len
())))
linCoef
:=
new
(
big
.
Int
)
.
Mul
(
oldSize
,
GasMemWord
)
pow
:=
new
(
big
.
Int
)
pow
.
Exp
(
oldSize
,
ethutil
.
Big2
,
Zero
)
quadCoef
:=
new
(
big
.
Int
)
.
Div
(
pow
,
GasQuadCoeffDenom
)
oldTotalFee
:=
new
(
big
.
Int
)
.
Add
(
linCoef
,
quadCoef
)
linCoef
=
new
(
big
.
Int
)
.
Mul
(
newMemSize
,
GasMemWord
)
pow
.
Exp
(
newMemSize
,
ethutil
.
Big2
,
Zero
)
linCoef
=
new
(
big
.
Int
)
.
Mul
(
newMemSize
,
GasMemWord
)
quadCoef
=
new
(
big
.
Int
)
.
Div
(
pow
,
GasQuadCoeffDenom
)
newTotalFee
:=
new
(
big
.
Int
)
.
Add
(
linCoef
,
quadCoef
)
...
...
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