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
4e181c57
Commit
4e181c57
authored
Mar 16, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved gas
parent
6aa390ab
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
66 deletions
+65
-66
common.go
vm/common.go
+16
-62
gas.go
vm/gas.go
+49
-0
vm.go
vm/vm.go
+0
-4
No files found.
vm/common.go
View file @
4e181c57
...
...
@@ -18,8 +18,23 @@ type Type byte
const
(
StdVmTy
Type
=
iota
JitVmTy
MaxVmTy
MaxCallDepth
=
1025
LogTyPretty
byte
=
0x1
LogTyDiff
byte
=
0x2
)
var
(
Pow256
=
common
.
BigPow
(
2
,
256
)
U256
=
common
.
U256
S256
=
common
.
S256
Zero
=
common
.
Big0
max
=
big
.
NewInt
(
math
.
MaxInt64
)
)
func
NewVm
(
env
Environment
)
VirtualMachine
{
...
...
@@ -34,67 +49,6 @@ func NewVm(env Environment) VirtualMachine {
}
}
var
(
GasQuickStep
=
big
.
NewInt
(
2
)
GasFastestStep
=
big
.
NewInt
(
3
)
GasFastStep
=
big
.
NewInt
(
5
)
GasMidStep
=
big
.
NewInt
(
8
)
GasSlowStep
=
big
.
NewInt
(
10
)
GasExtStep
=
big
.
NewInt
(
20
)
GasStorageGet
=
big
.
NewInt
(
50
)
GasStorageAdd
=
big
.
NewInt
(
20000
)
GasStorageMod
=
big
.
NewInt
(
5000
)
GasLogBase
=
big
.
NewInt
(
375
)
GasLogTopic
=
big
.
NewInt
(
375
)
GasLogByte
=
big
.
NewInt
(
8
)
GasCreate
=
big
.
NewInt
(
32000
)
GasCreateByte
=
big
.
NewInt
(
200
)
GasCall
=
big
.
NewInt
(
40
)
GasCallValueTransfer
=
big
.
NewInt
(
9000
)
GasStipend
=
big
.
NewInt
(
2300
)
GasCallNewAccount
=
big
.
NewInt
(
25000
)
GasReturn
=
big
.
NewInt
(
0
)
GasStop
=
big
.
NewInt
(
0
)
GasJumpDest
=
big
.
NewInt
(
1
)
RefundStorage
=
big
.
NewInt
(
15000
)
RefundSuicide
=
big
.
NewInt
(
24000
)
GasMemWord
=
big
.
NewInt
(
3
)
GasQuadCoeffDenom
=
big
.
NewInt
(
512
)
GasContractByte
=
big
.
NewInt
(
200
)
GasTransaction
=
big
.
NewInt
(
21000
)
GasTxDataNonzeroByte
=
big
.
NewInt
(
68
)
GasTxDataZeroByte
=
big
.
NewInt
(
4
)
GasTx
=
big
.
NewInt
(
21000
)
GasExp
=
big
.
NewInt
(
10
)
GasExpByte
=
big
.
NewInt
(
10
)
GasSha3Base
=
big
.
NewInt
(
30
)
GasSha3Word
=
big
.
NewInt
(
6
)
GasSha256Base
=
big
.
NewInt
(
60
)
GasSha256Word
=
big
.
NewInt
(
12
)
GasRipemdBase
=
big
.
NewInt
(
600
)
GasRipemdWord
=
big
.
NewInt
(
12
)
GasEcrecover
=
big
.
NewInt
(
3000
)
GasIdentityBase
=
big
.
NewInt
(
15
)
GasIdentityWord
=
big
.
NewInt
(
3
)
GasCopyWord
=
big
.
NewInt
(
3
)
Pow256
=
common
.
BigPow
(
2
,
256
)
LogTyPretty
byte
=
0x1
LogTyDiff
byte
=
0x2
U256
=
common
.
U256
S256
=
common
.
S256
Zero
=
common
.
Big0
)
const
MaxCallDepth
=
1025
func
calcMemSize
(
off
,
l
*
big
.
Int
)
*
big
.
Int
{
if
l
.
Cmp
(
common
.
Big0
)
==
0
{
return
common
.
Big0
...
...
vm/gas.go
View file @
4e181c57
...
...
@@ -7,6 +7,55 @@ type req struct {
gas
*
big
.
Int
}
var
(
GasQuickStep
=
big
.
NewInt
(
2
)
GasFastestStep
=
big
.
NewInt
(
3
)
GasFastStep
=
big
.
NewInt
(
5
)
GasMidStep
=
big
.
NewInt
(
8
)
GasSlowStep
=
big
.
NewInt
(
10
)
GasExtStep
=
big
.
NewInt
(
20
)
GasStorageGet
=
big
.
NewInt
(
50
)
GasStorageAdd
=
big
.
NewInt
(
20000
)
GasStorageMod
=
big
.
NewInt
(
5000
)
GasLogBase
=
big
.
NewInt
(
375
)
GasLogTopic
=
big
.
NewInt
(
375
)
GasLogByte
=
big
.
NewInt
(
8
)
GasCreate
=
big
.
NewInt
(
32000
)
GasCreateByte
=
big
.
NewInt
(
200
)
GasCall
=
big
.
NewInt
(
40
)
GasCallValueTransfer
=
big
.
NewInt
(
9000
)
GasStipend
=
big
.
NewInt
(
2300
)
GasCallNewAccount
=
big
.
NewInt
(
25000
)
GasReturn
=
big
.
NewInt
(
0
)
GasStop
=
big
.
NewInt
(
0
)
GasJumpDest
=
big
.
NewInt
(
1
)
RefundStorage
=
big
.
NewInt
(
15000
)
RefundSuicide
=
big
.
NewInt
(
24000
)
GasMemWord
=
big
.
NewInt
(
3
)
GasQuadCoeffDenom
=
big
.
NewInt
(
512
)
GasContractByte
=
big
.
NewInt
(
200
)
GasTransaction
=
big
.
NewInt
(
21000
)
GasTxDataNonzeroByte
=
big
.
NewInt
(
68
)
GasTxDataZeroByte
=
big
.
NewInt
(
4
)
GasTx
=
big
.
NewInt
(
21000
)
GasExp
=
big
.
NewInt
(
10
)
GasExpByte
=
big
.
NewInt
(
10
)
GasSha3Base
=
big
.
NewInt
(
30
)
GasSha3Word
=
big
.
NewInt
(
6
)
GasSha256Base
=
big
.
NewInt
(
60
)
GasSha256Word
=
big
.
NewInt
(
12
)
GasRipemdBase
=
big
.
NewInt
(
600
)
GasRipemdWord
=
big
.
NewInt
(
12
)
GasEcrecover
=
big
.
NewInt
(
3000
)
GasIdentityBase
=
big
.
NewInt
(
15
)
GasIdentityWord
=
big
.
NewInt
(
3
)
GasCopyWord
=
big
.
NewInt
(
3
)
)
var
_baseCheck
=
map
[
OpCode
]
req
{
// Req stack Gas price
ADD
:
{
2
,
GasFastestStep
},
...
...
vm/vm.go
View file @
4e181c57
...
...
@@ -33,10 +33,7 @@ func New(env Environment) *Vm {
}
func
(
self
*
Vm
)
Run
(
context
*
Context
,
callData
[]
byte
)
(
ret
[]
byte
,
err
error
)
{
//func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
self
.
env
.
SetDepth
(
self
.
env
.
Depth
()
+
1
)
//context := NewContext(caller, me, code, gas, price)
var
(
caller
=
context
.
caller
code
=
context
.
Code
...
...
@@ -57,7 +54,6 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) {
ret
=
context
.
Return
(
nil
)
err
=
fmt
.
Errorf
(
"%v"
,
r
)
}
}()
}
...
...
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