Removed all implicit logging. Fixed gas issues and jump errors
This commit is contained in:
parent
75ee3b3f08
commit
6c9e503eb8
|
@ -328,8 +328,8 @@ func (self *ChainManager) InsertChain(chain *BlockChain) {
|
||||||
for e := chain.Front(); e != nil; e = e.Next() {
|
for e := chain.Front(); e != nil; e = e.Next() {
|
||||||
link := e.Value.(*link)
|
link := e.Value.(*link)
|
||||||
|
|
||||||
self.SetTotalDifficulty(link.td)
|
|
||||||
self.add(link.block)
|
self.add(link.block)
|
||||||
|
self.SetTotalDifficulty(link.td)
|
||||||
self.Ethereum.EventMux().Post(NewBlockEvent{link.block})
|
self.Ethereum.EventMux().Post(NewBlockEvent{link.block})
|
||||||
self.Ethereum.EventMux().Post(link.messages)
|
self.Ethereum.EventMux().Post(link.messages)
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/ethutil"
|
|
||||||
"github.com/ethereum/go-ethereum/state"
|
"github.com/ethereum/go-ethereum/state"
|
||||||
"github.com/ethereum/go-ethereum/vm"
|
"github.com/ethereum/go-ethereum/vm"
|
||||||
)
|
)
|
||||||
|
@ -229,13 +228,13 @@ func (self *StateTransition) TransitionState() (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.Output = ret
|
msg.Output = ret
|
||||||
} else {
|
|
||||||
// Add default LOG. Default = big(sender.addr) + 1
|
|
||||||
addr := ethutil.BigD(receiver.Address())
|
|
||||||
self.state.AddLog(state.Log{sender.Address(), [][]byte{ethutil.U256(addr.Add(addr, ethutil.Big1)).Bytes()}, nil})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add default LOG. Default = big(sender.addr) + 1
|
||||||
|
//addr := ethutil.BigD(receiver.Address())
|
||||||
|
//self.state.AddLog(&state.Log{ethutil.U256(addr.Add(addr, ethutil.Big1)).Bytes(), [][]byte{sender.Address()}, nil})
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ func (self *VMEnv) BlockHash() []byte { return self.block.Hash() }
|
||||||
func (self *VMEnv) Value() *big.Int { return self.tx.Value }
|
func (self *VMEnv) Value() *big.Int { return self.tx.Value }
|
||||||
func (self *VMEnv) State() *state.State { return self.state }
|
func (self *VMEnv) State() *state.State { return self.state }
|
||||||
func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
|
func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
|
||||||
func (self *VMEnv) AddLog(log state.Log) {
|
func (self *VMEnv) AddLog(log *state.Log) {
|
||||||
self.state.AddLog(log)
|
self.state.AddLog(log)
|
||||||
}
|
}
|
||||||
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
||||||
|
|
|
@ -46,6 +46,7 @@ var (
|
||||||
gas = flag.String("gas", "1000000", "gas amount")
|
gas = flag.String("gas", "1000000", "gas amount")
|
||||||
price = flag.String("price", "0", "gas price")
|
price = flag.String("price", "0", "gas price")
|
||||||
dump = flag.Bool("dump", false, "dump state after run")
|
dump = flag.Bool("dump", false, "dump state after run")
|
||||||
|
data = flag.String("data", "", "data")
|
||||||
)
|
)
|
||||||
|
|
||||||
func perr(v ...interface{}) {
|
func perr(v ...interface{}) {
|
||||||
|
@ -66,7 +67,7 @@ func main() {
|
||||||
tstart := time.Now()
|
tstart := time.Now()
|
||||||
|
|
||||||
env := NewVmEnv()
|
env := NewVmEnv()
|
||||||
ret, _, e := closure.Call(vm.New(env, vm.DebugVmTy), nil)
|
ret, _, e := closure.Call(vm.New(env, vm.DebugVmTy), ethutil.Hex2Bytes(*data))
|
||||||
|
|
||||||
logger.Flush()
|
logger.Flush()
|
||||||
if e != nil {
|
if e != nil {
|
||||||
|
@ -110,7 +111,7 @@ func (VmEnv) GasLimit() *big.Int { return nil }
|
||||||
func (VmEnv) Difficulty() *big.Int { return nil }
|
func (VmEnv) Difficulty() *big.Int { return nil }
|
||||||
func (VmEnv) Value() *big.Int { return nil }
|
func (VmEnv) Value() *big.Int { return nil }
|
||||||
func (self *VmEnv) State() *state.State { return self.state }
|
func (self *VmEnv) State() *state.State { return self.state }
|
||||||
func (VmEnv) AddLog(state.Log) {}
|
func (VmEnv) AddLog(*state.Log) {}
|
||||||
func (VmEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
func (VmEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ClientIdentifier = "Mist"
|
ClientIdentifier = "Mist"
|
||||||
Version = "0.7.3"
|
Version = "0.7.4"
|
||||||
)
|
)
|
||||||
|
|
||||||
var ethereum *eth.Ethereum
|
var ethereum *eth.Ethereum
|
||||||
|
|
|
@ -35,7 +35,7 @@ func (self *VMEnv) BlockHash() []byte { return self.block.Hash() }
|
||||||
func (self *VMEnv) Value() *big.Int { return self.value }
|
func (self *VMEnv) Value() *big.Int { return self.value }
|
||||||
func (self *VMEnv) State() *state.State { return self.state }
|
func (self *VMEnv) State() *state.State { return self.state }
|
||||||
func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
|
func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
|
||||||
func (self *VMEnv) AddLog(state.Log) {}
|
func (self *VMEnv) AddLog(*state.Log) {}
|
||||||
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
||||||
return vm.Transfer(from, to, amount)
|
return vm.Transfer(from, to, amount)
|
||||||
}
|
}
|
||||||
|
|
2
peer.go
2
peer.go
|
@ -24,7 +24,7 @@ const (
|
||||||
// The size of the output buffer for writing messages
|
// The size of the output buffer for writing messages
|
||||||
outputBufferSize = 50
|
outputBufferSize = 50
|
||||||
// Current protocol version
|
// Current protocol version
|
||||||
ProtocolVersion = 39
|
ProtocolVersion = 40
|
||||||
// Current P2P version
|
// Current P2P version
|
||||||
P2PVersion = 2
|
P2PVersion = 2
|
||||||
// Ethereum network version
|
// Ethereum network version
|
||||||
|
|
10
state/log.go
10
state/log.go
|
@ -13,8 +13,8 @@ type Log struct {
|
||||||
Data []byte
|
Data []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLogFromValue(decoder *ethutil.Value) Log {
|
func NewLogFromValue(decoder *ethutil.Value) *Log {
|
||||||
log := Log{
|
log := &Log{
|
||||||
Address: decoder.Get(0).Bytes(),
|
Address: decoder.Get(0).Bytes(),
|
||||||
Data: decoder.Get(2).Bytes(),
|
Data: decoder.Get(2).Bytes(),
|
||||||
}
|
}
|
||||||
|
@ -27,15 +27,15 @@ func NewLogFromValue(decoder *ethutil.Value) Log {
|
||||||
return log
|
return log
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self Log) RlpData() interface{} {
|
func (self *Log) RlpData() interface{} {
|
||||||
return []interface{}{self.Address, ethutil.ByteSliceToInterface(self.Topics), self.Data}
|
return []interface{}{self.Address, ethutil.ByteSliceToInterface(self.Topics), self.Data}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self Log) String() string {
|
func (self *Log) String() string {
|
||||||
return fmt.Sprintf(`log: %x %x %x`, self.Address, self.Topics, self.Data)
|
return fmt.Sprintf(`log: %x %x %x`, self.Address, self.Topics, self.Data)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Logs []Log
|
type Logs []*Log
|
||||||
|
|
||||||
func (self Logs) RlpData() interface{} {
|
func (self Logs) RlpData() interface{} {
|
||||||
data := make([]interface{}, len(self))
|
data := make([]interface{}, len(self))
|
||||||
|
|
|
@ -37,7 +37,7 @@ func (self *State) EmptyLogs() {
|
||||||
self.logs = nil
|
self.logs = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *State) AddLog(log Log) {
|
func (self *State) AddLog(log *Log) {
|
||||||
self.logs = append(self.logs, log)
|
self.logs = append(self.logs, log)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"genesis_rlp_hex": "f8abf8a7a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a008bf6a98374f333b84e7d063d607696ac7cbbd409bd20fbe6a741c2dfc0eb28580830200008080830f4240808080a004994f67dc55b09e814ab7ffc8df3686b4afb2bb53e60eae97ef043fe03fb829c0c0",
|
"genesis_rlp_hex": "f9012ff9012aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c67c70f5d7d3049337d1dcc0503a249881120019a8e7322774dbfe57b463718ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008080830f4240808080a004994f67dc55b09e814ab7ffc8df3686b4afb2bb53e60eae97ef043fe03fb829c0c0",
|
||||||
"genesis_state_root": "08bf6a98374f333b84e7d063d607696ac7cbbd409bd20fbe6a741c2dfc0eb285",
|
"genesis_state_root": "c67c70f5d7d3049337d1dcc0503a249881120019a8e7322774dbfe57b463718c",
|
||||||
"initial_alloc": {
|
"initial_alloc": {
|
||||||
"51ba59315b3a95761d0863b05ccc7a7f54703d99": "1606938044258990275541962092341162602522202993782792835301376",
|
"51ba59315b3a95761d0863b05ccc7a7f54703d99": "1606938044258990275541962092341162602522202993782792835301376",
|
||||||
"e4157b34ea9615cfbde6b4fda419828124b70c78": "1606938044258990275541962092341162602522202993782792835301376",
|
"e4157b34ea9615cfbde6b4fda419828124b70c78": "1606938044258990275541962092341162602522202993782792835301376",
|
||||||
|
@ -11,5 +11,5 @@
|
||||||
"e6716f9544a56c530d868e4bfbacb172315bdead": "1606938044258990275541962092341162602522202993782792835301376",
|
"e6716f9544a56c530d868e4bfbacb172315bdead": "1606938044258990275541962092341162602522202993782792835301376",
|
||||||
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4": "1606938044258990275541962092341162602522202993782792835301376"
|
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4": "1606938044258990275541962092341162602522202993782792835301376"
|
||||||
},
|
},
|
||||||
"genesis_hash": "f68067286ddb7245c2203b18135456de1fc4ed6a24a2d9014195faa7900025bf"
|
"genesis_hash": "955f36d073ccb026b78ab3424c15cf966a7563aa270413859f78702b9e8e22cb"
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,14 +37,14 @@
|
||||||
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x6001600101600055",
|
"code" : "0x6001600101600055",
|
||||||
"nonce" : 0,
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "",
|
"code" : "0x",
|
||||||
"nonce" : 0,
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -2142,28 +2142,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x62126af4605016600057",
|
"code" : "0x62126af460500b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "0",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62126af4605016600057",
|
"code" : "0x62126af460500b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0x126af4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62126af4605016600057",
|
"code" : "0x62126af460500b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
@ -2355,28 +2356,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x60ff68f0000000000000000116600057",
|
"code" : "0x60ff68f000000000000000010b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "0",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x60ff68f0000000000000000116600057",
|
"code" : "0x60ff68f000000000000000010b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xff"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x60ff68f0000000000000000116600057",
|
"code" : "0x60ff68f000000000000000010b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
@ -2439,28 +2441,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x62122f6a600016600057",
|
"code" : "0x62122f6a60000b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9995",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62122f6a600016600057",
|
"code" : "0x62122f6a60000b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0x6a"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62122f6a600016600057",
|
"code" : "0x62122f6a60000b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
@ -2481,28 +2484,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x62126af4600116600057",
|
"code" : "0x62126af460010b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9995",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62126af4600116600057",
|
"code" : "0x62126af460010b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0x6af4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62126af4600116600057",
|
"code" : "0x62126af460010b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
@ -2523,28 +2527,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x6212faf4600116600057",
|
"code" : "0x6212faf460010b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9995",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x6212faf4600116600057",
|
"code" : "0x6212faf460010b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaf4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x6212faf4600116600057",
|
"code" : "0x6212faf460010b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
@ -2565,28 +2570,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x66f000000000000161ffff16600057",
|
"code" : "0x66f000000000000161ffff0b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "0",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x66f000000000000161ffff16600057",
|
"code" : "0x66f000000000000161ffff0b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xf0000000000001"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x66f000000000000161ffff16600057",
|
"code" : "0x66f000000000000161ffff0b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
@ -2607,28 +2613,29 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x62122ff4600016600057",
|
"code" : "0x62122ff460000b600055",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9995",
|
"gas" : "9696",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62122ff4600016600057",
|
"code" : "0x62122ff460000b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x62122ff4600016600057",
|
"code" : "0x62122ff460000b600055",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
|
|
@ -363,7 +363,7 @@
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9995",
|
"gas" : "0",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
@ -384,6 +384,48 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jump1" : {
|
||||||
|
"callcreates" : [
|
||||||
|
],
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : "1",
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"code" : "0x620fffff620fffff0156",
|
||||||
|
"data" : "0x",
|
||||||
|
"gas" : "10000",
|
||||||
|
"gasPrice" : "100000000000000",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "1000000000000000000"
|
||||||
|
},
|
||||||
|
"gas" : "0",
|
||||||
|
"out" : "0x",
|
||||||
|
"post" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x620fffff620fffff0156",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x620fffff620fffff0156",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"jumpi0" : {
|
"jumpi0" : {
|
||||||
"callcreates" : [
|
"callcreates" : [
|
||||||
],
|
],
|
||||||
|
@ -1301,7 +1343,7 @@
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "10000",
|
"gas" : "0",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
@ -1479,7 +1521,7 @@
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9995",
|
"gas" : "0",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
{
|
|
||||||
"namecoin": {
|
|
||||||
"pre": {
|
|
||||||
"82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
|
|
||||||
"nonce": "1",
|
|
||||||
"balance": "2500000000000000000",
|
|
||||||
"storage": {},
|
|
||||||
"code": "0x"
|
|
||||||
},
|
|
||||||
"c305c901078781c232a2a521c2af7980f8385ee9": {
|
|
||||||
"nonce": "0",
|
|
||||||
"balance": "0",
|
|
||||||
"storage": {},
|
|
||||||
"code": "0x600035560f0f601d5960203560003557600160005460206000f2602758600060205460206020f2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"exec": {
|
|
||||||
"origin": "82a978b3f5962a5b0957d9ee9eef472ee55b42f1",
|
|
||||||
"code": "0x600035560f0f601d5960203560003557600160005460206000f2602758600060205460206020f2",
|
|
||||||
"value": "0",
|
|
||||||
"address": "c305c901078781c232a2a521c2af7980f8385ee9",
|
|
||||||
"gas": "10000",
|
|
||||||
"caller": "82a978b3f5962a5b0957d9ee9eef472ee55b42f1",
|
|
||||||
"data": "0x000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000004e",
|
|
||||||
"gasPrice": "1000000000000"
|
|
||||||
},
|
|
||||||
"callcreates": [],
|
|
||||||
"gas": "9663",
|
|
||||||
"env": {
|
|
||||||
"currentTimestamp": "1405282164",
|
|
||||||
"currentGasLimit": "999023",
|
|
||||||
"previousHash": "112a6e7995fcb66376f44e52f011c38d328a9ed3a1dac6eebb1376fccd055fad",
|
|
||||||
"currentCoinbase": "82a978b3f5962a5b0957d9ee9eef472ee55b42f1",
|
|
||||||
"currentDifficulty": "4190208",
|
|
||||||
"currentNumber": "1"
|
|
||||||
},
|
|
||||||
"post": {
|
|
||||||
"82a978b3f5962a5b0957d9ee9eef472ee55b42f1": {
|
|
||||||
"nonce": "1",
|
|
||||||
"balance": "2500000000000000000",
|
|
||||||
"storage": {},
|
|
||||||
"code": "0x"
|
|
||||||
},
|
|
||||||
"c305c901078781c232a2a521c2af7980f8385ee9": {
|
|
||||||
"nonce": "0",
|
|
||||||
"balance": "0",
|
|
||||||
"storage": {
|
|
||||||
"0x2d": "0x4e"
|
|
||||||
},
|
|
||||||
"code": "0x600035560f0f601d5960203560003557600160005460206000f2602758600060205460206020f2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"out": "0x0000000000000000000000000000000000000000000000000000000000000001"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -407,7 +407,7 @@
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9999",
|
"gas" : "0",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
@ -2597,7 +2597,7 @@
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"value" : "1000000000000000000"
|
"value" : "1000000000000000000"
|
||||||
},
|
},
|
||||||
"gas" : "9998",
|
"gas" : "0",
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
|
|
@ -1,23 +1,24 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
blockgenesis: require('./blockgenesistest'),
|
blockgenesis: require('./BasicTests/blockgenesistest'),
|
||||||
genesishashes: require('./genesishashestest'),
|
genesishashes: require('./BasicTests/genesishashestest'),
|
||||||
hexencode: require('./hexencodetest'),
|
hexencode: require('./BasicTests/hexencodetest'),
|
||||||
keyaddrtests: require('./keyaddrtest'),
|
keyaddrtests: require('./BasicTests/keyaddrtest'),
|
||||||
namecoin: require('./namecoin'),
|
rlptest: require('./BasicTests/rlptest'),
|
||||||
rlptest: require('./rlptest'),
|
trietest: require('./TrieTests/trietest'),
|
||||||
trietest: require('./trietest'),
|
trietestnextprev: require('./TrieTests/trietestnextprev'),
|
||||||
trietestnextprev: require('./trietestnextprev'),
|
txtest: require('./BasicTests/txtest'),
|
||||||
txtest: require('./txtest'),
|
StateTests: {
|
||||||
vmtests: {
|
stPreCompiledContracts: require('./StateTests/stPreCompiledContracts'),
|
||||||
random: require('./vmtests/random'),
|
stSystemOperationsTest: require('./StateTests/stSystemOperationsTest'),
|
||||||
vmArithmeticTest: require('./vmtests/vmArithmeticTest'),
|
},
|
||||||
vmBitwiseLogicOperationTest: require('./vmtests/vmBitwiseLogicOperationTest'),
|
VMTests: {
|
||||||
vmBlockInfoTest: require('./vmtests/vmBlockInfoTest'),
|
vmArithmeticTest: require('./VMTests/vmArithmeticTest'),
|
||||||
vmEnvironmentalInfoTest: require('./vmtests/vmEnvironmentalInfoTest'),
|
vmBitwiseLogicOperationTest: require('./VMTests/vmBitwiseLogicOperationTest'),
|
||||||
vmIOandFlowOperationsTest: require('./vmtests/vmIOandFlowOperationsTest'),
|
vmBlockInfoTest: require('./VMTests/vmBlockInfoTest'),
|
||||||
vmPushDupSwapTest: require('./vmtests/vmPushDupSwapTest'),
|
vmEnvironmentalInfoTest: require('./VMTests/vmEnvironmentalInfoTest'),
|
||||||
vmSha3Test: require('./vmtests/vmSha3Test'),
|
vmIOandFlowOperationsTest: require('./VMTests/vmIOandFlowOperationsTest'),
|
||||||
vmSystemOperationsTest: require('./vmtests/vmSystemOperationsTest'),
|
vmPushDupSwapTest: require('./VMTests/vmPushDupSwapTest'),
|
||||||
vmtests: require('./vmtests/vmtests')
|
vmSha3Test: require('./VMTests/vmSha3Test'),
|
||||||
|
vmtestst: require('./VMTests/vmtests'),
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
"randomVMtest" : {
|
|
||||||
"callcreates" : [
|
|
||||||
],
|
|
||||||
"env" : {
|
|
||||||
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
||||||
"currentDifficulty" : "256",
|
|
||||||
"currentGasLimit" : "1000000",
|
|
||||||
"currentNumber" : "0",
|
|
||||||
"currentTimestamp" : "1",
|
|
||||||
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
||||||
},
|
|
||||||
"exec" : {
|
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
|
||||||
"code" : "0x33410c45815741f394",
|
|
||||||
"data" : "0x",
|
|
||||||
"gas" : "10000",
|
|
||||||
"gasPrice" : "100000000000000",
|
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
|
||||||
"value" : "1000000000000000000"
|
|
||||||
},
|
|
||||||
"gas" : "9794",
|
|
||||||
"out" : "0x",
|
|
||||||
"post" : {
|
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
|
||||||
"balance" : "1000000000000000000",
|
|
||||||
"code" : "0x33410c45815741f394",
|
|
||||||
"nonce" : "0",
|
|
||||||
"storage" : {
|
|
||||||
"0x01" : "0x0f4240"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre" : {
|
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
|
||||||
"balance" : "1000000000000000000",
|
|
||||||
"code" : "0x33410c45815741f394",
|
|
||||||
"nonce" : "0",
|
|
||||||
"storage" : {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
{
|
|
||||||
"randomVMtest" : {
|
|
||||||
"callcreates" : [
|
|
||||||
],
|
|
||||||
"env" : {
|
|
||||||
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
||||||
"currentDifficulty" : "256",
|
|
||||||
"currentGasLimit" : "1000000",
|
|
||||||
"currentNumber" : "0",
|
|
||||||
"currentTimestamp" : "1",
|
|
||||||
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
||||||
},
|
|
||||||
"exec" : {
|
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
|
||||||
"code" : "0x7d",
|
|
||||||
"data" : "0x",
|
|
||||||
"gas" : "10000",
|
|
||||||
"gasPrice" : "100000000000000",
|
|
||||||
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
|
||||||
"value" : "1000000000000000000"
|
|
||||||
},
|
|
||||||
"gas" : "9999",
|
|
||||||
"out" : "0x",
|
|
||||||
"post" : {
|
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
|
||||||
"balance" : "1000000000000000000",
|
|
||||||
"code" : "0x7d",
|
|
||||||
"nonce" : "0",
|
|
||||||
"storage" : {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre" : {
|
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
|
||||||
"balance" : "1000000000000000000",
|
|
||||||
"code" : "0x7d",
|
|
||||||
"nonce" : "0",
|
|
||||||
"storage" : {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -113,7 +113,7 @@ func TestEnvironmentalInfo(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFlowOperation(t *testing.T) {
|
func TestFlowOperation(t *testing.T) {
|
||||||
// helper.Logger.SetLogLevel(5)
|
helper.Logger.SetLogLevel(5)
|
||||||
const fn = "../files/vmtests/vmIOandFlowOperationsTest.json"
|
const fn = "../files/vmtests/vmIOandFlowOperationsTest.json"
|
||||||
RunVmTest(fn, t)
|
RunVmTest(fn, t)
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ type Environment interface {
|
||||||
BlockHash() []byte
|
BlockHash() []byte
|
||||||
GasLimit() *big.Int
|
GasLimit() *big.Int
|
||||||
Transfer(from, to Account, amount *big.Int) error
|
Transfer(from, to Account, amount *big.Int) error
|
||||||
AddLog(state.Log)
|
AddLog(*state.Log)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Object interface {
|
type Object interface {
|
||||||
|
|
|
@ -47,6 +47,8 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
self.Endl()
|
self.Endl()
|
||||||
|
|
||||||
|
closure.UseGas(closure.Gas)
|
||||||
|
|
||||||
ret = closure.Return(nil)
|
ret = closure.Return(nil)
|
||||||
|
|
||||||
err = fmt.Errorf("%v", r)
|
err = fmt.Errorf("%v", r)
|
||||||
|
@ -735,7 +737,7 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < n; i++ {
|
||||||
topics[i] = stack.Pop().Bytes()
|
topics[i] = stack.Pop().Bytes()
|
||||||
}
|
}
|
||||||
self.env.AddLog(state.Log{closure.Address(), topics, data})
|
self.env.AddLog(&state.Log{closure.Address(), topics, data})
|
||||||
case MLOAD:
|
case MLOAD:
|
||||||
offset := stack.Pop()
|
offset := stack.Pop()
|
||||||
val := ethutil.BigD(mem.Get(offset.Int64(), 32))
|
val := ethutil.BigD(mem.Get(offset.Int64(), 32))
|
||||||
|
|
|
@ -34,7 +34,7 @@ func (self *VMEnv) BlockHash() []byte { return self.block.Hash() }
|
||||||
func (self *VMEnv) Value() *big.Int { return self.value }
|
func (self *VMEnv) Value() *big.Int { return self.value }
|
||||||
func (self *VMEnv) State() *state.State { return self.state }
|
func (self *VMEnv) State() *state.State { return self.state }
|
||||||
func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
|
func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
|
||||||
func (self *VMEnv) AddLog(state.Log) {}
|
func (self *VMEnv) AddLog(*state.Log) {}
|
||||||
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
|
||||||
return vm.Transfer(from, to, amount)
|
return vm.Transfer(from, to, amount)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue