aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/ethereum/repl/repl.go1
-rw-r--r--cmd/evm/main.go6
-rw-r--r--cmd/mist/debugger.go8
-rw-r--r--cmd/mist/gui.go36
-rw-r--r--cmd/utils/vm_env.go6
-rw-r--r--core/chain_manager.go26
-rw-r--r--core/chain_manager_test.go27
-rw-r--r--core/execution.go6
-rw-r--r--core/simple_pow.go1
-rw-r--r--core/state_transition.go2
-rw-r--r--core/transaction_pool.go147
-rw-r--r--core/transaction_pool_test.go81
-rw-r--r--core/types/block.go4
-rw-r--r--core/types/block_test.go22
-rw-r--r--core/types/transaction.go5
-rw-r--r--core/vm_env.go6
-rw-r--r--eth/backend.go8
-rw-r--r--eth/protocol.go2
-rw-r--r--javascript/types.go30
-rw-r--r--state/state_test.go9
-rw-r--r--tests/files/StateTests/stInitCodeTest.json341
-rw-r--r--tests/files/StateTests/stSystemOperationsTest.json388
-rw-r--r--tests/files/StateTests/stTransactionTest.json206
-rw-r--r--tests/files/VMTests/RandomTests/randomTest.json46
-rw-r--r--tests/files/VMTests/vmArithmeticTest.json3630
-rw-r--r--tests/files/VMTests/vmIOandFlowOperationsTest.json79
-rw-r--r--tests/helper/vm.go6
-rw-r--r--tests/vm/gh_test.go8
-rw-r--r--vm/analysis.go25
-rw-r--r--vm/context.go (renamed from vm/closure.go)34
-rw-r--r--vm/environment.go6
-rw-r--r--vm/virtual_machine.go2
-rw-r--r--vm/vm.go2
-rw-r--r--vm/vm_debug.go134
-rw-r--r--whisper/envelope.go1
-rw-r--r--whisper/messages_test.go5
-rw-r--r--xeth/pipe.go2
-rw-r--r--xeth/vm_env.go6
38 files changed, 4614 insertions, 740 deletions
diff --git a/cmd/ethereum/repl/repl.go b/cmd/ethereum/repl/repl.go
index 822aaa19d..78bb19cec 100644
--- a/cmd/ethereum/repl/repl.go
+++ b/cmd/ethereum/repl/repl.go
@@ -86,6 +86,7 @@ func (self *JSRepl) Stop() {
}
func (self *JSRepl) parseInput(code string) {
+
value, err := self.re.Run(code)
if err != nil {
fmt.Println(err)
diff --git a/cmd/evm/main.go b/cmd/evm/main.go
index 66bba7289..31b7da3c8 100644
--- a/cmd/evm/main.go
+++ b/cmd/evm/main.go
@@ -144,19 +144,19 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execu
return core.NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
ret, err := exe.Call(addr, caller)
self.Gas = exe.Gas
return ret, err
}
-func (self *VMEnv) CallCode(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(caller.Address(), data, gas, price, value)
return exe.Call(addr, caller)
}
-func (self *VMEnv) Create(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(caller)
}
diff --git a/cmd/mist/debugger.go b/cmd/mist/debugger.go
index a7a286e23..0e97a6652 100644
--- a/cmd/mist/debugger.go
+++ b/cmd/mist/debugger.go
@@ -309,9 +309,11 @@ func (d *Debugger) halting(pc int, op vm.OpCode, mem *vm.Memory, stack *vm.Stack
d.win.Root().Call("setStack", val.String())
}
- stateObject.EachStorage(func(key string, node *ethutil.Value) {
- d.win.Root().Call("setStorage", storeVal{fmt.Sprintf("% x", key), fmt.Sprintf("% x", node.Str())})
- })
+ it := stateObject.Trie().Iterator()
+ for it.Next() {
+ d.win.Root().Call("setStorage", storeVal{fmt.Sprintf("% x", it.Key), fmt.Sprintf("% x", it.Value)})
+
+ }
stackFrameAt := new(big.Int).SetBytes(mem.Get(0, 32))
psize := mem.Len() - int(new(big.Int).SetBytes(mem.Get(0, 32)).Uint64())
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index e5e18bbaa..98ca70b16 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -231,35 +231,33 @@ func (gui *Gui) loadAddressBook() {
view := gui.getObjectByName("infoView")
nameReg := gui.pipe.World().Config().Get("NameReg")
if nameReg != nil {
- nameReg.EachStorage(func(name string, value *ethutil.Value) {
- if name[0] != 0 {
- value.Decode()
-
- view.Call("addAddress", struct{ Name, Address string }{name, ethutil.Bytes2Hex(value.Bytes())})
+ it := nameReg.Trie().Iterator()
+ for it.Next() {
+ if it.Key[0] != 0 {
+ view.Call("addAddress", struct{ Name, Address string }{string(it.Key), ethutil.Bytes2Hex(it.Value)})
}
- })
+
+ }
}
}
func (self *Gui) loadMergedMiningOptions() {
view := self.getObjectByName("mergedMiningModel")
- nameReg := self.pipe.World().Config().Get("MergeMining")
- if nameReg != nil {
+ mergeMining := self.pipe.World().Config().Get("MergeMining")
+ if mergeMining != nil {
i := 0
- nameReg.EachStorage(func(name string, value *ethutil.Value) {
- if name[0] != 0 {
- value.Decode()
+ it := mergeMining.Trie().Iterator()
+ for it.Next() {
+ view.Call("addMergedMiningOption", struct {
+ Checked bool
+ Name, Address string
+ Id, ItemId int
+ }{false, string(it.Key), ethutil.Bytes2Hex(it.Value), 0, i})
- view.Call("addMergedMiningOption", struct {
- Checked bool
- Name, Address string
- Id, ItemId int
- }{false, name, ethutil.Bytes2Hex(value.Bytes()), 0, i})
+ i++
- i++
- }
- })
+ }
}
}
diff --git a/cmd/utils/vm_env.go b/cmd/utils/vm_env.go
index be6249e82..19091bdc5 100644
--- a/cmd/utils/vm_env.go
+++ b/cmd/utils/vm_env.go
@@ -52,19 +52,19 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execu
return core.NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
ret, err := exe.Call(addr, caller)
self.Gas = exe.Gas
return ret, err
}
-func (self *VMEnv) CallCode(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(caller.Address(), data, gas, price, value)
return exe.Call(addr, caller)
}
-func (self *VMEnv) Create(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(caller)
}
diff --git a/core/chain_manager.go b/core/chain_manager.go
index 485c195d5..ece98d783 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -16,25 +16,9 @@ import (
var chainlogger = logger.NewLogger("CHAIN")
-/*
-func AddTestNetFunds(block *types.Block) {
- for _, addr := range []string{
- "51ba59315b3a95761d0863b05ccc7a7f54703d99",
- "e4157b34ea9615cfbde6b4fda419828124b70c78",
- "b9c015918bdaba24b4ff057a92a3873d6eb201be",
- "6c386a4b26f73c802f34673f7248bb118f97424a",
- "cd2a3d9f938e13cd947ec05abc7fe734df8dd826",
- "2ef47100e0787b915105fd5e3f4ff6752079d5cb",
- "e6716f9544a56c530d868e4bfbacb172315bdead",
- "1a26338f0d905e295fccb71fa9ea849ffa12aaf4",
- } {
- codedAddr := ethutil.Hex2Bytes(addr)
- account := block.State().GetAccount(codedAddr)
- account.SetBalance(ethutil.Big("1606938044258990275541962092341162602522202993782792835301376")) //ethutil.BigPow(2, 200)
- block.State().UpdateStateObject(account)
- }
+type StateQuery interface {
+ GetAccount(addr []byte) *state.StateObject
}
-*/
func CalcDifficulty(block, parent *types.Block) *big.Int {
diff := new(big.Int)
@@ -351,6 +335,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
chainlogger.Infoln(err)
return err
}
+ block.Td = td
self.mu.Lock()
{
@@ -375,3 +360,8 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
return nil
}
+
+// Satisfy state query interface
+func (self *ChainManager) GetAccount(addr []byte) *state.StateObject {
+ return self.State().GetAccount(addr)
+}
diff --git a/core/chain_manager_test.go b/core/chain_manager_test.go
index 108718901..2ed3c6c9e 100644
--- a/core/chain_manager_test.go
+++ b/core/chain_manager_test.go
@@ -16,17 +16,12 @@ import (
"github.com/ethereum/go-ethereum/rlp"
)
-//var Logger logpkg.LogSystem
-
-//var Log = logpkg.NewLogger("TEST")
-
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
- //Logger = logpkg.NewStdLogSystem(os.Stdout, log.LstdFlags, logpkg.DebugLevel)
- //logpkg.AddLogSystem(Logger)
-
ethutil.ReadConfig("/tmp/ethtest", "/tmp/ethtest", "ETH")
+}
+func reset() {
db, err := ethdb.NewMemDatabase()
if err != nil {
panic("Could not create mem-db, failing")
@@ -35,7 +30,7 @@ func init() {
}
func loadChain(fn string, t *testing.T) (types.Blocks, error) {
- fh, err := os.OpenFile(path.Join("..", "_data", fn), os.O_RDONLY, os.ModePerm)
+ fh, err := os.OpenFile(path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "_data", fn), os.O_RDONLY, os.ModePerm)
if err != nil {
return nil, err
}
@@ -51,20 +46,21 @@ func loadChain(fn string, t *testing.T) (types.Blocks, error) {
func insertChain(done chan bool, chainMan *ChainManager, chain types.Blocks, t *testing.T) {
err := chainMan.InsertChain(chain)
- done <- true
if err != nil {
fmt.Println(err)
t.FailNow()
}
+ done <- true
}
func TestChainInsertions(t *testing.T) {
+ reset()
+
chain1, err := loadChain("valid1", t)
if err != nil {
fmt.Println(err)
t.FailNow()
}
- fmt.Println(len(chain1))
chain2, err := loadChain("valid2", t)
if err != nil {
@@ -74,7 +70,7 @@ func TestChainInsertions(t *testing.T) {
var eventMux event.TypeMux
chainMan := NewChainManager(&eventMux)
- txPool := NewTxPool(chainMan, &eventMux)
+ txPool := NewTxPool(&eventMux)
blockMan := NewBlockManager(txPool, chainMan, &eventMux)
chainMan.SetProcessor(blockMan)
@@ -98,6 +94,8 @@ func TestChainInsertions(t *testing.T) {
}
func TestChainMultipleInsertions(t *testing.T) {
+ reset()
+
const max = 4
chains := make([]types.Blocks, max)
var longest int
@@ -114,15 +112,16 @@ func TestChainMultipleInsertions(t *testing.T) {
t.FailNow()
}
}
-
var eventMux event.TypeMux
chainMan := NewChainManager(&eventMux)
- txPool := NewTxPool(chainMan, &eventMux)
+ txPool := NewTxPool(&eventMux)
blockMan := NewBlockManager(txPool, chainMan, &eventMux)
chainMan.SetProcessor(blockMan)
done := make(chan bool, max)
for i, chain := range chains {
- var i int = i
+ // XXX the go routine would otherwise reference the same (chain[3]) variable and fail
+ i := i
+ chain := chain
go func() {
insertChain(done, chainMan, chain, t)
fmt.Println(i, "done")
diff --git a/core/execution.go b/core/execution.go
index b7eead0dd..a7bb59651 100644
--- a/core/execution.go
+++ b/core/execution.go
@@ -24,14 +24,14 @@ func (self *Execution) Addr() []byte {
return self.address
}
-func (self *Execution) Call(codeAddr []byte, caller vm.ClosureRef) ([]byte, error) {
+func (self *Execution) Call(codeAddr []byte, caller vm.ContextRef) ([]byte, error) {
// Retrieve the executing code
code := self.env.State().GetCode(codeAddr)
return self.exec(code, codeAddr, caller)
}
-func (self *Execution) exec(code, contextAddr []byte, caller vm.ClosureRef) (ret []byte, err error) {
+func (self *Execution) exec(code, contextAddr []byte, caller vm.ContextRef) (ret []byte, err error) {
env := self.env
evm := vm.New(env, vm.DebugVmTy)
@@ -63,7 +63,7 @@ func (self *Execution) exec(code, contextAddr []byte, caller vm.ClosureRef) (ret
return
}
-func (self *Execution) Create(caller vm.ClosureRef) (ret []byte, err error, account *state.StateObject) {
+func (self *Execution) Create(caller vm.ContextRef) (ret []byte, err error, account *state.StateObject) {
ret, err = self.exec(self.input, nil, caller)
account = self.env.State().GetStateObject(self.address)
diff --git a/core/simple_pow.go b/core/simple_pow.go
deleted file mode 100644
index 9a8bc9592..000000000
--- a/core/simple_pow.go
+++ /dev/null
@@ -1 +0,0 @@
-package core
diff --git a/core/state_transition.go b/core/state_transition.go
index 7b7026c29..91cfd5fe3 100644
--- a/core/state_transition.go
+++ b/core/state_transition.go
@@ -184,7 +184,7 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) {
}
vmenv := self.VmEnv()
- var ref vm.ClosureRef
+ var ref vm.ContextRef
if MessageCreatesContract(msg) {
contract := MakeContract(msg, self.state)
ret, err, ref = vmenv.Create(sender, contract.Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
diff --git a/core/transaction_pool.go b/core/transaction_pool.go
index 1149d4cfb..fa284e52d 100644
--- a/core/transaction_pool.go
+++ b/core/transaction_pool.go
@@ -1,16 +1,13 @@
package core
import (
- "bytes"
- "container/list"
"fmt"
- "math/big"
- "sync"
"github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
- "github.com/ethereum/go-ethereum/state"
+ "gopkg.in/fatih/set.v0"
)
var txplogger = logger.NewLogger("TXP")
@@ -26,101 +23,66 @@ const (
minGasPrice = 1000000
)
-var MinGasPrice = big.NewInt(10000000000000)
-
-func EachTx(pool *list.List, it func(*types.Transaction, *list.Element) bool) {
- for e := pool.Front(); e != nil; e = e.Next() {
- if it(e.Value.(*types.Transaction), e) {
- break
- }
- }
-}
-
-func FindTx(pool *list.List, finder func(*types.Transaction, *list.Element) bool) *types.Transaction {
- for e := pool.Front(); e != nil; e = e.Next() {
- if tx, ok := e.Value.(*types.Transaction); ok {
- if finder(tx, e) {
- return tx
- }
- }
- }
-
- return nil
-}
-
type TxProcessor interface {
ProcessTransaction(tx *types.Transaction)
}
// The tx pool a thread safe transaction pool handler. In order to
// guarantee a non blocking pool we use a queue channel which can be
-// independently read without needing access to the actual pool. If the
-// pool is being drained or synced for whatever reason the transactions
-// will simple queue up and handled when the mutex is freed.
+// independently read without needing access to the actual pool.
type TxPool struct {
- // The mutex for accessing the Tx pool.
- mutex sync.Mutex
// Queueing channel for reading and writing incoming
// transactions to
queueChan chan *types.Transaction
// Quiting channel
quit chan bool
// The actual pool
- pool *list.List
+ //pool *list.List
+ pool *set.Set
SecondaryProcessor TxProcessor
subscribers []chan TxMsg
- chainManager *ChainManager
- eventMux *event.TypeMux
+ eventMux *event.TypeMux
}
-func NewTxPool(chainManager *ChainManager, eventMux *event.TypeMux) *TxPool {
+func NewTxPool(eventMux *event.TypeMux) *TxPool {
return &TxPool{
- pool: list.New(),
- queueChan: make(chan *types.Transaction, txPoolQueueSize),
- quit: make(chan bool),
- chainManager: chainManager,
- eventMux: eventMux,
+ pool: set.New(),
+ queueChan: make(chan *types.Transaction, txPoolQueueSize),
+ quit: make(chan bool),
+ eventMux: eventMux,
}
}
-// Blocking function. Don't use directly. Use QueueTransaction instead
func (pool *TxPool) addTransaction(tx *types.Transaction) {
- pool.mutex.Lock()
- defer pool.mutex.Unlock()
-
- pool.pool.PushBack(tx)
+ pool.pool.Add(tx)
// Broadcast the transaction to the rest of the peers
pool.eventMux.Post(TxPreEvent{tx})
}
func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
- // Get the last block so we can retrieve the sender and receiver from
- // the merkle trie
- block := pool.chainManager.CurrentBlock
- // Something has gone horribly wrong if this happens
- if block == nil {
- return fmt.Errorf("No last block on the block chain")
- }
-
if len(tx.To()) != 0 && len(tx.To()) != 20 {
return fmt.Errorf("Invalid recipient. len = %d", len(tx.To()))
}
v, _, _ := tx.Curve()
if v > 28 || v < 27 {
- return fmt.Errorf("tx.v != (28 || 27)")
+ return fmt.Errorf("tx.v != (28 || 27) => %v", v)
}
+ /* XXX this kind of validation needs to happen elsewhere in the gui when sending txs.
+ Other clients should do their own validation. Value transfer could throw error
+ but doesn't necessarily invalidate the tx. Gas can still be payed for and miner
+ can still be rewarded for their inclusion and processing.
// Get the sender
senderAddr := tx.From()
if senderAddr == nil {
return fmt.Errorf("invalid sender")
}
- sender := pool.chainManager.State().GetAccount(senderAddr)
+ sender := pool.stateQuery.GetAccount(senderAddr)
totAmount := new(big.Int).Set(tx.Value())
// Make sure there's enough in the sender's account. Having insufficient
@@ -128,20 +90,14 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
if sender.Balance().Cmp(totAmount) < 0 {
return fmt.Errorf("Insufficient amount in sender's (%x) account", tx.From())
}
-
- // Increment the nonce making each tx valid only once to prevent replay
- // attacks
+ */
return nil
}
func (self *TxPool) Add(tx *types.Transaction) error {
hash := tx.Hash()
- foundTx := FindTx(self.pool, func(tx *types.Transaction, e *list.Element) bool {
- return bytes.Compare(tx.Hash(), hash) == 0
- })
-
- if foundTx != nil {
+ if self.pool.Has(tx) {
return fmt.Errorf("Known transaction (%x)", hash[0:4])
}
@@ -152,7 +108,14 @@ func (self *TxPool) Add(tx *types.Transaction) error {
self.addTransaction(tx)
- txplogger.Debugf("(t) %x => %x (%v) %x\n", tx.From()[:4], tx.To()[:4], tx.Value, tx.Hash())
+ var to string
+ if len(tx.To()) > 0 {
+ to = ethutil.Bytes2Hex(tx.To()[:4])
+ } else {
+ to = "[NEW_CONTRACT]"
+ }
+
+ txplogger.Debugf("(t) %x => %s (%v) %x\n", tx.From()[:4], to, tx.Value, tx.Hash())
// Notify the subscribers
go self.eventMux.Post(TxPreEvent{tx})
@@ -161,7 +124,7 @@ func (self *TxPool) Add(tx *types.Transaction) error {
}
func (self *TxPool) Size() int {
- return self.pool.Len()
+ return self.pool.Size()
}
func (self *TxPool) AddTransactions(txs []*types.Transaction) {
@@ -175,63 +138,47 @@ func (self *TxPool) AddTransactions(txs []*types.Transaction) {
}
func (pool *TxPool) GetTransactions() []*types.Transaction {
- pool.mutex.Lock()
- defer pool.mutex.Unlock()
-
- txList := make([]*types.Transaction, pool.pool.Len())
+ txList := make([]*types.Transaction, pool.Size())
i := 0
- for e := pool.pool.Front(); e != nil; e = e.Next() {
- tx := e.Value.(*types.Transaction)
-
- txList[i] = tx
-
+ pool.pool.Each(func(v interface{}) bool {
+ txList[i] = v.(*types.Transaction)
i++
- }
+
+ return true
+ })
return txList
}
-func (pool *TxPool) RemoveInvalid(state *state.StateDB) {
- pool.mutex.Lock()
- defer pool.mutex.Unlock()
-
- for e := pool.pool.Front(); e != nil; e = e.Next() {
- tx := e.Value.(*types.Transaction)
- sender := state.GetAccount(tx.From())
+func (pool *TxPool) RemoveInvalid(query StateQuery) {
+ var removedTxs types.Transactions
+ pool.pool.Each(func(v interface{}) bool {
+ tx := v.(*types.Transaction)
+ sender := query.GetAccount(tx.From())
err := pool.ValidateTransaction(tx)
if err != nil || sender.Nonce >= tx.Nonce() {
- pool.pool.Remove(e)
+ removedTxs = append(removedTxs, tx)
}
- }
+
+ return true
+ })
+ pool.RemoveSet(removedTxs)
}
func (self *TxPool) RemoveSet(txs types.Transactions) {
- self.mutex.Lock()
- defer self.mutex.Unlock()
-
for _, tx := range txs {
- EachTx(self.pool, func(t *types.Transaction, element *list.Element) bool {
- if t == tx {
- self.pool.Remove(element)
- return true // To stop the loop
- }
- return false
- })
+ self.pool.Remove(tx)
}
}
func (pool *TxPool) Flush() []*types.Transaction {
txList := pool.GetTransactions()
-
- // Recreate a new list all together
- // XXX Is this the fastest way?
- pool.pool = list.New()
+ pool.pool.Clear()
return txList
}
func (pool *TxPool) Start() {
- //go pool.queueHandler()
}
func (pool *TxPool) Stop() {
diff --git a/core/transaction_pool_test.go b/core/transaction_pool_test.go
new file mode 100644
index 000000000..e77d7a1ae
--- /dev/null
+++ b/core/transaction_pool_test.go
@@ -0,0 +1,81 @@
+package core
+
+import (
+ "crypto/ecdsa"
+ "testing"
+
+ "github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/event"
+ "github.com/ethereum/go-ethereum/state"
+)
+
+// State query interface
+type stateQuery struct{}
+
+func (self stateQuery) GetAccount(addr []byte) *state.StateObject {
+ return state.NewStateObject(addr)
+}
+
+func transaction() *types.Transaction {
+ return types.NewTransactionMessage(make([]byte, 20), ethutil.Big0, ethutil.Big0, ethutil.Big0, nil)
+}
+
+func setup() (*TxPool, *ecdsa.PrivateKey) {
+ var m event.TypeMux
+ key, _ := crypto.GenerateKey()
+ return NewTxPool(&m), key
+}
+
+func TestTxAdding(t *testing.T) {
+ pool, key := setup()
+ tx1 := transaction()
+ tx1.SignECDSA(key)
+ err := pool.Add(tx1)
+ if err != nil {
+ t.Error(err)
+ }
+
+ err = pool.Add(tx1)
+ if err == nil {
+ t.Error("added tx twice")
+ }
+}
+
+func TestAddInvalidTx(t *testing.T) {
+ pool, _ := setup()
+ tx1 := transaction()
+ err := pool.Add(tx1)
+ if err == nil {
+ t.Error("expected error")
+ }
+}
+
+func TestRemoveSet(t *testing.T) {
+ pool, _ := setup()
+ tx1 := transaction()
+ pool.pool.Add(tx1)
+ pool.RemoveSet(types.Transactions{tx1})
+ if pool.Size() > 0 {
+ t.Error("expected pool size to be 0")
+ }
+}
+
+func TestRemoveInvalid(t *testing.T) {
+ pool, key := setup()
+ tx1 := transaction()
+ pool.pool.Add(tx1)
+ pool.RemoveInvalid(stateQuery{})
+ if pool.Size() > 0 {
+ t.Error("expected pool size to be 0")
+ }
+
+ tx1.SetNonce(1)
+ tx1.SignECDSA(key)
+ pool.pool.Add(tx1)
+ pool.RemoveInvalid(stateQuery{})
+ if pool.Size() != 1 {
+ t.Error("expected pool size to be 1, is", pool.Size())
+ }
+}
diff --git a/core/types/block.go b/core/types/block.go
index 7b4695f73..b59044bfc 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -209,7 +209,7 @@ func (self *Block) HashNoNonce() []byte {
}
func (self *Block) String() string {
- return fmt.Sprintf(`BLOCK(%x): Size: %v {
+ return fmt.Sprintf(`BLOCK(%x): Size: %v TD: %v {
Header:
[
%v
@@ -219,7 +219,7 @@ Transactions:
Uncles:
%v
}
-`, self.header.Hash(), self.Size(), self.header, self.transactions, self.uncles)
+`, self.header.Hash(), self.Size(), self.Td, self.header, self.transactions, self.uncles)
}
func (self *Header) String() string {
diff --git a/core/types/block_test.go b/core/types/block_test.go
index c85708975..ab1254f4c 100644
--- a/core/types/block_test.go
+++ b/core/types/block_test.go
@@ -1,23 +1 @@
package types
-
-import (
- "bytes"
- "testing"
-
- "github.com/ethereum/go-ethereum/ethdb"
- "github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/rlp"
-)
-
-func init() {
- ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
- ethutil.Config.Db, _ = ethdb.NewMemDatabase()
-}
-
-func TestNewBlock(t *testing.T) {
- block := GenesisBlock()
- data := ethutil.Encode(block)
-
- var genesis Block
- err := rlp.Decode(bytes.NewReader(data), &genesis)
-}
diff --git a/core/types/transaction.go b/core/types/transaction.go
index 59244adc3..83d76648f 100644
--- a/core/types/transaction.go
+++ b/core/types/transaction.go
@@ -2,6 +2,7 @@ package types
import (
"bytes"
+ "crypto/ecdsa"
"fmt"
"math/big"
@@ -139,6 +140,10 @@ func (tx *Transaction) Sign(privk []byte) error {
return nil
}
+func (tx *Transaction) SignECDSA(key *ecdsa.PrivateKey) error {
+ return tx.Sign(crypto.FromECDSA(key))
+}
+
func (tx *Transaction) RlpData() interface{} {
data := []interface{}{tx.AccountNonce, tx.Price, tx.GasLimit, tx.Recipient, tx.Amount, tx.Payload}
diff --git a/core/vm_env.go b/core/vm_env.go
index 209115eab..4e0315ff3 100644
--- a/core/vm_env.go
+++ b/core/vm_env.go
@@ -46,16 +46,16 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *Execution
return NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) CallCode(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(me.Address(), data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) Create(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(me)
}
diff --git a/eth/backend.go b/eth/backend.go
index 383cda46f..36c1ac30f 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -70,7 +70,7 @@ func New(db ethutil.Database, identity p2p.ClientIdentity, keyManager *crypto.Ke
}
eth.chainManager = core.NewChainManager(eth.EventMux())
- eth.txPool = core.NewTxPool(eth.chainManager, eth.EventMux())
+ eth.txPool = core.NewTxPool(eth.EventMux())
eth.blockManager = core.NewBlockManager(eth.txPool, eth.chainManager, eth.EventMux())
eth.chainManager.SetProcessor(eth.blockManager)
eth.whisper = whisper.New()
@@ -234,8 +234,10 @@ func (self *Ethereum) txBroadcastLoop() {
func (self *Ethereum) blockBroadcastLoop() {
// automatically stops if unsubscribe
for obj := range self.txSub.Chan() {
- event := obj.(core.NewMinedBlockEvent)
- self.server.Broadcast("eth", NewBlockMsg, event.Block.RlpData())
+ switch ev := obj.(type) {
+ case core.NewMinedBlockEvent:
+ self.server.Broadcast("eth", NewBlockMsg, ev.Block.RlpData())
+ }
}
}
diff --git a/eth/protocol.go b/eth/protocol.go
index 963d41794..7c5d09489 100644
--- a/eth/protocol.go
+++ b/eth/protocol.go
@@ -13,7 +13,7 @@ import (
)
const (
- ProtocolVersion = 49
+ ProtocolVersion = 51
NetworkId = 0
ProtocolLength = uint64(8)
ProtocolMaxMsgSize = 10 * 1024 * 1024
diff --git a/javascript/types.go b/javascript/types.go
index ce1d9995a..61a57033b 100644
--- a/javascript/types.go
+++ b/javascript/types.go
@@ -72,15 +72,21 @@ type JSEthereum struct {
ethereum *eth.Ethereum
}
-func (self *JSEthereum) GetBlock(hash string) otto.Value {
- return self.toVal(&JSBlock{self.JSXEth.BlockByHash(hash), self})
+func (self *JSEthereum) Block(v interface{}) otto.Value {
+ if number, ok := v.(int64); ok {
+ return self.toVal(&JSBlock{self.JSXEth.BlockByNumber(int32(number)), self})
+ } else if hash, ok := v.(string); ok {
+ return self.toVal(&JSBlock{self.JSXEth.BlockByHash(hash), self})
+ }
+
+ return otto.UndefinedValue()
}
-func (self *JSEthereum) GetPeers() otto.Value {
+func (self *JSEthereum) Peers() otto.Value {
return self.toVal(self.JSXEth.Peers())
}
-func (self *JSEthereum) GetKey() otto.Value {
+func (self *JSEthereum) Key() otto.Value {
return self.toVal(self.JSXEth.Key())
}
@@ -88,10 +94,6 @@ func (self *JSEthereum) GetStateObject(addr string) otto.Value {
return self.toVal(&JSStateObject{xeth.NewJSObject(self.JSXEth.World().SafeGet(ethutil.Hex2Bytes(addr))), self})
}
-func (self *JSEthereum) Peers() otto.Value {
- return self.toVal(self.JSXEth.Peers())
-}
-
func (self *JSEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr, dataStr string) otto.Value {
r, err := self.JSXEth.Transact(key, recipient, valueStr, gasStr, gasPriceStr, dataStr)
if err != nil {
@@ -103,18 +105,6 @@ func (self *JSEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr,
return self.toVal(r)
}
-func (self *JSEthereum) Create(key, valueStr, gasStr, gasPriceStr, scriptStr string) otto.Value {
- r, err := self.JSXEth.Transact(key, "", valueStr, gasStr, gasPriceStr, scriptStr)
-
- if err != nil {
- fmt.Println(err)
-
- return otto.UndefinedValue()
- }
-
- return self.toVal(r)
-}
-
func (self *JSEthereum) toVal(v interface{}) otto.Value {
result, err := self.vm.ToValue(v)
diff --git a/state/state_test.go b/state/state_test.go
index 28e4fc5da..1f76eff0f 100644
--- a/state/state_test.go
+++ b/state/state_test.go
@@ -5,7 +5,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/trie"
+ "github.com/ethereum/go-ethereum/ptrie"
)
type StateSuite struct {
@@ -18,9 +18,8 @@ var _ = checker.Suite(&StateSuite{})
func (s *StateSuite) TestDump(c *checker.C) {
key := []byte{0x01}
- value := "foo"
- node := []interface{}{key, value}
- s.state.Trie.Put(node)
+ value := []byte("foo")
+ s.state.trie.Update(key, value)
dump := s.state.Dump()
c.Assert(dump, checker.NotNil)
}
@@ -29,7 +28,7 @@ func (s *StateSuite) SetUpTest(c *checker.C) {
db, _ := ethdb.NewMemDatabase()
ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
ethutil.Config.Db = db
- s.state = New(trie.New(db, ""))
+ s.state = New(ptrie.New(nil, db))
}
func (s *StateSuite) TestSnapshot(c *checker.C) {
diff --git a/tests/files/StateTests/stInitCodeTest.json b/tests/files/StateTests/stInitCodeTest.json
index 1c4670cef..c44d71039 100644
--- a/tests/files/StateTests/stInitCodeTest.json
+++ b/tests/files/StateTests/stInitCodeTest.json
@@ -1,9 +1,9 @@
{
- "CallRecursiveContract" : {
+ "CallContractToCreateContractAndCallItOOG" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "45678256",
- "currentGasLimit" : "1000000",
+ "currentGasLimit" : "100000000",
"currentNumber" : "0",
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
@@ -12,222 +12,329 @@
],
"out" : "0x",
"post" : {
- "04110d816c380812a427968ece99b1c963dfbce6" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x04110d816c380812a427968ece99b1c963dfbce6"
- }
- },
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "1",
- "code" : "0x3060025560206000600039602060006000f0",
+ "balance" : "998",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546000f1",
"nonce" : "1",
"storage" : {
- "0x02" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87"
+ "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
}
},
- "0a517d755cebbf66312b30fff713666a9cb917e0" : {
- "balance" : "0",
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1301",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x0a517d755cebbf66312b30fff713666a9cb917e0"
}
},
- "24dd378f51adc67a50e339e8031fe9bd4aafab36" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99998699",
"code" : "0x",
"nonce" : "1",
"storage" : {
- "0x02" : "0x24dd378f51adc67a50e339e8031fe9bd4aafab36"
}
},
- "293f982d000532a7861ab122bdc4bbfd26bf9030" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "2",
+ "code" : "0x602060406000f0",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x293f982d000532a7861ab122bdc4bbfd26bf9030"
+ "0x" : "0x0c"
}
- },
- "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "10000",
- "code" : "0x",
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546000f1",
"nonce" : "0",
"storage" : {
}
},
- "2cf5732f017b0cf1b1f13a1478e10239716bf6b5" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x2cf5732f017b0cf1b1f13a1478e10239716bf6b5"
}
- },
- "31c640b92c21a1f1465c91070b4b3b4d6854195f" : {
- "balance" : "0",
- "code" : "0x",
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractNoCash" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6103e9f0600055",
"nonce" : "0",
"storage" : {
}
},
- "37f998764813b136ddf5a754f34063fd03065e36" : {
- "balance" : "0",
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "709",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x37f998764813b136ddf5a754f34063fd03065e36"
}
},
- "37fa399a749c121f8a15ce77e3d9f9bec8020d7a" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99999291",
"code" : "0x",
"nonce" : "1",
"storage" : {
- "0x02" : "0x37fa399a749c121f8a15ce77e3d9f9bec8020d7a"
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6103e9f0600055",
+ "nonce" : "0",
+ "storage" : {
}
},
- "4f36659fa632310b6ec438dea4085b522a2dd077" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x4f36659fa632310b6ec438dea4085b522a2dd077"
}
- },
- "62c01474f089b07dae603491675dc5b5748f7049" : {
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractOOG" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0000000000000000000000000000000000000000" : {
"balance" : "0",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x62c01474f089b07dae603491675dc5b5748f7049"
}
},
- "729af7294be595a0efd7d891c9e51f89c07950c7" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "0",
- "code" : "0x",
- "nonce" : "1",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060006000546000f1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x729af7294be595a0efd7d891c9e51f89c07950c7"
}
},
- "83e3e5a16d3b696a0314b30b2534804dd5e11197" : {
- "balance" : "0",
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "756",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x83e3e5a16d3b696a0314b30b2534804dd5e11197"
}
},
- "8703df2417e0d7c59d063caa9583cb10a4d20532" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99999244",
"code" : "0x",
"nonce" : "1",
"storage" : {
- "0x02" : "0x8703df2417e0d7c59d063caa9583cb10a4d20532"
}
- },
- "8dffcd74e5b5923512916c6a64b502689cfa65e1" : {
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "0",
- "code" : "0x",
- "nonce" : "1",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060006000546000f1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x8dffcd74e5b5923512916c6a64b502689cfa65e1"
}
},
- "95a4d7cccb5204733874fa87285a176fe1e9e240" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
"code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractWhichWouldCreateContractIfCalled" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "998",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546101f4f1",
"nonce" : "1",
"storage" : {
- "0x02" : "0x95a4d7cccb5204733874fa87285a176fe1e9e240"
+ "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
}
},
- "99b2fcba8120bedd048fe79f5262a6690ed38c39" : {
- "balance" : "0",
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1407",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0x99b2fcba8120bedd048fe79f5262a6690ed38c39"
}
},
- "a4202b8b8afd5354e3e40a219bdc17f6001bf2cf" : {
+ "62c01474f089b07dae603491675dc5b5748f7049" : {
"balance" : "0",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0xa4202b8b8afd5354e3e40a219bdc17f6001bf2cf"
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "89999",
+ "balance" : "99998593",
"code" : "0x",
"nonce" : "1",
"storage" : {
}
},
- "a9647f4a0a14042d91dc33c0328030a7157c93ae" : {
- "balance" : "0",
- "code" : "0x",
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "2",
+ "code" : "0x602060406000f0",
"nonce" : "1",
"storage" : {
- "0x02" : "0xa9647f4a0a14042d91dc33c0328030a7157c93ae"
+ "0x" : "0x0c"
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546101f4f1",
+ "nonce" : "0",
+ "storage" : {
}
},
- "aa6cffe5185732689c18f37a7f86170cb7304c2a" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
"code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractWhichWouldCreateContractInInitCode" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1",
+ "code" : "0x6b600c600055602060406000f0600052600c60146000f0",
"nonce" : "1",
"storage" : {
- "0x02" : "0xaa6cffe5185732689c18f37a7f86170cb7304c2a"
}
},
- "aae4a2e3c51c04606dcb3723456e58f3ed214f45" : {
- "balance" : "0",
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1016",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0xaae4a2e3c51c04606dcb3723456e58f3ed214f45"
}
},
- "c37a43e940dfb5baf581a0b82b351d48305fc885" : {
+ "62c01474f089b07dae603491675dc5b5748f7049" : {
"balance" : "0",
"code" : "0x",
- "nonce" : "1",
+ "nonce" : "0",
"storage" : {
- "0x02" : "0xc37a43e940dfb5baf581a0b82b351d48305fc885"
}
},
- "d2571607e241ecf590ed94b12d87c94babe36db6" : {
- "balance" : "0",
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99998984",
"code" : "0x",
"nonce" : "1",
"storage" : {
- "0x02" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
}
},
- "f735071cbee190d76b704ce68384fc21e389fbe7" : {
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
"balance" : "0",
"code" : "0x",
"nonce" : "1",
"storage" : {
- "0x02" : "0xf735071cbee190d76b704ce68384fc21e389fbe7"
+ "0x" : "0x0c"
}
}
},
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "0",
- "code" : "0x3060025560206000600039602060006000f0",
+ "balance" : "1",
+ "code" : "0x6b600c600055602060406000f0600052600c60146000f0",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000",
+ "balance" : "100000000",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -236,15 +343,15 @@
},
"transaction" : {
"data" : "0x00",
- "gasLimit" : "10000",
+ "gasLimit" : "20000000",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "1"
+ "value" : "0"
}
},
- "CallTheContractToCreateContractWithInitCode" : {
+ "CallRecursiveContract" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "45678256",
@@ -266,7 +373,7 @@
}
},
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10001",
+ "balance" : "1",
"code" : "0x3060025560206000600039602060006000f0",
"nonce" : "1",
"storage" : {
@@ -465,7 +572,7 @@
},
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10000",
+ "balance" : "0",
"code" : "0x3060025560206000600039602060006000f0",
"nonce" : "0",
"storage" : {
@@ -588,7 +695,7 @@
}
},
"transaction" : {
- "data" : "0x600a80600c6000396000f300600160008035811a8100",
+ "data" : "0x600a80600c6000396000f200600160008035811a8100",
"gasLimit" : "599",
"gasPrice" : "1",
"nonce" : "0",
@@ -642,7 +749,7 @@
}
},
"transaction" : {
- "data" : "0x600a80600c6000396000f300600160008035811a8100",
+ "data" : "0x600a80600c6000396000f200600160008035811a8100",
"gasLimit" : "590",
"gasPrice" : "3",
"nonce" : "0",
@@ -750,7 +857,7 @@
}
},
"transaction" : {
- "data" : "0x600a80600c6000396000f300600160008035811a8100",
+ "data" : "0x600a80600c6000396000f200600160008035811a8100",
"gasLimit" : "599",
"gasPrice" : "1",
"nonce" : "0",
@@ -770,10 +877,10 @@
},
"logs" : [
],
- "out" : "0xff600160008035811a81",
+ "out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "653",
+ "balance" : "1000",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -781,13 +888,13 @@
},
"6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
"balance" : "1",
- "code" : "0xff600160008035811a81",
+ "code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "9346",
+ "balance" : "8999",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -804,7 +911,7 @@
}
},
"transaction" : {
- "data" : "0x600a80600c6000396000f300ff600160008035811a81",
+ "data" : "0x600a80600c6000396000f200ff600160008035811a81",
"gasLimit" : "1000",
"gasPrice" : "1",
"nonce" : "0",
@@ -858,7 +965,7 @@
}
},
"transaction" : {
- "data" : "0x600a80600c600039600000f30000600160008035811a81",
+ "data" : "0x600a80600c600039600000f20000600160008035811a81",
"gasLimit" : "1000",
"gasPrice" : "1",
"nonce" : "0",
@@ -912,7 +1019,7 @@
}
},
"transaction" : {
- "data" : "0x600a80600c6000396000fff3ffff600160008035811a81",
+ "data" : "0x600a80600c6000396000fff2ffff600160008035811a81",
"gasLimit" : "1000",
"gasPrice" : "1",
"nonce" : "0",
@@ -921,4 +1028,4 @@
"value" : "1"
}
}
-}
+} \ No newline at end of file
diff --git a/tests/files/StateTests/stSystemOperationsTest.json b/tests/files/StateTests/stSystemOperationsTest.json
index e92c8d9ad..dd5d35c20 100644
--- a/tests/files/StateTests/stSystemOperationsTest.json
+++ b/tests/files/StateTests/stSystemOperationsTest.json
@@ -552,14 +552,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "261077",
+ "balance" : "261097",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999638923",
+ "balance" : "999999999999638903",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -584,7 +584,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "365223",
+ "gasLimit" : "365243",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -610,19 +610,19 @@
"code" : "0x600160005401600055600060006000600060003060e05a03f1600155",
"nonce" : "0",
"storage" : {
- "0x" : "0x03ff",
+ "0x" : "0x0400",
"0x01" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "261078",
+ "balance" : "260996",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999638922",
+ "balance" : "999999999999639004",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -647,7 +647,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "365224",
+ "gasLimit" : "365244",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -4166,11 +4166,10 @@
"code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1165",
+ "balance" : "1636",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4181,11 +4180,10 @@
"code" : "0x60003554156009570060203560003555",
"nonce" : "0",
"storage" : {
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa"
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898835",
+ "balance" : "999999999999898364",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4243,11 +4241,10 @@
"code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000620f120660406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1165",
+ "balance" : "1136",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4258,11 +4255,10 @@
"code" : "0x60003554156009570060203560003555",
"nonce" : "0",
"storage" : {
- "0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" : "0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa"
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898835",
+ "balance" : "999999999999898864",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4320,11 +4316,10 @@
"code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600060406000620f1206601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "965",
+ "balance" : "1136",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4338,7 +4333,7 @@
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899035",
+ "balance" : "999999999999898864",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4848,18 +4843,17 @@
"code" : "0x60003554156009570060203560003555",
"nonce" : "0",
"storage" : {
- "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1149",
+ "balance" : "1000000",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898851",
+ "balance" : "999999999998900000",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4892,6 +4886,68 @@
"value" : "100000"
}
},
+ "callValue" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000100000",
+ "code" : "0x34600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0186a0"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "802",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899198",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
"callcodeToNameRegistrator0" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -4910,12 +4966,10 @@
"code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01",
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1165",
+ "balance" : "1636",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4929,7 +4983,7 @@
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898835",
+ "balance" : "999999999999898364",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5046,6 +5100,68 @@
"value" : "100000"
}
},
+ "callerAccountBalance" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000100000",
+ "code" : "0x3331600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0de0b6b3a6c9e2e0"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "822",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899178",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3331600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
"callstatelessToReturn1" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -5367,7 +5483,7 @@
"value" : "100000"
}
},
- "return0" : {
+ "currentAccountBalance" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5378,24 +5494,25 @@
},
"logs" : [
],
- "out" : "0x37",
+ "out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "100023",
- "code" : "0x603760005360016000f3",
+ "balance" : "1000000000000100000",
+ "code" : "0x3031600055",
"nonce" : "0",
"storage" : {
+ "0x" : "0x0de0b6b3a76586a0"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "507",
+ "balance" : "822",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899493",
+ "balance" : "999999999999899178",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5404,8 +5521,8 @@
},
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "23",
- "code" : "0x603760005360016000f3",
+ "balance" : "1000000000000000000",
+ "code" : "0x3031600055",
"nonce" : "0",
"storage" : {
}
@@ -5420,7 +5537,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "1000000",
+ "gasLimit" : "10000000",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -5428,7 +5545,7 @@
"value" : "100000"
}
},
- "return1" : {
+ "return0" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5439,11 +5556,11 @@
},
"logs" : [
],
- "out" : "0x3700",
+ "out" : "0x37",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "100023",
- "code" : "0x603760005360026000f3",
+ "code" : "0x603760005360016000f3",
"nonce" : "0",
"storage" : {
}
@@ -5466,7 +5583,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "23",
- "code" : "0x603760005360026000f3",
+ "code" : "0x603760005360016000f3",
"nonce" : "0",
"storage" : {
}
@@ -5489,7 +5606,7 @@
"value" : "100000"
}
},
- "return2" : {
+ "return1" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5500,24 +5617,24 @@
},
"logs" : [
],
- "out" : "0x370000000000000000000000000000000000000000000000000000000000000000",
+ "out" : "0x3700",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "100023",
- "code" : "0x603760005360216000f3",
+ "code" : "0x603760005360026000f3",
"nonce" : "0",
"storage" : {
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "508",
+ "balance" : "507",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899492",
+ "balance" : "999999999999899493",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5527,7 +5644,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "23",
- "code" : "0x603760005360216000f3",
+ "code" : "0x603760005360026000f3",
"nonce" : "0",
"storage" : {
}
@@ -5550,7 +5667,7 @@
"value" : "100000"
}
},
- "suicideAddress" : {
+ "return2" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5561,71 +5678,24 @@
},
"logs" : [
],
- "out" : "0x",
+ "out" : "0x370000000000000000000000000000000000000000000000000000000000000000",
"post" : {
- "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "803",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899197",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- }
- }
- },
- "pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "1000000000000000000",
- "code" : "0x3060005530ff",
+ "balance" : "100023",
+ "code" : "0x603760005360216000f3",
"nonce" : "0",
"storage" : {
}
},
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1000000000000000000",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
- }
- },
- "transaction" : {
- "data" : "",
- "gasLimit" : "1000000",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "100000"
- }
- },
- "suicideCaller" : {
- "env" : {
- "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "currentDifficulty" : "256",
- "currentGasLimit" : "10000000",
- "currentNumber" : "0",
- "currentTimestamp" : 1,
- "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
- },
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "803",
+ "balance" : "508",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1999999999999999197",
+ "balance" : "999999999999899492",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5634,8 +5704,8 @@
},
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "1000000000000000000",
- "code" : "0x3360005533ff",
+ "balance" : "23",
+ "code" : "0x603760005360216000f3",
"nonce" : "0",
"storage" : {
}
@@ -5658,7 +5728,7 @@
"value" : "100000"
}
},
- "suicideNotExistingAccount" : {
+ "suicideAddress" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5672,31 +5742,24 @@
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "501",
+ "balance" : "803",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899499",
+ "balance" : "999999999999899197",
"code" : "0x",
"nonce" : "1",
"storage" : {
}
- },
- "aa1722f3947def4cf144679da39c4c32bdc35681" : {
- "balance" : "1000000000000100000",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
}
},
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x73aa1722f3947def4cf144679da39c4c32bdc35681ff",
+ "code" : "0x3060005530ff",
"nonce" : "0",
"storage" : {
}
@@ -5719,7 +5782,7 @@
"value" : "100000"
}
},
- "suicideOrigin" : {
+ "suicideCaller" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5750,7 +5813,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x3260005532ff",
+ "code" : "0x3360005533ff",
"nonce" : "0",
"storage" : {
}
@@ -5773,7 +5836,7 @@
"value" : "100000"
}
},
- "suicideSendEtherToMe" : {
+ "suicideNotExistingAccount" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5799,74 +5862,19 @@
"nonce" : "1",
"storage" : {
}
- }
- },
- "pre" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "1000000000000000000",
- "code" : "0x30ff",
- "nonce" : "0",
- "storage" : {
- }
},
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "1000000000000000000",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
- }
- },
- "transaction" : {
- "data" : "",
- "gasLimit" : "1000000",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "100000"
- }
- },
- "callValue" : {
- "env" : {
- "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "currentDifficulty" : "256",
- "currentGasLimit" : "10000000",
- "currentNumber" : "0",
- "currentTimestamp" : 1,
- "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
- },
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "aa1722f3947def4cf144679da39c4c32bdc35681" : {
"balance" : "1000000000000100000",
- "code" : "0x34600055",
- "nonce" : "0",
- "storage" : {
- "0x" : "0x0186a0"
- }
- },
- "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "802",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899198",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- }
}
},
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x34600055",
+ "code" : "0x73aa1722f3947def4cf144679da39c4c32bdc35681ff",
"nonce" : "0",
"storage" : {
}
@@ -5881,7 +5889,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "10000000",
+ "gasLimit" : "1000000",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -5889,7 +5897,7 @@
"value" : "100000"
}
},
- "callerAccountBalance" : {
+ "suicideOrigin" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5902,23 +5910,15 @@
],
"out" : "0x",
"post" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "1000000000000100000",
- "code" : "0x3331600055",
- "nonce" : "0",
- "storage" : {
- "0x" : "0x0de0b6b3a6c9e2e0"
- }
- },
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "822",
+ "balance" : "803",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899178",
+ "balance" : "1999999999999999197",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5928,7 +5928,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x3331600055",
+ "code" : "0x3260005532ff",
"nonce" : "0",
"storage" : {
}
@@ -5943,7 +5943,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "10000000",
+ "gasLimit" : "1000000",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -5951,7 +5951,7 @@
"value" : "100000"
}
},
- "currentAccountBalance" : {
+ "suicideSendEtherToMe" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -5964,23 +5964,15 @@
],
"out" : "0x",
"post" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "1000000000000100000",
- "code" : "0x3031600055",
- "nonce" : "0",
- "storage" : {
- "0x" : "0x0de0b6b3a76586a0"
- }
- },
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "822",
+ "balance" : "501",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899178",
+ "balance" : "999999999999899499",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5990,7 +5982,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x3031600055",
+ "code" : "0x30ff",
"nonce" : "0",
"storage" : {
}
@@ -6005,7 +5997,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "10000000",
+ "gasLimit" : "1000000",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -6013,4 +6005,4 @@
"value" : "100000"
}
}
-}
+} \ No newline at end of file
diff --git a/tests/files/StateTests/stTransactionTest.json b/tests/files/StateTests/stTransactionTest.json
index 0de850797..56f43a733 100644
--- a/tests/files/StateTests/stTransactionTest.json
+++ b/tests/files/StateTests/stTransactionTest.json
@@ -1,4 +1,156 @@
{
+ "ContractStoreClearsOOG" : {
+ "env" : {
+ "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "6390",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "600",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "10",
+ "code" : "0x600060005560006001556000600255600060035560006004556000600555600060065560006007556000600855600c600955",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c",
+ "0x01" : "0x0c",
+ "0x02" : "0x0c",
+ "0x03" : "0x0c",
+ "0x04" : "0x0c",
+ "0x05" : "0x0c",
+ "0x06" : "0x0c",
+ "0x07" : "0x0c",
+ "0x08" : "0x0c",
+ "0x09" : "0x0c"
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "7000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "0",
+ "code" : "0x600060005560006001556000600255600060035560006004556000600555600060065560006007556000600855600c600955",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c",
+ "0x01" : "0x0c",
+ "0x02" : "0x0c",
+ "0x03" : "0x0c",
+ "0x04" : "0x0c",
+ "0x05" : "0x0c",
+ "0x06" : "0x0c",
+ "0x07" : "0x0c",
+ "0x08" : "0x0c",
+ "0x09" : "0x0c"
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "600",
+ "gasPrice" : "1",
+ "nonce" : "",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "d2571607e241ecf590ed94b12d87c94babe36db6",
+ "value" : "10"
+ }
+ },
+ "ContractStoreClearsSuccess" : {
+ "env" : {
+ "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "6730",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "260",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "10",
+ "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "7000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "0",
+ "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c",
+ "0x01" : "0x0c",
+ "0x02" : "0x0c",
+ "0x03" : "0x0c",
+ "0x04" : "0x0c",
+ "0x05" : "0x0c",
+ "0x06" : "0x0c",
+ "0x07" : "0x0c",
+ "0x08" : "0x0c",
+ "0x09" : "0x0c"
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "600",
+ "gasPrice" : "1",
+ "nonce" : "",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "d2571607e241ecf590ed94b12d87c94babe36db6",
+ "value" : "10"
+ }
+ },
"EmptyTransaction" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -273,5 +425,59 @@
"to" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b",
"value" : "502"
}
+ },
+ "TransactionTooManyRlpElements" : {
+ "env" : {
+ "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "93990",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "6000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "10",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "1600",
+ "gasPrice" : "12",
+ "nonce" : "",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "d2571607e241ecf590ed94b12d87c94babe36db6",
+ "value" : "10"
+ }
}
} \ No newline at end of file
diff --git a/tests/files/VMTests/RandomTests/randomTest.json b/tests/files/VMTests/RandomTests/randomTest.json
new file mode 100644
index 000000000..dad2ee4a2
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/randomTest.json
@@ -0,0 +1,46 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x675545",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9999",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x675545",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x675545",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/files/VMTests/vmArithmeticTest.json b/tests/files/VMTests/vmArithmeticTest.json
index 88d209dfa..9d7cac99f 100644
--- a/tests/files/VMTests/vmArithmeticTest.json
+++ b/tests/files/VMTests/vmArithmeticTest.json
@@ -1114,6 +1114,3634 @@
}
}
},
+ "expPowerOf256Of256_0" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60006101000a6101000a600055600060ff0a6101000a60015560006101010a6101000a60025560006101000a60ff0a600355600060ff0a60ff0a60045560006101010a60ff0a60055560006101000a6101010a600655600060ff0a6101010a60075560006101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7237",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006101000a6101000a600055600060ff0a6101000a60015560006101010a6101000a60025560006101000a60ff0a600355600060ff0a60ff0a60045560006101010a60ff0a60055560006101000a6101010a600655600060ff0a6101010a60075560006101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100",
+ "0x01" : "0x0100",
+ "0x02" : "0x0100",
+ "0x03" : "0xff",
+ "0x04" : "0xff",
+ "0x05" : "0xff",
+ "0x06" : "0x0101",
+ "0x07" : "0x0101",
+ "0x08" : "0x0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006101000a6101000a600055600060ff0a6101000a60015560006101010a6101000a60025560006101000a60ff0a600355600060ff0a60ff0a60045560006101010a60ff0a60055560006101000a6101010a600655600060ff0a6101010a60075560006101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_1" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60016101000a6101000a600055600160ff0a6101000a60015560016101010a6101000a60025560016101000a60ff0a600355600160ff0a60ff0a60045560016101010a60ff0a60055560016101000a6101010a600655600160ff0a6101010a60075560016101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7822",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a6101000a600055600160ff0a6101000a60015560016101010a6101000a60025560016101000a60ff0a600355600160ff0a60ff0a60045560016101010a60ff0a60055560016101000a6101010a600655600160ff0a6101010a60075560016101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x06c3acd330b959ad6efabce6d2d2125e73a88a65a9880d203dddf5957f7f0001",
+ "0x04" : "0x8f965a06da0ac41dcb3a34f1d8ab7d8fee620a94faa42c395997756b007ffeff",
+ "0x05" : "0xbce9265d88a053c18bc229ebff404c1534e1db43de85131da0179fe9ff8100ff",
+ "0x06" : "0x02b5e9d7a094c19f5ebdd4f2e618f859ed15e4f1f0351f286bf849eb7f810001",
+ "0x07" : "0xc73b7a6f68385c653a24993bb72eea0e4ba17470816ec658cf9c5bedfd81ff01",
+ "0x08" : "0xb89fc178355660fe1c92c7d8ff11524702fad6e2255447946442356b00810101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a6101000a600055600160ff0a6101000a60015560016101010a6101000a60025560016101000a60ff0a600355600160ff0a60ff0a60045560016101010a60ff0a60055560016101000a6101010a600655600160ff0a6101010a60075560016101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_10" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600a6101000a6101000a600055600a60ff0a6101000a600155600a6101010a6101000a600255600a6101000a60ff0a600355600a60ff0a60ff0a600455600a6101010a60ff0a600555600a6101000a6101010a600655600a60ff0a6101010a600755600a6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7741",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a6101000a600055600a60ff0a6101000a600155600a6101010a6101000a600255600a6101000a60ff0a600355600a60ff0a60ff0a600455600a6101010a60ff0a600555600a6101000a6101010a600655600a60ff0a6101010a600755600a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xfe0f60957dc223578a0298879ec55c33085514ff7f0000000000000000000001",
+ "0x04" : "0xc1ea45f348b5d351c4d8fe5c77da979cadc33d866acc42e981278896b1f600ff",
+ "0x05" : "0x56ddb29bca94fb986ac0a40188b3b53f3216b3559bd8324a77ea8bd8a80a00ff",
+ "0x06" : "0x2d49ff6b0bbe177ae9317000b68fb921f7aa6aff810000000000000000000001",
+ "0x07" : "0x185fa9eab94cfe3016b69657e83b23fd24cc6960218254231c3db627a7f60101",
+ "0x08" : "0xa7a0223829f26d6c635368034320563df4aa5eb62efc87a42bb35f69b20a0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a6101000a600055600a60ff0a6101000a600155600a6101010a6101000a600255600a6101000a60ff0a600355600a60ff0a60ff0a600455600a6101010a60ff0a600555600a6101000a6101010a600655600a60ff0a6101010a600755600a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_11" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600b6101000a6101000a600055600b60ff0a6101000a600155600b6101010a6101000a600255600b6101000a60ff0a600355600b60ff0a60ff0a600455600b6101010a60ff0a600555600b6101000a6101010a600655600b60ff0a6101010a600755600b6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7732",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a6101000a600055600b60ff0a6101000a600155600b6101010a6101000a600255600b6101000a60ff0a600355600b60ff0a60ff0a600455600b6101010a60ff0a600555600b6101000a6101010a600655600b60ff0a6101010a600755600b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xe1440264b8ee0cea0218879ec55c33085514ff7f000000000000000000000001",
+ "0x04" : "0x29575fdce377b23043e489e358581474bc863187fa85f9945473a2be5889feff",
+ "0x05" : "0x3df8c030ec521fb109c4d887dbbc14c7c9c9921b27058e3503971b60b18b00ff",
+ "0x06" : "0x67799740340daf4a30f000b68fb921f7aa6aff81000000000000000000000001",
+ "0x07" : "0x540a4e4635b40585e09ff10b63ffe310dd717fca5c0a51570091e25e378bff01",
+ "0x08" : "0xdbbaef5c49ffee61b08cde6ebc8dba6e9a62d56c2355d1980cb9e790bc8b0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a6101000a600055600b60ff0a6101000a600155600b6101010a6101000a600255600b6101000a60ff0a600355600b60ff0a60ff0a600455600b6101010a60ff0a600555600b6101000a6101010a600655600b60ff0a6101010a600755600b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_12" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600c6101000a6101000a600055600c60ff0a6101000a600155600c6101010a6101000a600255600c6101000a60ff0a600355600c60ff0a60ff0a600455600c6101010a60ff0a600555600c6101000a6101010a600655600c60ff0a6101010a600755600c6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7723",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a6101000a600055600c60ff0a6101000a600155600c6101010a6101000a600255600c6101000a60ff0a600355600c60ff0a60ff0a600455600c6101010a60ff0a600555600c6101000a6101010a600655600c60ff0a6101010a600755600c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xb0e95b83a36ce98218879ec55c33085514ff7f00000000000000000000000001",
+ "0x04" : "0xc482ab56ec19186dc48c88f30861a850b2253b1ea6dc021589e569bd47f400ff",
+ "0x05" : "0xcf45c7f9af4bbe4a83055b55b97777ad5e0a3f08b129c9ae208c5d713c0c00ff",
+ "0x06" : "0xa5cbb62a421049b0f000b68fb921f7aa6aff8100000000000000000000000001",
+ "0x07" : "0x3bde6ca66dffe1bf5d727c3edea74c7a4af43b3912e6256d37705c8f3bf40101",
+ "0x08" : "0x3f49a1e40c5213aa4ffed57eb4c1ad2d181b2aaa289e9d59c2256c43480c0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a6101000a600055600c60ff0a6101000a600155600c6101010a6101000a600255600c6101000a60ff0a600355600c60ff0a60ff0a600455600c6101010a60ff0a600555600c6101000a6101010a600655600c60ff0a6101010a600755600c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_13" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600d6101000a6101000a600055600d60ff0a6101000a600155600d6101010a6101000a600255600d6101000a60ff0a600355600d60ff0a60ff0a600455600d6101010a60ff0a600555600d6101000a6101010a600655600d60ff0a6101010a600755600d6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7714",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a6101000a600055600d60ff0a6101000a600155600d6101010a6101000a600255600d6101000a60ff0a600355600d60ff0a60ff0a600455600d6101010a60ff0a600555600d6101000a6101010a600655600d60ff0a6101010a600755600d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xe02639036c698218879ec55c33085514ff7f0000000000000000000000000001",
+ "0x04" : "0x8be664bde946d939ce551b948b503787942d2a7734509288c1b62fd5c48bfeff",
+ "0x05" : "0xa923a28e7a75aef26c51580ffc686879e4a0b404b089bdbcd751d88b478d00ff",
+ "0x06" : "0x41ac5ea30fc9b0f000b68fb921f7aa6aff810000000000000000000000000001",
+ "0x07" : "0x0daa3a177ec975cb69bb4acf4a6e1be7bcc1ad33d1ffad97510f9fea9d8dff01",
+ "0x08" : "0x19e6822beb889be28310060f4fb9741bfd50a31fa81ec65de21f7b02548d0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a6101000a600055600d60ff0a6101000a600155600d6101010a6101000a600255600d6101000a60ff0a600355600d60ff0a60ff0a600455600d6101010a60ff0a600555600d6101000a6101010a600655600d60ff0a6101010a600755600d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_14" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600e6101000a6101000a600055600e60ff0a6101000a600155600e6101010a6101000a600255600e6101000a60ff0a600355600e60ff0a60ff0a600455600e6101010a60ff0a600555600e6101000a6101010a600655600e60ff0a6101010a600755600e6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7705",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a6101000a600055600e60ff0a6101000a600155600e6101010a6101000a600255600e6101000a60ff0a600355600e60ff0a60ff0a600455600e6101010a60ff0a600555600e6101000a6101010a600655600e60ff0a6101010a600755600e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xdb9902ec698218879ec55c33085514ff7f000000000000000000000000000001",
+ "0x04" : "0x83fab06c6c8fef761ebbb9534c06ac2a9d61820623008069062ff3b1e1f200ff",
+ "0x05" : "0x3f791dd183ed5b963bd86e0dba1a9dd5b8ceeb078f15c73062f1942fd40e00ff",
+ "0x06" : "0xe0bfa28fc9b0f000b68fb921f7aa6aff81000000000000000000000000000001",
+ "0x07" : "0x8133b760dfae27560eb490f235ddfa301f058dee4f01f3fe4b3567d0d3f20101",
+ "0x08" : "0xcd4cd0124e983af71620fb5f98275965c6a8bebc4b8adc288b63224ee20e0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a6101000a600055600e60ff0a6101000a600155600e6101010a6101000a600255600e6101000a60ff0a600355600e60ff0a60ff0a600455600e6101010a60ff0a600555600e6101000a6101010a600655600e60ff0a6101010a600755600e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_15" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600f6101000a6101000a600055600f60ff0a6101000a600155600f6101010a6101000a600255600f6101000a60ff0a600355600f60ff0a60ff0a600455600f6101010a60ff0a600555600f6101000a6101010a600655600f60ff0a6101010a600755600f6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7696",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a6101000a600055600f60ff0a6101000a600155600f6101010a6101000a600255600f6101000a60ff0a600355600f60ff0a60ff0a600455600f6101010a60ff0a600555600f6101000a6101010a600655600f60ff0a6101010a600755600f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x9882ec698218879ec55c33085514ff7f00000000000000000000000000000001",
+ "0x04" : "0x75c4915e18b96704209738f5ca765568bb4dc4113d56683977825a132c8dfeff",
+ "0x05" : "0x5c76839bf5a80b1da705dbdf43e4dd6770cd7501af11ff2dab7918dfe18f00ff",
+ "0x06" : "0xbf228fc9b0f000b68fb921f7aa6aff8100000000000000000000000000000001",
+ "0x07" : "0xc6a29131e7594004bc2aa79f0d2c402a1409c57c77d284c14b1a3ab0ff8fff01",
+ "0x08" : "0xe6b3e5cf6ec90e532fef7d08455ebf92a03e9e3f6e224ea0febdf1a9f08f0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a6101000a600055600f60ff0a6101000a600155600f6101010a6101000a600255600f6101000a60ff0a600355600f60ff0a60ff0a600455600f6101010a60ff0a600555600f6101000a6101010a600655600f60ff0a6101010a600755600f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_16" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60106101000a6101000a600055601060ff0a6101000a60015560106101010a6101000a60025560106101000a60ff0a600355601060ff0a60ff0a60045560106101010a60ff0a60055560106101000a6101010a600655601060ff0a6101010a60075560106101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7687",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a6101000a600055601060ff0a6101000a60015560106101010a6101000a60025560106101000a60ff0a600355601060ff0a60ff0a60045560106101010a60ff0a60055560106101000a6101010a600655601060ff0a6101010a60075560106101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x82ec698218879ec55c33085514ff7f0000000000000000000000000000000001",
+ "0x04" : "0x3122f4bcdf6dd8b265cd18eb6af28c879aed44a35e0bf59273e39e6c7ff000ff",
+ "0x05" : "0x6a2b3bc87a02c29b9d27757df43047ecd0f15485270fca27417a701c701000ff",
+ "0x06" : "0x228fc9b0f000b68fb921f7aa6aff810000000000000000000000000000000001",
+ "0x07" : "0x88e1259502eef93d46060aacc9e2ff506c734dade0b6714ab12d17e46ff00101",
+ "0x08" : "0x4a103813c12c12169b218296bb0a9eae80cf8d2b158aa70eb990f99480100101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a6101000a600055601060ff0a6101000a60015560106101010a6101000a60025560106101000a60ff0a600355601060ff0a60ff0a60045560106101010a60ff0a60055560106101000a6101010a600655601060ff0a6101010a60075560106101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_17" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60116101000a6101000a600055601160ff0a6101000a60015560116101010a6101000a60025560116101000a60ff0a600355601160ff0a60ff0a60045560116101010a60ff0a60055560116101000a6101010a600655601160ff0a6101010a60075560116101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7678",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a6101000a600055601160ff0a6101000a60015560116101010a6101000a60025560116101000a60ff0a600355601160ff0a60ff0a60045560116101010a60ff0a60055560116101000a6101010a600655601160ff0a6101010a60075560116101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xec698218879ec55c33085514ff7f000000000000000000000000000000000001",
+ "0x04" : "0x722ad218eb1995a2d257c4c06d8de993c203cfc8e3512df7d633e17e908ffeff",
+ "0x05" : "0x8ac9b5ec08d74612cb29f941481d274b51721af2296207c0da8d24667f9100ff",
+ "0x06" : "0x8fc9b0f000b68fb921f7aa6aff81000000000000000000000000000000000001",
+ "0x07" : "0x81d5ff63680841482299f3eab616446dcd336f537c0c565aa4112ab95d91ff01",
+ "0x08" : "0x9c6ca90dac4e97dea02ac969e8649ee9e6232e0c3f4797411151cb8f90910101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a6101000a600055601160ff0a6101000a60015560116101010a6101000a60025560116101000a60ff0a600355601160ff0a60ff0a60045560116101010a60ff0a60055560116101000a6101010a600655601160ff0a6101010a60075560116101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_18" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60126101000a6101000a600055601260ff0a6101000a60015560126101010a6101000a60025560126101000a60ff0a600355601260ff0a60ff0a60045560126101010a60ff0a60055560126101000a6101010a600655601260ff0a6101010a60075560126101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7669",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a6101000a600055601260ff0a6101000a60015560126101010a6101000a60025560126101000a60ff0a600355601260ff0a60ff0a60045560126101010a60ff0a60055560126101000a6101010a600655601260ff0a6101010a60075560126101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x698218879ec55c33085514ff7f00000000000000000000000000000000000001",
+ "0x04" : "0x8a2cbd9f40794e2205b13306f2aa0a43c60823c64b95d8601fa4f1e521ee00ff",
+ "0x05" : "0xc1b5a1e3a81da51b10d84e880f0113ff67b863ddad3faf1f4ecf413f101200ff",
+ "0x06" : "0xc9b0f000b68fb921f7aa6aff8100000000000000000000000000000000000001",
+ "0x07" : "0x410be68e49452a1fbcd863bf6e8d637f8eae4979c34c88d552afbcc20fee0101",
+ "0x08" : "0xf540cb714754b5b1eb0373833833bd7fb0ee925ce8b92962500b7a1c22120101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a6101000a600055601260ff0a6101000a60015560126101010a6101000a60025560126101000a60ff0a600355601260ff0a60ff0a60045560126101010a60ff0a60055560126101000a6101010a600655601260ff0a6101010a60075560126101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_19" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60136101000a6101000a600055601360ff0a6101000a60015560136101010a6101000a60025560136101000a60ff0a600355601360ff0a60ff0a60045560136101010a60ff0a60055560136101000a6101010a600655601360ff0a6101010a60075560136101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7660",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a6101000a600055601360ff0a6101000a60015560136101010a6101000a60025560136101000a60ff0a600355601360ff0a60ff0a60045560136101010a60ff0a60055560136101000a6101010a600655601360ff0a6101010a60075560136101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x8218879ec55c33085514ff7f0000000000000000000000000000000000000001",
+ "0x04" : "0xb795ad7ac24cfbb7435cf53bd3584f3d4b2709935635c3ceb66e761ff091feff",
+ "0x05" : "0x1f0bb7be91a0ccd0cca93d75cf03de3e6b56fe8f1c54242617665327219300ff",
+ "0x06" : "0xb0f000b68fb921f7aa6aff810000000000000000000000000000000000000001",
+ "0x07" : "0xad571756ecbff1bfdef064861e5e92c5d897a9cc380e54bdbaabd80bb793ff01",
+ "0x08" : "0xd8b5b531989e689f700dcdb43ab90e79a49dfbbb5a13dbf751df98bb34930101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a6101000a600055601360ff0a6101000a60015560136101010a6101000a60025560136101000a60ff0a600355601360ff0a60ff0a60045560136101010a60ff0a60055560136101000a6101010a600655601360ff0a6101010a60075560136101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60026101000a6101000a600055600260ff0a6101000a60015560026101010a6101000a60025560026101000a60ff0a600355600260ff0a60ff0a60045560026101010a60ff0a60055560026101000a6101010a600655600260ff0a6101010a60075560026101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7813",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a6101000a600055600260ff0a6101000a60015560026101010a6101000a60025560026101000a60ff0a600355600260ff0a60ff0a60045560026101010a60ff0a60055560026101000a6101010a600655600260ff0a6101010a60075560026101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x4ee4ceeaac565c81f55a87c43f82f7c889ef4fc7c679671e28d594ff7f000001",
+ "0x04" : "0x82f46a1b4e34d66712910615d2571d75606ceac51fa8ca8c58cf6ca881fe00ff",
+ "0x05" : "0x81c9fcefa5de158ae2007f25d35c0d11cd735342a48905955a5a6852800200ff",
+ "0x06" : "0x666ac362902470ed850709e2a29969d10cba09debc03c38d172aeaff81000001",
+ "0x07" : "0xeb30a3c678a01bde914548f98f3366dc0ffe9f85384ebf1111d03dad7ffe0101",
+ "0x08" : "0x72d0a7939b6303ce1d46e6e3f1b8be303bfdb2b00f41ad8076b0975782020101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a6101000a600055600260ff0a6101000a60015560026101010a6101000a60025560026101000a60ff0a600355600260ff0a60ff0a60045560026101010a60ff0a60055560026101000a6101010a600655600260ff0a6101010a60075560026101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_20" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60146101000a6101000a600055601460ff0a6101000a60015560146101010a6101000a60025560146101000a60ff0a600355601460ff0a60ff0a60045560146101010a60ff0a60055560146101000a6101010a600655601460ff0a6101010a60075560146101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7651",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a6101000a600055601460ff0a6101000a60015560146101010a6101000a60025560146101000a60ff0a600355601460ff0a60ff0a60045560146101010a60ff0a60055560146101000a6101010a600655601460ff0a6101010a60075560146101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x18879ec55c33085514ff7f000000000000000000000000000000000000000001",
+ "0x04" : "0x67e4797dc21f02ce4a7c52218c7dbea5d212e6c244e24f0ba4c08613c7ec00ff",
+ "0x05" : "0xa1ce1a085f258785846939cc1d2e8725ac94ad4dff8913234e00679fb41400ff",
+ "0x06" : "0xf000b68fb921f7aa6aff81000000000000000000000000000000000000000001",
+ "0x07" : "0xcce501857a1cb45473915a28082af950e0f78f7e2de68ce748adb661b3ec0101",
+ "0x08" : "0x3b2e28d274a16c08b58a23bad63bba6d7b09685769d1f68ca3873bedc8140101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a6101000a600055601460ff0a6101000a60015560146101010a6101000a60025560146101000a60ff0a600355601460ff0a60ff0a60045560146101010a60ff0a60055560146101000a6101010a600655601460ff0a6101010a60075560146101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_21" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60156101000a6101000a600055601560ff0a6101000a60015560156101010a6101000a60025560156101000a60ff0a600355601560ff0a60ff0a60045560156101010a60ff0a60055560156101000a6101010a600655601560ff0a6101010a60075560156101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7642",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a6101000a600055601560ff0a6101000a60015560156101010a6101000a60025560156101000a60ff0a600355601560ff0a60ff0a60045560156101010a60ff0a60055560156101000a6101010a600655601560ff0a6101010a60075560156101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x879ec55c33085514ff7f00000000000000000000000000000000000000000001",
+ "0x04" : "0x7fd07055ff50cdfe4b4bd9a15133d72d3607d92eb7ac81bac93db7ff4c93feff",
+ "0x05" : "0x665ac5c769e87f61d5993abc26522fbfca2734d76a63216b2d550d29c79500ff",
+ "0x06" : "0xb68fb921f7aa6aff8100000000000000000000000000000000000000000001",
+ "0x07" : "0x1c93db67c9884bc694686d69a25a5d7ed089841d5ce147fdd7199ab00d95ff01",
+ "0x08" : "0x485053d8ff66be52036597520344fac87b6a305426a9e49221d3f934dc950101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a6101000a600055601560ff0a6101000a60015560156101010a6101000a60025560156101000a60ff0a600355601560ff0a60ff0a60045560156101010a60ff0a60055560156101000a6101010a600655601560ff0a6101010a60075560156101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_22" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60166101000a6101000a600055601660ff0a6101000a60015560166101010a6101000a60025560166101000a60ff0a600355601660ff0a60ff0a60045560166101010a60ff0a60055560166101000a6101010a600655601660ff0a6101010a60075560166101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7633",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a6101000a600055601660ff0a6101000a60015560166101010a6101000a60025560166101000a60ff0a600355601660ff0a60ff0a60045560166101010a60ff0a60055560166101000a6101010a600655601660ff0a6101010a60075560166101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x9ec55c33085514ff7f0000000000000000000000000000000000000000000001",
+ "0x04" : "0xec447e662ac08957d7e290a421dbf54c0aaf43aadc9cc465ad0b02f071ea00ff",
+ "0x05" : "0xdc9178d3bab470096f01477c859b5f4173986640b659426412a653465c1600ff",
+ "0x06" : "0xb68fb921f7aa6aff810000000000000000000000000000000000000000000001",
+ "0x07" : "0xdcf0a770777610503596ae0311af46c171151ed45107d7e7bb8f74bb5bea0101",
+ "0x08" : "0x4d65773387993928c95c861274232d3fb6f6b7fe1b22e4e61a30e71172160101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a6101000a600055601660ff0a6101000a60015560166101010a6101000a60025560166101000a60ff0a600355601660ff0a60ff0a60045560166101010a60ff0a60055560166101000a6101010a600655601660ff0a6101010a60075560166101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_23" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60176101000a6101000a600055601760ff0a6101000a60015560176101010a6101000a60025560176101000a60ff0a600355601760ff0a60ff0a60045560176101010a60ff0a60055560176101000a6101010a600655601760ff0a6101010a60075560176101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7624",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a6101000a600055601760ff0a6101000a60015560176101010a6101000a60025560176101000a60ff0a600355601760ff0a60ff0a60045560176101010a60ff0a60055560176101000a6101010a600655601760ff0a6101010a60075560176101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xc55c33085514ff7f000000000000000000000000000000000000000000000001",
+ "0x04" : "0x537ca0f03f974303005f1e6693b55b72315a166841732e42b8353724a495feff",
+ "0x05" : "0x86418797ec60058de6cca47dfdbee79923ac49d7801e01840041ca76719700ff",
+ "0x06" : "0x8fb921f7aa6aff81000000000000000000000000000000000000000000000001",
+ "0x07" : "0x56a55341ab8d4318f1cfb55d5f21e2ba35d7e070a72bac6b2b21baae5f97ff01",
+ "0x08" : "0x55ddd0ec77909de6d8311116cf520398e816f928b06fdd90ec239d0488970101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a6101000a600055601760ff0a6101000a60015560176101010a6101000a60025560176101000a60ff0a600355601760ff0a60ff0a60045560176101010a60ff0a60055560176101000a6101010a600655601760ff0a6101010a60075560176101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_24" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60186101000a6101000a600055601860ff0a6101000a60015560186101010a6101000a60025560186101000a60ff0a600355601860ff0a60ff0a60045560186101010a60ff0a60055560186101000a6101010a600655601860ff0a6101010a60075560186101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7615",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a6101000a600055601860ff0a6101000a60015560186101010a6101000a60025560186101000a60ff0a600355601860ff0a60ff0a60045560186101010a60ff0a60055560186101000a6101010a600655601860ff0a6101010a60075560186101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x5c33085514ff7f00000000000000000000000000000000000000000000000001",
+ "0x04" : "0xd542e526003539ead104274aff2d78332366e29d328c2161f0c120731fe800ff",
+ "0x05" : "0xc706cb25e8384ce9bb5c9cb48415238ba03e16c448e292c0a101843b081800ff",
+ "0x06" : "0xb921f7aa6aff8100000000000000000000000000000000000000000000000001",
+ "0x07" : "0x4ca55f89202c524cb0f1cb3195d13c8d94a9f7a05c59e1d4031577c707e80101",
+ "0x08" : "0x8c4b0574e9156b80035f3ecdcf1fe79d273ed7559747a4322bcd338f20180101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a6101000a600055601860ff0a6101000a60015560186101010a6101000a60025560186101000a60ff0a600355601860ff0a60ff0a60045560186101010a60ff0a60055560186101000a6101010a600655601860ff0a6101010a60075560186101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_25" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60196101000a6101000a600055601960ff0a6101000a60015560196101010a6101000a60025560196101000a60ff0a600355601960ff0a60ff0a60045560196101010a60ff0a60055560196101000a6101010a600655601960ff0a6101010a60075560196101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7606",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a6101000a600055601960ff0a6101000a60015560196101010a6101000a60025560196101000a60ff0a600355601960ff0a60ff0a60045560196101010a60ff0a60055560196101000a6101010a600655601960ff0a6101010a60075560196101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x33085514ff7f0000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x7f510dd7198cac0a92ff7ea80451838c0dfa12114c41a0ef05907397f897feff",
+ "0x05" : "0x1275e752b6aee228ecba5e9b57ef1111deff3c651e2cfbf2cccd13151f9900ff",
+ "0x06" : "0x21f7aa6aff810000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x6646340ad51a03bb710caf05756b685b33c7dad62ae68d369243700ead99ff01",
+ "0x08" : "0x29d80e8060ef2221929bb18215586c742686d6860e028ca0456b443238990101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a6101000a600055601960ff0a6101000a60015560196101010a6101000a60025560196101000a60ff0a600355601960ff0a60ff0a60045560196101010a60ff0a60055560196101000a6101010a600655601960ff0a6101010a60075560196101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_26" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601a6101000a6101000a600055601a60ff0a6101000a600155601a6101010a6101000a600255601a6101000a60ff0a600355601a60ff0a60ff0a600455601a6101010a60ff0a600555601a6101000a6101010a600655601a60ff0a6101010a600755601a6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7597",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a6101000a600055601a60ff0a6101000a600155601a6101010a6101000a600255601a6101000a60ff0a600355601a60ff0a60ff0a600455601a6101010a60ff0a600555601a6101000a6101010a600655601a60ff0a6101010a600755601a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x085514ff7f000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x1d164db738eb6893868b361ad2803f97be35764456e82a837667a693d1e600ff",
+ "0x05" : "0x8b92c24abebf376a5aab5ff4dfd3538a03d38a10bced2aae8e1a8a85b81a00ff",
+ "0x06" : "0xf7aa6aff81000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x6931bda98c70e860a1f6a5224940f1ec7e6734cd9456c95806384f7cb7e60101",
+ "0x08" : "0x3402a9db66492dfc2a220715e76243469462f24edc56903ba1d8e96ed21a0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a6101000a600055601a60ff0a6101000a600155601a6101010a6101000a600255601a6101000a60ff0a600355601a60ff0a60ff0a600455601a6101010a60ff0a600555601a6101000a6101010a600655601a60ff0a6101010a600755601a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_27" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601b6101000a6101000a600055601b60ff0a6101000a600155601b6101010a6101000a600255601b6101000a60ff0a600355601b60ff0a60ff0a600455601b6101010a60ff0a600555601b6101000a6101010a600655601b60ff0a6101010a600755601b6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7588",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a6101000a600055601b60ff0a6101000a600155601b6101010a6101000a600255601b6101000a60ff0a600355601b60ff0a60ff0a600455601b6101010a60ff0a600555601b6101000a6101010a600655601b60ff0a6101010a600755601b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x5514ff7f00000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x178918ffbcb401d4efd2f7dfb4d01a897172267f0f491121ac52dd614899feff",
+ "0x05" : "0x38ecff71480ca0b422f2ed6f780d5fead2ae234a49104b10a86f7f0dd19b00ff",
+ "0x06" : "0xaa6aff8100000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0xd02811cb5dc1d80567e810532b235b7672f5c78cd6e89bb511d5e2d8f79bff01",
+ "0x08" : "0x1b4e6404f474c18055d30bb8987672f59e97980d6f9de1764c0fbec5ec9b0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a6101000a600055601b60ff0a6101000a600155601b6101010a6101000a600255601b6101000a60ff0a600355601b60ff0a60ff0a600455601b6101010a60ff0a600555601b6101000a6101010a600655601b60ff0a6101010a600755601b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_28" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601c6101000a6101000a600055601c60ff0a6101000a600155601c6101010a6101000a600255601c6101000a60ff0a600355601c60ff0a60ff0a600455601c6101010a60ff0a600555601c6101000a6101010a600655601c60ff0a6101010a600755601c6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7579",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a6101000a600055601c60ff0a6101000a600155601c6101010a6101000a600255601c6101000a60ff0a600355601c60ff0a60ff0a600455601c6101010a60ff0a600555601c6101000a6101010a600655601c60ff0a6101010a600755601c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x14ff7f0000000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0xffd368e44b3f85cb81ae394c9809ca9fa2db46a83d7880a912ab6d4a87e400ff",
+ "0x05" : "0x0981ad53c19b15a94bcf0bf20235dd0da9df25f46ae635029fe2062e6c1c00ff",
+ "0x06" : "0x6aff810000000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x19df06ffa28250867006726405fbc05d43dc2f9d2f025006db089bd46be40101",
+ "0x08" : "0x243fffe3a4f2982f45055c08f379648ab886da8027a7401117a8e0b8881c0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a6101000a600055601c60ff0a6101000a600155601c6101010a6101000a600255601c6101000a60ff0a600355601c60ff0a60ff0a600455601c6101010a60ff0a600555601c6101000a6101010a600655601c60ff0a6101010a600755601c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_29" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601d6101000a6101000a600055601d60ff0a6101000a600155601d6101010a6101000a600255601d6101000a60ff0a600355601d60ff0a60ff0a600455601d6101010a60ff0a600555601d6101000a6101010a600655601d60ff0a6101010a600755601d6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7570",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a6101000a600055601d60ff0a6101000a600155601d6101010a6101000a600255601d6101000a60ff0a600355601d60ff0a60ff0a600455601d6101010a60ff0a600555601d6101000a6101010a600655601d60ff0a6101010a600755601d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xff7f000000000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x41e065d46e0349cfe624c4e8a2034aea1f7edfff80e511cd8067d488949bfeff",
+ "0x05" : "0xa84162ca6675a22c4c79dfc4ea15f760db5a04dbf04246764199b668879d00ff",
+ "0x06" : "0xff81000000000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x1226984faa6b05ebdbd45d8477fa4fd5b55bfd5061de03c319282b153d9dff01",
+ "0x08" : "0x5cc9e6b0b749fd94541ad00364bdec2fca7816981ca3e38f485decc7a49d0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a6101000a600055601d60ff0a6101000a600155601d6101010a6101000a600255601d6101000a60ff0a600355601d60ff0a60ff0a600455601d6101010a60ff0a600555601d6101000a6101010a600655601d60ff0a6101010a600755601d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_3" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60036101000a6101000a600055600360ff0a6101000a60015560036101010a6101000a60025560036101000a60ff0a600355600360ff0a60ff0a60045560036101010a60ff0a60055560036101000a6101010a600655600360ff0a6101010a60075560036101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7804",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a6101000a600055600360ff0a6101000a60015560036101010a6101000a60025560036101000a60ff0a600355600360ff0a60ff0a60045560036101010a60ff0a60055560036101000a6101010a600655600360ff0a6101010a60075560036101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x109a00e1370d2d2922bf892e85becb54297354b2e5c75388d514ff7f00000001",
+ "0x04" : "0x54a792f15e9aba7e4ad9e716bc169eea3a6e2e9c49bf9b335874613c8081feff",
+ "0x05" : "0x5d24a14d8e5e039372cd0f6a0f31e9ed6b75adba9f16b1c5b3edd5ba818300ff",
+ "0x06" : "0x298e2f316b4ccded5ebf515998d9ec20df69404b04a441782a6aff8100000001",
+ "0x07" : "0x4335694e98f372183c62a2339fa4ad161e9b4c42240bdc9452abffd07783ff01",
+ "0x08" : "0xf0f0820797315acd063056bba76f6a9c3e281cdb5197a233967ca94684830101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a6101000a600055600360ff0a6101000a60015560036101010a6101000a60025560036101000a60ff0a600355600360ff0a60ff0a60045560036101010a60ff0a60055560036101000a6101010a600655600360ff0a6101010a60075560036101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_30" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601e6101000a6101000a600055601e60ff0a6101000a600155601e6101010a6101000a600255601e6101000a60ff0a600355601e60ff0a60ff0a600455601e6101010a60ff0a600555601e6101000a6101010a600655601e60ff0a6101010a600755601e6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7561",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a6101000a600055601e60ff0a6101000a600155601e6101010a6101000a600255601e6101000a60ff0a600355601e60ff0a60ff0a600455601e6101010a60ff0a600555601e6101000a6101010a600655601e60ff0a6101010a600755601e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x7f00000000000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0xe9772778f50fa0a69cd10fa019ac56d72ac7a7d7af26c4ba28415c8f41e200ff",
+ "0x05" : "0x33f0385ef73feebdb952e5adb643dd0fa178fd9271578219ad50a73d241e00ff",
+ "0x06" : "0x8100000000000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0xfd405cce8f73dffc04a6f0ff6ffc6bf7961876d09c5b4933a68f0cc623e20101",
+ "0x08" : "0xc5a8f4566fd2e96e4ce3a8b3ec0863e7b20bc3b2f3dc5261ba8a0174421e0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a6101000a600055601e60ff0a6101000a600155601e6101010a6101000a600255601e6101000a60ff0a600355601e60ff0a60ff0a600455601e6101010a60ff0a600555601e6101000a6101010a600655601e60ff0a6101010a600755601e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_31" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601f6101000a6101000a600055601f60ff0a6101000a600155601f6101010a6101000a600255601f6101000a60ff0a600355601f60ff0a60ff0a600455601f6101010a60ff0a600555601f6101000a6101010a600655601f60ff0a6101010a600755601f6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7552",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a6101000a600055601f60ff0a6101000a600155601f6101010a6101000a600255601f6101000a60ff0a600355601f60ff0a60ff0a600455601f6101010a60ff0a600555601f6101000a6101010a600655601f60ff0a6101010a600755601f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x01",
+ "0x04" : "0xf9cb87f5b1ab58602f52a1e9d392e5675b86a59a53943a8d4ec2a915dc9dfeff",
+ "0x05" : "0x893d729a64e318860ec5047e70e598da163eb41e71e74b04dfd4712d419f00ff",
+ "0x06" : "0x01",
+ "0x07" : "0xee5f2839c1b4f6ca05e6fdb04e2fb49c0f860b3765c27dc781a150cb7f9fff01",
+ "0x08" : "0xb4c358e3c6bcddfb509ea487d733df0e1854f29c3b6bfd4a8caabe3f609f0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a6101000a600055601f60ff0a6101000a600155601f6101010a6101000a600255601f6101000a60ff0a600355601f60ff0a60ff0a600455601f6101010a60ff0a600555601f6101000a6101010a600655601f60ff0a6101010a600755601f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_32" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60206101000a6101000a600055602060ff0a6101000a60015560206101010a6101000a60025560206101000a60ff0a600355602060ff0a60ff0a60045560206101010a60ff0a60055560206101000a6101010a600655602060ff0a6101010a60075560206101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7445",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a6101000a600055602060ff0a6101000a60015560206101010a6101000a60025560206101000a60ff0a600355602060ff0a60ff0a60045560206101010a60ff0a60055560206101000a6101010a600655602060ff0a6101010a60075560206101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01",
+ "0x03" : "0x01",
+ "0x04" : "0xb8247842bb5ce75c08d0c251669ed5870fa24a22952e5db3a7c66c59ffe000ff",
+ "0x05" : "0xee526e5a06f2a990b2bf6c951e5feabf0e07ee16877296e1be872db9e02000ff",
+ "0x06" : "0x01",
+ "0x07" : "0xeda7d024b6de40a9d3b966e71f10a4667edc5b71cab07aeabcac6249dfe00101",
+ "0x08" : "0x512ecfaeeb11205f0833e1054dcb1300488e0954be5af77a49e143aa00200101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a6101000a600055602060ff0a6101000a60015560206101010a6101000a60025560206101000a60ff0a600355602060ff0a60ff0a60045560206101010a60ff0a60055560206101000a6101010a600655602060ff0a6101010a60075560206101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_33" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60216101000a6101000a600055602160ff0a6101000a60015560216101010a6101000a60025560216101000a60ff0a600355602160ff0a60ff0a60045560216101010a60ff0a60055560216101000a6101010a600655602160ff0a6101010a60075560216101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7445",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a6101000a600055602160ff0a6101000a60015560216101010a6101000a60025560216101000a60ff0a600355602160ff0a60ff0a60045560216101010a60ff0a60055560216101000a6101010a600655602160ff0a6101010a60075560216101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01",
+ "0x03" : "0x01",
+ "0x04" : "0x8dcb65b5494eba78cd6756a6f9851f6e26d0f2bb9ecd7e9abd7e9b11209ffeff",
+ "0x05" : "0x6694bb31b20cd625f3756897dae6d738f2e64467b5b6f10fa3e07763ffa100ff",
+ "0x06" : "0x01",
+ "0x07" : "0xe678999aeffd1f1f45081f64de7f80ab083dd7df04721ed64ee04c03bda1ff01",
+ "0x08" : "0x39b68fb9898dd7568abd178397251ce8226a25c1d305a4e79573333520a10101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a6101000a600055602160ff0a6101000a60015560216101010a6101000a60025560216101000a60ff0a600355602160ff0a60ff0a60045560216101010a60ff0a60055560216101000a6101010a600655602160ff0a6101010a60075560216101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_4" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60046101000a6101000a600055600460ff0a6101000a60015560046101010a6101000a60025560046101000a60ff0a600355600460ff0a60ff0a60045560046101010a60ff0a60055560046101000a6101010a600655600460ff0a6101010a60075560046101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7795",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a6101000a600055600460ff0a6101000a60015560046101010a6101000a60025560046101000a60ff0a600355600460ff0a60ff0a60045560046101010a60ff0a60055560046101000a6101010a600655600460ff0a6101010a60075560046101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xe6540ce46eaf70da9d644015a661e0e245b13f307cb3885514ff7f0000000001",
+ "0x04" : "0x6526b38b05a6325b80e1c84ab41dc934fd70f33f1bd0eab3d1f61a4707fc00ff",
+ "0x05" : "0xe959516cd27e5d8fd487b72db2989b3ec2ba9fb7ead41554526fe5a3040400ff",
+ "0x06" : "0xe7498a48c6ce2530bbe814ee3440c8c44fffab7ad8a277aa6aff810000000001",
+ "0x07" : "0x2dffa3e901e5a392d15b79f4193d2168147d2aa7c55870b46c3a905d03fc0101",
+ "0x08" : "0xe16ea721c96539edb4f7fb82de0dad8cccb1e7a6966a6777635f6fb908040101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a6101000a600055600460ff0a6101000a60015560046101010a6101000a60025560046101000a60ff0a600355600460ff0a60ff0a60045560046101010a60ff0a60055560046101000a6101010a600655600460ff0a6101010a60075560046101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_5" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60056101000a6101000a600055600560ff0a6101000a60015560056101010a6101000a60025560056101000a60ff0a600355600560ff0a60ff0a60045560056101010a60ff0a60055560056101000a6101010a600655600560ff0a6101010a60075560056101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7786",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a6101000a600055600560ff0a6101000a60015560056101010a6101000a60025560056101000a60ff0a600355600560ff0a60ff0a60045560056101010a60ff0a60055560056101000a6101010a600655600560ff0a6101010a60075560056101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xb581ac185aad71db2d177c286929c4c22809e5dcb3085514ff7f000000000001",
+ "0x04" : "0x75789eb2a64bc971389fbd11a1e6d7abbf95ad25e23fb9aa25e73a0bfc83feff",
+ "0x05" : "0xfc403fa42ceb6a0d0d3321bd9b2d8af25b1b667f87a04f496c78168d078500ff",
+ "0x06" : "0xcec5ec213b9cb5811f6ae00428fd7b6ef5a1af39a1f7aa6aff81000000000001",
+ "0x07" : "0x70ab32233202b98d382d17713fa0be391eaf74f85ba1740c9c3238c4ed85ff01",
+ "0x08" : "0xb622672a213faa79b32185ff93a7b27a8499e48f7b032cdb4d1a70300c850101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a6101000a600055600560ff0a6101000a60015560056101010a6101000a60025560056101000a60ff0a600355600560ff0a60ff0a60045560056101010a60ff0a60055560056101000a6101010a600655600560ff0a6101010a60075560056101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_6" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60066101000a6101000a600055600660ff0a6101000a60015560066101010a6101000a60025560066101000a60ff0a600355600660ff0a60ff0a60045560066101010a60ff0a60055560066101000a6101010a600655600660ff0a6101010a60075560066101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7777",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a6101000a600055600660ff0a6101000a60015560066101010a6101000a60025560066101000a60ff0a600355600660ff0a60ff0a60045560066101010a60ff0a60055560066101000a6101010a600655600660ff0a6101010a60075560066101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x1948059de1def03c4ec35fc22c2bb8f2bf45dc33085514ff7f00000000000001",
+ "0x04" : "0x41f818a8e24eb6d7bb7b193b4f2b5fdcf4bd0d453f2ac3499d8830d391fa00ff",
+ "0x05" : "0xede6fe4a943dfb5d967a2b85d6728759d40d2ef0ae4bc28bbb1867f98c0600ff",
+ "0x06" : "0x083c936cbaad5de592badc2e142fe4ebd6103921f7aa6aff8100000000000001",
+ "0x07" : "0x57385019fe4e0939ca3f35c37cadfaf52fba5b1cdfb02def3866e8068bfa0101",
+ "0x08" : "0x810ac878bd98428f6be8c6426ba9f9da09e3e33bf4fe10bfa3f8b12c92060101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a6101000a600055600660ff0a6101000a60015560066101010a6101000a60025560066101000a60ff0a600355600660ff0a60ff0a60045560066101010a60ff0a60055560066101000a6101010a600655600660ff0a6101010a60075560066101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_7" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60076101000a6101000a600055600760ff0a6101000a60015560076101010a6101000a60025560076101000a60ff0a600355600760ff0a60ff0a60045560076101010a60ff0a60055560076101000a6101010a600655600760ff0a6101010a60075560076101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7768",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a6101000a600055600760ff0a6101000a60015560076101010a6101000a60025560076101000a60ff0a600355600760ff0a60ff0a60045560076101010a60ff0a60055560076101000a6101010a600655600760ff0a6101010a60075560076101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x8bb02654111ad8c60ad8af132283a81f455c33085514ff7f0000000000000001",
+ "0x04" : "0xa8f75c129dbb8466d6703a2a0b8212131b3248d70e2478862ac40fe17485feff",
+ "0x05" : "0x5fd4d2de580383ee59f5e800ddb3f1717ceae03aede19d3dec5e5a69918700ff",
+ "0x06" : "0xc8624230b524b85d6340da48a5db20370fb921f7aa6aff810000000000000001",
+ "0x07" : "0x287b58a5a13cd7f454468ca616c181712f5ed25433a7d5a894b6ced35f87ff01",
+ "0x08" : "0x09930d11ac2804fa977bf951593c8dff8498779cc0cdc5812a4fba2f98870101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a6101000a600055600760ff0a6101000a60015560076101010a6101000a60025560076101000a60ff0a600355600760ff0a60ff0a60045560076101010a60ff0a60055560076101000a6101010a600655600760ff0a6101010a60075560076101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_8" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60086101000a6101000a600055600860ff0a6101000a60015560086101010a6101000a60025560086101000a60ff0a600355600860ff0a60ff0a60045560086101010a60ff0a60055560086101000a6101010a600655600860ff0a6101010a60075560086101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7759",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a6101000a600055600860ff0a6101000a60015560086101010a6101000a60025560086101000a60ff0a600355600860ff0a60ff0a60045560086101010a60ff0a60055560086101000a6101010a600655600860ff0a6101010a60075560086101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x230041a0e7602d6e459609ed39081ec55c33085514ff7f000000000000000001",
+ "0x04" : "0xc407d8a413ef9079ead457ed686a05ac81039c0cae0a7f6afd01e8461ff800ff",
+ "0x05" : "0x67a397e0692385e4cd83853aabce220a94d449e885fa867e96d3ef5e180800ff",
+ "0x06" : "0x70add926e753655d6d0ebe9c0f81368fb921f7aa6aff81000000000000000001",
+ "0x07" : "0x0bdce80b8378e43f13d454b9d0a4c83cf311b8eaa45d5122cfd544a217f80101",
+ "0x08" : "0x629c25790e1488998877a9ecdf0fb69637e77d8a4bdc1b46270093ba20080101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a6101000a600055600860ff0a6101000a60015560086101010a6101000a60025560086101000a60ff0a600355600860ff0a60ff0a60045560086101010a60ff0a60055560086101000a6101010a600655600860ff0a6101010a60075560086101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_9" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60096101000a6101000a600055600960ff0a6101000a60015560096101010a6101000a60025560096101000a60ff0a600355600960ff0a60ff0a60045560096101010a60ff0a60055560096101000a6101010a600655600960ff0a6101010a60075560096101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7750",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a6101000a600055600960ff0a6101000a60015560096101010a6101000a60025560096101000a60ff0a600355600960ff0a60ff0a60045560096101010a60ff0a60055560096101000a6101010a600655600960ff0a6101010a60075560096101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x53017d8eb210db2c8cd4a299079ec55c33085514ff7f00000000000000000001",
+ "0x04" : "0x48be09b6c6ae2aa660f1972125cecbb1038b5d236ecf766ba786e2c4e887feff",
+ "0x05" : "0x2e350d847ba73dc2099f83f532951c47269d9fd7e411b50bae00a9581f8900ff",
+ "0x06" : "0x013ab9e1f0df89a184b4d07080b68fb921f7aa6aff8100000000000000000001",
+ "0x07" : "0xf387ed41c1050f9da667f429a3e8fb30b61a55ede97d7b8acd797a03cd89ff01",
+ "0x08" : "0x525696c22bb3ce00fd2e3f6bbb9b4ea1046a5e31fcff2fedf8f8c74d28890101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a6101000a600055600960ff0a6101000a60015560096101010a6101000a60025560096101000a60ff0a600355600960ff0a60ff0a60045560096101010a60ff0a60055560096101000a6101010a600655600960ff0a6101010a60075560096101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_1" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60016101000a600055600160ff0a60015560016101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a600055600160ff0a60015560016101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100",
+ "0x01" : "0xff",
+ "0x02" : "0x0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a600055600160ff0a60015560016101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_10" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600a6101000a600055600a60ff0a600155600a6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a600055600a60ff0a600155600a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000",
+ "0x01" : "0xf62c88d104d1882cf601",
+ "0x02" : "0x010a2d78d2fcd2782d0a01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a600055600a60ff0a600155600a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_11" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600b6101000a600055600b60ff0a600155600b6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a600055600b60ff0a600155600b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000",
+ "0x01" : "0xf5365c4833ccb6a4c90aff",
+ "0x02" : "0x010b37a64bcfcf4aa5370b01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a600055600b60ff0a600155600b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_12" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600c6101000a600055600c60ff0a600155600c6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a600055600c60ff0a600155600c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000",
+ "0x01" : "0xf44125ebeb98e9ee2441f401",
+ "0x02" : "0x010c42ddf21b9f19efdc420c01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a600055600c60ff0a600155600c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_13" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600d6101000a600055600d60ff0a600155600d6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a600055600d60ff0a600155600d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000",
+ "0x01" : "0xf34ce4c5ffad5104361db20cff",
+ "0x02" : "0x010d4f20d00dbab909cc1e4e0d01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a600055600d60ff0a600155600d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_14" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600e6101000a600055600e60ff0a600155600e6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a600055600e60ff0a600155600e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000",
+ "0x01" : "0xf25997e139ada3b331e7945af201",
+ "0x02" : "0x010e5c6ff0ddc873c2d5ea6c5b0e01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a600055600e60ff0a600155600e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_15" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600f6101000a600055600f60ff0a600155600f6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a600055600f60ff0a600155600f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000",
+ "0x01" : "0xf1673e495873f60f7eb5acc6970eff",
+ "0x02" : "0x010f6acc60cea63c3698c056c7690f01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a600055600f60ff0a600155600f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_16" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60106101000a600055601060ff0a60015560106101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a600055601060ff0a60015560106101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000",
+ "0x01" : "0xf075d70b0f1b82196f36f719d077f001",
+ "0x02" : "0x01107a372d2f74e272cf59171e30781001"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a600055601060ff0a60015560106101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_17" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60116101000a600055601160ff0a60015560116101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a600055601160ff0a60015560116101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000",
+ "0x01" : "0xef856134040c669755c7c022b6a77810ff",
+ "0x02" : "0x01118ab1645ca45755422870354ea8881101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a600055601160ff0a60015560116101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_18" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60126101000a600055601260ff0a60015560126101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a600055601260ff0a60015560126101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000",
+ "0x01" : "0xee95dbd2d0085a30be71f86293f0d098ee01",
+ "0x02" : "0x01129c3c15c100fbac976a98a583f730991201"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a600055601260ff0a60015560126101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_19" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60136101000a600055601360ff0a60015560136101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a600055601360ff0a60015560136101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000",
+ "0x01" : "0xeda745f6fd3851d68db3866a315cdfc85512ff",
+ "0x02" : "0x0113aed851d6c1fca84402033e297b27c9ab1301"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a600055601360ff0a60015560136101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60026101000a600055600260ff0a60015560026101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a600055600260ff0a60015560026101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000",
+ "0x01" : "0xfe01",
+ "0x02" : "0x010201"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a600055600260ff0a60015560026101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_20" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60146101000a600055601460ff0a60015560146101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a600055601460ff0a60015560146101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000",
+ "0x01" : "0xecb99eb1063b1984b725d2e3c72b82e88cbdec01",
+ "0x02" : "0x0114c2872a2898bea4ec46054167a4a2f174be1401"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a600055601460ff0a60015560146101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_21" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60156101000a600055601560ff0a60015560156101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a600055601560ff0a60015560156101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000",
+ "0x01" : "0xebcce5125534de6b326ead10e3645765a4312e14ff",
+ "0x02" : "0x0115d749b152c1576391324b46a90c47946632d21501"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a600055601560ff0a60015560156101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_22" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60166101000a600055601660ff0a60015560166101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a600055601660ff0a60015560166101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000",
+ "0x01" : "0xeae1182d42dfa98cc73c3e63d280f30e3e8cfce6ea01",
+ "0x02" : "0x0116ed20fb041418baf4c37d91efb553dbfa9904e71601"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a600055601660ff0a60015560166101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_23" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60176101000a600055601760ff0a60015560176101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a600055601760ff0a60015560176101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000000000",
+ "0x01" : "0xe9f63715159cc9e33a7502256eae721b304e6fea0316ff",
+ "0x02" : "0x0118040e1bff182cd3afb8410f81a5092fd6939debfd1701"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a600055601760ff0a60015560176101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_24" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60186101000a600055601860ff0a60015560186101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a600055601860ff0a60015560186101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe90c40de00872d19573a8d23493fc3a9151e217a1913e801",
+ "0x02" : "0x01191c122a1b1745008367f9509126ae39066a3189e9141801"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a600055601860ff0a60015560186101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_25" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60196101000a600055601960ff0a60015560196101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a600055601960ff0a60015560196101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe823349d2286a5ec3de3529625f683e56c0903589efad418ff",
+ "0x02" : "0x011a352e3c45325c4583eb6149e1b7d4e73f709bbb72fd2c1901"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a600055601960ff0a60015560196101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_26" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601a6101000a600055601a60ff0a600155601a6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a600055601a60ff0a600155601a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe73b116885641f4651a56f438fd08d61869cfa55465bd944e601",
+ "0x02" : "0x011b4f636a81778ea1c96f4cab2b998cbc26b00c572e7029451a01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a600055601a60ff0a600155601a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_27" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601b6101000a600055601b60ff0a600155601b6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a600055601b60ff0a600155601b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe653d6571cdebb270b53c9d44c40bcd425165d5af1157d6ba11aff",
+ "0x02" : "0x011c6ab2cdebf906306b38bbf7d6c52648e2d6bc63859e996e5f1b01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a600055601b60ff0a600155601b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_28" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601c6101000a600055601c60ff0a600155601c6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a600055601c60ff0a600155601c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe56d8280c5c1dc6be448760a77f47c1750f146fd962467ee3579e401",
+ "0x02" : "0x011d871d80b9e4ff369ba3f4b3ce9beb6f2bb9931fe9243807cd7a1c01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a600055601c60ff0a600155601c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_29" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601d6101000a600055601d60ff0a600155601d6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a600055601d60ff0a600155601d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe48814fe44fc1a8f78642d946d7c879b39a055b6988e438647446a1cff",
+ "0x02" : "0x011ea4a49e3a9ee435d23f98a8826a875a9ae54cb3090d5c3fd547961d01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a600055601d60ff0a600155601d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_3" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60036101000a600055600360ff0a60015560036101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a600055600360ff0a60015560036101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000",
+ "0x01" : "0xfd02ff",
+ "0x02" : "0x01030301"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a600055600360ff0a60015560036101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_30" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601e6101000a600055601e60ff0a600155601e6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a600055601e60ff0a600155601e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe3a38ce946b71e74e8ebc966d90f0b139e66b560e1f5b542c0fd25b2e201",
+ "0x02" : "0x011fc34942d8d9831a0811d8412aecf1e1f58031ffbc16699c151cddb31e01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a600055601e60ff0a600155601e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_31" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601f6101000a600055601f60ff0a600155601f6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a600055601f60ff0a600155601f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe2bfe95c5d7067567402dd9d7235fc088ac84eab8113bf8d7e3c288d2f1eff",
+ "0x02" : "0x0120e30c8c1bb25c9d2219ea196c17ded3d775b231bbd28005b131fa90d11f01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a600055601f60ff0a600155601f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_32" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60206101000a600055602060ff0a60015560206101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9285",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a600055602060ff0a60015560206101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x01" : "0xe1dd29730112f6ef1d8edabfd4c3c60c823d865cd592abcdf0bdec64a1efe001",
+ "0x02" : "0x2203ef98a7ce0ef9bf3c04038583f6b2ab4d27e3ed8e5285b6e32c8b61f02001"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a600055602060ff0a60015560206101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_33" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60216101000a600055602160ff0a60015560216101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9285",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a600055602160ff0a60015560216101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x01" : "0xfb4c498e11e3f82e714be514ef024675bb48d678bd192222cd2e783d4df020ff",
+ "0x02" : "0x25f3884075dd08b8fb400789097aa95df8750bd17be0d83c9a0fb7ed52102101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a600055602160ff0a60015560216101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_4" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60046101000a600055600460ff0a60015560046101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a600055600460ff0a60015560046101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000",
+ "0x01" : "0xfc05fc01",
+ "0x02" : "0x0104060401"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a600055600460ff0a60015560046101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_5" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60056101000a600055600560ff0a60015560056101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a600055600560ff0a60015560056101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000",
+ "0x01" : "0xfb09f604ff",
+ "0x02" : "0x01050a0a0501"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a600055600560ff0a60015560056101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_6" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60066101000a600055600660ff0a60015560066101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a600055600660ff0a60015560066101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000",
+ "0x01" : "0xfa0eec0efa01",
+ "0x02" : "0x01060f140f0601"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a600055600660ff0a60015560066101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_7" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60076101000a600055600760ff0a60015560076101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a600055600760ff0a60015560076101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000",
+ "0x01" : "0xf914dd22eb06ff",
+ "0x02" : "0x0107152323150701"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a600055600760ff0a60015560076101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_8" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60086101000a600055600860ff0a60015560086101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a600055600860ff0a60015560086101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000",
+ "0x01" : "0xf81bc845c81bf801",
+ "0x02" : "0x01081c3846381c0801"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a600055600860ff0a60015560086101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_9" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60096101000a600055600960ff0a60015560096101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a600055600960ff0a60015560096101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000",
+ "0x01" : "0xf723ac7d8253dc08ff",
+ "0x02" : "0x010924547e7e54240901"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a600055600960ff0a60015560096101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_128" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x608060020a600055607f60020a600155608160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x608060020a600055607f60020a600155608160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000",
+ "0x01" : "0x80000000000000000000000000000000",
+ "0x02" : "0x0200000000000000000000000000000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x608060020a600055607f60020a600155608160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_16" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601060020a600055600f60020a600155601160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601060020a600055600f60020a600155601160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000",
+ "0x01" : "0x8000",
+ "0x02" : "0x020000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601060020a600055600f60020a600155601160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600260020a600055600160020a600155600360020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600260020a600055600160020a600155600360020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x04",
+ "0x01" : "0x02",
+ "0x02" : "0x08"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600260020a600055600160020a600155600360020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_256" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x61010060020a60005560ff60020a60015561010160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9483",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61010060020a60005560ff60020a60015561010160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x01" : "0x8000000000000000000000000000000000000000000000000000000000000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61010060020a60005560ff60020a60015561010160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_32" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x602060020a600055601f60020a600155602160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x602060020a600055601f60020a600155602160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000",
+ "0x01" : "0x80000000",
+ "0x02" : "0x0200000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x602060020a600055601f60020a600155602160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_4" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600460020a600055600360020a600155600560020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600460020a600055600360020a600155600560020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x10",
+ "0x01" : "0x08",
+ "0x02" : "0x20"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600460020a600055600360020a600155600560020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_64" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x604060020a600055603f60020a600155604160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x604060020a600055603f60020a600155604160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000",
+ "0x01" : "0x8000000000000000",
+ "0x02" : "0x020000000000000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x604060020a600055603f60020a600155604160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_8" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600860020a600055600760020a600155600960020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600860020a600055600760020a600155600960020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100",
+ "0x01" : "0x80",
+ "0x02" : "0x0200"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600860020a600055600760020a600155600960020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
"mod0" : {
"callcreates" : [
],
@@ -3258,4 +6886,4 @@
}
}
}
-}
+} \ No newline at end of file
diff --git a/tests/files/VMTests/vmIOandFlowOperationsTest.json b/tests/files/VMTests/vmIOandFlowOperationsTest.json
index 120977086..24adc9d5d 100644
--- a/tests/files/VMTests/vmIOandFlowOperationsTest.json
+++ b/tests/files/VMTests/vmIOandFlowOperationsTest.json
@@ -135,8 +135,6 @@
}
},
"jump0" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -155,20 +153,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9696",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x60236007566001600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -254,8 +238,6 @@
}
},
"jump0_jumpdest1" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -274,20 +256,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9696",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x602360085660015b600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -402,8 +370,6 @@
}
},
"jumpi0" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -422,20 +388,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9695",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x602360016009576001600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -492,8 +444,6 @@
}
},
"jumpi1_jumpdest" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -512,20 +462,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9695",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x60236001600a5760015b600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -537,8 +473,6 @@
}
},
"jumpi2" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -557,19 +491,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9997",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff576002600355",
- "nonce" : "0",
- "storage" : {
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
diff --git a/tests/helper/vm.go b/tests/helper/vm.go
index e174e0892..aa17313b7 100644
--- a/tests/helper/vm.go
+++ b/tests/helper/vm.go
@@ -74,19 +74,19 @@ func (self *Env) vm(addr, data []byte, gas, price, value *big.Int) *core.Executi
return exec
}
-func (self *Env) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *Env) Call(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
ret, err := exe.Call(addr, caller)
self.Gas = exe.Gas
return ret, err
}
-func (self *Env) CallCode(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *Env) CallCode(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(caller.Address(), data, gas, price, value)
return exe.Call(addr, caller)
}
-func (self *Env) Create(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *Env) Create(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(caller)
}
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index f1e4d1acc..698b0aefc 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -78,6 +78,12 @@ func RunVmTest(p string, t *testing.T) {
helper.CreateFileTests(t, p, &tests)
for name, test := range tests {
+ /*
+ helper.Logger.SetLogLevel(5)
+ if name != "jump0_jumpdest2" {
+ continue
+ }
+ */
statedb := state.New(helper.NewTrie())
for addr, account := range test.Pre {
obj := StateObjectFromAccount(addr, account)
@@ -127,7 +133,7 @@ func RunVmTest(p string, t *testing.T) {
if isVmTest {
if len(test.Gas) == 0 && err == nil {
- t.Errorf("%s's gas unspecified, indicating an error. VM returned (incorrectly) successfull")
+ t.Errorf("%s's gas unspecified, indicating an error. VM returned (incorrectly) successfull", name)
} else {
gexp := ethutil.Big(test.Gas)
if gexp.Cmp(gas) != 0 {
diff --git a/vm/analysis.go b/vm/analysis.go
index fef448b7b..411df5686 100644
--- a/vm/analysis.go
+++ b/vm/analysis.go
@@ -1,34 +1,19 @@
package vm
-import (
- "math/big"
+import "gopkg.in/fatih/set.v0"
- "github.com/ethereum/go-ethereum/ethutil"
-)
+func analyseJumpDests(code []byte) (dests *set.Set) {
+ dests = set.New()
-func analyseJumpDests(code []byte) (dests map[uint64]*big.Int) {
- dests = make(map[uint64]*big.Int)
-
- lp := false
- var lpv *big.Int
for pc := uint64(0); pc < uint64(len(code)); pc++ {
var op OpCode = OpCode(code[pc])
switch op {
case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32:
a := uint64(op) - uint64(PUSH1) + 1
- if uint64(len(code)) > pc+1+a {
- lpv = ethutil.BigD(code[pc+1 : pc+1+a])
- }
pc += a
- lp = true
- case JUMP, JUMPI:
- if lp {
- dests[pc] = lpv
- }
-
- default:
- lp = false
+ case JUMPDEST:
+ dests.Add(pc)
}
}
return
diff --git a/vm/closure.go b/vm/context.go
index df216f2ae..ccbadabda 100644
--- a/vm/closure.go
+++ b/vm/context.go
@@ -8,15 +8,15 @@ import (
"github.com/ethereum/go-ethereum/state"
)
-type ClosureRef interface {
+type ContextRef interface {
ReturnGas(*big.Int, *big.Int)
Address() []byte
SetCode([]byte)
}
-type Closure struct {
- caller ClosureRef
- object ClosureRef
+type Context struct {
+ caller ContextRef
+ object ContextRef
Code []byte
message *state.Message
@@ -25,9 +25,9 @@ type Closure struct {
Args []byte
}
-// Create a new closure for the given data items
-func NewClosure(msg *state.Message, caller ClosureRef, object ClosureRef, code []byte, gas, price *big.Int) *Closure {
- c := &Closure{message: msg, caller: caller, object: object, Code: code, Args: nil}
+// Create a new context for the given data items
+func NewContext(msg *state.Message, caller ContextRef, object ContextRef, code []byte, gas, price *big.Int) *Context {
+ c := &Context{message: msg, caller: caller, object: object, Code: code, Args: nil}
// Gas should be a pointer so it can safely be reduced through the run
// This pointer will be off the state transition
@@ -40,11 +40,11 @@ func NewClosure(msg *state.Message, caller ClosureRef, object ClosureRef, code [
return c
}
-func (c *Closure) GetOp(x uint64) OpCode {
+func (c *Context) GetOp(x uint64) OpCode {
return OpCode(c.GetByte(x))
}
-func (c *Closure) GetByte(x uint64) byte {
+func (c *Context) GetByte(x uint64) byte {
if x < uint64(len(c.Code)) {
return c.Code[x]
}
@@ -52,18 +52,18 @@ func (c *Closure) GetByte(x uint64) byte {
return 0
}
-func (c *Closure) GetBytes(x, y int) []byte {
+func (c *Context) GetBytes(x, y int) []byte {
return c.GetRangeValue(uint64(x), uint64(y))
}
-func (c *Closure) GetRangeValue(x, size uint64) []byte {
+func (c *Context) GetRangeValue(x, size uint64) []byte {
x = uint64(math.Min(float64(x), float64(len(c.Code))))
y := uint64(math.Min(float64(x+size), float64(len(c.Code))))
return ethutil.LeftPadBytes(c.Code[x:y], int(size))
}
-func (c *Closure) Return(ret []byte) []byte {
+func (c *Context) Return(ret []byte) []byte {
// Return the remaining gas to the caller
c.caller.ReturnGas(c.Gas, c.Price)
@@ -73,7 +73,7 @@ func (c *Closure) Return(ret []byte) []byte {
/*
* Gas functions
*/
-func (c *Closure) UseGas(gas *big.Int) bool {
+func (c *Context) UseGas(gas *big.Int) bool {
if c.Gas.Cmp(gas) < 0 {
return false
}
@@ -86,8 +86,8 @@ func (c *Closure) UseGas(gas *big.Int) bool {
}
// Implement the caller interface
-func (c *Closure) ReturnGas(gas, price *big.Int) {
- // Return the gas to the closure
+func (c *Context) ReturnGas(gas, price *big.Int) {
+ // Return the gas to the context
c.Gas.Add(c.Gas, gas)
c.UsedGas.Sub(c.UsedGas, gas)
}
@@ -95,10 +95,10 @@ func (c *Closure) ReturnGas(gas, price *big.Int) {
/*
* Set / Get
*/
-func (c *Closure) Address() []byte {
+func (c *Context) Address() []byte {
return c.object.Address()
}
-func (self *Closure) SetCode(code []byte) {
+func (self *Context) SetCode(code []byte) {
self.Code = code
}
diff --git a/vm/environment.go b/vm/environment.go
index 969bc5e43..01bbd56ce 100644
--- a/vm/environment.go
+++ b/vm/environment.go
@@ -26,9 +26,9 @@ type Environment interface {
Depth() int
SetDepth(i int)
- Call(me ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
- CallCode(me ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
- Create(me ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, ClosureRef)
+ Call(me ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
+ CallCode(me ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
+ Create(me ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, ContextRef)
}
type Object interface {
diff --git a/vm/virtual_machine.go b/vm/virtual_machine.go
index 3b6f98ab2..23ac4878f 100644
--- a/vm/virtual_machine.go
+++ b/vm/virtual_machine.go
@@ -4,7 +4,7 @@ import "math/big"
type VirtualMachine interface {
Env() Environment
- Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, data []byte) ([]byte, error)
+ Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, data []byte) ([]byte, error)
Printf(string, ...interface{}) VirtualMachine
Endl() VirtualMachine
}
diff --git a/vm/vm.go b/vm/vm.go
index 22172cb3a..a5ea297b3 100644
--- a/vm/vm.go
+++ b/vm/vm.go
@@ -20,7 +20,7 @@ func New(env Environment, typ Type) VirtualMachine {
}
}
-func (self *Vm) Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, data []byte) (ret []byte, err error) {
+func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, data []byte) (ret []byte, err error) {
panic("not implemented")
}
diff --git a/vm/vm_debug.go b/vm/vm_debug.go
index 8829a9de0..6ad385fd0 100644
--- a/vm/vm_debug.go
+++ b/vm/vm_debug.go
@@ -37,7 +37,7 @@ func NewDebugVm(env Environment) *DebugVm {
return &DebugVm{env: env, logTy: lt, Recoverable: true}
}
-func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
+func (self *DebugVm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
self.env.SetDepth(self.env.Depth() + 1)
msg := self.env.State().Manifest().AddMessage(&state.Message{
@@ -47,7 +47,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
Block: self.env.BlockHash(), Timestamp: self.env.Time(), Coinbase: self.env.Coinbase(), Number: self.env.BlockNumber(),
Value: value,
})
- closure := NewClosure(msg, caller, me, code, gas, price)
+ context := NewContext(msg, caller, me, code, gas, price)
if self.Recoverable {
// Recover from any require exception
@@ -55,9 +55,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
if r := recover(); r != nil {
self.Printf(" %v", r).Endl()
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- ret = closure.Return(nil)
+ ret = context.Return(nil)
err = fmt.Errorf("%v", r)
@@ -66,13 +66,13 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}
if p := Precompiled[string(me.Address())]; p != nil {
- return self.RunPrecompiled(p, callData, closure)
+ return self.RunPrecompiled(p, callData, context)
}
var (
op OpCode
- destinations = analyseJumpDests(closure.Code)
+ destinations = analyseJumpDests(context.Code)
mem = NewMemory()
stack = NewStack()
pc uint64 = 0
@@ -83,31 +83,23 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
jump = func(from uint64, to *big.Int) {
p := to.Uint64()
- self.Printf(" ~> %v", to)
- // Return to start
- if p == 0 {
- pc = 0
- } else {
- nop := OpCode(closure.GetOp(p))
- if !(nop == JUMPDEST || destinations[from] != nil) {
- panic(fmt.Sprintf("invalid jump destination (%v) %v", nop, p))
- } else if nop == JUMP || nop == JUMPI {
- panic(fmt.Sprintf("not allowed to JUMP(I) in to JUMP"))
- }
-
- pc = to.Uint64()
-
+ nop := OpCode(context.GetOp(p))
+ if !destinations.Has(p) {
+ panic(fmt.Sprintf("invalid jump destination (%v) %v", nop, p))
}
+ self.Printf(" ~> %v", to)
+ pc = to.Uint64()
+
self.Endl()
}
)
- vmlogger.Debugf("(%d) (%x) %x (code=%d) gas: %v (d) %x\n", self.env.Depth(), caller.Address()[:4], closure.Address(), len(code), closure.Gas, callData)
+ vmlogger.Debugf("(%d) (%x) %x (code=%d) gas: %v (d) %x\n", self.env.Depth(), caller.Address()[:4], context.Address(), len(code), context.Gas, callData)
// Don't bother with the execution if there's no code.
if len(code) == 0 {
- return closure.Return(nil), nil
+ return context.Return(nil), nil
}
for {
@@ -117,22 +109,22 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
step++
// Get the memory location of pc
- op = closure.GetOp(pc)
+ op = context.GetOp(pc)
self.Printf("(pc) %-3d -o- %-14s (m) %-4d (s) %-4d ", pc, op.String(), mem.Len(), stack.Len())
- newMemSize, gas := self.calculateGasAndSize(closure, caller, op, statedb, mem, stack)
+ newMemSize, gas := self.calculateGasAndSize(context, caller, op, statedb, mem, stack)
- self.Printf("(g) %-3v (%v)", gas, closure.Gas)
+ self.Printf("(g) %-3v (%v)", gas, context.Gas)
- if !closure.UseGas(gas) {
+ if !context.UseGas(gas) {
self.Endl()
- tmp := new(big.Int).Set(closure.Gas)
+ tmp := new(big.Int).Set(context.Gas)
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- return closure.Return(nil), OOG(gas, tmp)
+ return context.Return(nil), OOG(gas, tmp)
}
mem.Resize(newMemSize.Uint64())
@@ -410,9 +402,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => %x", data)
// 0x30 range
case ADDRESS:
- stack.Push(ethutil.BigD(closure.Address()))
+ stack.Push(ethutil.BigD(context.Address()))
- self.Printf(" => %x", closure.Address())
+ self.Printf(" => %x", context.Address())
case BALANCE:
addr := stack.Pop().Bytes()
@@ -428,7 +420,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => %x", origin)
case CALLER:
- caller := closure.caller.Address()
+ caller := context.caller.Address()
stack.Push(ethutil.BigD(caller))
self.Printf(" => %x", caller)
@@ -485,7 +477,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
code = statedb.GetCode(addr)
} else {
- code = closure.Code
+ code = context.Code
}
l := big.NewInt(int64(len(code)))
@@ -497,7 +489,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
if op == EXTCODECOPY {
code = statedb.GetCode(stack.Pop().Bytes())
} else {
- code = closure.Code
+ code = context.Code
}
var (
@@ -519,9 +511,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => [%v, %v, %v] %x", mOff, cOff, l, codeCopy)
case GASPRICE:
- stack.Push(closure.Price)
+ stack.Push(context.Price)
- self.Printf(" => %v", closure.Price)
+ self.Printf(" => %v", context.Price)
// 0x40 range
case PREVHASH:
@@ -560,7 +552,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// 0x50 range
case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32:
a := uint64(op - PUSH1 + 1)
- byts := closure.GetRangeValue(pc+1, a)
+ byts := context.GetRangeValue(pc+1, a)
// Push value to stack
stack.Push(ethutil.BigD(byts))
pc += a
@@ -589,7 +581,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}
data := mem.Geti(mStart.Int64(), mSize.Int64())
- log := &Log{closure.Address(), topics, data}
+ log := &Log{context.Address(), topics, data}
self.env.AddLog(log)
self.Printf(" => %v", log)
@@ -614,15 +606,15 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => [%v] 0x%x", off, val)
case SLOAD:
loc := stack.Pop()
- val := ethutil.BigD(statedb.GetState(closure.Address(), loc.Bytes()))
+ val := ethutil.BigD(statedb.GetState(context.Address(), loc.Bytes()))
stack.Push(val)
self.Printf(" {0x%x : 0x%x}", loc.Bytes(), val.Bytes())
case SSTORE:
val, loc := stack.Popn()
- statedb.SetState(closure.Address(), loc.Bytes(), val)
+ statedb.SetState(context.Address(), loc.Bytes(), val)
- closure.message.AddStorageChange(loc.Bytes())
+ context.message.AddStorageChange(loc.Bytes())
self.Printf(" {0x%x : 0x%x}", loc.Bytes(), val.Bytes())
case JUMP:
@@ -644,7 +636,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
case MSIZE:
stack.Push(big.NewInt(int64(mem.Len())))
case GAS:
- stack.Push(closure.Gas)
+ stack.Push(context.Gas)
// 0x60 range
case CREATE:
@@ -653,7 +645,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
value = stack.Pop()
size, offset = stack.Popn()
input = mem.Get(offset.Int64(), size.Int64())
- gas = new(big.Int).Set(closure.Gas)
+ gas = new(big.Int).Set(context.Gas)
// Snapshot the current stack so we are able to
// revert back to it later.
@@ -661,15 +653,15 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
)
// Generate a new address
- n := statedb.GetNonce(closure.Address())
- addr := crypto.CreateAddress(closure.Address(), n)
- statedb.SetNonce(closure.Address(), n+1)
+ n := statedb.GetNonce(context.Address())
+ addr := crypto.CreateAddress(context.Address(), n)
+ statedb.SetNonce(context.Address(), n+1)
self.Printf(" (*) %x", addr).Endl()
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- ret, err, ref := self.env.Create(closure, addr, input, gas, price, value)
+ ret, err, ref := self.env.Create(context, addr, input, gas, price, value)
if err != nil {
stack.Push(ethutil.BigFalse)
@@ -678,7 +670,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// gas < len(ret) * CreateDataGas == NO_CODE
dataGas := big.NewInt(int64(len(ret)))
dataGas.Mul(dataGas, GasCreateByte)
- if closure.UseGas(dataGas) {
+ if context.UseGas(dataGas) {
ref.SetCode(ret)
msg.Output = ret
}
@@ -690,7 +682,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// Debug hook
if self.Dbg != nil {
- self.Dbg.SetCode(closure.Code)
+ self.Dbg.SetCode(context.Code)
}
case CALL, CALLCODE:
self.Endl()
@@ -711,9 +703,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
err error
)
if op == CALLCODE {
- ret, err = self.env.CallCode(closure, addr.Bytes(), args, gas, price, value)
+ ret, err = self.env.CallCode(context, addr.Bytes(), args, gas, price, value)
} else {
- ret, err = self.env.Call(closure, addr.Bytes(), args, gas, price, value)
+ ret, err = self.env.Call(context, addr.Bytes(), args, gas, price, value)
}
if err != nil {
@@ -726,11 +718,11 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
mem.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
- self.Printf("resume %x (%v)", closure.Address(), closure.Gas)
+ self.Printf("resume %x (%v)", context.Address(), context.Gas)
// Debug hook
if self.Dbg != nil {
- self.Dbg.SetCode(closure.Code)
+ self.Dbg.SetCode(context.Code)
}
case RETURN:
@@ -739,27 +731,27 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => [%v, %v] (%d) 0x%x", offset, size, len(ret), ret).Endl()
- return closure.Return(ret), nil
+ return context.Return(ret), nil
case SUICIDE:
receiver := statedb.GetOrNewStateObject(stack.Pop().Bytes())
- balance := statedb.GetBalance(closure.Address())
+ balance := statedb.GetBalance(context.Address())
self.Printf(" => (%x) %v", receiver.Address()[:4], balance)
receiver.AddAmount(balance)
- statedb.Delete(closure.Address())
+ statedb.Delete(context.Address())
fallthrough
- case STOP: // Stop the closure
+ case STOP: // Stop the context
self.Endl()
- return closure.Return(nil), nil
+ return context.Return(nil), nil
default:
vmlogger.Debugf("(pc) %-3v Invalid opcode %x\n", pc, op)
- closure.ReturnGas(big.NewInt(1), nil)
+ context.ReturnGas(big.NewInt(1), nil)
- return closure.Return(nil), fmt.Errorf("Invalid opcode %x", op)
+ return context.Return(nil), fmt.Errorf("Invalid opcode %x", op)
}
pc++
@@ -771,11 +763,11 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
if pc == uint64(instrNo) {
self.Stepping = true
- if !self.Dbg.BreakHook(prevStep, op, mem, stack, statedb.GetStateObject(closure.Address())) {
+ if !self.Dbg.BreakHook(prevStep, op, mem, stack, statedb.GetStateObject(context.Address())) {
return nil, nil
}
} else if self.Stepping {
- if !self.Dbg.StepHook(prevStep, op, mem, stack, statedb.GetStateObject(closure.Address())) {
+ if !self.Dbg.StepHook(prevStep, op, mem, stack, statedb.GetStateObject(context.Address())) {
return nil, nil
}
}
@@ -785,7 +777,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}
}
-func (self *DebugVm) calculateGasAndSize(closure *Closure, caller ClosureRef, op OpCode, statedb *state.StateDB, mem *Memory, stack *Stack) (*big.Int, *big.Int) {
+func (self *DebugVm) calculateGasAndSize(context *Context, caller ContextRef, op OpCode, statedb *state.StateDB, mem *Memory, stack *Stack) (*big.Int, *big.Int) {
gas := new(big.Int)
addStepGasUsage := func(amount *big.Int) {
if amount.Cmp(ethutil.Big0) >= 0 {
@@ -844,7 +836,7 @@ func (self *DebugVm) calculateGasAndSize(closure *Closure, caller ClosureRef, op
var mult *big.Int
y, x := stack.Peekn()
- val := statedb.GetState(closure.Address(), x.Bytes())
+ val := statedb.GetState(context.Address(), x.Bytes())
if len(val) == 0 && len(y.Bytes()) > 0 {
// 0 => non 0
mult = ethutil.Big3
@@ -940,22 +932,22 @@ func (self *DebugVm) calculateGasAndSize(closure *Closure, caller ClosureRef, op
return newMemSize, gas
}
-func (self *DebugVm) RunPrecompiled(p *PrecompiledAccount, callData []byte, closure *Closure) (ret []byte, err error) {
+func (self *DebugVm) RunPrecompiled(p *PrecompiledAccount, callData []byte, context *Context) (ret []byte, err error) {
gas := p.Gas(len(callData))
- if closure.UseGas(gas) {
+ if context.UseGas(gas) {
ret = p.Call(callData)
self.Printf("NATIVE_FUNC => %x", ret)
self.Endl()
- return closure.Return(ret), nil
+ return context.Return(ret), nil
} else {
self.Endl()
- tmp := new(big.Int).Set(closure.Gas)
+ tmp := new(big.Int).Set(context.Gas)
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- return closure.Return(nil), OOG(gas, tmp)
+ return context.Return(nil), OOG(gas, tmp)
}
}
diff --git a/whisper/envelope.go b/whisper/envelope.go
index 066e20f6a..9d28dfa6b 100644
--- a/whisper/envelope.go
+++ b/whisper/envelope.go
@@ -79,6 +79,7 @@ func (self *Envelope) Open(prv *ecdsa.PrivateKey) (msg *Message, err error) {
if prv != nil {
message.Payload, err = crypto.Decrypt(prv, payload)
switch err {
+ case nil: // OK
case ecies.ErrInvalidPublicKey: // Payload isn't encrypted
message.Payload = payload
return &message, err
diff --git a/whisper/messages_test.go b/whisper/messages_test.go
index cba103011..93caa31b3 100644
--- a/whisper/messages_test.go
+++ b/whisper/messages_test.go
@@ -40,12 +40,11 @@ func TestMessageEncryptDecrypt(t *testing.T) {
msg1, err := envelope.Open(prv2)
if err != nil {
- fmt.Println(err)
+ t.Error(err)
t.FailNow()
}
if !bytes.Equal(msg1.Payload, data) {
- fmt.Println("encryption error. data did not match")
- t.FailNow()
+ t.Error("encryption error. data did not match")
}
}
diff --git a/xeth/pipe.go b/xeth/pipe.go
index 775d5cfc5..cae6ee1de 100644
--- a/xeth/pipe.go
+++ b/xeth/pipe.go
@@ -139,7 +139,7 @@ func (self *XEth) Transact(key *crypto.KeyPair, to []byte, value, gas, price *et
// Do some pre processing for our "pre" events and hooks
block := self.chainManager.NewBlock(key.Address())
- coinbase := state.GetStateObject(key.Address())
+ coinbase := state.GetOrNewStateObject(key.Address())
coinbase.SetGasPool(block.GasLimit())
self.blockManager.ApplyTransactions(coinbase, state, block, types.Transactions{tx}, true)
diff --git a/xeth/vm_env.go b/xeth/vm_env.go
index 7633e0640..d2a21afd5 100644
--- a/xeth/vm_env.go
+++ b/xeth/vm_env.go
@@ -50,16 +50,16 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execu
return core.NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) CallCode(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(me.Address(), data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) Create(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(me)
}