From 1f9894c0845a5259adbfd30fe3a86631e6403b8d Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Wed, 30 Jul 2014 00:31:15 +0200
Subject: [PATCH] Old code removed and renamed amount to balance

---
 ethchain/block.go            | 27 ------------
 ethchain/block_chain.go      |  7 ++--
 ethchain/state_transition.go | 15 +++----
 ethchain/transaction_pool.go | 79 ++----------------------------------
 ethpub/types.go              |  7 ++--
 ethrpc/packages.go           |  7 ++--
 ethstate/state.go            |  5 ++-
 ethstate/state_object.go     | 39 +++++++++---------
 ethvm/vm.go                  | 10 ++---
 9 files changed, 52 insertions(+), 144 deletions(-)

diff --git a/ethchain/block.go b/ethchain/block.go
index e00bcb24f..ac56f58c3 100644
--- a/ethchain/block.go
+++ b/ethchain/block.go
@@ -125,33 +125,6 @@ func (block *Block) Transactions() []*Transaction {
 	return block.transactions
 }
 
-func (block *Block) PayFee(addr []byte, fee *big.Int) bool {
-	contract := block.state.GetStateObject(addr)
-	// If we can't pay the fee return
-	if contract == nil || contract.Amount.Cmp(fee) < 0 /* amount < fee */ {
-		fmt.Println("Contract has insufficient funds", contract.Amount, fee)
-
-		return false
-	}
-
-	base := new(big.Int)
-	contract.Amount = base.Sub(contract.Amount, fee)
-	block.state.Trie.Update(string(addr), string(contract.RlpEncode()))
-
-	data := block.state.Trie.Get(string(block.Coinbase))
-
-	// Get the ether (Coinbase) and add the fee (gief fee to miner)
-	account := ethstate.NewStateObjectFromBytes(block.Coinbase, []byte(data))
-
-	base = new(big.Int)
-	account.Amount = base.Add(account.Amount, fee)
-
-	//block.state.Trie.Update(string(block.Coinbase), string(ether.RlpEncode()))
-	block.state.UpdateStateObject(account)
-
-	return true
-}
-
 func (block *Block) CalcGasLimit(parent *Block) *big.Int {
 	if block.Number.Cmp(big.NewInt(0)) == 0 {
 		return ethutil.BigPow(10, 6)
diff --git a/ethchain/block_chain.go b/ethchain/block_chain.go
index 1a2662787..250903798 100644
--- a/ethchain/block_chain.go
+++ b/ethchain/block_chain.go
@@ -2,11 +2,12 @@ package ethchain
 
 import (
 	"bytes"
+	"math"
+	"math/big"
+
 	"github.com/ethereum/eth-go/ethlog"
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/eth-go/ethwire"
-	"math"
-	"math/big"
 )
 
 var chainlogger = ethlog.NewLogger("CHAIN")
@@ -280,7 +281,7 @@ func AddTestNetFunds(block *Block) {
 	} {
 		codedAddr := ethutil.Hex2Bytes(addr)
 		account := block.state.GetAccount(codedAddr)
-		account.Amount = ethutil.Big("1606938044258990275541962092341162602522202993782792835301376") //ethutil.BigPow(2, 200)
+		account.Balance = ethutil.Big("1606938044258990275541962092341162602522202993782792835301376") //ethutil.BigPow(2, 200)
 		block.state.UpdateStateObject(account)
 	}
 }
diff --git a/ethchain/state_transition.go b/ethchain/state_transition.go
index 266328ce8..02a8e0e82 100644
--- a/ethchain/state_transition.go
+++ b/ethchain/state_transition.go
@@ -2,11 +2,12 @@ package ethchain
 
 import (
 	"fmt"
+	"math/big"
+
 	"github.com/ethereum/eth-go/ethstate"
 	"github.com/ethereum/eth-go/ethtrie"
 	"github.com/ethereum/eth-go/ethutil"
 	"github.com/ethereum/eth-go/ethvm"
-	"math/big"
 )
 
 /*
@@ -94,8 +95,8 @@ func (self *StateTransition) BuyGas() error {
 	var err error
 
 	sender := self.Sender()
-	if sender.Amount.Cmp(self.tx.GasValue()) < 0 {
-		return fmt.Errorf("Insufficient funds to pre-pay gas. Req %v, has %v", self.tx.GasValue(), sender.Amount)
+	if sender.Balance.Cmp(self.tx.GasValue()) < 0 {
+		return fmt.Errorf("Insufficient funds to pre-pay gas. Req %v, has %v", self.tx.GasValue(), sender.Balance)
 	}
 
 	coinbase := self.Coinbase()
@@ -178,8 +179,8 @@ func (self *StateTransition) TransitionState() (err error) {
 		return
 	}
 
-	if sender.Amount.Cmp(self.value) < 0 {
-		return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Amount)
+	if sender.Balance.Cmp(self.value) < 0 {
+		return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Balance)
 	}
 
 	var snapshot *ethstate.State
@@ -240,8 +241,8 @@ func (self *StateTransition) TransitionState() (err error) {
 }
 
 func (self *StateTransition) transferValue(sender, receiver *ethstate.StateObject) error {
-	if sender.Amount.Cmp(self.value) < 0 {
-		return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Amount)
+	if sender.Balance.Cmp(self.value) < 0 {
+		return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Balance)
 	}
 
 	// Subtract the amount from the senders account
diff --git a/ethchain/transaction_pool.go b/ethchain/transaction_pool.go
index 21c6ea3de..b0d62fd91 100644
--- a/ethchain/transaction_pool.go
+++ b/ethchain/transaction_pool.go
@@ -4,11 +4,12 @@ import (
 	"bytes"
 	"container/list"
 	"fmt"
+	"math/big"
+	"sync"
+
 	"github.com/ethereum/eth-go/ethlog"
 	"github.com/ethereum/eth-go/ethstate"
 	"github.com/ethereum/eth-go/ethwire"
-	"math/big"
-	"sync"
 )
 
 var txplogger = ethlog.NewLogger("TXP")
@@ -91,78 +92,6 @@ func (pool *TxPool) addTransaction(tx *Transaction) {
 	pool.Ethereum.Broadcast(ethwire.MsgTxTy, []interface{}{tx.RlpData()})
 }
 
-/*
-// Process transaction validates the Tx and processes funds from the
-// sender to the recipient.
-func (pool *TxPool) ProcessTransaction(tx *Transaction, state *State, toContract bool) (gas *big.Int, err error) {
-	fmt.Printf("state root before update %x\n", state.Root())
-	defer func() {
-		if r := recover(); r != nil {
-			txplogger.Infoln(r)
-			err = fmt.Errorf("%v", r)
-		}
-	}()
-
-	gas = new(big.Int)
-	addGas := func(g *big.Int) { gas.Add(gas, g) }
-	addGas(GasTx)
-
-	// Get the sender
-	sender := state.GetAccount(tx.Sender())
-
-	if sender.Nonce != tx.Nonce {
-		err = NonceError(tx.Nonce, sender.Nonce)
-		return
-	}
-
-	sender.Nonce += 1
-	defer func() {
-		//state.UpdateStateObject(sender)
-		// Notify all subscribers
-		pool.Ethereum.Reactor().Post("newTx:post", tx)
-	}()
-
-	txTotalBytes := big.NewInt(int64(len(tx.Data)))
-	txTotalBytes.Div(txTotalBytes, ethutil.Big32)
-	addGas(new(big.Int).Mul(txTotalBytes, GasSStore))
-
-	rGas := new(big.Int).Set(gas)
-	rGas.Mul(gas, tx.GasPrice)
-
-	// Make sure there's enough in the sender's account. Having insufficient
-	// funds won't invalidate this transaction but simple ignores it.
-	totAmount := new(big.Int).Add(tx.Value, rGas)
-	if sender.Amount.Cmp(totAmount) < 0 {
-		err = fmt.Errorf("[TXPL] Insufficient amount in sender's (%x) account", tx.Sender())
-		return
-	}
-	state.UpdateStateObject(sender)
-	fmt.Printf("state root after sender update %x\n", state.Root())
-
-	// Get the receiver
-	receiver := state.GetAccount(tx.Recipient)
-
-	// Send Tx to self
-	if bytes.Compare(tx.Recipient, tx.Sender()) == 0 {
-		// Subtract the fee
-		sender.SubAmount(rGas)
-	} else {
-		// Subtract the amount from the senders account
-		sender.SubAmount(totAmount)
-
-		// Add the amount to receivers account which should conclude this transaction
-		receiver.AddAmount(tx.Value)
-
-		state.UpdateStateObject(receiver)
-		fmt.Printf("state root after receiver update %x\n", state.Root())
-	}
-
-	txplogger.Infof("[TXPL] Processed Tx %x\n", tx.Hash())
-
-	return
-}
-*/
-
 func (pool *TxPool) ValidateTransaction(tx *Transaction) error {
 	// Get the last block so we can retrieve the sender and receiver from
 	// the merkle trie
@@ -183,7 +112,7 @@ func (pool *TxPool) ValidateTransaction(tx *Transaction) error {
 	totAmount := new(big.Int).Set(tx.Value)
 	// Make sure there's enough in the sender's account. Having insufficient
 	// funds won't invalidate this transaction but simple ignores it.
-	if sender.Amount.Cmp(totAmount) < 0 {
+	if sender.Balance.Cmp(totAmount) < 0 {
 		return fmt.Errorf("[TXPL] Insufficient amount in sender's (%x) account", tx.Sender())
 	}
 
diff --git a/ethpub/types.go b/ethpub/types.go
index 5cfa2705e..faf75bbe1 100644
--- a/ethpub/types.go
+++ b/ethpub/types.go
@@ -3,12 +3,13 @@ package ethpub
 import (
 	"encoding/json"
 	"fmt"
+	"strings"
+
 	"github.com/ethereum/eth-go/ethchain"
 	"github.com/ethereum/eth-go/ethcrypto"
 	"github.com/ethereum/eth-go/ethstate"
 	"github.com/ethereum/eth-go/ethtrie"
 	"github.com/ethereum/eth-go/ethutil"
-	"strings"
 )
 
 // Peer interface exposed to QML
@@ -175,9 +176,9 @@ func (c *PStateObject) GetStorage(address string) string {
 	return ""
 }
 
-func (c *PStateObject) Value() string {
+func (c *PStateObject) Balance() string {
 	if c.object != nil {
-		return c.object.Amount.String()
+		return c.object.Balance.String()
 	}
 
 	return ""
diff --git a/ethrpc/packages.go b/ethrpc/packages.go
index 0662f0edd..d307d0314 100644
--- a/ethrpc/packages.go
+++ b/ethrpc/packages.go
@@ -3,10 +3,11 @@ package ethrpc
 import (
 	"encoding/json"
 	"errors"
-	"github.com/ethereum/eth-go/ethpub"
-	"github.com/ethereum/eth-go/ethutil"
 	"math/big"
 	"strings"
+
+	"github.com/ethereum/eth-go/ethpub"
+	"github.com/ethereum/eth-go/ethutil"
 )
 
 type EthereumApi struct {
@@ -272,7 +273,7 @@ func (p *EthereumApi) GetBalanceAt(args *GetBalanceArgs, reply *string) error {
 		return err
 	}
 	state := p.ethp.GetStateObject(args.Address)
-	*reply = NewSuccessRes(BalanceRes{Balance: state.Value(), Address: args.Address})
+	*reply = NewSuccessRes(BalanceRes{Balance: state.Balance(), Address: args.Address})
 	return nil
 }
 
diff --git a/ethstate/state.go b/ethstate/state.go
index 51b585d4d..693a591c3 100644
--- a/ethstate/state.go
+++ b/ethstate/state.go
@@ -1,11 +1,12 @@
 package ethstate
 
 import (
+	"math/big"
+
 	"github.com/ethereum/eth-go/ethcrypto"
 	"github.com/ethereum/eth-go/ethlog"
 	"github.com/ethereum/eth-go/ethtrie"
 	"github.com/ethereum/eth-go/ethutil"
-	"math/big"
 )
 
 var statelogger = ethlog.NewLogger("STATE")
@@ -33,7 +34,7 @@ func NewState(trie *ethtrie.Trie) *State {
 func (self *State) GetBalance(addr []byte) *big.Int {
 	stateObject := self.GetStateObject(addr)
 	if stateObject != nil {
-		return stateObject.Amount
+		return stateObject.Balance
 	}
 
 	return ethutil.Big0
diff --git a/ethstate/state_object.go b/ethstate/state_object.go
index ab14b8604..5932fbee6 100644
--- a/ethstate/state_object.go
+++ b/ethstate/state_object.go
@@ -2,10 +2,11 @@ package ethstate
 
 import (
 	"fmt"
+	"math/big"
+
 	"github.com/ethereum/eth-go/ethcrypto"
 	"github.com/ethereum/eth-go/ethtrie"
 	"github.com/ethereum/eth-go/ethutil"
-	"math/big"
 )
 
 type Code []byte
@@ -30,7 +31,7 @@ type StateObject struct {
 	// Address of the object
 	address []byte
 	// Shared attributes
-	Amount   *big.Int
+	Balance  *big.Int
 	CodeHash []byte
 	Nonce    uint64
 	// Contract related attributes
@@ -78,7 +79,7 @@ func NewStateObject(addr []byte) *StateObject {
 	// This to ensure that it has 20 bytes (and not 0 bytes), thus left or right pad doesn't matter.
 	address := ethutil.Address(addr)
 
-	object := &StateObject{address: address, Amount: new(big.Int), gasPool: new(big.Int)}
+	object := &StateObject{address: address, Balance: new(big.Int), gasPool: new(big.Int)}
 	object.State = NewState(ethtrie.NewTrie(ethutil.Config.Db, ""))
 	object.storage = make(Storage)
 	object.gasPool = new(big.Int)
@@ -86,9 +87,9 @@ func NewStateObject(addr []byte) *StateObject {
 	return object
 }
 
-func NewContract(address []byte, Amount *big.Int, root []byte) *StateObject {
+func NewContract(address []byte, balance *big.Int, root []byte) *StateObject {
 	contract := NewStateObject(address)
-	contract.Amount = Amount
+	contract.Balance = balance
 	contract.State = NewState(ethtrie.NewTrie(ethutil.Config.Db, string(root)))
 
 	return contract
@@ -103,7 +104,7 @@ func NewStateObjectFromBytes(address, data []byte) *StateObject {
 
 func (self *StateObject) MarkForDeletion() {
 	self.remove = true
-	statelogger.DebugDetailf("%x: #%d %v (deletion)\n", self.Address(), self.Nonce, self.Amount)
+	statelogger.DebugDetailf("%x: #%d %v (deletion)\n", self.Address(), self.Nonce, self.Balance)
 }
 
 func (c *StateObject) GetAddr(addr []byte) *ethutil.Value {
@@ -190,19 +191,19 @@ func (c *StateObject) GetInstr(pc *big.Int) *ethutil.Value {
 }
 
 func (c *StateObject) AddAmount(amount *big.Int) {
-	c.SetAmount(new(big.Int).Add(c.Amount, amount))
+	c.SetBalance(new(big.Int).Add(c.Balance, amount))
 
-	statelogger.Debugf("%x: #%d %v (+ %v)\n", c.Address(), c.Nonce, c.Amount, amount)
+	statelogger.Debugf("%x: #%d %v (+ %v)\n", c.Address(), c.Nonce, c.Balance, amount)
 }
 
 func (c *StateObject) SubAmount(amount *big.Int) {
-	c.SetAmount(new(big.Int).Sub(c.Amount, amount))
+	c.SetBalance(new(big.Int).Sub(c.Balance, amount))
 
-	statelogger.Debugf("%x: #%d %v (- %v)\n", c.Address(), c.Nonce, c.Amount, amount)
+	statelogger.Debugf("%x: #%d %v (- %v)\n", c.Address(), c.Nonce, c.Balance, amount)
 }
 
-func (c *StateObject) SetAmount(amount *big.Int) {
-	c.Amount = amount
+func (c *StateObject) SetBalance(amount *big.Int) {
+	c.Balance = amount
 }
 
 //
@@ -213,8 +214,8 @@ func (c *StateObject) SetAmount(amount *big.Int) {
 func (c *StateObject) ReturnGas(gas, price *big.Int) {}
 func (c *StateObject) ConvertGas(gas, price *big.Int) error {
 	total := new(big.Int).Mul(gas, price)
-	if total.Cmp(c.Amount) > 0 {
-		return fmt.Errorf("insufficient amount: %v, %v", c.Amount, total)
+	if total.Cmp(c.Balance) > 0 {
+		return fmt.Errorf("insufficient amount: %v, %v", c.Balance, total)
 	}
 
 	c.SubAmount(total)
@@ -247,12 +248,12 @@ func (self *StateObject) RefundGas(gas, price *big.Int) {
 	rGas := new(big.Int).Set(gas)
 	rGas.Mul(rGas, price)
 
-	self.Amount.Sub(self.Amount, rGas)
+	self.Balance.Sub(self.Balance, rGas)
 }
 
 func (self *StateObject) Copy() *StateObject {
 	stateObject := NewStateObject(self.Address())
-	stateObject.Amount.Set(self.Amount)
+	stateObject.Balance.Set(self.Balance)
 	stateObject.CodeHash = ethutil.CopyBytes(self.CodeHash)
 	stateObject.Nonce = self.Nonce
 	if self.State != nil {
@@ -290,7 +291,7 @@ func (c *StateObject) Init() Code {
 
 // Debug stuff
 func (self *StateObject) CreateOutputForDiff() {
-	fmt.Printf("%x %x %x %x\n", self.Address(), self.State.Root(), self.Amount.Bytes(), self.Nonce)
+	fmt.Printf("%x %x %x %x\n", self.Address(), self.State.Root(), self.Balance.Bytes(), self.Nonce)
 	self.EachStorage(func(addr string, value *ethutil.Value) {
 		fmt.Printf("%x %x\n", addr, value.Bytes())
 	})
@@ -309,14 +310,14 @@ func (c *StateObject) RlpEncode() []byte {
 		root = ""
 	}
 
-	return ethutil.Encode([]interface{}{c.Nonce, c.Amount, root, ethcrypto.Sha3Bin(c.Code)})
+	return ethutil.Encode([]interface{}{c.Nonce, c.Balance, root, ethcrypto.Sha3Bin(c.Code)})
 }
 
 func (c *StateObject) RlpDecode(data []byte) {
 	decoder := ethutil.NewValueFromBytes(data)
 
 	c.Nonce = decoder.Get(0).Uint()
-	c.Amount = decoder.Get(1).BigInt()
+	c.Balance = decoder.Get(1).BigInt()
 	c.State = NewState(ethtrie.NewTrie(ethutil.Config.Db, decoder.Get(2).Interface()))
 	c.storage = make(map[string]*ethutil.Value)
 	c.gasPool = new(big.Int)
diff --git a/ethvm/vm.go b/ethvm/vm.go
index e0a9d831b..e469fa826 100644
--- a/ethvm/vm.go
+++ b/ethvm/vm.go
@@ -682,7 +682,7 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
 
 			// Create a new contract
 			contract := self.env.State().NewStateObject(addr)
-			if contract.Amount.Cmp(value) >= 0 {
+			if contract.Balance.Cmp(value) >= 0 {
 				closure.object.SubAmount(value)
 				contract.AddAmount(value)
 
@@ -700,7 +700,7 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
 				// main script.
 				contract.Code, _, err = c.Call(self, nil)
 			} else {
-				err = fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", value, closure.object.Amount)
+				err = fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", value, closure.object.Balance)
 			}
 
 			if err != nil {
@@ -736,8 +736,8 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
 			// Get the arguments from the memory
 			args := mem.Get(inOffset.Int64(), inSize.Int64())
 
-			if closure.object.Amount.Cmp(value) < 0 {
-				vmlogger.Debugf("Insufficient funds to transfer value. Req %v, has %v", value, closure.object.Amount)
+			if closure.object.Balance.Cmp(value) < 0 {
+				vmlogger.Debugf("Insufficient funds to transfer value. Req %v, has %v", value, closure.object.Balance)
 
 				closure.ReturnGas(gas, nil)
 
@@ -784,7 +784,7 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
 
 			receiver := self.env.State().GetOrNewStateObject(stack.Pop().Bytes())
 
-			receiver.AddAmount(closure.object.Amount)
+			receiver.AddAmount(closure.object.Balance)
 
 			closure.object.MarkForDeletion()
 
-- 
GitLab