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
09f37bd0
Commit
09f37bd0
authored
Jun 19, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Returned to single method
parent
8f29f6a4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
29 deletions
+6
-29
state_transition.go
ethchain/state_transition.go
+6
-29
No files found.
ethchain/state_transition.go
View file @
09f37bd0
...
...
@@ -34,23 +34,6 @@ type StateTransition struct {
cb
,
rec
,
sen
*
StateObject
}
func
Transition
(
coinbase
,
sender
,
receiver
,
data
[]
byte
,
gas
,
gasPrice
,
value
*
big
.
Int
,
state
*
State
,
block
*
Block
)
(
ret
[]
byte
,
err
error
)
{
stateTransition
:=
&
StateTransition
{
coinbase
:
coinbase
,
receiver
:
receiver
,
cb
:
state
.
GetOrNewStateObject
(
coinbase
),
rec
:
state
.
GetOrNewStateObject
(
receiver
),
sen
:
state
.
GetOrNewStateObject
(
sender
),
gas
:
gas
,
gasPrice
:
gasPrice
,
value
:
value
,
state
:
state
,
block
:
block
,
}
return
stateTransition
.
Transition
()
}
func
NewStateTransition
(
coinbase
*
StateObject
,
tx
*
Transaction
,
state
*
State
,
block
*
Block
)
*
StateTransition
{
return
&
StateTransition
{
coinbase
.
Address
(),
tx
.
Recipient
,
tx
,
new
(
big
.
Int
),
new
(
big
.
Int
)
.
Set
(
tx
.
GasPrice
),
tx
.
Value
,
tx
.
Data
,
state
,
block
,
coinbase
,
nil
,
nil
}
}
...
...
@@ -168,20 +151,14 @@ func (self *StateTransition) TransitionState() (err error) {
return
}
defer
self
.
RefundGas
()
_
,
err
=
self
.
Transition
()
return
}
func
(
self
*
StateTransition
)
Transition
()
(
ret
[]
byte
,
err
error
)
{
var
(
tx
=
self
.
tx
sender
=
self
.
Sender
()
receiver
*
StateObject
)
defer
self
.
RefundGas
()
// Increment the nonce for the next transaction
sender
.
Nonce
+=
1
...
...
@@ -204,7 +181,7 @@ func (self *StateTransition) Transition() (ret []byte, err error) {
// Create a new state object for the contract
receiver
=
self
.
MakeStateObject
(
self
.
state
,
tx
)
if
receiver
==
nil
{
return
nil
,
fmt
.
Errorf
(
"Unable to create contract"
)
return
fmt
.
Errorf
(
"Unable to create contract"
)
}
}
...
...
@@ -224,18 +201,18 @@ func (self *StateTransition) Transition() (ret []byte, err error) {
if
err
!=
nil
||
deepErr
{
self
.
state
.
ResetStateObject
(
receiver
)
return
nil
,
fmt
.
Errorf
(
"Error during init script run %v (deepErr = %v)"
,
err
,
deepErr
)
return
fmt
.
Errorf
(
"Error during init script run %v (deepErr = %v)"
,
err
,
deepErr
)
}
receiver
.
script
=
code
}
else
{
if
len
(
receiver
.
Script
())
>
0
{
var
deepErr
bool
ret
,
err
,
deepErr
=
self
.
Eval
(
receiver
.
Script
(),
receiver
)
_
,
err
,
deepErr
=
self
.
Eval
(
receiver
.
Script
(),
receiver
)
if
err
!=
nil
{
self
.
state
.
ResetStateObject
(
receiver
)
return
nil
,
fmt
.
Errorf
(
"Error during code execution %v (deepErr = %v)"
,
err
,
deepErr
)
return
fmt
.
Errorf
(
"Error during code execution %v (deepErr = %v)"
,
err
,
deepErr
)
}
}
}
...
...
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