Actually convert gas
This commit is contained in:
parent
ca6e3f6def
commit
05d2d8f27d
@ -314,10 +314,17 @@ func (sm *StateManager) Stop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (sm *StateManager) EvalScript(script []byte, object *StateObject, tx *Transaction, block *Block) {
|
func (sm *StateManager) EvalScript(script []byte, object *StateObject, tx *Transaction, block *Block) {
|
||||||
caller := sm.procState.GetAccount(tx.Sender())
|
account := sm.procState.GetAccount(tx.Sender())
|
||||||
closure := NewClosure(caller, object, script, sm.procState, tx.Gas, tx.GasPrice, tx.Value)
|
|
||||||
|
err := account.ConvertGas(tx.Gas, tx.GasPrice)
|
||||||
|
if err != nil {
|
||||||
|
ethutil.Config.Log.Debugln(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
closure := NewClosure(account, object, script, sm.procState, tx.Gas, tx.GasPrice, tx.Value)
|
||||||
vm := NewVm(sm.procState, sm, RuntimeVars{
|
vm := NewVm(sm.procState, sm, RuntimeVars{
|
||||||
Origin: caller.Address(),
|
Origin: account.Address(),
|
||||||
BlockNumber: block.BlockInfo().Number,
|
BlockNumber: block.BlockInfo().Number,
|
||||||
PrevHash: block.PrevHash,
|
PrevHash: block.PrevHash,
|
||||||
Coinbase: block.Coinbase,
|
Coinbase: block.Coinbase,
|
||||||
@ -328,8 +335,8 @@ func (sm *StateManager) EvalScript(script []byte, object *StateObject, tx *Trans
|
|||||||
closure.Call(vm, tx.Data, nil)
|
closure.Call(vm, tx.Data, nil)
|
||||||
|
|
||||||
// Update the account (refunds)
|
// Update the account (refunds)
|
||||||
sm.procState.UpdateStateObject(caller)
|
sm.procState.UpdateStateObject(account)
|
||||||
sm.Changed(caller)
|
sm.Changed(account)
|
||||||
sm.procState.UpdateStateObject(object)
|
sm.procState.UpdateStateObject(object)
|
||||||
sm.Changed(object)
|
sm.Changed(object)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user