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
cbce882f
Commit
cbce882f
authored
May 15, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Basic javascript console
parent
3a2bddc1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
0 deletions
+85
-0
config.go
ethereum/config.go
+2
-0
ethereum.go
ethereum/ethereum.go
+7
-0
javascript_console.go
ethereum/javascript_console.go
+76
-0
No files found.
ethereum/config.go
View file @
cbce882f
...
...
@@ -20,6 +20,7 @@ var ExportKey bool
var
LogFile
string
var
DataDir
string
var
NonInteractive
bool
var
StartExp
bool
func
Init
()
{
flag
.
BoolVar
(
&
StartConsole
,
"c"
,
false
,
"debug and testing console"
)
...
...
@@ -38,6 +39,7 @@ func Init() {
flag
.
StringVar
(
&
DataDir
,
"dir"
,
".ethereum"
,
"ethereum data directory"
)
flag
.
StringVar
(
&
ImportKey
,
"import"
,
""
,
"imports the given private key (hex)"
)
flag
.
IntVar
(
&
MaxPeer
,
"x"
,
5
,
"maximum desired peers"
)
flag
.
BoolVar
(
&
StartExp
,
"ex"
,
false
,
"exp"
)
flag
.
Parse
()
}
ethereum/ethereum.go
View file @
cbce882f
...
...
@@ -146,6 +146,13 @@ save these words so you can restore your account later: %s
console
:=
NewConsole
(
ethereum
)
go
console
.
Start
()
}
if
StartExp
{
c
:=
NewJSConsole
(
ethereum
)
go
c
.
Start
()
}
if
StartRpc
{
utils
.
DoRpc
(
ethereum
,
RpcPort
)
}
...
...
ethereum/javascript_console.go
0 → 100644
View file @
cbce882f
package
main
import
(
"bufio"
"fmt"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethpub"
"github.com/robertkrimen/otto"
"os"
)
type
JSConsole
struct
{
vm
*
otto
.
Otto
lib
*
ethpub
.
PEthereum
}
func
NewJSConsole
(
ethereum
*
eth
.
Ethereum
)
*
JSConsole
{
return
&
JSConsole
{
vm
:
otto
.
New
(),
lib
:
ethpub
.
NewPEthereum
(
ethereum
)}
}
func
(
self
*
JSConsole
)
Start
()
{
self
.
initBindings
()
fmt
.
Println
(
"Eth JS Console"
)
reader
:=
bufio
.
NewReader
(
os
.
Stdin
)
for
{
fmt
.
Printf
(
"eth >>> "
)
str
,
_
,
err
:=
reader
.
ReadLine
()
if
err
!=
nil
{
fmt
.
Println
(
"Error reading input"
,
err
)
}
else
{
if
string
(
str
)
==
"quit"
{
return
}
self
.
ParseInput
(
string
(
str
))
}
}
}
func
(
self
*
JSConsole
)
ParseInput
(
code
string
)
{
value
,
err
:=
self
.
vm
.
Run
(
code
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
return
}
fmt
.
Println
(
value
)
}
type
OtherStruct
struct
{
Test
string
}
type
JSWrapper
struct
{
pub
*
ethpub
.
PEthereum
vm
*
otto
.
Otto
}
func
(
self
*
JSWrapper
)
GetKey
()
otto
.
Value
{
result
,
err
:=
self
.
vm
.
ToValue
(
self
.
pub
.
GetKey
())
if
err
!=
nil
{
fmt
.
Println
(
err
)
return
otto
.
UndefinedValue
()
}
return
result
}
func
(
self
*
JSConsole
)
initBindings
()
{
t
:=
&
JSWrapper
{
self
.
lib
,
self
.
vm
}
self
.
vm
.
Set
(
"eth"
,
t
)
}
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