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
a1c830cd
Commit
a1c830cd
authored
Feb 26, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Defautl block
parent
49ded3aa
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
488 additions
and
316 deletions
+488
-316
info.html
cmd/mist/assets/examples/info.html
+5
-2
ethereum.js
cmd/mist/assets/ext/ethereum.js/dist/ethereum.js
+452
-282
api.go
rpc/api.go
+31
-32
No files found.
cmd/mist/assets/examples/info.html
View file @
a1c830cd
...
...
@@ -62,6 +62,8 @@
web3
.
setProvider
(
new
web3
.
providers
.
HttpSyncProvider
(
'http://localhost:8545'
));
eth
.
defaultBlock
=
-
2
document
.
querySelector
(
"#number"
).
innerHTML
=
eth
.
number
;
document
.
querySelector
(
"#coinbase"
).
innerHTML
=
eth
.
coinbase
document
.
querySelector
(
"#peer_count"
).
innerHTML
=
eth
.
peerCount
;
...
...
@@ -72,8 +74,9 @@
document
.
querySelector
(
"#mining"
).
innerHTML
=
eth
.
mining
;
document
.
querySelector
(
"#listening"
).
innerHTML
=
eth
.
listening
;
eth
.
watch
(
'chain'
).
changed
(
function
()
{
document
.
querySelector
(
"#number"
).
innerHTML
=
eth
.
number
;
});
document
.
querySelector
(
"#number"
).
innerHTML
=
eth
.
number
;
});
</script>
...
...
cmd/mist/assets/ext/ethereum.js/dist/ethereum.js
View file @
a1c830cd
This diff is collapsed.
Click to expand it.
rpc/api.go
View file @
a1c830cd
...
...
@@ -52,19 +52,20 @@ type EthereumApi struct {
db
ethutil
.
Database
defaultBlockAge
int
defaultBlockAge
int
64
}
func
NewEthereumApi
(
eth
*
xeth
.
XEth
)
*
EthereumApi
{
db
,
_
:=
ethdb
.
NewLDBDatabase
(
"dapps"
)
api
:=
&
EthereumApi
{
eth
:
eth
,
mux
:
eth
.
Backend
()
.
EventMux
(),
quit
:
make
(
chan
struct
{}),
filterManager
:
filter
.
NewFilterManager
(
eth
.
Backend
()
.
EventMux
()),
logs
:
make
(
map
[
int
]
*
logFilter
),
messages
:
make
(
map
[
int
]
*
whisperFilter
),
db
:
db
,
eth
:
eth
,
mux
:
eth
.
Backend
()
.
EventMux
(),
quit
:
make
(
chan
struct
{}),
filterManager
:
filter
.
NewFilterManager
(
eth
.
Backend
()
.
EventMux
()),
logs
:
make
(
map
[
int
]
*
logFilter
),
messages
:
make
(
map
[
int
]
*
whisperFilter
),
db
:
db
,
defaultBlockAge
:
-
1
,
}
go
api
.
filterManager
.
Start
()
go
api
.
start
()
...
...
@@ -72,6 +73,22 @@ func NewEthereumApi(eth *xeth.XEth) *EthereumApi {
return
api
}
func
(
self
*
EthereumApi
)
setStateByBlockNumber
(
num
int64
)
{
chain
:=
self
.
xeth
()
.
Backend
()
.
ChainManager
()
var
block
*
types
.
Block
if
self
.
defaultBlockAge
<
0
{
num
=
chain
.
CurrentBlock
()
.
Number
()
.
Int64
()
+
num
+
1
}
block
=
chain
.
GetBlockByNumber
(
uint64
(
num
))
if
block
!=
nil
{
self
.
useState
(
state
.
New
(
block
.
Root
(),
self
.
xeth
()
.
Backend
()
.
Db
()))
}
else
{
self
.
useState
(
chain
.
State
())
}
}
func
(
self
*
EthereumApi
)
start
()
{
timer
:=
time
.
NewTicker
(
filterTickerTime
)
events
:=
self
.
mux
.
Subscribe
(
core
.
ChainEvent
{})
...
...
@@ -83,12 +100,7 @@ done:
switch
ev
.
(
type
)
{
case
core
.
ChainEvent
:
if
self
.
defaultBlockAge
<
0
{
chain
:=
self
.
xeth
()
.
Backend
()
.
ChainManager
()
block
:=
chain
.
GetBlockByNumber
(
chain
.
CurrentBlock
()
.
Number
()
.
Uint64
()
-
uint64
(
self
.
defaultBlockAge
))
if
block
!=
nil
{
statedb
:=
state
.
New
(
block
.
Root
(),
self
.
db
)
self
.
useState
(
statedb
)
}
self
.
setStateByBlockNumber
(
self
.
defaultBlockAge
)
}
}
case
<-
timer
.
C
:
...
...
@@ -239,21 +251,6 @@ func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error {
return
nil
}
/*
func unlockAccount(server, account *Account) bool {
pwd, status := server.PasswordDialog()
switch status {
case Ok:
if !account.Unlock([]byte(pwd)) {
return unlockAccount(account)
}
return true
default:
return false
}
}
*/
func
(
p
*
EthereumApi
)
Transact
(
args
*
NewTxArgs
,
reply
*
interface
{})
error
{
if
len
(
args
.
Gas
)
==
0
{
args
.
Gas
=
defaultGas
.
String
()
...
...
@@ -378,8 +375,10 @@ func (p *EthereumApi) GetDefaultBlockAge(reply *interface{}) error {
return
nil
}
func
(
p
*
EthereumApi
)
SetDefaultBlockAge
(
defaultBlockAge
int
,
reply
*
interface
{})
error
{
func
(
p
*
EthereumApi
)
SetDefaultBlockAge
(
defaultBlockAge
int
64
,
reply
*
interface
{})
error
{
p
.
defaultBlockAge
=
defaultBlockAge
p
.
setStateByBlockNumber
(
p
.
defaultBlockAge
)
*
reply
=
true
return
nil
}
...
...
@@ -531,7 +530,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
if
err
!=
nil
{
return
err
}
return
p
.
SetDefaultBlockAge
(
args
,
reply
)
return
p
.
SetDefaultBlockAge
(
int64
(
args
)
,
reply
)
case
"eth_peerCount"
:
return
p
.
GetPeerCount
(
reply
)
case
"eth_number"
:
...
...
@@ -720,7 +719,7 @@ func (self *EthereumApi) useState(statedb *state.StateDB) {
self
.
xethMu
.
Lock
()
defer
self
.
xethMu
.
Unlock
()
self
.
eth
=
self
.
xeth
()
.
UseState
(
statedb
)
self
.
eth
=
self
.
eth
.
UseState
(
statedb
)
}
func
t
(
f
ui
.
Frontend
)
{
...
...
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