diff options
Diffstat (limited to 'xeth/xeth.go')
-rw-r--r-- | xeth/xeth.go | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/xeth/xeth.go b/xeth/xeth.go index 70172a1c8..4e8b479c6 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -32,12 +32,14 @@ type Backend interface { Peers() []*p2p.Peer BlockDb() ethutil.Database StateDb() ethutil.Database + ExtraDb() ethutil.Database EventMux() *event.TypeMux Whisper() *whisper.Whisper IsMining() bool StartMining() error StopMining() + Version() string } // Frontend should be implemented by users of XEth. Its methods are @@ -127,6 +129,14 @@ func (self *XEth) EthBlockByHash(strHash string) *types.Block { return block } +func (self *XEth) EthTransactionByHash(hash string) *types.Transaction { + data, _ := self.eth.ExtraDb().Get(fromHex(hash)) + if len(data) != 0 { + return types.NewTransactionFromBytes(data) + } + return nil +} + func (self *XEth) BlockByNumber(num int64) *Block { if num == -1 { return NewBlock(self.chainManager.CurrentBlock()) @@ -231,10 +241,6 @@ func (self *XEth) SecretToAddress(key string) string { return toHex(pair.Address()) } -func (self *XEth) Execute(addr, value, gas, price, data string) (string, error) { - return "", nil -} - type KeyVal struct { Key string `json:"key"` Value string `json:"value"` @@ -348,7 +354,7 @@ func (self *XEth) Transact(fromStr, toStr, valueStr, gasStr, gasPriceStr, codeSt } state := self.chainManager.TxState() - nonce := state.GetNonce(from) + nonce := state.NewNonce(from) //state.GetNonce(from) tx.SetNonce(nonce) if err := self.sign(tx, from, false); err != nil { @@ -357,7 +363,7 @@ func (self *XEth) Transact(fromStr, toStr, valueStr, gasStr, gasPriceStr, codeSt if err := self.eth.TxPool().Add(tx); err != nil { return "", err } - state.SetNonce(from, nonce+1) + //state.IncrementNonce(from) if contractCreation { addr := core.AddressFromMessage(tx) |