diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-17 20:24:12 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-17 20:24:25 +0800 |
commit | 0fa7859b94ddb0a35a6fbdb2c29139b0baaa2bfa (patch) | |
tree | 9d4b05ed91f007c0831033c35f80dff691a4c7e7 /core/state_transition.go | |
parent | ff55c6f5badda7ef11c38ef5d94b71420b14817c (diff) | |
download | dexon-0fa7859b94ddb0a35a6fbdb2c29139b0baaa2bfa.tar.gz dexon-0fa7859b94ddb0a35a6fbdb2c29139b0baaa2bfa.tar.zst dexon-0fa7859b94ddb0a35a6fbdb2c29139b0baaa2bfa.zip |
Fixed VM & Tests w/ conversion
Diffstat (limited to 'core/state_transition.go')
-rw-r--r-- | core/state_transition.go | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/core/state_transition.go b/core/state_transition.go index 72999de7e..1509a5258 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -5,6 +5,7 @@ import ( "math/big" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/state" "github.com/ethereum/go-ethereum/vm" ) @@ -195,9 +196,9 @@ func (self *StateTransition) transitionState() (ret []byte, usedGas *big.Int, er vmenv := self.env var ref vm.ContextRef if MessageCreatesContract(msg) { - //contract := makeContract(msg, self.state) - //addr := contract.Address() - ret, err, ref = vmenv.Create(sender, self.msg.Data(), self.gas, self.gasPrice, self.value) + contract := makeContract(msg, self.state) + addr := contract.Address() + ret, err, ref = vmenv.Create(sender, &addr, self.msg.Data(), self.gas, self.gasPrice, self.value) if err == nil { dataGas := big.NewInt(int64(len(ret))) dataGas.Mul(dataGas, vm.GasCreateByte) @@ -243,13 +244,11 @@ func (self *StateTransition) gasUsed() *big.Int { // Converts an message in to a state object func makeContract(msg Message, state *state.StateDB) *state.StateObject { - /* - addr := AddressFromMessage(msg) + faddr, _ := msg.From() + addr := crypto.CreateAddress(faddr, msg.Nonce()) - contract := state.GetOrNewStateObject(addr) - contract.SetInitCode(msg.Data()) + contract := state.GetOrNewStateObject(addr) + contract.SetInitCode(msg.Data()) - return contract - */ - return nil + return contract } |