Merge pull request #1880 from Gustav-Simonsson/core_transfer
core, core/vm, cmd/evm: remove redundant balance check
This commit is contained in:
		
						commit
						bba4dcb72f
					
				| @ -217,8 +217,8 @@ func (self *VMEnv) AddLog(log *vm.Log) { | |||||||
| func (self *VMEnv) CanTransfer(from common.Address, balance *big.Int) bool { | func (self *VMEnv) CanTransfer(from common.Address, balance *big.Int) bool { | ||||||
| 	return self.state.GetBalance(from).Cmp(balance) >= 0 | 	return self.state.GetBalance(from).Cmp(balance) >= 0 | ||||||
| } | } | ||||||
| func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error { | func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) { | ||||||
| 	return core.Transfer(from, to, amount) | 	core.Transfer(from, to, amount) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *VMEnv) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | func (self *VMEnv) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | ||||||
|  | |||||||
| @ -17,7 +17,6 @@ | |||||||
| package core | package core | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"errors" |  | ||||||
| 	"math/big" | 	"math/big" | ||||||
| 
 | 
 | ||||||
| 	"github.com/ethereum/go-ethereum/common" | 	"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
 | // generic transfer method
 | ||||||
| func Transfer(from, to vm.Account, amount *big.Int) error { | func Transfer(from, to vm.Account, amount *big.Int) { | ||||||
| 	if from.Balance().Cmp(amount) < 0 { |  | ||||||
| 		return errors.New("Insufficient balance in account") |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	from.SubBalance(amount) | 	from.SubBalance(amount) | ||||||
| 	to.AddBalance(amount) | 	to.AddBalance(amount) | ||||||
| 
 |  | ||||||
| 	return nil |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -51,7 +51,7 @@ type Environment interface { | |||||||
| 	// Determines whether it's possible to transact
 | 	// Determines whether it's possible to transact
 | ||||||
| 	CanTransfer(from common.Address, balance *big.Int) bool | 	CanTransfer(from common.Address, balance *big.Int) bool | ||||||
| 	// Transfers amount from one account to the other
 | 	// 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
 | 	// Adds a LOG to the state
 | ||||||
| 	AddLog(*Log) | 	AddLog(*Log) | ||||||
| 	// Adds a structured log to the env
 | 	// Adds a structured log to the env
 | ||||||
|  | |||||||
| @ -152,9 +152,7 @@ func (self *Env) SetDepth(i int) { self.depth = i } | |||||||
| func (self *Env) CanTransfer(from common.Address, balance *big.Int) bool { | func (self *Env) CanTransfer(from common.Address, balance *big.Int) bool { | ||||||
| 	return true | 	return true | ||||||
| } | } | ||||||
| func (self *Env) Transfer(from, to Account, amount *big.Int) error { | func (self *Env) Transfer(from, to Account, amount *big.Int) {} | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func (self *Env) Call(caller ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | func (self *Env) Call(caller ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | ||||||
| 	return nil, nil | 	return nil, nil | ||||||
| } | } | ||||||
|  | |||||||
| @ -81,8 +81,8 @@ func (self *VMEnv) SetSnapshot(copy vm.Database) { | |||||||
| 	self.state.Set(copy.(*state.StateDB)) | 	self.state.Set(copy.(*state.StateDB)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error { | func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) { | ||||||
| 	return Transfer(from, to, amount) | 	Transfer(from, to, amount) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *VMEnv) Call(me vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | func (self *VMEnv) Call(me vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | ||||||
|  | |||||||
| @ -209,11 +209,11 @@ func (self *Env) SetSnapshot(copy vm.Database) { | |||||||
| 	self.state.Set(copy.(*state.StateDB)) | 	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 { | 	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) { | func (self *Env) Call(caller vm.ContractRef, addr common.Address, data []byte, gas, price, value *big.Int) ([]byte, error) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user