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
f49e398e
Commit
f49e398e
authored
Apr 03, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bool => int
parent
29a9c6be
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
63 additions
and
63 deletions
+63
-63
gas.go
core/vm/gas.go
+63
-63
No files found.
core/vm/gas.go
View file @
f49e398e
...
...
@@ -38,7 +38,7 @@ func baseCheck(op OpCode, stack *stack, gas *big.Int) error {
return
err
}
if
r
.
stackPush
&&
len
(
stack
.
data
)
-
r
.
stackPop
>
int
(
params
.
StackLimit
.
Int64
())
{
if
r
.
stackPush
>
0
&&
len
(
stack
.
data
)
-
r
.
stackPop
+
r
.
stackPush
>
int
(
params
.
StackLimit
.
Int64
())
+
1
{
return
fmt
.
Errorf
(
"stack limit reached %d (%d)"
,
len
(
stack
.
data
),
params
.
StackLimit
.
Int64
())
}
...
...
@@ -57,70 +57,70 @@ func toWordSize(size *big.Int) *big.Int {
type
req
struct
{
stackPop
int
gas
*
big
.
Int
stackPush
bool
stackPush
int
}
var
_baseCheck
=
map
[
OpCode
]
req
{
// opcode | stack pop | gas price | stack push
ADD
:
{
2
,
GasFastestStep
,
true
},
LT
:
{
2
,
GasFastestStep
,
true
},
GT
:
{
2
,
GasFastestStep
,
true
},
SLT
:
{
2
,
GasFastestStep
,
true
},
SGT
:
{
2
,
GasFastestStep
,
true
},
EQ
:
{
2
,
GasFastestStep
,
true
},
ISZERO
:
{
1
,
GasFastestStep
,
true
},
SUB
:
{
2
,
GasFastestStep
,
true
},
AND
:
{
2
,
GasFastestStep
,
true
},
OR
:
{
2
,
GasFastestStep
,
true
},
XOR
:
{
2
,
GasFastestStep
,
true
},
NOT
:
{
1
,
GasFastestStep
,
true
},
BYTE
:
{
2
,
GasFastestStep
,
true
},
CALLDATALOAD
:
{
1
,
GasFastestStep
,
true
},
CALLDATACOPY
:
{
3
,
GasFastestStep
,
true
},
MLOAD
:
{
1
,
GasFastestStep
,
true
},
MSTORE
:
{
2
,
GasFastestStep
,
false
},
MSTORE8
:
{
2
,
GasFastestStep
,
false
},
CODECOPY
:
{
3
,
GasFastestStep
,
false
},
MUL
:
{
2
,
GasFastStep
,
true
},
DIV
:
{
2
,
GasFastStep
,
true
},
SDIV
:
{
2
,
GasFastStep
,
true
},
MOD
:
{
2
,
GasFastStep
,
true
},
SMOD
:
{
2
,
GasFastStep
,
true
},
SIGNEXTEND
:
{
2
,
GasFastStep
,
true
},
ADDMOD
:
{
3
,
GasMidStep
,
true
},
MULMOD
:
{
3
,
GasMidStep
,
true
},
JUMP
:
{
1
,
GasMidStep
,
false
},
JUMPI
:
{
2
,
GasSlowStep
,
false
},
EXP
:
{
2
,
GasSlowStep
,
true
},
ADDRESS
:
{
0
,
GasQuickStep
,
true
},
ORIGIN
:
{
0
,
GasQuickStep
,
true
},
CALLER
:
{
0
,
GasQuickStep
,
true
},
CALLVALUE
:
{
0
,
GasQuickStep
,
true
},
CODESIZE
:
{
0
,
GasQuickStep
,
true
},
GASPRICE
:
{
0
,
GasQuickStep
,
true
},
COINBASE
:
{
0
,
GasQuickStep
,
true
},
TIMESTAMP
:
{
0
,
GasQuickStep
,
true
},
NUMBER
:
{
0
,
GasQuickStep
,
true
},
CALLDATASIZE
:
{
0
,
GasQuickStep
,
true
},
DIFFICULTY
:
{
0
,
GasQuickStep
,
true
},
GASLIMIT
:
{
0
,
GasQuickStep
,
true
},
POP
:
{
1
,
GasQuickStep
,
false
},
PC
:
{
0
,
GasQuickStep
,
true
},
MSIZE
:
{
0
,
GasQuickStep
,
true
},
GAS
:
{
0
,
GasQuickStep
,
true
},
BLOCKHASH
:
{
1
,
GasExtStep
,
true
},
BALANCE
:
{
1
,
GasExtStep
,
true
},
EXTCODESIZE
:
{
1
,
GasExtStep
,
true
},
EXTCODECOPY
:
{
4
,
GasExtStep
,
false
},
SLOAD
:
{
1
,
params
.
SloadGas
,
true
},
SSTORE
:
{
2
,
Zero
,
false
},
SHA3
:
{
2
,
params
.
Sha3Gas
,
true
},
CREATE
:
{
3
,
params
.
CreateGas
,
true
},
CALL
:
{
7
,
params
.
CallGas
,
true
},
CALLCODE
:
{
7
,
params
.
CallGas
,
true
},
JUMPDEST
:
{
0
,
params
.
JumpdestGas
,
false
},
SUICIDE
:
{
1
,
Zero
,
false
},
RETURN
:
{
2
,
Zero
,
false
},
PUSH1
:
{
0
,
GasFastestStep
,
true
},
DUP1
:
{
0
,
Zero
,
true
},
ADD
:
{
2
,
GasFastestStep
,
1
},
LT
:
{
2
,
GasFastestStep
,
1
},
GT
:
{
2
,
GasFastestStep
,
1
},
SLT
:
{
2
,
GasFastestStep
,
1
},
SGT
:
{
2
,
GasFastestStep
,
1
},
EQ
:
{
2
,
GasFastestStep
,
1
},
ISZERO
:
{
1
,
GasFastestStep
,
1
},
SUB
:
{
2
,
GasFastestStep
,
1
},
AND
:
{
2
,
GasFastestStep
,
1
},
OR
:
{
2
,
GasFastestStep
,
1
},
XOR
:
{
2
,
GasFastestStep
,
1
},
NOT
:
{
1
,
GasFastestStep
,
1
},
BYTE
:
{
2
,
GasFastestStep
,
1
},
CALLDATALOAD
:
{
1
,
GasFastestStep
,
1
},
CALLDATACOPY
:
{
3
,
GasFastestStep
,
1
},
MLOAD
:
{
1
,
GasFastestStep
,
1
},
MSTORE
:
{
2
,
GasFastestStep
,
0
},
MSTORE8
:
{
2
,
GasFastestStep
,
0
},
CODECOPY
:
{
3
,
GasFastestStep
,
0
},
MUL
:
{
2
,
GasFastStep
,
1
},
DIV
:
{
2
,
GasFastStep
,
1
},
SDIV
:
{
2
,
GasFastStep
,
1
},
MOD
:
{
2
,
GasFastStep
,
1
},
SMOD
:
{
2
,
GasFastStep
,
1
},
SIGNEXTEND
:
{
2
,
GasFastStep
,
1
},
ADDMOD
:
{
3
,
GasMidStep
,
1
},
MULMOD
:
{
3
,
GasMidStep
,
1
},
JUMP
:
{
1
,
GasMidStep
,
0
},
JUMPI
:
{
2
,
GasSlowStep
,
0
},
EXP
:
{
2
,
GasSlowStep
,
1
},
ADDRESS
:
{
0
,
GasQuickStep
,
1
},
ORIGIN
:
{
0
,
GasQuickStep
,
1
},
CALLER
:
{
0
,
GasQuickStep
,
1
},
CALLVALUE
:
{
0
,
GasQuickStep
,
1
},
CODESIZE
:
{
0
,
GasQuickStep
,
1
},
GASPRICE
:
{
0
,
GasQuickStep
,
1
},
COINBASE
:
{
0
,
GasQuickStep
,
1
},
TIMESTAMP
:
{
0
,
GasQuickStep
,
1
},
NUMBER
:
{
0
,
GasQuickStep
,
1
},
CALLDATASIZE
:
{
0
,
GasQuickStep
,
1
},
DIFFICULTY
:
{
0
,
GasQuickStep
,
1
},
GASLIMIT
:
{
0
,
GasQuickStep
,
1
},
POP
:
{
1
,
GasQuickStep
,
0
},
PC
:
{
0
,
GasQuickStep
,
1
},
MSIZE
:
{
0
,
GasQuickStep
,
1
},
GAS
:
{
0
,
GasQuickStep
,
1
},
BLOCKHASH
:
{
1
,
GasExtStep
,
1
},
BALANCE
:
{
1
,
GasExtStep
,
1
},
EXTCODESIZE
:
{
1
,
GasExtStep
,
1
},
EXTCODECOPY
:
{
4
,
GasExtStep
,
0
},
SLOAD
:
{
1
,
params
.
SloadGas
,
1
},
SSTORE
:
{
2
,
Zero
,
0
},
SHA3
:
{
2
,
params
.
Sha3Gas
,
1
},
CREATE
:
{
3
,
params
.
CreateGas
,
1
},
CALL
:
{
7
,
params
.
CallGas
,
1
},
CALLCODE
:
{
7
,
params
.
CallGas
,
1
},
JUMPDEST
:
{
0
,
params
.
JumpdestGas
,
0
},
SUICIDE
:
{
1
,
Zero
,
0
},
RETURN
:
{
2
,
Zero
,
0
},
PUSH1
:
{
0
,
GasFastestStep
,
1
},
DUP1
:
{
0
,
Zero
,
1
},
}
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