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
c9db8727
Commit
c9db8727
authored
May 14, 2014
by
Maran
Browse files
Options
Browse Files
Download
Plain Diff
Fix merge conflicts
parents
2c7b625d
f18ec51c
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
107 additions
and
72 deletions
+107
-72
README.md
README.md
+1
-1
index.html
ethereal/assets/muted/index.html
+1
-0
samplecoin.html
ethereal/assets/samplecoin/samplecoin.html
+1
-3
ethereum.go
ethereal/ethereum.go
+13
-2
gui.go
ethereal/ui/gui.go
+4
-45
library.go
ethereal/ui/library.go
+8
-5
ui_lib.go
ethereal/ui/ui_lib.go
+1
-1
dev_console.go
ethereum/dev_console.go
+4
-4
ethereum.go
ethereum/ethereum.go
+13
-2
cmd.go
utils/cmd.go
+4
-9
keys.go
utils/keys.go
+57
-0
No files found.
README.md
View file @
c9db8727
...
...
@@ -5,7 +5,7 @@ Ethereum
Ethereum Go Client © 2014 Jeffrey Wilcke.
Current state: Proof of Concept 5.0 RC
3
.
Current state: Proof of Concept 5.0 RC
4
.
For the development package please see the
[
eth-go package
](
https://github.com/ethereum/eth-go
)
.
...
...
ethereal/assets/muted/index.html
View file @
c9db8727
...
...
@@ -46,6 +46,7 @@
.CodeMirror
{
height
:
70%
;
font-size
:
14pt
;
}
</style>
</head>
...
...
ethereal/assets/samplecoin/samplecoin.html
View file @
c9db8727
...
...
@@ -9,7 +9,7 @@
<script
type=
"text/javascript"
>
var
jefcoinAddr
=
"
b7cb72c47ec4f31751d0d628b5a33fd6671bbba0
"
var
jefcoinAddr
=
"
681fd48ffa236549fbcd16bdf9f98bb541a7f742
"
var
mAddr
=
""
function
createTransaction
()
{
...
...
@@ -23,8 +23,6 @@ function createTransaction() {
}
function
init
()
{
eth
.
set
({
width
:
500
});
eth
.
getKey
(
function
(
sec
)
{
mAddr
=
sec
;
eth
.
getSecretToAddress
(
sec
,
function
(
addr
)
{
...
...
ethereal/ethereum.go
View file @
c9db8727
...
...
@@ -87,8 +87,19 @@ func main() {
}
if
ExportKey
{
key
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
fmt
.
Printf
(
"%x
\n
"
,
key
.
PrivateKey
)
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
fmt
.
Printf
(
`
Generating new address and keypair.
Please keep your keys somewhere save.
++++++++++++++++ KeyRing +++++++++++++++++++
addr: %x
prvk: %x
pubk: %x
++++++++++++++++++++++++++++++++++++++++++++
save these words so you can restore your account later: %s
`
,
keyPair
.
Address
(),
keyPair
.
PrivateKey
,
keyPair
.
PublicKey
)
os
.
Exit
(
0
)
}
...
...
ethereal/ui/gui.go
View file @
c9db8727
...
...
@@ -42,15 +42,11 @@ func New(ethereum *eth.Ethereum) *Gui {
panic
(
err
)
}
data
,
_
:=
ethutil
.
Config
.
Db
.
Get
([]
byte
(
"KeyRing"
))
// On first run we won't have any keys yet, so this would crash.
// Therefor we check if we are ready to actually start this process
var
addr
[]
byte
if
len
(
data
)
>
0
{
key
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
addr
=
key
.
Address
()
//ethereum.StateManager().WatchAddr(addr)
if
ethutil
.
GetKeyRing
()
.
Len
()
!=
0
{
addr
=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
.
Address
()
}
pub
:=
ethpub
.
NewPEthereum
(
ethereum
)
...
...
@@ -81,43 +77,6 @@ func (gui *Gui) Start(assetPath string) {
// Load the main QML interface
data
,
_
:=
ethutil
.
Config
.
Db
.
Get
([]
byte
(
"KeyRing"
))
/*
var err error
var component qml.Object
firstRun := len(data) == 0
if firstRun {
component, err = gui.engine.LoadFile(uiLib.AssetPath("qml/first_run.qml"))
} else {
component, err = gui.engine.LoadFile(uiLib.AssetPath("qml/wallet.qml"))
}
if err != nil {
ethutil.Config.Log.Infoln("FATAL: asset not found: you can set an alternative asset path on on the command line using option 'asset_path'")
panic(err)
}
gui.win = component.CreateWindow(nil)
uiLib.win = gui.win
db := &Debugger{gui.win, make(chan bool)}
gui.lib.Db = db
uiLib.Db = db
// Add the ui as a log system so we can log directly to the UGI
ethutil.Config.Log.AddLogSystem(gui)
// Loads previous blocks
if firstRun == false {
go gui.setInitialBlockChain()
go gui.readPreviousTransactions()
go gui.update()
}
gui.win.Show()
gui.win.Wait()
gui.eth.Stop()
*/
var
win
*
qml
.
Window
var
err
error
...
...
@@ -274,13 +233,13 @@ func (gui *Gui) Printf(format string, v ...interface{}) {
}
func
(
gui
*
Gui
)
Transact
(
recipient
,
value
,
gas
,
gasPrice
,
data
string
)
(
*
ethpub
.
PReceipt
,
error
)
{
keyPair
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
return
gui
.
pub
.
Transact
(
ethutil
.
Hex
(
keyPair
.
PrivateKey
),
recipient
,
value
,
gas
,
gasPrice
,
data
)
}
func
(
gui
*
Gui
)
Create
(
recipient
,
value
,
gas
,
gasPrice
,
data
string
)
(
*
ethpub
.
PReceipt
,
error
)
{
keyPair
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
mainInput
,
initInput
:=
mutan
.
PreParse
(
data
)
...
...
ethereal/ui/library.go
View file @
c9db8727
...
...
@@ -34,10 +34,13 @@ func (lib *EthLib) ImportAndSetPrivKey(privKey string) bool {
}
func
(
lib
*
EthLib
)
CreateAndSetPrivKey
()
(
string
,
string
,
string
,
string
)
{
pub
,
prv
:=
secp256k1
.
GenerateKeyPair
()
pair
:=
&
ethutil
.
Key
{
PrivateKey
:
prv
,
PublicKey
:
pub
}
ethutil
.
Config
.
Db
.
Put
([]
byte
(
"KeyRing"
),
pair
.
RlpEncode
())
mne
:=
ethutil
.
MnemonicEncode
(
ethutil
.
Hex
(
prv
))
_
,
prv
:=
secp256k1
.
GenerateKeyPair
()
keyPair
,
err
:=
ethutil
.
GetKeyRing
()
.
NewKeyPair
(
prv
)
if
err
!=
nil
{
panic
(
err
)
}
mne
:=
ethutil
.
MnemonicEncode
(
ethutil
.
Hex
(
keyPair
.
PrivateKey
))
mnemonicString
:=
strings
.
Join
(
mne
,
" "
)
return
mnemonicString
,
fmt
.
Sprintf
(
"%x"
,
pair
.
Address
()),
fmt
.
Sprintf
(
"%x"
,
prv
),
fmt
.
Sprintf
(
"%x"
,
pub
)
return
mnemonicString
,
fmt
.
Sprintf
(
"%x"
,
keyPair
.
Address
()),
ethutil
.
Hex
(
keyPair
.
PrivateKey
),
ethutil
.
Hex
(
keyPair
.
PublicKey
)
}
ethereal/ui/ui_lib.go
View file @
c9db8727
...
...
@@ -138,7 +138,7 @@ func (ui *UiLib) DebugTx(recipient, valueStr, gasStr, gasPriceStr, data string)
callerTx
:=
ethchain
.
NewContractCreationTx
(
ethutil
.
Big
(
valueStr
),
ethutil
.
Big
(
gasStr
),
ethutil
.
Big
(
gasPriceStr
),
callerScript
,
nil
)
// Contract addr as test address
keyPair
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
account
:=
ui
.
eth
.
StateManager
()
.
TransState
()
.
GetStateObject
(
keyPair
.
Address
())
c
:=
ethchain
.
MakeContract
(
callerTx
,
state
)
callerClosure
:=
ethchain
.
NewClosure
(
account
,
c
,
c
.
Script
(),
state
,
ethutil
.
Big
(
gasStr
),
ethutil
.
Big
(
gasPriceStr
))
...
...
ethereum/dev_console.go
View file @
c9db8727
...
...
@@ -173,8 +173,8 @@ func (i *Console) ParseInput(input string) bool {
}
else
{
tx
:=
ethchain
.
NewTransactionMessage
(
recipient
,
ethutil
.
Big
(
tokens
[
2
]),
ethutil
.
Big
(
tokens
[
3
]),
ethutil
.
Big
(
tokens
[
4
]),
nil
)
key
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
tx
.
Sign
(
key
.
PrivateKey
)
key
Pair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
tx
.
Sign
(
key
Pair
.
PrivateKey
)
i
.
ethereum
.
TxPool
()
.
QueueTransaction
(
tx
)
fmt
.
Printf
(
"%x
\n
"
,
tx
.
Hash
())
...
...
@@ -207,8 +207,8 @@ func (i *Console) ParseInput(input string) bool {
contract
:=
ethchain
.
NewContractCreationTx
(
ethutil
.
Big
(
tokens
[
0
]),
ethutil
.
Big
(
tokens
[
1
]),
ethutil
.
Big
(
tokens
[
1
]),
mainScript
,
initScript
)
key
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
contract
.
Sign
(
key
.
PrivateKey
)
key
Pair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
contract
.
Sign
(
key
Pair
.
PrivateKey
)
i
.
ethereum
.
TxPool
()
.
QueueTransaction
(
contract
)
...
...
ethereum/ethereum.go
View file @
c9db8727
...
...
@@ -102,8 +102,19 @@ func main() {
}
os
.
Exit
(
0
)
case
ExportKey
:
key
:=
ethutil
.
Config
.
Db
.
GetKeys
()[
0
]
logSys
.
Println
(
fmt
.
Sprintf
(
"prvk: %x
\n
"
,
key
.
PrivateKey
))
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
fmt
.
Printf
(
`
Generating new address and keypair.
Please keep your keys somewhere save.
++++++++++++++++ KeyRing +++++++++++++++++++
addr: %x
prvk: %x
pubk: %x
++++++++++++++++++++++++++++++++++++++++++++
save these words so you can restore your account later: %s
`
,
keyPair
.
Address
(),
keyPair
.
PrivateKey
,
keyPair
.
PublicKey
)
os
.
Exit
(
0
)
case
ShowGenesis
:
logSys
.
Println
(
ethereum
.
BlockChain
()
.
Genesis
())
...
...
utils/cmd.go
View file @
c9db8727
package
utils
import
(
"encoding/hex"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethminer"
"github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethrpc"
...
...
@@ -26,15 +24,12 @@ func DoMining(ethereum *eth.Ethereum) {
// Set Mining status
ethereum
.
Mining
=
true
data
,
_
:=
ethutil
.
Config
.
Db
.
Get
([]
byte
(
"KeyRing"
))
if
len
(
data
)
==
0
{
if
ethutil
.
GetKeyRing
()
.
Len
()
==
0
{
log
.
Println
(
"No address found, can't start mining"
)
return
}
keyRing
:=
ethutil
.
NewValueFromBytes
(
data
)
addr
:=
keyRing
.
Get
(
0
)
.
Bytes
()
pair
,
_
:=
ethchain
.
NewKeyPairFromSec
(
ethutil
.
FromHex
(
hex
.
EncodeToString
(
addr
)))
keyPair
:=
ethutil
.
GetKeyRing
()
.
Get
(
0
)
addr
:=
keyPair
.
Address
()
go
func
()
{
// Give it some time to connect with peers
...
...
@@ -45,7 +40,7 @@ func DoMining(ethereum *eth.Ethereum) {
}
log
.
Println
(
"Miner started"
)
miner
:=
ethminer
.
NewDefaultMiner
(
pair
.
Address
()
,
ethereum
)
miner
:=
ethminer
.
NewDefaultMiner
(
addr
,
ethereum
)
miner
.
Start
()
}()
}
utils/keys.go
View file @
c9db8727
...
...
@@ -6,6 +6,60 @@ import (
"github.com/obscuren/secp256k1-go"
)
func
CreateKeyPair
(
force
bool
)
{
if
force
{
ethutil
.
GetKeyRing
()
.
Reset
()
fmt
.
Println
(
"resetting"
)
}
if
ethutil
.
GetKeyRing
()
.
Get
(
0
)
==
nil
{
_
,
prv
:=
secp256k1
.
GenerateKeyPair
()
keyPair
,
err
:=
ethutil
.
GetKeyRing
()
.
NewKeyPair
(
prv
)
if
err
!=
nil
{
panic
(
err
)
}
mne
:=
ethutil
.
MnemonicEncode
(
ethutil
.
Hex
(
keyPair
.
PrivateKey
))
fmt
.
Printf
(
`
Generating new address and keypair.
Please keep your keys somewhere save.
++++++++++++++++ KeyRing +++++++++++++++++++
addr: %x
prvk: %x
pubk: %x
++++++++++++++++++++++++++++++++++++++++++++
save these words so you can restore your account later: %s
`
,
keyPair
.
Address
(),
keyPair
.
PrivateKey
,
keyPair
.
PublicKey
,
mne
)
}
}
func
ImportPrivateKey
(
sec
string
)
{
ethutil
.
GetKeyRing
()
.
Reset
()
keyPair
,
err
:=
ethutil
.
GetKeyRing
()
.
NewKeyPair
(
ethutil
.
FromHex
(
sec
))
if
err
!=
nil
{
panic
(
err
)
}
mne
:=
ethutil
.
MnemonicEncode
(
ethutil
.
Hex
(
keyPair
.
PrivateKey
))
fmt
.
Printf
(
`
Generating new address and keypair.
Please keep your keys somewhere save.
++++++++++++++++ KeyRing +++++++++++++++++++
addr: %x
prvk: %x
pubk: %x
++++++++++++++++++++++++++++++++++++++++++++
save these words so you can restore your account later: %s
`
,
keyPair
.
Address
(),
keyPair
.
PrivateKey
,
keyPair
.
PublicKey
,
mne
)
}
/*
func CreateKeyPair(force bool) {
data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
if len(data) == 0 || force {
...
...
@@ -28,7 +82,9 @@ save these words so you can restore your account later: %s
}
}
*/
/*
func ImportPrivateKey(prvKey string) {
key := ethutil.FromHex(prvKey)
msg := []byte("tmp")
...
...
@@ -49,3 +105,4 @@ pubk: %x
`, pair.Address(), key, pub)
}
*/
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