diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-10-09 02:32:30 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-10-09 02:32:30 +0800 |
commit | bba4dcb72f216db531f97474ef636790cc82f318 (patch) | |
tree | 82ec63fef6617b3f3ae585cd26c8e430d212d9dd | |
parent | 37abbcb54b6c41e819978283064ad48d447deef1 (diff) | |
parent | e1616f77c7fb348f6b171b608d036f2bd4e34cc3 (diff) | |
download | dexon-bba4dcb72f216db531f97474ef636790cc82f318.tar dexon-bba4dcb72f216db531f97474ef636790cc82f318.tar.gz dexon-bba4dcb72f216db531f97474ef636790cc82f318.tar.bz2 dexon-bba4dcb72f216db531f97474ef636790cc82f318.tar.lz dexon-bba4dcb72f216db531f97474ef636790cc82f318.tar.xz dexon-bba4dcb72f216db531f97474ef636790cc82f318.tar.zst dexon-bba4dcb72f216db531f97474ef636790cc82f318.zip |
Merge pull request #1880 from Gustav-Simonsson/core_transfer
core, core/vm, cmd/evm: remove redundant balance check
-rw-r--r-- | cmd/evm/main.go | 4 | ||||
-rw-r--r-- | core/execution.go | 9 | ||||
-rw-r--r-- | core/vm/environment.go | 2 | ||||
-rw-r--r-- | core/vm/jit_test.go | 4 | ||||
-rw-r--r-- | core/vm_env.go | 4 | ||||
-rw-r--r-- | tests/util.go | 6 |
6 files changed, 10 insertions, 19 deletions
diff --git a/cmd/evm/main.go b/cmd/evm/main.go index bf24da982..e170dc190 100644 --- a/cmd/evm/main.go +++ b/cmd/evm/main.go @@ -217,8 +217,8 @@ func (self *VMEnv) AddLog(log *vm.Log) { func (self *VMEnv) CanTransfer(from common.Address, balance *big.Int) bool { return self.state.GetBalance(from).Cmp(balance) >= 0 } -func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error { - return core.Transfer(from, to, amount) +func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) { + core.Transfer(from, to, amount) } func (self *VMEnv) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { diff --git a/core/execution.go b/core/execution.go index e3c00a2ea..fd8464f6e 100644 --- a/core/execution.go +++ b/core/execution.go @@ -17,7 +17,6 @@ package core import ( - "errors" "math/big" "github.com/ethereum/go-ethereum/common" @@ -108,13 +107,7 @@ func exec(env vm.Environment, caller vm.ContractRef, address, codeAddr *common.A } // generic transfer method -func Transfer(from, to vm.Account, amount *big.Int) error { - if from.Balance().Cmp(amount) < 0 { - return errors.New("Insufficient balance in account") - } - +func Transfer(from, to vm.Account, amount *big.Int) { from.SubBalance(amount) to.AddBalance(amount) - - return nil } diff --git a/core/vm/environment.go b/core/vm/environment.go index f8e19baea..ec739b26c 100644 --- a/core/vm/environment.go +++ b/core/vm/environment.go @@ -51,7 +51,7 @@ type Environment interface { // Determines whether it's possible to transact CanTransfer(from common.Address, balance *big.Int) bool // Transfers amount from one account to the other - Transfer(from, to Account, amount *big.Int) error + Transfer(from, to Account, amount *big.Int) // Adds a LOG to the state AddLog(*Log) // Adds a structured log to the env diff --git a/core/vm/jit_test.go b/core/vm/jit_test.go index 8c45f2ce7..cb09e179d 100644 --- a/core/vm/jit_test.go +++ b/core/vm/jit_test.go @@ -152,9 +152,7 @@ func (self *Env) SetDepth(i int) { self.depth = i } func (self *Env) CanTransfer(from common.Address, balance *big.Int) bool { return true } -func (self *Env) Transfer(from, to Account, amount *big.Int) error { - return nil -} +func (self *Env) Transfer(from, to Account, amount *big.Int) {} func (self *Env) Call(caller ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { return nil, nil } diff --git a/core/vm_env.go b/core/vm_env.go index 467e34c6b..715fde52f 100644 --- a/core/vm_env.go +++ b/core/vm_env.go @@ -81,8 +81,8 @@ func (self *VMEnv) SetSnapshot(copy vm.Database) { self.state.Set(copy.(*state.StateDB)) } -func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error { - return Transfer(from, to, amount) +func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) { + Transfer(from, to, amount) } func (self *VMEnv) Call(me vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { diff --git a/tests/util.go b/tests/util.go index fb9e518c8..bbc671169 100644 --- a/tests/util.go +++ b/tests/util.go @@ -209,11 +209,11 @@ func (self *Env) SetSnapshot(copy vm.Database) { self.state.Set(copy.(*state.StateDB)) } -func (self *Env) Transfer(from, to vm.Account, amount *big.Int) error { +func (self *Env) Transfer(from, to vm.Account, amount *big.Int) { if self.skipTransfer { - return nil + return } - return core.Transfer(from, to, amount) + core.Transfer(from, to, amount) } func (self *Env) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { |