Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
73c4ca3
Upped protocol version
obscuren Dec 4, 2014
73123bf
Only set TD if it's actually higher
obscuren Dec 4, 2014
5653898
vim error :S
obscuren Dec 4, 2014
8c7e4b2
Added pre processing of transaction on the transient state
obscuren Dec 4, 2014
a5b27bb
Improved and simplified wallet functions and behaviour
obscuren Dec 4, 2014
085f604
Show newly created private key during startup. Closes #126
obscuren Dec 4, 2014
3db9c80
Removed mutan. Closes #183
obscuren Dec 4, 2014
8dbca75
Skip mining on transactions that don't meet the min accepted gas price
obscuren Dec 4, 2014
3cf0477
Merge branch 'poc8' into develop
obscuren Dec 4, 2014
d80f8bd
Fixed issue in VM where LOG didn't pop anything of the stack
obscuren Dec 5, 2014
095cb97
EXP simplified
obscuren Dec 5, 2014
9925916
upped proto version and modified block pool
obscuren Dec 5, 2014
f06543f
Merge branch 'poc8' into develop
obscuren Dec 5, 2014
ebe2d9d
First draft of Whisper messages relaying
obscuren Dec 8, 2014
e3a8412
Proper start/stoping wpeers
obscuren Dec 8, 2014
76842b0
Additional checks and debug output
obscuren Dec 8, 2014
4f12f06
rlp: move decoder type switch to decode.go
fjl Dec 9, 2014
93e858f
rlp: remove support for signed integer types
fjl Dec 9, 2014
c084a7d
rlp: fix panic in decodeList on go 1.4+
fjl Dec 9, 2014
829730d
rlp: remove dead code
fjl Dec 9, 2014
acf4b57
Core changes
obscuren Dec 9, 2014
df5157c
PV49
obscuren Dec 9, 2014
6cf4e03
rlp: display decoder target type in more error messages
fjl Dec 9, 2014
c24018e
Added S256 curve
obscuren Dec 9, 2014
87adff7
Added Encrypt & Decrypt using the ECIES w/ tests
obscuren Dec 9, 2014
984c7e6
Added encryption for messages better API for sealing messages
obscuren Dec 9, 2014
ce0c4e5
Merge pull request #203 from fjl/rlp-fixes
obscuren Dec 9, 2014
9ff7be6
Merge branch 'poc8' into develop
obscuren Dec 9, 2014
3308491
Removed tests because they've become obsolete
obscuren Dec 9, 2014
1fb84d3
Fixed tests
obscuren Dec 10, 2014
4f1ef89
updated tests
obscuren Dec 10, 2014
186948d
changed to unsigned integers
obscuren Dec 10, 2014
0f5c6c5
Changed new methods to use ecdsa package for pub prv keys
obscuren Dec 10, 2014
dda778e
Updated whisper messages to new crypto api + added tests
obscuren Dec 10, 2014
4082c8b
added simple peer server
obscuren Dec 10, 2014
1b98cbb
Moved pow
obscuren Dec 10, 2014
af6afba
Removed start/stop methods
obscuren Dec 10, 2014
5553e5a
states moved to chain
obscuren Dec 10, 2014
2b5fcb4
moved interfaces
obscuren Dec 10, 2014
0d57ca4
Squashed commit of the following:
obscuren Dec 12, 2014
9423401
p2p: fix decoding of disconnect reason (fixes #200)
fjl Dec 9, 2014
e28c60c
p2p: improve and test eofSignal
fjl Dec 12, 2014
05fd1da
additional log
obscuren Dec 12, 2014
25cf0c4
Accidentally changed max depth during testing & committed
obscuren Dec 12, 2014
9e1689d
Generic filter interface
obscuren Dec 12, 2014
ed15382
Moved filter to events
obscuren Dec 12, 2014
a17a1f9
Implemented watching using filter package
obscuren Dec 12, 2014
1c7fd62
Moved
obscuren Dec 12, 2014
06e7642
Added length checkes
obscuren Dec 12, 2014
8577e41
Panic for "Vm"
obscuren Dec 12, 2014
bf566a6
Implemented Qt whisper interface
obscuren Dec 12, 2014
aec0c0e
updated tests
obscuren Dec 12, 2014
ccb4fc8
Merge pull request #206 from ethereum/tests
obscuren Dec 12, 2014
0122989
Merge branch 'poc8' into develop
obscuren Dec 12, 2014
4c84db8
eth-go packages ended up in whisper
obscuren Dec 12, 2014
f8061fc
fixed tests
obscuren Dec 12, 2014
65e39bf
p2p: add MsgPipe for protocol testing
fjl Dec 12, 2014
f0f6727
p2p: use an error type for disconnect requests
fjl Dec 12, 2014
da900f9
p2p: add test for base protocol disconnect
fjl Dec 12, 2014
15e46b9
Merge pull request #204 from fjl/fix-p2p-disconnect
obscuren Dec 15, 2014
c3ba4ac
Merge branch 'poc8' into develop
obscuren Dec 15, 2014
ef4135e
Added topic utility functions to whisper
obscuren Dec 15, 2014
b1c58b7
moved err check
obscuren Dec 17, 2014
4dbdcae
Moved pre-compiled, moved depth check
obscuren Dec 17, 2014
df3366d
Rlp shouldn't write null bytes
obscuren Dec 18, 2014
4b2f1f7
idx should return -1
obscuren Dec 18, 2014
590aace
Removed ethereum as dependency
obscuren Dec 18, 2014
49e0267
Locks, refactor, tests
obscuren Dec 18, 2014
2d09e67
Updated to new methods
obscuren Dec 18, 2014
9e286e1
updated tests
obscuren Dec 18, 2014
db49417
Created generic message (easy for testing)
obscuren Dec 18, 2014
5ad473d
Moved methods to messages
obscuren Dec 18, 2014
198cc69
Gas corrections and vm fixes
obscuren Dec 18, 2014
f7287c6
updated tests
obscuren Dec 18, 2014
3325683
Fixed refund model
obscuren Dec 18, 2014
4789084
updated tests
obscuren Dec 18, 2014
1e985f9
Fixed casting error
obscuren Dec 18, 2014
a7f4ade
Fixed tests
obscuren Dec 18, 2014
59ef6e3
Cleaned up objects
obscuren Dec 18, 2014
12671c8
Moved VM to execution
obscuren Dec 18, 2014
88af879
version bump
obscuren Dec 19, 2014
5da5db5
Added authors
obscuren Dec 19, 2014
0e93b98
Transaction was generating incorrect hash because of var changes
obscuren Dec 19, 2014
f5b8f3d
Removed OOG check. Revert should always happen.
obscuren Dec 19, 2014
1508a23
Minor updates on gas and removed/refactored old code.
obscuren Dec 20, 2014
0a9dc15
Increased peer from 10 to 30
obscuren Dec 20, 2014
6cff6dd
Merge branch 'release/v0.7.10' into develop
obscuren Dec 20, 2014
795b143
Fixed EVM environment. Closes #215
obscuren Dec 21, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added _data/chain1
Binary file not shown.
Binary file added _data/chain2
Binary file not shown.
29 changes: 21 additions & 8 deletions block_pool.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func (self *BlockPool) HasLatestHash() bool {
self.mut.Lock()
defer self.mut.Unlock()

return self.pool[string(self.eth.ChainManager().CurrentBlock.Hash())] != nil
return self.pool[string(self.eth.ChainManager().CurrentBlock().Hash())] != nil
}

func (self *BlockPool) HasCommonHash(hash []byte) bool {
Expand All @@ -88,7 +88,7 @@ func (self *BlockPool) FetchHashes(peer *Peer) bool {

if (self.peer == nil && peer.td.Cmp(highestTd) >= 0) || (self.peer != nil && peer.td.Cmp(self.peer.td) > 0) || self.peer == peer {
if self.peer != peer {
poollogger.Debugf("Found better suitable peer (%v vs %v)\n", self.td, peer.td)
poollogger.Infof("Found better suitable peer (%v vs %v)\n", self.td, peer.td)

if self.peer != nil {
self.peer.doneFetchingHashes = true
Expand All @@ -99,11 +99,7 @@ func (self *BlockPool) FetchHashes(peer *Peer) bool {
self.td = peer.td

if !self.HasLatestHash() {
peer.doneFetchingHashes = false

const amount = 256
peerlogger.Debugf("Fetching hashes (%d) %x...\n", amount, peer.lastReceivedHash[0:4])
peer.QueueMessage(wire.NewMessage(wire.MsgGetBlockHashesTy, []interface{}{peer.lastReceivedHash, uint32(amount)}))
self.fetchHashes()
}

return true
Expand All @@ -112,6 +108,16 @@ func (self *BlockPool) FetchHashes(peer *Peer) bool {
return false
}

func (self *BlockPool) fetchHashes() {
peer := self.peer

peer.doneFetchingHashes = false

const amount = 256
peerlogger.Debugf("Fetching hashes (%d) %x...\n", amount, peer.lastReceivedHash[0:4])
peer.QueueMessage(wire.NewMessage(wire.MsgGetBlockHashesTy, []interface{}{peer.lastReceivedHash, uint32(amount)}))
}

func (self *BlockPool) AddHash(hash []byte, peer *Peer) {
self.mut.Lock()
defer self.mut.Unlock()
Expand Down Expand Up @@ -148,7 +154,7 @@ func (self *BlockPool) addBlock(b *types.Block, peer *Peer, newBlock bool) {
fmt.Println("1.", !self.eth.ChainManager().HasBlock(b.PrevHash), ethutil.Bytes2Hex(b.Hash()[0:4]), ethutil.Bytes2Hex(b.PrevHash[0:4]))
fmt.Println("2.", self.pool[string(b.PrevHash)] == nil)
fmt.Println("3.", !self.fetchingHashes)
if !self.eth.ChainManager().HasBlock(b.PrevHash) && self.pool[string(b.PrevHash)] == nil && !self.fetchingHashes {
if !self.eth.ChainManager().HasBlock(b.PrevHash) /*&& self.pool[string(b.PrevHash)] == nil*/ && !self.fetchingHashes {
poollogger.Infof("Unknown chain, requesting (%x...)\n", b.PrevHash[0:4])
peer.QueueMessage(wire.NewMessage(wire.MsgGetBlockHashesTy, []interface{}{b.Hash(), uint32(256)}))
}
Expand Down Expand Up @@ -259,6 +265,13 @@ out:
self.ChainLength = len(self.hashes)
}

if self.peer != nil &&
!self.peer.doneFetchingHashes &&
time.Since(self.peer.lastHashAt) > 10*time.Second &&
time.Since(self.peer.lastHashRequestedAt) > 5*time.Second {
self.fetchHashes()
}

/*
if !self.fetchingHashes {
blocks := self.Blocks()
Expand Down
2 changes: 1 addition & 1 deletion cmd/ethereum/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func Init() {
flag.StringVar(&KeyStore, "keystore", "db", "system to store keyrings: db|file (db)")
flag.StringVar(&OutboundPort, "port", "30303", "listening port")
flag.BoolVar(&UseUPnP, "upnp", false, "enable UPnP support")
flag.IntVar(&MaxPeer, "maxpeer", 10, "maximum desired peers")
flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
flag.IntVar(&RpcPort, "rpcport", 8080, "port to start json-rpc server on")
flag.BoolVar(&StartRpc, "rpc", false, "start rpc server")
flag.BoolVar(&StartWebSockets, "ws", false, "start websocket server")
Expand Down
4 changes: 2 additions & 2 deletions cmd/ethereum/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import (

const (
ClientIdentifier = "Ethereum(G)"
Version = "0.7.7"
Version = "0.7.10"
)

var clilogger = logger.NewLogger("CLI")
Expand Down Expand Up @@ -77,7 +77,7 @@ func main() {
var block *types.Block

if len(DumpHash) == 0 && DumpNumber == -1 {
block = ethereum.ChainManager().CurrentBlock
block = ethereum.ChainManager().CurrentBlock()
} else if len(DumpHash) > 0 {
block = ethereum.ChainManager().GetBlock(ethutil.Hex2Bytes(DumpHash))
} else {
Expand Down
6 changes: 2 additions & 4 deletions cmd/evm/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,17 +133,15 @@ func (self *VMEnv) Value() *big.Int { return self.value }
func (self *VMEnv) GasLimit() *big.Int { return big.NewInt(1000000000) }
func (self *VMEnv) Depth() int { return 0 }
func (self *VMEnv) SetDepth(i int) { self.depth = i }
func (self *VMEnv) AddLog(log *state.Log) {
func (self *VMEnv) AddLog(log state.Log) {
self.state.AddLog(log)
}
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
return vm.Transfer(from, to, amount)
}

func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execution {
evm := vm.New(self, vm.DebugVmTy)

return core.NewExecution(evm, addr, data, gas, price, value)
return core.NewExecution(self, addr, data, gas, price, value)
}

func (self *VMEnv) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
Expand Down
8 changes: 4 additions & 4 deletions cmd/mist/assets/qml/main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -786,8 +786,8 @@ ApplicationWindow {
title: "About"
minimumWidth: 350
maximumWidth: 350
maximumHeight: 200
minimumHeight: 200
maximumHeight: 280
minimumHeight: 280

Image {
id: aboutIcon
Expand All @@ -797,7 +797,7 @@ ApplicationWindow {
smooth: true
source: "../facet.png"
x: 10
y: 10
y: 30
}

Text {
Expand All @@ -806,7 +806,7 @@ ApplicationWindow {
anchors.top: parent.top
anchors.topMargin: 30
font.pointSize: 12
text: "<h2>Mist (0.6.5)</h2><h4>Amalthea</h4><br><h3>Development</h3>Jeffrey Wilcke<br>Viktor Trón<br><h3>Building</h3>Maran Hidskes"
text: "<h2>Mist (0.7.10)</h2><br><h3>Development</h3>Jeffrey Wilcke<br>Viktor Trón<br>Felix Lange<br>Taylor Gerring<br>Daniel Nagy<br><h3>UX</h3>Alex van de Sande<br>"
}
}

Expand Down
23 changes: 16 additions & 7 deletions cmd/mist/assets/qml/views/wallet.qml
Original file line number Diff line number Diff line change
Expand Up @@ -148,17 +148,21 @@ Rectangle {
id: txTableView
anchors.fill : parent
TableViewColumn{ role: "num" ; title: "#" ; width: 30 }
TableViewColumn{ role: "from" ; title: "From" ; width: 280 }
TableViewColumn{ role: "to" ; title: "To" ; width: 280 }
TableViewColumn{ role: "from" ; title: "From" ; width: 340 }
TableViewColumn{ role: "to" ; title: "To" ; width: 340 }
TableViewColumn{ role: "value" ; title: "Amount" ; width: 100 }

model: ListModel {
id: txModel
Component.onCompleted: {
var filter = ethx.watch({latest: -1, from: eth.key().address});
filter.changed(addTxs)

addTxs(filter.messages())
var me = eth.key().address;
var filterTo = ethx.watch({latest: -1, to: me});
var filterFrom = ethx.watch({latest: -1, from: me});
filterTo.changed(addTxs)
filterFrom.changed(addTxs)

addTxs(filterTo.messages())
addTxs(filterFrom.messages())
}

function addTxs(messages) {
Expand All @@ -167,7 +171,12 @@ Rectangle {
for(var i = 0; i < messages.length; i++) {
var message = messages.get(i);
var to = eth.lookupName(message.to);
var from = eth.lookupName(message.from);
var from;
if(message.from.length == 0) {
from = "- MINED -";
} else {
from = eth.lookupName(message.from);
}
txModel.insert(0, {num: txModel.count, from: from, to: to, value: eth.numberToHuman(message.value)})
}
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/mist/bindings.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func (self *Gui) DumpState(hash, path string) {
var stateDump []byte

if len(hash) == 0 {
stateDump = self.eth.BlockManager().CurrentState().Dump()
stateDump = self.eth.ChainManager().State().Dump()
} else {
var block *types.Block
if hash[0] == '#' {
Expand Down
6 changes: 3 additions & 3 deletions cmd/mist/debugger.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,15 @@ func (self *DebuggerWindow) Debug(valueStr, gasStr, gasPriceStr, scriptStr, data
keyPair = self.lib.eth.KeyManager().KeyPair()
)

statedb := self.lib.eth.BlockManager().TransState()
account := self.lib.eth.BlockManager().TransState().GetAccount(keyPair.Address())
statedb := self.lib.eth.ChainManager().TransState()
account := self.lib.eth.ChainManager().TransState().GetAccount(keyPair.Address())
contract := statedb.NewStateObject([]byte{0})
contract.SetCode(script)
contract.SetBalance(value)

self.SetAsm(script)

block := self.lib.eth.ChainManager().CurrentBlock
block := self.lib.eth.ChainManager().CurrentBlock()

env := utils.NewEnv(statedb, block, account.Address(), value)

Expand Down
2 changes: 1 addition & 1 deletion cmd/mist/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ func Init() {
flag.StringVar(&KeyStore, "keystore", "db", "system to store keyrings: db|file (db)")
flag.StringVar(&OutboundPort, "port", "30303", "listening port")
flag.BoolVar(&UseUPnP, "upnp", true, "enable UPnP support")
flag.IntVar(&MaxPeer, "maxpeer", 10, "maximum desired peers")
flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
flag.IntVar(&RpcPort, "rpcport", 8080, "port to start json-rpc server on")
flag.BoolVar(&StartRpc, "rpc", false, "start rpc server")
flag.BoolVar(&StartWebSockets, "ws", false, "start websocket server")
Expand Down
61 changes: 21 additions & 40 deletions cmd/mist/gui.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ func (gui *Gui) CreateAndSetPrivKey() (string, string, string, string) {
}

func (gui *Gui) setInitialChain(ancientBlocks bool) {
sBlk := gui.eth.ChainManager().LastBlockHash
sBlk := gui.eth.ChainManager().LastBlockHash()
blk := gui.eth.ChainManager().GetBlock(sBlk)
for ; blk != nil; blk = gui.eth.ChainManager().GetBlock(sBlk) {
sBlk = blk.PrevHash
Expand Down Expand Up @@ -305,13 +305,13 @@ func (gui *Gui) insertTransaction(window string, tx *types.Transaction) {

var (
ptx = xeth.NewJSTx(tx, pipe.World().State())
send = nameReg.Storage(tx.Sender())
rec = nameReg.Storage(tx.Recipient)
send = nameReg.Storage(tx.From())
rec = nameReg.Storage(tx.To())
s, r string
)

if tx.CreatesContract() {
rec = nameReg.Storage(tx.CreationAddress(pipe.World().State()))
if core.MessageCreatesContract(tx) {
rec = nameReg.Storage(core.AddressFromMessage(tx))
}

if send.Len() != 0 {
Expand All @@ -322,10 +322,10 @@ func (gui *Gui) insertTransaction(window string, tx *types.Transaction) {
if rec.Len() != 0 {
r = strings.Trim(rec.Str(), "\x00")
} else {
if tx.CreatesContract() {
r = ethutil.Bytes2Hex(tx.CreationAddress(pipe.World().State()))
if core.MessageCreatesContract(tx) {
r = ethutil.Bytes2Hex(core.AddressFromMessage(tx))
} else {
r = ethutil.Bytes2Hex(tx.Recipient)
r = ethutil.Bytes2Hex(tx.To())
}
}
ptx.Sender = s
Expand Down Expand Up @@ -389,7 +389,6 @@ func (gui *Gui) update() {
gui.loadAddressBook()
gui.loadMergedMiningOptions()
gui.setPeerInfo()
//gui.readPreviousTransactions()
}()

for _, plugin := range gui.plugins {
Expand All @@ -402,9 +401,8 @@ func (gui *Gui) update() {
generalUpdateTicker := time.NewTicker(500 * time.Millisecond)
statsUpdateTicker := time.NewTicker(5 * time.Second)

state := gui.eth.BlockManager().TransState()
state := gui.eth.ChainManager().TransState()

unconfirmedFunds := new(big.Int)
gui.win.Root().Call("setWalletValue", fmt.Sprintf("%v", ethutil.CurrencyToString(state.GetAccount(gui.address()).Balance())))

lastBlockLabel := gui.getObjectByName("lastBlockLabel")
Expand All @@ -418,9 +416,6 @@ func (gui *Gui) update() {
core.TxPostEvent{},
)

// nameReg := gui.pipe.World().Config().Get("NameReg")
// mux.Subscribe("object:"+string(nameReg.Address()), objectChan)

go func() {
defer events.Unsubscribe()
for {
Expand All @@ -433,61 +428,47 @@ func (gui *Gui) update() {
case core.NewBlockEvent:
gui.processBlock(ev.Block, false)
if bytes.Compare(ev.Block.Coinbase, gui.address()) == 0 {
gui.setWalletValue(gui.eth.BlockManager().CurrentState().GetAccount(gui.address()).Balance(), nil)
gui.setWalletValue(gui.eth.ChainManager().State().GetBalance(gui.address()), nil)
}

case core.TxPreEvent:
tx := ev.Tx
object := state.GetAccount(gui.address())

if bytes.Compare(tx.Sender(), gui.address()) == 0 {
unconfirmedFunds.Sub(unconfirmedFunds, tx.Value)
} else if bytes.Compare(tx.Recipient, gui.address()) == 0 {
unconfirmedFunds.Add(unconfirmedFunds, tx.Value)
}
tstate := gui.eth.ChainManager().TransState()
cstate := gui.eth.ChainManager().State()

gui.setWalletValue(object.Balance(), unconfirmedFunds)
taccount := tstate.GetAccount(gui.address())
caccount := cstate.GetAccount(gui.address())
unconfirmedFunds := new(big.Int).Sub(taccount.Balance(), caccount.Balance())

gui.setWalletValue(taccount.Balance(), unconfirmedFunds)
gui.insertTransaction("pre", tx)

case core.TxPostEvent:
tx := ev.Tx
object := state.GetAccount(gui.address())

if bytes.Compare(tx.Sender(), gui.address()) == 0 {
object.SubAmount(tx.Value)
object.SubAmount(tx.Value())

//gui.getObjectByName("transactionView").Call("addTx", xeth.NewJSTx(tx), "send")
gui.txDb.Put(tx.Hash(), tx.RlpEncode())
} else if bytes.Compare(tx.Recipient, gui.address()) == 0 {
object.AddAmount(tx.Value)
} else if bytes.Compare(tx.To(), gui.address()) == 0 {
object.AddAmount(tx.Value())

//gui.getObjectByName("transactionView").Call("addTx", xeth.NewJSTx(tx), "recv")
gui.txDb.Put(tx.Hash(), tx.RlpEncode())
}

gui.setWalletValue(object.Balance(), nil)
state.UpdateStateObject(object)

// case object:
// gui.loadAddressBook()

case eth.PeerListEvent:
gui.setPeerInfo()

/*
case miner.Event:
if ev.Type == miner.Started {
gui.miner = ev.Miner
} else {
gui.miner = nil
}
*/
}

case <-peerUpdateTicker.C:
gui.setPeerInfo()
case <-generalUpdateTicker.C:
statusText := "#" + gui.eth.ChainManager().CurrentBlock.Number.String()
statusText := "#" + gui.eth.ChainManager().CurrentBlock().Number.String()
lastBlockLabel.Set("text", statusText)
miningLabel.Set("text", "Mining @ "+strconv.FormatInt(gui.uiLib.miner.GetPow().GetHashrate(), 10)+"Khash")

Expand Down
2 changes: 1 addition & 1 deletion cmd/mist/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import (

const (
ClientIdentifier = "Mist"
Version = "0.7.7"
Version = "0.7.10"
)

var ethereum *eth.Ethereum
Expand Down
2 changes: 1 addition & 1 deletion cmd/mist/ui_lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ func (ui *UiLib) AssetPath(p string) string {

func (self *UiLib) StartDbWithContractAndData(contractHash, data string) {
dbWindow := NewDebuggerWindow(self)
object := self.eth.BlockManager().CurrentState().GetStateObject(ethutil.Hex2Bytes(contractHash))
object := self.eth.ChainManager().State().GetStateObject(ethutil.Hex2Bytes(contractHash))
if len(object.Code) > 0 {
dbWindow.SetCode("0x" + ethutil.Bytes2Hex(object.Code))
}
Expand Down
Loading