aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block_pool.go27
-rw-r--r--cmd/ethereum/main.go2
-rw-r--r--cmd/evm/main.go2
-rw-r--r--cmd/mist/assets/qml/views/wallet.qml23
-rw-r--r--cmd/mist/bindings.go2
-rw-r--r--cmd/mist/debugger.go4
-rw-r--r--cmd/mist/gui.go37
-rw-r--r--cmd/mist/main.go2
-rw-r--r--cmd/mist/ui_lib.go2
-rw-r--r--cmd/peerserver/main.go40
-rw-r--r--cmd/utils/cmd.go2
-rw-r--r--core/block_manager.go98
-rw-r--r--core/chain_manager.go44
-rw-r--r--core/chain_manager_test.go115
-rw-r--r--core/dagger.go85
-rw-r--r--core/execution.go20
-rw-r--r--core/simple_pow.go1
-rw-r--r--core/transaction_pool.go12
-rw-r--r--core/types/block.go3
-rw-r--r--core/types/bloom9.go12
-rw-r--r--core/types/receipt.go13
-rw-r--r--crypto/crypto.go53
-rw-r--r--crypto/curve.go363
-rw-r--r--crypto/encrypt_decrypt_test.go40
-rw-r--r--crypto/key_manager.go4
-rw-r--r--ethereum.go2
-rw-r--r--ethutil/script_unix.go42
-rw-r--r--ethutil/script_windows.go23
-rw-r--r--javascript/javascript_runtime.go2
-rw-r--r--miner/miner.go35
-rw-r--r--p2p/message_test.go2
-rw-r--r--peer.go40
-rw-r--r--pow/block.go9
-rw-r--r--pow/ezp/pow.go89
-rw-r--r--pow/pow.go8
-rw-r--r--rlp/decode.go193
-rw-r--r--rlp/decode_test.go60
-rw-r--r--rlp/typecache.go39
-rw-r--r--state/state_test.go2
-rw-r--r--tests/files/StateTests/stExample.json4
-rw-r--r--tests/files/StateTests/stLogTests.json3712
-rw-r--r--tests/files/StateTests/stPreCompiledContracts.json205
-rw-r--r--tests/files/StateTests/stSpecialTest.json4
-rw-r--r--tests/files/StateTests/stSystemOperationsTest.json3630
-rw-r--r--tests/files/VMTests/RandomTests/randomTest.json46
-rw-r--r--tests/files/VMTests/vmArithmeticTest.json292
-rw-r--r--tests/files/VMTests/vmBitwiseLogicOperationTest.json240
-rw-r--r--tests/files/VMTests/vmBlockInfoTest.json24
-rw-r--r--tests/files/VMTests/vmEnvironmentalInfoTest.json320
-rw-r--r--tests/files/VMTests/vmIOandFlowOperationsTest.json120
-rw-r--r--tests/files/VMTests/vmLogTest.json338
-rw-r--r--tests/files/VMTests/vmPushDupSwapTest.json268
-rw-r--r--tests/files/VMTests/vmSha3Test.json14
-rw-r--r--tests/files/VMTests/vmtests.json16
-rw-r--r--tests/vm/gh_test.go26
-rw-r--r--vm/address.go18
-rw-r--r--vm/common.go11
-rw-r--r--vm/stack.go4
-rw-r--r--vm/virtual_machine.go1
-rw-r--r--vm/vm_debug.go72
-rw-r--r--vm/vm_test.go180
-rw-r--r--whisper/envelope.go116
-rw-r--r--whisper/main.go46
-rw-r--r--whisper/message.go70
-rw-r--r--whisper/messages_test.go51
-rw-r--r--whisper/peer.go128
-rw-r--r--whisper/sort.go25
-rw-r--r--whisper/sort_test.go19
-rw-r--r--whisper/whisper.go194
-rw-r--r--wire/messaging.go3
-rw-r--r--xeth/pipe.go18
-rw-r--r--xeth/world.go2
72 files changed, 10110 insertions, 1659 deletions
diff --git a/block_pool.go b/block_pool.go
index 95c766e53..803927f21 100644
--- a/block_pool.go
+++ b/block_pool.go
@@ -88,7 +88,7 @@ func (self *BlockPool) FetchHashes(peer *Peer) bool {
if (self.peer == nil && peer.td.Cmp(highestTd) >= 0) || (self.peer != nil && peer.td.Cmp(self.peer.td) > 0) || self.peer == peer {
if self.peer != peer {
- poollogger.Debugf("Found better suitable peer (%v vs %v)\n", self.td, peer.td)
+ poollogger.Infof("Found better suitable peer (%v vs %v)\n", self.td, peer.td)
if self.peer != nil {
self.peer.doneFetchingHashes = true
@@ -99,11 +99,7 @@ func (self *BlockPool) FetchHashes(peer *Peer) bool {
self.td = peer.td
if !self.HasLatestHash() {
- peer.doneFetchingHashes = false
-
- const amount = 256
- peerlogger.Debugf("Fetching hashes (%d) %x...\n", amount, peer.lastReceivedHash[0:4])
- peer.QueueMessage(wire.NewMessage(wire.MsgGetBlockHashesTy, []interface{}{peer.lastReceivedHash, uint32(amount)}))
+ self.fetchHashes()
}
return true
@@ -112,6 +108,16 @@ func (self *BlockPool) FetchHashes(peer *Peer) bool {
return false
}
+func (self *BlockPool) fetchHashes() {
+ peer := self.peer
+
+ peer.doneFetchingHashes = false
+
+ const amount = 256
+ peerlogger.Debugf("Fetching hashes (%d) %x...\n", amount, peer.lastReceivedHash[0:4])
+ peer.QueueMessage(wire.NewMessage(wire.MsgGetBlockHashesTy, []interface{}{peer.lastReceivedHash, uint32(amount)}))
+}
+
func (self *BlockPool) AddHash(hash []byte, peer *Peer) {
self.mut.Lock()
defer self.mut.Unlock()
@@ -148,7 +154,7 @@ func (self *BlockPool) addBlock(b *types.Block, peer *Peer, newBlock bool) {
fmt.Println("1.", !self.eth.ChainManager().HasBlock(b.PrevHash), ethutil.Bytes2Hex(b.Hash()[0:4]), ethutil.Bytes2Hex(b.PrevHash[0:4]))
fmt.Println("2.", self.pool[string(b.PrevHash)] == nil)
fmt.Println("3.", !self.fetchingHashes)
- if !self.eth.ChainManager().HasBlock(b.PrevHash) && self.pool[string(b.PrevHash)] == nil && !self.fetchingHashes {
+ if !self.eth.ChainManager().HasBlock(b.PrevHash) /*&& self.pool[string(b.PrevHash)] == nil*/ && !self.fetchingHashes {
poollogger.Infof("Unknown chain, requesting (%x...)\n", b.PrevHash[0:4])
peer.QueueMessage(wire.NewMessage(wire.MsgGetBlockHashesTy, []interface{}{b.Hash(), uint32(256)}))
}
@@ -259,6 +265,13 @@ out:
self.ChainLength = len(self.hashes)
}
+ if self.peer != nil &&
+ !self.peer.doneFetchingHashes &&
+ time.Since(self.peer.lastHashAt) > 10*time.Second &&
+ time.Since(self.peer.lastHashRequestedAt) > 5*time.Second {
+ self.fetchHashes()
+ }
+
/*
if !self.fetchingHashes {
blocks := self.Blocks()
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index c39f904fb..43551fb3a 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -30,7 +30,7 @@ import (
const (
ClientIdentifier = "Ethereum(G)"
- Version = "0.7.7"
+ Version = "0.7.9"
)
var clilogger = logger.NewLogger("CLI")
diff --git a/cmd/evm/main.go b/cmd/evm/main.go
index 1e6c807b1..c6c986a04 100644
--- a/cmd/evm/main.go
+++ b/cmd/evm/main.go
@@ -133,7 +133,7 @@ func (self *VMEnv) Value() *big.Int { return self.value }
func (self *VMEnv) GasLimit() *big.Int { return big.NewInt(1000000000) }
func (self *VMEnv) Depth() int { return 0 }
func (self *VMEnv) SetDepth(i int) { self.depth = i }
-func (self *VMEnv) AddLog(log *state.Log) {
+func (self *VMEnv) AddLog(log state.Log) {
self.state.AddLog(log)
}
func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
diff --git a/cmd/mist/assets/qml/views/wallet.qml b/cmd/mist/assets/qml/views/wallet.qml
index 9ffb1024d..9727ef35c 100644
--- a/cmd/mist/assets/qml/views/wallet.qml
+++ b/cmd/mist/assets/qml/views/wallet.qml
@@ -148,17 +148,21 @@ Rectangle {
id: txTableView
anchors.fill : parent
TableViewColumn{ role: "num" ; title: "#" ; width: 30 }
- TableViewColumn{ role: "from" ; title: "From" ; width: 280 }
- TableViewColumn{ role: "to" ; title: "To" ; width: 280 }
+ TableViewColumn{ role: "from" ; title: "From" ; width: 340 }
+ TableViewColumn{ role: "to" ; title: "To" ; width: 340 }
TableViewColumn{ role: "value" ; title: "Amount" ; width: 100 }
model: ListModel {
id: txModel
Component.onCompleted: {
- var filter = ethx.watch({latest: -1, from: eth.key().address});
- filter.changed(addTxs)
-
- addTxs(filter.messages())
+ var me = eth.key().address;
+ var filterTo = ethx.watch({latest: -1, to: me});
+ var filterFrom = ethx.watch({latest: -1, from: me});
+ filterTo.changed(addTxs)
+ filterFrom.changed(addTxs)
+
+ addTxs(filterTo.messages())
+ addTxs(filterFrom.messages())
}
function addTxs(messages) {
@@ -167,7 +171,12 @@ Rectangle {
for(var i = 0; i < messages.length; i++) {
var message = messages.get(i);
var to = eth.lookupName(message.to);
- var from = eth.lookupName(message.from);
+ var from;
+ if(message.from.length == 0) {
+ from = "- MINED -";
+ } else {
+ from = eth.lookupName(message.from);
+ }
txModel.insert(0, {num: txModel.count, from: from, to: to, value: eth.numberToHuman(message.value)})
}
}
diff --git a/cmd/mist/bindings.go b/cmd/mist/bindings.go
index 6dbcc3f1d..6d2342c87 100644
--- a/cmd/mist/bindings.go
+++ b/cmd/mist/bindings.go
@@ -103,7 +103,7 @@ func (self *Gui) DumpState(hash, path string) {
var stateDump []byte
if len(hash) == 0 {
- stateDump = self.eth.BlockManager().CurrentState().Dump()
+ stateDump = self.eth.ChainManager().State().Dump()
} else {
var block *types.Block
if hash[0] == '#' {
diff --git a/cmd/mist/debugger.go b/cmd/mist/debugger.go
index ca3ff5af2..d7c584eab 100644
--- a/cmd/mist/debugger.go
+++ b/cmd/mist/debugger.go
@@ -141,8 +141,8 @@ func (self *DebuggerWindow) Debug(valueStr, gasStr, gasPriceStr, scriptStr, data
keyPair = self.lib.eth.KeyManager().KeyPair()
)
- statedb := self.lib.eth.BlockManager().TransState()
- account := self.lib.eth.BlockManager().TransState().GetAccount(keyPair.Address())
+ statedb := self.lib.eth.ChainManager().TransState()
+ account := self.lib.eth.ChainManager().TransState().GetAccount(keyPair.Address())
contract := statedb.NewStateObject([]byte{0})
contract.SetCode(script)
contract.SetBalance(value)
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index e58e349d1..fe066e994 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -389,7 +389,6 @@ func (gui *Gui) update() {
gui.loadAddressBook()
gui.loadMergedMiningOptions()
gui.setPeerInfo()
- //gui.readPreviousTransactions()
}()
for _, plugin := range gui.plugins {
@@ -402,9 +401,8 @@ func (gui *Gui) update() {
generalUpdateTicker := time.NewTicker(500 * time.Millisecond)
statsUpdateTicker := time.NewTicker(5 * time.Second)
- state := gui.eth.BlockManager().TransState()
+ state := gui.eth.ChainManager().TransState()
- unconfirmedFunds := new(big.Int)
gui.win.Root().Call("setWalletValue", fmt.Sprintf("%v", ethutil.CurrencyToString(state.GetAccount(gui.address()).Balance())))
lastBlockLabel := gui.getObjectByName("lastBlockLabel")
@@ -418,9 +416,6 @@ func (gui *Gui) update() {
core.TxPostEvent{},
)
- // nameReg := gui.pipe.World().Config().Get("NameReg")
- // mux.Subscribe("object:"+string(nameReg.Address()), objectChan)
-
go func() {
defer events.Unsubscribe()
for {
@@ -433,20 +428,20 @@ func (gui *Gui) update() {
case core.NewBlockEvent:
gui.processBlock(ev.Block, false)
if bytes.Compare(ev.Block.Coinbase, gui.address()) == 0 {
- gui.setWalletValue(gui.eth.BlockManager().CurrentState().GetAccount(gui.address()).Balance(), nil)
+ gui.setWalletValue(gui.eth.ChainManager().State().GetBalance(gui.address()), nil)
}
case core.TxPreEvent:
tx := ev.Tx
- object := state.GetAccount(gui.address())
- if bytes.Compare(tx.Sender(), gui.address()) == 0 {
- unconfirmedFunds.Sub(unconfirmedFunds, tx.Value)
- } else if bytes.Compare(tx.Recipient, gui.address()) == 0 {
- unconfirmedFunds.Add(unconfirmedFunds, tx.Value)
- }
+ tstate := gui.eth.ChainManager().TransState()
+ cstate := gui.eth.ChainManager().State()
+
+ taccount := tstate.GetAccount(gui.address())
+ caccount := cstate.GetAccount(gui.address())
+ unconfirmedFunds := new(big.Int).Sub(taccount.Balance(), caccount.Balance())
- gui.setWalletValue(object.Balance(), unconfirmedFunds)
+ gui.setWalletValue(taccount.Balance(), unconfirmedFunds)
gui.insertTransaction("pre", tx)
case core.TxPostEvent:
@@ -456,32 +451,18 @@ func (gui *Gui) update() {
if bytes.Compare(tx.Sender(), gui.address()) == 0 {
object.SubAmount(tx.Value)
- //gui.getObjectByName("transactionView").Call("addTx", xeth.NewJSTx(tx), "send")
gui.txDb.Put(tx.Hash(), tx.RlpEncode())
} else if bytes.Compare(tx.Recipient, gui.address()) == 0 {
object.AddAmount(tx.Value)
- //gui.getObjectByName("transactionView").Call("addTx", xeth.NewJSTx(tx), "recv")
gui.txDb.Put(tx.Hash(), tx.RlpEncode())
}
gui.setWalletValue(object.Balance(), nil)
state.UpdateStateObject(object)
- // case object:
- // gui.loadAddressBook()
-
case eth.PeerListEvent:
gui.setPeerInfo()
-
- /*
- case miner.Event:
- if ev.Type == miner.Started {
- gui.miner = ev.Miner
- } else {
- gui.miner = nil
- }
- */
}
case <-peerUpdateTicker.C:
diff --git a/cmd/mist/main.go b/cmd/mist/main.go
index 8c46de6d9..14336b4e8 100644
--- a/cmd/mist/main.go
+++ b/cmd/mist/main.go
@@ -31,7 +31,7 @@ import (
const (
ClientIdentifier = "Mist"
- Version = "0.7.7"
+ Version = "0.7.9"
)
var ethereum *eth.Ethereum
diff --git a/cmd/mist/ui_lib.go b/cmd/mist/ui_lib.go
index 2b5e56646..fdbde50fd 100644
--- a/cmd/mist/ui_lib.go
+++ b/cmd/mist/ui_lib.go
@@ -200,7 +200,7 @@ func (ui *UiLib) AssetPath(p string) string {
func (self *UiLib) StartDbWithContractAndData(contractHash, data string) {
dbWindow := NewDebuggerWindow(self)
- object := self.eth.BlockManager().CurrentState().GetStateObject(ethutil.Hex2Bytes(contractHash))
+ object := self.eth.ChainManager().State().GetStateObject(ethutil.Hex2Bytes(contractHash))
if len(object.Code) > 0 {
dbWindow.SetCode("0x" + ethutil.Bytes2Hex(object.Code))
}
diff --git a/cmd/peerserver/main.go b/cmd/peerserver/main.go
new file mode 100644
index 000000000..0fa7a9b44
--- /dev/null
+++ b/cmd/peerserver/main.go
@@ -0,0 +1,40 @@
+package main
+
+import (
+ "crypto/elliptic"
+ "fmt"
+ "log"
+ "net"
+ "os"
+
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/p2p"
+)
+
+func main() {
+ logger.AddLogSystem(logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.InfoLevel))
+ key, _ := crypto.GenerateKey()
+ marshaled := elliptic.Marshal(crypto.S256(), key.PublicKey.X, key.PublicKey.Y)
+
+ srv := p2p.Server{
+ MaxPeers: 10,
+ Identity: p2p.NewSimpleClientIdentity("Ethereum(G)", "0.1", "Peer Server Two", string(marshaled)),
+ ListenAddr: ":30301",
+ NAT: p2p.UPNP(),
+ }
+ if err := srv.Start(); err != nil {
+ fmt.Println("could not start server:", err)
+ os.Exit(1)
+ }
+
+ // add seed peers
+ seed, err := net.ResolveTCPAddr("tcp", "poc-7.ethdev.com:30300")
+ if err != nil {
+ fmt.Println("couldn't resolve:", err)
+ os.Exit(1)
+ }
+ srv.SuggestPeer(seed.IP, seed.Port, nil)
+
+ select {}
+}
diff --git a/cmd/utils/cmd.go b/cmd/utils/cmd.go
index d9b26c701..db7bcd35e 100644
--- a/cmd/utils/cmd.go
+++ b/cmd/utils/cmd.go
@@ -145,7 +145,6 @@ func NewDatabase() ethutil.Database {
}
func NewClientIdentity(clientIdentifier, version, customIdentifier string) *wire.SimpleClientIdentity {
- clilogger.Infoln("identity created")
return wire.NewSimpleClientIdentity(clientIdentifier, version, customIdentifier)
}
@@ -240,6 +239,7 @@ func KeyTasks(keyManager *crypto.KeyManager, KeyRing string, GenAddr bool, Secre
exit(err)
}
}
+ clilogger.Infof("Main address %x\n", keyManager.Address())
}
func StartRpc(ethereum *eth.Ethereum, RpcPort int) {
diff --git a/core/block_manager.go b/core/block_manager.go
index c2ffc7ae0..f6c73bc2c 100644
--- a/core/block_manager.go
+++ b/core/block_manager.go
@@ -14,6 +14,8 @@ import (
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/pow"
+ "github.com/ethereum/go-ethereum/pow/ezp"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/wire"
)
@@ -55,17 +57,9 @@ type BlockManager struct {
// non-persistent key/value memory storage
mem map[string]*big.Int
// Proof of work used for validating
- Pow PoW
+ Pow pow.PoW
// The ethereum manager interface
eth EthManager
- // The managed states
- // Transiently state. The trans state isn't ever saved, validated and
- // it could be used for setting account nonces without effecting
- // the main states.
- transState *state.StateDB
- // Mining state. The mining state is used purely and solely by the mining
- // operation.
- miningState *state.StateDB
// The last attempted block is mainly used for debugging purposes
// This does not have to be a valid block and will be set during
@@ -73,57 +67,28 @@ type BlockManager struct {
lastAttemptedBlock *types.Block
events event.Subscription
+
+ eventMux *event.TypeMux
}
func NewBlockManager(ethereum EthManager) *BlockManager {
sm := &BlockManager{
- mem: make(map[string]*big.Int),
- Pow: &EasyPow{},
- eth: ethereum,
- bc: ethereum.ChainManager(),
+ mem: make(map[string]*big.Int),
+ Pow: ezp.New(),
+ eth: ethereum,
+ bc: ethereum.ChainManager(),
+ eventMux: ethereum.EventMux(),
}
- sm.transState = ethereum.ChainManager().CurrentBlock.State().Copy()
- sm.miningState = ethereum.ChainManager().CurrentBlock.State().Copy()
return sm
}
-func (self *BlockManager) Start() {
- statelogger.Debugln("Starting block manager")
-}
-
-func (self *BlockManager) Stop() {
- statelogger.Debugln("Stopping state manager")
-}
-
-func (sm *BlockManager) CurrentState() *state.StateDB {
- return sm.eth.ChainManager().CurrentBlock.State()
-}
-
-func (sm *BlockManager) TransState() *state.StateDB {
- return sm.transState
-}
-
-func (sm *BlockManager) MiningState() *state.StateDB {
- return sm.miningState
-}
-
-func (sm *BlockManager) NewMiningState() *state.StateDB {
- sm.miningState = sm.eth.ChainManager().CurrentBlock.State().Copy()
-
- return sm.miningState
-}
-
-func (sm *BlockManager) ChainManager() *ChainManager {
- return sm.bc
-}
-
func (sm *BlockManager) TransitionState(statedb *state.StateDB, parent, block *types.Block) (receipts types.Receipts, err error) {
coinbase := statedb.GetOrNewStateObject(block.Coinbase)
coinbase.SetGasPool(block.CalcGasLimit(parent))
// Process the transactions on to current block
- receipts, _, _, _, err = sm.ProcessTransactions(coinbase, statedb, block, parent, block.Transactions())
+ receipts, _, _, _, err = sm.ApplyTransactions(coinbase, statedb, block, block.Transactions(), false)
if err != nil {
return nil, err
}
@@ -131,7 +96,7 @@ func (sm *BlockManager) TransitionState(statedb *state.StateDB, parent, block *t
return receipts, nil
}
-func (self *BlockManager) ProcessTransactions(coinbase *state.StateObject, state *state.StateDB, block, parent *types.Block, txs types.Transactions) (types.Receipts, types.Transactions, types.Transactions, types.Transactions, error) {
+func (self *BlockManager) ApplyTransactions(coinbase *state.StateObject, state *state.StateDB, block *types.Block, txs types.Transactions, transientProcess bool) (types.Receipts, types.Transactions, types.Transactions, types.Transactions, error) {
var (
receipts types.Receipts
handled, unhandled types.Transactions
@@ -180,7 +145,9 @@ done:
receipt.Bloom = types.CreateBloom(types.Receipts{receipt})
// Notify all subscribers
- go self.eth.EventMux().Post(TxPostEvent{tx})
+ if !transientProcess {
+ go self.eventMux.Post(TxPostEvent{tx})
+ }
receipts = append(receipts, receipt)
handled = append(handled, tx)
@@ -229,38 +196,33 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
return
}
- _, err = sm.TransitionState(state, parent, block)
+ receipts, err := sm.TransitionState(state, parent, block)
if err != nil {
return
}
+ rbloom := types.CreateBloom(receipts)
+ if bytes.Compare(rbloom, block.LogsBloom) != 0 {
+ err = fmt.Errorf("unable to replicate block's bloom=%x", rbloom)
+ return
+ }
+
txSha := types.DeriveSha(block.Transactions())
if bytes.Compare(txSha, block.TxSha) != 0 {
err = fmt.Errorf("validating transaction root. received=%x got=%x", block.TxSha, txSha)
return
}
- /*
- receiptSha := types.DeriveSha(receipts)
- if bytes.Compare(receiptSha, block.ReceiptSha) != 0 {
- err = fmt.Errorf("validating receipt root. received=%x got=%x", block.ReceiptSha, receiptSha)
- return
- }
- */
+ receiptSha := types.DeriveSha(receipts)
+ if bytes.Compare(receiptSha, block.ReceiptSha) != 0 {
+ err = fmt.Errorf("validating receipt root. received=%x got=%x", block.ReceiptSha, receiptSha)
+ return
+ }
if err = sm.AccumelateRewards(state, block, parent); err != nil {
return
}
- /*
- //block.receipts = receipts // although this isn't necessary it be in the future
- rbloom := types.CreateBloom(receipts)
- if bytes.Compare(rbloom, block.LogsBloom) != 0 {
- err = fmt.Errorf("unable to replicate block's bloom=%x", rbloom)
- return
- }
- */
-
state.Update(ethutil.Big0)
if !block.State().Cmp(state) {
@@ -278,8 +240,6 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
chainlogger.Infof("Processed block #%d (%x...)\n", block.Number, block.Hash()[0:4])
- sm.transState = state.Copy()
-
sm.eth.TxPool().RemoveSet(block.Transactions())
return td, messages, nil
@@ -330,7 +290,7 @@ func (sm *BlockManager) ValidateBlock(block, parent *types.Block) error {
*/
// Verify the nonce of the block. Return an error if it's not valid
- if !sm.Pow.Verify(block.HashNoNonce(), block.Difficulty, block.Nonce) {
+ if !sm.Pow.Verify(block /*block.HashNoNonce(), block.Difficulty, block.Nonce*/) {
return ValidationError("Block's nonce is invalid (= %v)", ethutil.Bytes2Hex(block.Nonce))
}
@@ -378,7 +338,7 @@ func (sm *BlockManager) AccumelateRewards(statedb *state.StateDB, block, parent
account.AddAmount(reward)
statedb.Manifest().AddMessage(&state.Message{
- To: block.Coinbase, From: block.Coinbase,
+ To: block.Coinbase,
Input: nil,
Origin: nil,
Block: block.Hash(), Timestamp: block.Time, Coinbase: block.Coinbase, Number: block.Number,
diff --git a/core/chain_manager.go b/core/chain_manager.go
index 7acd171ec..edf50e715 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -8,6 +8,7 @@ import (
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/state"
)
var chainlogger = logger.NewLogger("CHAIN")
@@ -55,6 +56,8 @@ type ChainManager struct {
CurrentBlock *types.Block
LastBlockHash []byte
+
+ transState *state.StateDB
}
func NewChainManager(mux *event.TypeMux) *ChainManager {
@@ -64,6 +67,8 @@ func NewChainManager(mux *event.TypeMux) *ChainManager {
bc.setLastBlock()
+ bc.transState = bc.State().Copy()
+
return bc
}
@@ -71,6 +76,14 @@ func (self *ChainManager) SetProcessor(proc types.BlockProcessor) {
self.processor = proc
}
+func (self *ChainManager) State() *state.StateDB {
+ return self.CurrentBlock.State()
+}
+
+func (self *ChainManager) TransState() *state.StateDB {
+ return self.transState
+}
+
func (bc *ChainManager) setLastBlock() {
data, _ := ethutil.Config.Db.Get([]byte("LastBlock"))
if len(data) != 0 {
@@ -125,7 +138,8 @@ func (bc *ChainManager) Reset() {
bc.genesisBlock.Trie().Sync()
// Prepare the genesis block
- bc.add(bc.genesisBlock)
+ bc.write(bc.genesisBlock)
+ bc.insert(bc.genesisBlock)
bc.CurrentBlock = bc.genesisBlock
bc.SetTotalDifficulty(ethutil.Big("0"))
@@ -134,18 +148,18 @@ func (bc *ChainManager) Reset() {
bc.TD = ethutil.BigD(ethutil.Config.Db.LastKnownTD())
}
-// Add a block to the chain and record addition information
-func (bc *ChainManager) add(block *types.Block) {
- bc.writeBlockInfo(block)
-
+func (bc *ChainManager) insert(block *types.Block) {
+ encodedBlock := block.RlpEncode()
+ ethutil.Config.Db.Put([]byte("LastBlock"), encodedBlock)
bc.CurrentBlock = block
bc.LastBlockHash = block.Hash()
+}
+
+func (bc *ChainManager) write(block *types.Block) {
+ bc.writeBlockInfo(block)
encodedBlock := block.RlpEncode()
ethutil.Config.Db.Put(block.Hash(), encodedBlock)
- ethutil.Config.Db.Put([]byte("LastBlock"), encodedBlock)
-
- //chainlogger.Infof("Imported block #%d (%x...)\n", block.Number, block.Hash()[0:4])
}
// Accessors
@@ -266,8 +280,18 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
return err
}
- self.add(block)
- self.SetTotalDifficulty(td)
+ self.write(block)
+ if td.Cmp(self.TD) > 0 {
+ if block.Number.Cmp(new(big.Int).Add(self.CurrentBlock.Number, ethutil.Big1)) < 0 {
+ chainlogger.Infof("Split detected. New head #%v (%x), was #%v (%x)\n", block.Number, block.Hash()[:4], self.CurrentBlock.Number, self.CurrentBlock.Hash()[:4])
+ }
+
+ self.SetTotalDifficulty(td)
+ self.insert(block)
+ self.transState = self.State().Copy()
+ //sm.eth.TxPool().RemoveSet(block.Transactions())
+ }
+
self.eventMux.Post(NewBlockEvent{block})
self.eventMux.Post(messages)
}
diff --git a/core/chain_manager_test.go b/core/chain_manager_test.go
index ab43c511d..9a8bc9592 100644
--- a/core/chain_manager_test.go
+++ b/core/chain_manager_test.go
@@ -1,116 +1 @@
package core
-
-import (
- "fmt"
- "math/big"
- "testing"
- "time"
-
- "github.com/ethereum/go-ethereum/core/types"
- "github.com/ethereum/go-ethereum/ethdb"
- "github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/state"
-)
-
-var TD *big.Int
-
-func init() {
- ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
- ethutil.Config.Db, _ = ethdb.NewMemDatabase()
-}
-
-type fakeproc struct {
-}
-
-func (self fakeproc) ProcessWithParent(a, b *types.Block) (*big.Int, state.Messages, error) {
- TD = new(big.Int).Add(TD, big.NewInt(1))
- return TD, nil, nil
-}
-
-func makechain(cman *ChainManager, max int) *BlockChain {
- blocks := make(types.Blocks, max)
- for i := 0; i < max; i++ {
- addr := ethutil.LeftPadBytes([]byte{byte(i)}, 20)
- block := cman.NewBlock(addr)
- if i != 0 {
- cman.CurrentBlock = blocks[i-1]
- }
- blocks[i] = block
- }
- return NewChain(blocks)
-}
-
-func TestLongerFork(t *testing.T) {
- cman := NewChainManager()
- cman.SetProcessor(fakeproc{})
-
- TD = big.NewInt(1)
- chainA := makechain(cman, 5)
-
- TD = big.NewInt(1)
- chainB := makechain(cman, 10)
-
- td, err := cman.TestChain(chainA)
- if err != nil {
- t.Error("unable to create new TD from chainA:", err)
- }
- cman.TD = td
-
- _, err = cman.TestChain(chainB)
- if err != nil {
- t.Error("expected chainB not to give errors:", err)
- }
-}
-
-func TestEqualFork(t *testing.T) {
- cman := NewChainManager()
- cman.SetProcessor(fakeproc{})
-
- TD = big.NewInt(1)
- chainA := makechain(cman, 5)
-
- TD = big.NewInt(2)
- chainB := makechain(cman, 5)
-
- td, err := cman.TestChain(chainA)
- if err != nil {
- t.Error("unable to create new TD from chainA:", err)
- }
- cman.TD = td
-
- _, err = cman.TestChain(chainB)
- if err != nil {
- t.Error("expected chainB not to give errors:", err)
- }
-}
-
-func TestBrokenChain(t *testing.T) {
- cman := NewChainManager()
- cman.SetProcessor(fakeproc{})
-
- TD = big.NewInt(1)
- chain := makechain(cman, 5)
- chain.Remove(chain.Front())
-
- _, err := cman.TestChain(chain)
- if err == nil {
- t.Error("expected broken chain to return error")
- }
-}
-
-func BenchmarkChainTesting(b *testing.B) {
- const chainlen = 1000
-
- ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
- ethutil.Config.Db, _ = ethdb.NewMemDatabase()
-
- cman := NewChainManager()
- cman.SetProcessor(fakeproc{})
-
- TD = big.NewInt(1)
- chain := makechain(cman, chainlen)
-
- stime := time.Now()
- cman.TestChain(chain)
- fmt.Println(chainlen, "took", time.Since(stime))
-}
diff --git a/core/dagger.go b/core/dagger.go
index 8a042b34f..3039d8995 100644
--- a/core/dagger.go
+++ b/core/dagger.go
@@ -6,8 +6,6 @@ import (
"math/rand"
"time"
- "github.com/ethereum/go-ethereum/core/types"
- "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/obscuren/sha3"
@@ -15,89 +13,6 @@ import (
var powlogger = logger.NewLogger("POW")
-type PoW interface {
- Search(block *types.Block, stop <-chan struct{}) []byte
- Verify(hash []byte, diff *big.Int, nonce []byte) bool
- GetHashrate() int64
- Turbo(bool)
-}
-
-type EasyPow struct {
- hash *big.Int
- HashRate int64
- turbo bool
-}
-
-func (pow *EasyPow) GetHashrate() int64 {
- return pow.HashRate
-}
-
-func (pow *EasyPow) Turbo(on bool) {
- pow.turbo = on
-}
-
-func (pow *EasyPow) Search(block *types.Block, stop <-chan struct{}) []byte {
- r := rand.New(rand.NewSource(time.Now().UnixNano()))
- hash := block.HashNoNonce()
- diff := block.Difficulty
- i := int64(0)
- start := time.Now().UnixNano()
- t := time.Now()
-
- for {
- select {
- case <-stop:
- powlogger.Infoln("Breaking from mining")
- pow.HashRate = 0
- return nil
- default:
- i++
-
- if time.Since(t) > (1 * time.Second) {
- elapsed := time.Now().UnixNano() - start
- hashes := ((float64(1e9) / float64(elapsed)) * float64(i)) / 1000
- pow.HashRate = int64(hashes)
- powlogger.Infoln("Hashing @", pow.HashRate, "khash")
-
- t = time.Now()
- }
-
- sha := crypto.Sha3(big.NewInt(r.Int63()).Bytes())
- if pow.Verify(hash, diff, sha) {
- return sha
- }
- }
-
- if !pow.turbo {
- time.Sleep(20 * time.Microsecond)
- }
- }
-
- return nil
-}
-
-func (pow *EasyPow) Verify(hash []byte, diff *big.Int, nonce []byte) bool {
- sha := sha3.NewKeccak256()
-
- d := append(hash, nonce...)
- sha.Write(d)
-
- verification := new(big.Int).Div(ethutil.BigPow(2, 256), diff)
- res := ethutil.U256(ethutil.BigD(sha.Sum(nil)))
-
- /*
- fmt.Printf("hash w/o nonce %x\n", hash)
- fmt.Printf("2**256 / %v = %v\n", diff, verification)
- fmt.Printf("%v <= %v\n", res, verification)
- fmt.Printf("vlen: %d rlen: %d\n", len(verification.Bytes()), len(res.Bytes()))
- */
-
- return res.Cmp(verification) <= 0
-}
-
-func (pow *EasyPow) SetHash(hash *big.Int) {
-}
-
type Dagger struct {
hash *big.Int
xn *big.Int
diff --git a/core/execution.go b/core/execution.go
index 9f9d9a5d9..a464abc66 100644
--- a/core/execution.go
+++ b/core/execution.go
@@ -32,10 +32,16 @@ func (self *Execution) Call(codeAddr []byte, caller vm.ClosureRef) ([]byte, erro
return self.exec(code, codeAddr, caller)
}
-func (self *Execution) exec(code, caddr []byte, caller vm.ClosureRef) (ret []byte, err error) {
+func (self *Execution) exec(code, contextAddr []byte, caller vm.ClosureRef) (ret []byte, err error) {
env := self.vm.Env()
-
chainlogger.Debugf("pre state %x\n", env.State().Root())
+
+ from, to := env.State().GetStateObject(caller.Address()), env.State().GetOrNewStateObject(self.address)
+ // Skipping transfer is used on testing for the initial call
+ if !self.SkipTransfer {
+ err = env.Transfer(from, to, self.value)
+ }
+
snapshot := env.State().Copy()
defer func() {
if vm.IsDepthErr(err) || vm.IsOOGErr(err) {
@@ -44,12 +50,6 @@ func (self *Execution) exec(code, caddr []byte, caller vm.ClosureRef) (ret []byt
chainlogger.Debugf("post state %x\n", env.State().Root())
}()
- from, to := env.State().GetStateObject(caller.Address()), env.State().GetOrNewStateObject(self.address)
- // Skipping transfer is used on testing for the initial call
- if !self.SkipTransfer {
- err = env.Transfer(from, to, self.value)
- }
-
if err != nil {
caller.ReturnGas(self.Gas, self.price)
@@ -57,9 +57,9 @@ func (self *Execution) exec(code, caddr []byte, caller vm.ClosureRef) (ret []byt
} else {
self.object = to
// Pre-compiled contracts (address.go) 1, 2 & 3.
- naddr := ethutil.BigD(caddr).Uint64()
+ naddr := ethutil.BigD(contextAddr).Uint64()
if p := vm.Precompiled[naddr]; p != nil {
- if self.Gas.Cmp(p.Gas) >= 0 {
+ if self.Gas.Cmp(p.Gas(len(self.input))) >= 0 {
ret = p.Call(self.input)
self.vm.Printf("NATIVE_FUNC(%x) => %x", naddr, ret)
self.vm.Endl()
diff --git a/core/simple_pow.go b/core/simple_pow.go
new file mode 100644
index 000000000..9a8bc9592
--- /dev/null
+++ b/core/simple_pow.go
@@ -0,0 +1 @@
+package core
diff --git a/core/transaction_pool.go b/core/transaction_pool.go
index abacb14f1..7166d35e8 100644
--- a/core/transaction_pool.go
+++ b/core/transaction_pool.go
@@ -115,12 +115,8 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
return fmt.Errorf("tx.v != (28 || 27)")
}
- if tx.GasPrice.Cmp(MinGasPrice) < 0 {
- return fmt.Errorf("Gas price to low. Require %v > Got %v", MinGasPrice, tx.GasPrice)
- }
-
// Get the sender
- sender := pool.Ethereum.BlockManager().CurrentState().GetAccount(tx.Sender())
+ sender := pool.Ethereum.ChainManager().State().GetAccount(tx.Sender())
totAmount := new(big.Int).Set(tx.Value)
// Make sure there's enough in the sender's account. Having insufficient
@@ -164,11 +160,15 @@ func (self *TxPool) Add(tx *types.Transaction) error {
txplogger.Debugf("(t) %x => %x (%v) %x\n", tx.Sender()[:4], tmp, tx.Value, tx.Hash())
// Notify the subscribers
- self.Ethereum.EventMux().Post(TxPreEvent{tx})
+ go self.Ethereum.EventMux().Post(TxPreEvent{tx})
return nil
}
+func (self *TxPool) Size() int {
+ return self.pool.Len()
+}
+
func (pool *TxPool) CurrentTransactions() []*types.Transaction {
pool.mutex.Lock()
defer pool.mutex.Unlock()
diff --git a/core/types/block.go b/core/types/block.go
index 55ce1fb9b..0108bd586 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -411,3 +411,6 @@ func (self *Block) Size() ethutil.StorageSize {
func (self *Block) RlpData() interface{} {
return self.Value().Val
}
+
+// Implement pow.Block
+func (self *Block) N() []byte { return self.Nonce }
diff --git a/core/types/bloom9.go b/core/types/bloom9.go
index d04656b0d..c1841e553 100644
--- a/core/types/bloom9.go
+++ b/core/types/bloom9.go
@@ -20,18 +20,16 @@ func CreateBloom(receipts Receipts) []byte {
func LogsBloom(logs state.Logs) *big.Int {
bin := new(big.Int)
for _, log := range logs {
- data := [][]byte{log.Address()}
- for _, topic := range log.Topics() {
- data = append(data, topic)
+ data := make([][]byte, len(log.Topics())+1)
+ data[0] = log.Address()
+
+ for i, topic := range log.Topics() {
+ data[i+1] = topic
}
for _, b := range data {
bin.Or(bin, ethutil.BigD(bloom9(crypto.Sha3(b)).Bytes()))
}
-
- //if log.Data != nil {
- // data = append(data, log.Data)
- //}
}
return bin
diff --git a/core/types/receipt.go b/core/types/receipt.go
index 25fa8fb07..bac64e41d 100644
--- a/core/types/receipt.go
+++ b/core/types/receipt.go
@@ -64,5 +64,18 @@ func (self *Receipt) String() string {
type Receipts []*Receipt
+func (self Receipts) RlpData() interface{} {
+ data := make([]interface{}, len(self))
+ for i, receipt := range self {
+ data[i] = receipt.RlpData()
+ }
+
+ return data
+}
+
+func (self Receipts) RlpEncode() []byte {
+ return ethutil.Encode(self.RlpData())
+}
+
func (self Receipts) Len() int { return len(self) }
func (self Receipts) GetRlp(i int) []byte { return ethutil.Rlp(self[i]) }
diff --git a/crypto/crypto.go b/crypto/crypto.go
index e10a9e81f..d70a5a4db 100644
--- a/crypto/crypto.go
+++ b/crypto/crypto.go
@@ -1,15 +1,23 @@
package crypto
import (
+ "crypto/ecdsa"
+ "crypto/elliptic"
+ "crypto/rand"
"crypto/sha256"
"code.google.com/p/go.crypto/ripemd160"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/obscuren/ecies"
"github.com/obscuren/secp256k1-go"
"github.com/obscuren/sha3"
)
-// TODO refactor, remove (bin)
+func init() {
+ // specify the params for the s256 curve
+ ecies.AddParamsForCurve(S256(), ecies.ECIES_AES128_SHA256)
+}
+
func Sha3(data []byte) []byte {
d := sha3.NewKeccak256()
d.Write(data)
@@ -45,3 +53,46 @@ func Ecrecover(data []byte) []byte {
return r
}
+
+// New methods using proper ecdsa keys from the stdlib
+func ToECDSA(prv []byte) *ecdsa.PrivateKey {
+ priv := new(ecdsa.PrivateKey)
+ priv.PublicKey.Curve = S256()
+ priv.D = ethutil.BigD(prv)
+ priv.PublicKey.X, priv.PublicKey.Y = S256().ScalarBaseMult(prv)
+ return priv
+}
+
+func FromECDSA(prv *ecdsa.PrivateKey) []byte {
+ return prv.D.Bytes()
+}
+
+func PubToECDSA(pub []byte) *ecdsa.PublicKey {
+ x, y := elliptic.Unmarshal(S256(), pub)
+ return &ecdsa.PublicKey{S256(), x, y}
+}
+
+func GenerateKey() (*ecdsa.PrivateKey, error) {
+ return ecdsa.GenerateKey(S256(), rand.Reader)
+}
+
+func SigToPub(hash, sig []byte) *ecdsa.PublicKey {
+ s := Ecrecover(append(hash, sig...))
+ x, y := elliptic.Unmarshal(S256(), s)
+
+ return &ecdsa.PublicKey{S256(), x, y}
+}
+
+func Sign(hash []byte, prv *ecdsa.PrivateKey) (sig []byte, err error) {
+ sig, err = secp256k1.Sign(hash, prv.D.Bytes())
+ return
+}
+
+func Encrypt(pub *ecdsa.PublicKey, message []byte) ([]byte, error) {
+ return ecies.Encrypt(rand.Reader, ecies.ImportECDSAPublic(pub), message, nil, nil)
+}
+
+func Decrypt(prv *ecdsa.PrivateKey, ct []byte) ([]byte, error) {
+ key := ecies.ImportECDSA(prv)
+ return key.Decrypt(rand.Reader, ct, nil, nil)
+}
diff --git a/crypto/curve.go b/crypto/curve.go
new file mode 100644
index 000000000..131a0dd2f
--- /dev/null
+++ b/crypto/curve.go
@@ -0,0 +1,363 @@
+package crypto
+
+// Copyright 2010 The Go Authors. All rights reserved.
+// Copyright 2011 ThePiachu. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package bitelliptic implements several Koblitz elliptic curves over prime
+// fields.
+
+// This package operates, internally, on Jacobian coordinates. For a given
+// (x, y) position on the curve, the Jacobian coordinates are (x1, y1, z1)
+// where x = x1/z1² and y = y1/z1³. The greatest speedups come when the whole
+// calculation can be performed within the transform (as in ScalarMult and
+// ScalarBaseMult). But even for Add and Double, it's faster to apply and
+// reverse the transform than to operate in affine coordinates.
+
+import (
+ "crypto/elliptic"
+ "io"
+ "math/big"
+ "sync"
+)
+
+// A BitCurve represents a Koblitz Curve with a=0.
+// See http://www.hyperelliptic.org/EFD/g1p/auto-shortw.html
+type BitCurve struct {
+ P *big.Int // the order of the underlying field
+ N *big.Int // the order of the base point
+ B *big.Int // the constant of the BitCurve equation
+ Gx, Gy *big.Int // (x,y) of the base point
+ BitSize int // the size of the underlying field
+}
+
+func (BitCurve *BitCurve) Params() *elliptic.CurveParams {
+ return &elliptic.CurveParams{BitCurve.P, BitCurve.N, BitCurve.B, BitCurve.Gx, BitCurve.Gy, BitCurve.BitSize}
+}
+
+// IsOnBitCurve returns true if the given (x,y) lies on the BitCurve.
+func (BitCurve *BitCurve) IsOnCurve(x, y *big.Int) bool {
+ // y² = x³ + b
+ y2 := new(big.Int).Mul(y, y) //y²
+ y2.Mod(y2, BitCurve.P) //y²%P
+
+ x3 := new(big.Int).Mul(x, x) //x²
+ x3.Mul(x3, x) //x³
+
+ x3.Add(x3, BitCurve.B) //x³+B
+ x3.Mod(x3, BitCurve.P) //(x³+B)%P
+
+ return x3.Cmp(y2) == 0
+}
+
+//TODO: double check if the function is okay
+// affineFromJacobian reverses the Jacobian transform. See the comment at the
+// top of the file.
+func (BitCurve *BitCurve) affineFromJacobian(x, y, z *big.Int) (xOut, yOut *big.Int) {
+ zinv := new(big.Int).ModInverse(z, BitCurve.P)
+ zinvsq := new(big.Int).Mul(zinv, zinv)
+
+ xOut = new(big.Int).Mul(x, zinvsq)
+ xOut.Mod(xOut, BitCurve.P)
+ zinvsq.Mul(zinvsq, zinv)
+ yOut = new(big.Int).Mul(y, zinvsq)
+ yOut.Mod(yOut, BitCurve.P)
+ return
+}
+
+// Add returns the sum of (x1,y1) and (x2,y2)
+func (BitCurve *BitCurve) Add(x1, y1, x2, y2 *big.Int) (*big.Int, *big.Int) {
+ z := new(big.Int).SetInt64(1)
+ return BitCurve.affineFromJacobian(BitCurve.addJacobian(x1, y1, z, x2, y2, z))
+}
+
+// addJacobian takes two points in Jacobian coordinates, (x1, y1, z1) and
+// (x2, y2, z2) and returns their sum, also in Jacobian form.
+func (BitCurve *BitCurve) addJacobian(x1, y1, z1, x2, y2, z2 *big.Int) (*big.Int, *big.Int, *big.Int) {
+ // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#addition-add-2007-bl
+ z1z1 := new(big.Int).Mul(z1, z1)
+ z1z1.Mod(z1z1, BitCurve.P)
+ z2z2 := new(big.Int).Mul(z2, z2)
+ z2z2.Mod(z2z2, BitCurve.P)
+
+ u1 := new(big.Int).Mul(x1, z2z2)
+ u1.Mod(u1, BitCurve.P)
+ u2 := new(big.Int).Mul(x2, z1z1)
+ u2.Mod(u2, BitCurve.P)
+ h := new(big.Int).Sub(u2, u1)
+ if h.Sign() == -1 {
+ h.Add(h, BitCurve.P)
+ }
+ i := new(big.Int).Lsh(h, 1)
+ i.Mul(i, i)
+ j := new(big.Int).Mul(h, i)
+
+ s1 := new(big.Int).Mul(y1, z2)
+ s1.Mul(s1, z2z2)
+ s1.Mod(s1, BitCurve.P)
+ s2 := new(big.Int).Mul(y2, z1)
+ s2.Mul(s2, z1z1)
+ s2.Mod(s2, BitCurve.P)
+ r := new(big.Int).Sub(s2, s1)
+ if r.Sign() == -1 {
+ r.Add(r, BitCurve.P)
+ }
+ r.Lsh(r, 1)
+ v := new(big.Int).Mul(u1, i)
+
+ x3 := new(big.Int).Set(r)
+ x3.Mul(x3, x3)
+ x3.Sub(x3, j)
+ x3.Sub(x3, v)
+ x3.Sub(x3, v)
+ x3.Mod(x3, BitCurve.P)
+
+ y3 := new(big.Int).Set(r)
+ v.Sub(v, x3)
+ y3.Mul(y3, v)
+ s1.Mul(s1, j)
+ s1.Lsh(s1, 1)
+ y3.Sub(y3, s1)
+ y3.Mod(y3, BitCurve.P)
+
+ z3 := new(big.Int).Add(z1, z2)
+ z3.Mul(z3, z3)
+ z3.Sub(z3, z1z1)
+ if z3.Sign() == -1 {
+ z3.Add(z3, BitCurve.P)
+ }
+ z3.Sub(z3, z2z2)
+ if z3.Sign() == -1 {
+ z3.Add(z3, BitCurve.P)
+ }
+ z3.Mul(z3, h)
+ z3.Mod(z3, BitCurve.P)
+
+ return x3, y3, z3
+}
+
+// Double returns 2*(x,y)
+func (BitCurve *BitCurve) Double(x1, y1 *big.Int) (*big.Int, *big.Int) {
+ z1 := new(big.Int).SetInt64(1)
+ return BitCurve.affineFromJacobian(BitCurve.doubleJacobian(x1, y1, z1))
+}
+
+// doubleJacobian takes a point in Jacobian coordinates, (x, y, z), and
+// returns its double, also in Jacobian form.
+func (BitCurve *BitCurve) doubleJacobian(x, y, z *big.Int) (*big.Int, *big.Int, *big.Int) {
+ // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#doubling-dbl-2009-l
+
+ a := new(big.Int).Mul(x, x) //X1²
+ b := new(big.Int).Mul(y, y) //Y1²
+ c := new(big.Int).Mul(b, b) //B²
+
+ d := new(big.Int).Add(x, b) //X1+B
+ d.Mul(d, d) //(X1+B)²
+ d.Sub(d, a) //(X1+B)²-A
+ d.Sub(d, c) //(X1+B)²-A-C
+ d.Mul(d, big.NewInt(2)) //2*((X1+B)²-A-C)
+
+ e := new(big.Int).Mul(big.NewInt(3), a) //3*A
+ f := new(big.Int).Mul(e, e) //E²
+
+ x3 := new(big.Int).Mul(big.NewInt(2), d) //2*D
+ x3.Sub(f, x3) //F-2*D
+ x3.Mod(x3, BitCurve.P)
+
+ y3 := new(big.Int).Sub(d, x3) //D-X3
+ y3.Mul(e, y3) //E*(D-X3)
+ y3.Sub(y3, new(big.Int).Mul(big.NewInt(8), c)) //E*(D-X3)-8*C
+ y3.Mod(y3, BitCurve.P)
+
+ z3 := new(big.Int).Mul(y, z) //Y1*Z1
+ z3.Mul(big.NewInt(2), z3) //3*Y1*Z1
+ z3.Mod(z3, BitCurve.P)
+
+ return x3, y3, z3
+}
+
+//TODO: double check if it is okay
+// ScalarMult returns k*(Bx,By) where k is a number in big-endian form.
+func (BitCurve *BitCurve) ScalarMult(Bx, By *big.Int, k []byte) (*big.Int, *big.Int) {
+ // We have a slight problem in that the identity of the group (the
+ // point at infinity) cannot be represented in (x, y) form on a finite
+ // machine. Thus the standard add/double algorithm has to be tweaked
+ // slightly: our initial state is not the identity, but x, and we
+ // ignore the first true bit in |k|. If we don't find any true bits in
+ // |k|, then we return nil, nil, because we cannot return the identity
+ // element.
+
+ Bz := new(big.Int).SetInt64(1)
+ x := Bx
+ y := By
+ z := Bz
+
+ seenFirstTrue := false
+ for _, byte := range k {
+ for bitNum := 0; bitNum < 8; bitNum++ {
+ if seenFirstTrue {
+ x, y, z = BitCurve.doubleJacobian(x, y, z)
+ }
+ if byte&0x80 == 0x80 {
+ if !seenFirstTrue {
+ seenFirstTrue = true
+ } else {
+ x, y, z = BitCurve.addJacobian(Bx, By, Bz, x, y, z)
+ }
+ }
+ byte <<= 1
+ }
+ }
+
+ if !seenFirstTrue {
+ return nil, nil
+ }
+
+ return BitCurve.affineFromJacobian(x, y, z)
+}
+
+// ScalarBaseMult returns k*G, where G is the base point of the group and k is
+// an integer in big-endian form.
+func (BitCurve *BitCurve) ScalarBaseMult(k []byte) (*big.Int, *big.Int) {
+ return BitCurve.ScalarMult(BitCurve.Gx, BitCurve.Gy, k)
+}
+
+var mask = []byte{0xff, 0x1, 0x3, 0x7, 0xf, 0x1f, 0x3f, 0x7f}
+
+//TODO: double check if it is okay
+// GenerateKey returns a public/private key pair. The private key is generated
+// using the given reader, which must return random data.
+func (BitCurve *BitCurve) GenerateKey(rand io.Reader) (priv []byte, x, y *big.Int, err error) {
+ byteLen := (BitCurve.BitSize + 7) >> 3
+ priv = make([]byte, byteLen)
+
+ for x == nil {
+ _, err = io.ReadFull(rand, priv)
+ if err != nil {
+ return
+ }
+ // We have to mask off any excess bits in the case that the size of the
+ // underlying field is not a whole number of bytes.
+ priv[0] &= mask[BitCurve.BitSize%8]
+ // This is because, in tests, rand will return all zeros and we don't
+ // want to get the point at infinity and loop forever.
+ priv[1] ^= 0x42
+ x, y = BitCurve.ScalarBaseMult(priv)
+ }
+ return
+}
+
+// Marshal converts a point into the form specified in section 4.3.6 of ANSI
+// X9.62.
+func (BitCurve *BitCurve) Marshal(x, y *big.Int) []byte {
+ byteLen := (BitCurve.BitSize + 7) >> 3
+
+ ret := make([]byte, 1+2*byteLen)
+ ret[0] = 4 // uncompressed point
+
+ xBytes := x.Bytes()
+ copy(ret[1+byteLen-len(xBytes):], xBytes)
+ yBytes := y.Bytes()
+ copy(ret[1+2*byteLen-len(yBytes):], yBytes)
+ return ret
+}
+
+// Unmarshal converts a point, serialised by Marshal, into an x, y pair. On
+// error, x = nil.
+func (BitCurve *BitCurve) Unmarshal(data []byte) (x, y *big.Int) {
+ byteLen := (BitCurve.BitSize + 7) >> 3
+ if len(data) != 1+2*byteLen {
+ return
+ }
+ if data[0] != 4 { // uncompressed form
+ return
+ }
+ x = new(big.Int).SetBytes(data[1 : 1+byteLen])
+ y = new(big.Int).SetBytes(data[1+byteLen:])
+ return
+}
+
+//curve parameters taken from:
+//http://www.secg.org/collateral/sec2_final.pdf
+
+var initonce sync.Once
+var ecp160k1 *BitCurve
+var ecp192k1 *BitCurve
+var ecp224k1 *BitCurve
+var ecp256k1 *BitCurve
+
+func initAll() {
+ initS160()
+ initS192()
+ initS224()
+ initS256()
+}
+
+func initS160() {
+ // See SEC 2 section 2.4.1
+ ecp160k1 = new(BitCurve)
+ ecp160k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73", 16)
+ ecp160k1.N, _ = new(big.Int).SetString("0100000000000000000001B8FA16DFAB9ACA16B6B3", 16)
+ ecp160k1.B, _ = new(big.Int).SetString("0000000000000000000000000000000000000007", 16)
+ ecp160k1.Gx, _ = new(big.Int).SetString("3B4C382CE37AA192A4019E763036F4F5DD4D7EBB", 16)
+ ecp160k1.Gy, _ = new(big.Int).SetString("938CF935318FDCED6BC28286531733C3F03C4FEE", 16)
+ ecp160k1.BitSize = 160
+}
+
+func initS192() {
+ // See SEC 2 section 2.5.1
+ ecp192k1 = new(BitCurve)
+ ecp192k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37", 16)
+ ecp192k1.N, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D", 16)
+ ecp192k1.B, _ = new(big.Int).SetString("000000000000000000000000000000000000000000000003", 16)
+ ecp192k1.Gx, _ = new(big.Int).SetString("DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D", 16)
+ ecp192k1.Gy, _ = new(big.Int).SetString("9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D", 16)
+ ecp192k1.BitSize = 192
+}
+
+func initS224() {
+ // See SEC 2 section 2.6.1
+ ecp224k1 = new(BitCurve)
+ ecp224k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D", 16)
+ ecp224k1.N, _ = new(big.Int).SetString("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7", 16)
+ ecp224k1.B, _ = new(big.Int).SetString("00000000000000000000000000000000000000000000000000000005", 16)
+ ecp224k1.Gx, _ = new(big.Int).SetString("A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C", 16)
+ ecp224k1.Gy, _ = new(big.Int).SetString("7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5", 16)
+ ecp224k1.BitSize = 224
+}
+
+func initS256() {
+ // See SEC 2 section 2.7.1
+ ecp256k1 = new(BitCurve)
+ ecp256k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", 16)
+ ecp256k1.N, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16)
+ ecp256k1.B, _ = new(big.Int).SetString("0000000000000000000000000000000000000000000000000000000000000007", 16)
+ ecp256k1.Gx, _ = new(big.Int).SetString("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", 16)
+ ecp256k1.Gy, _ = new(big.Int).SetString("483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", 16)
+ ecp256k1.BitSize = 256
+}
+
+// S160 returns a BitCurve which implements secp160k1 (see SEC 2 section 2.4.1)
+func S160() *BitCurve {
+ initonce.Do(initAll)
+ return ecp160k1
+}
+
+// S192 returns a BitCurve which implements secp192k1 (see SEC 2 section 2.5.1)
+func S192() *BitCurve {
+ initonce.Do(initAll)
+ return ecp192k1
+}
+
+// S224 returns a BitCurve which implements secp224k1 (see SEC 2 section 2.6.1)
+func S224() *BitCurve {
+ initonce.Do(initAll)
+ return ecp224k1
+}
+
+// S256 returns a BitCurve which implements secp256k1 (see SEC 2 section 2.7.1)
+func S256() *BitCurve {
+ initonce.Do(initAll)
+ return ecp256k1
+}
diff --git a/crypto/encrypt_decrypt_test.go b/crypto/encrypt_decrypt_test.go
new file mode 100644
index 000000000..850fa94e4
--- /dev/null
+++ b/crypto/encrypt_decrypt_test.go
@@ -0,0 +1,40 @@
+package crypto
+
+import (
+ "bytes"
+ "fmt"
+ "testing"
+
+ "github.com/ethereum/go-ethereum/ethutil"
+)
+
+func TestBox(t *testing.T) {
+ prv1 := ToECDSA(ethutil.Hex2Bytes("4b50fa71f5c3eeb8fdc452224b2395af2fcc3d125e06c32c82e048c0559db03f"))
+ prv2 := ToECDSA(ethutil.Hex2Bytes("d0b043b4c5d657670778242d82d68a29d25d7d711127d17b8e299f156dad361a"))
+ pub2 := PubToECDSA(ethutil.Hex2Bytes("04bd27a63c91fe3233c5777e6d3d7b39204d398c8f92655947eb5a373d46e1688f022a1632d264725cbc7dc43ee1cfebde42fa0a86d08b55d2acfbb5e9b3b48dc5"))
+
+ message := []byte("Hello, world.")
+ ct, err := Encrypt(pub2, message)
+ if err != nil {
+ fmt.Println(err.Error())
+ t.FailNow()
+ }
+
+ pt, err := Decrypt(prv2, ct)
+ if err != nil {
+ fmt.Println(err.Error())
+ t.FailNow()
+ }
+
+ if !bytes.Equal(pt, message) {
+ fmt.Println("ecies: plaintext doesn't match message")
+ t.FailNow()
+ }
+
+ _, err = Decrypt(prv1, pt)
+ if err == nil {
+ fmt.Println("ecies: encryption should not have succeeded")
+ t.FailNow()
+ }
+
+}
diff --git a/crypto/key_manager.go b/crypto/key_manager.go
index cc2b9ff90..326e559e0 100644
--- a/crypto/key_manager.go
+++ b/crypto/key_manager.go
@@ -5,8 +5,11 @@ import (
"sync"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/logger"
)
+var keylogger = logger.NewLogger("KEY")
+
type KeyManager struct {
keyRing *KeyRing
session string
@@ -104,6 +107,7 @@ func (k *KeyManager) Init(session string, cursor int, force bool) error {
}
if keyRing == nil {
keyRing = NewGeneratedKeyRing(1)
+ keylogger.Infof("Created keypair. Private key: %x\n", keyRing.keys[0].PrivateKey)
}
return k.reset(session, cursor, keyRing)
}
diff --git a/ethereum.go b/ethereum.go
index 94e46b556..e8b1a9500 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -393,7 +393,6 @@ func (s *Ethereum) reapDeadPeerHandler() {
// Start the ethereum
func (s *Ethereum) Start(seed bool) {
s.blockPool.Start()
- s.blockManager.Start()
// Bind to addr and port
ln, err := net.Listen("tcp", ":"+s.Port)
@@ -517,7 +516,6 @@ func (s *Ethereum) Stop() {
s.RpcServer.Stop()
}
s.txPool.Stop()
- s.blockManager.Stop()
s.blockPool.Stop()
loggerger.Infoln("Server stopped")
diff --git a/ethutil/script_unix.go b/ethutil/script_unix.go
index 6827d4e2f..9250dda57 100644
--- a/ethutil/script_unix.go
+++ b/ethutil/script_unix.go
@@ -2,47 +2,17 @@
package ethutil
-import (
- "fmt"
- "strings"
-
- "github.com/ethereum/serpent-go"
- "github.com/obscuren/mutan"
- "github.com/obscuren/mutan/backends"
-)
+import "github.com/ethereum/serpent-go"
// General compile function
func Compile(script string, silent bool) (ret []byte, err error) {
if len(script) > 2 {
- line := strings.Split(script, "\n")[0]
-
- if len(line) > 1 && line[0:2] == "#!" {
- switch line {
- case "#!serpent":
- byteCode, err := serpent.Compile(script)
- if err != nil {
- return nil, err
- }
-
- return byteCode, nil
- }
- } else {
-
- compiler := mutan.NewCompiler(backend.NewEthereumBackend())
- compiler.Silent = silent
- byteCode, errors := compiler.Compile(strings.NewReader(script))
- if len(errors) > 0 {
- var errs string
- for _, er := range errors {
- if er != nil {
- errs += er.Error()
- }
- }
- return nil, fmt.Errorf("%v", errs)
- }
-
- return byteCode, nil
+ byteCode, err := serpent.Compile(script)
+ if err != nil {
+ return nil, err
}
+
+ return byteCode, nil
}
return nil, nil
diff --git a/ethutil/script_windows.go b/ethutil/script_windows.go
index ef239cd51..1dedc5f60 100644
--- a/ethutil/script_windows.go
+++ b/ethutil/script_windows.go
@@ -2,31 +2,10 @@
package ethutil
-import (
- "fmt"
- "strings"
-
- "github.com/obscuren/mutan"
- "github.com/obscuren/mutan/backends"
-)
-
// General compile function
func Compile(script string, silent bool) (ret []byte, err error) {
if len(script) > 2 {
- compiler := mutan.NewCompiler(backend.NewEthereumBackend())
- compiler.Silent = silent
- byteCode, errors := compiler.Compile(strings.NewReader(script))
- if len(errors) > 0 {
- var errs string
- for _, er := range errors {
- if er != nil {
- errs += er.Error()
- }
- }
- return nil, fmt.Errorf("%v", errs)
- }
-
- return byteCode, nil
+ return nil, nil
}
return nil, nil
diff --git a/javascript/javascript_runtime.go b/javascript/javascript_runtime.go
index a5b929a34..84d61d405 100644
--- a/javascript/javascript_runtime.go
+++ b/javascript/javascript_runtime.go
@@ -150,7 +150,7 @@ func (self *JSRE) dump(call otto.FunctionCall) otto.Value {
state = block.State()
} else {
- state = self.ethereum.BlockManager().CurrentState()
+ state = self.ethereum.ChainManager().State()
}
v, _ := self.Vm.ToValue(state.Dump())
diff --git a/miner/miner.go b/miner/miner.go
index 589144c0c..dc69dddc0 100644
--- a/miner/miner.go
+++ b/miner/miner.go
@@ -29,6 +29,8 @@ import (
"github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/pow"
+ "github.com/ethereum/go-ethereum/pow/ezp"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
@@ -59,7 +61,7 @@ type Miner struct {
localTxs map[int]*LocalTx
localTxId int
- pow core.PoW
+ pow pow.PoW
quitCh chan struct{}
powQuitCh chan struct{}
@@ -74,7 +76,7 @@ func New(coinbase []byte, eth *eth.Ethereum) *Miner {
return &Miner{
eth: eth,
powQuitCh: make(chan struct{}),
- pow: &core.EasyPow{},
+ pow: ezp.New(),
mining: false,
localTxs: make(map[int]*LocalTx),
MinAcceptedGasPrice: big.NewInt(10000000000000),
@@ -82,7 +84,7 @@ func New(coinbase []byte, eth *eth.Ethereum) *Miner {
}
}
-func (self *Miner) GetPow() core.PoW {
+func (self *Miner) GetPow() pow.PoW {
return self.pow
}
@@ -167,7 +169,6 @@ out:
}
func (self *Miner) reset() {
- println("reset")
close(self.powQuitCh)
self.powQuitCh = make(chan struct{})
}
@@ -192,7 +193,7 @@ func (self *Miner) mine() {
// Accumulate all valid transactions and apply them to the new state
// Error may be ignored. It's not important during mining
- receipts, txs, _, erroneous, err := blockManager.ProcessTransactions(coinbase, block.State(), block, block, transactions)
+ receipts, txs, _, erroneous, err := blockManager.ApplyTransactions(coinbase, block.State(), block, transactions, true)
if err != nil {
minerlogger.Debugln(err)
}
@@ -228,23 +229,33 @@ func (self *Miner) mine() {
func (self *Miner) finiliseTxs() types.Transactions {
// Sort the transactions by nonce in case of odd network propagation
- var txs types.Transactions
+ actualSize := len(self.localTxs) // See copy below
+ txs := make(types.Transactions, actualSize+self.eth.TxPool().Size())
- state := self.eth.BlockManager().TransState()
+ state := self.eth.ChainManager().TransState()
// XXX This has to change. Coinbase is, for new, same as key.
key := self.eth.KeyManager()
- for _, ltx := range self.localTxs {
+ for i, ltx := range self.localTxs {
tx := types.NewTransactionMessage(ltx.To, ethutil.Big(ltx.Value), ethutil.Big(ltx.Gas), ethutil.Big(ltx.GasPrice), ltx.Data)
tx.Nonce = state.GetNonce(self.Coinbase)
state.SetNonce(self.Coinbase, tx.Nonce+1)
tx.Sign(key.PrivateKey())
- txs = append(txs, tx)
+ txs[i] = tx
}
- txs = append(txs, self.eth.TxPool().CurrentTransactions()...)
- sort.Sort(types.TxByNonce{txs})
+ // Faster than append
+ for _, tx := range self.eth.TxPool().CurrentTransactions() {
+ if tx.GasPrice.Cmp(self.MinAcceptedGasPrice) >= 0 {
+ txs[actualSize] = tx
+ actualSize++
+ }
+ }
+
+ newTransactions := make(types.Transactions, actualSize)
+ copy(newTransactions, txs[:actualSize])
+ sort.Sort(types.TxByNonce{newTransactions})
- return txs
+ return newTransactions
}
diff --git a/p2p/message_test.go b/p2p/message_test.go
index 7b39b061d..557bfed26 100644
--- a/p2p/message_test.go
+++ b/p2p/message_test.go
@@ -43,7 +43,7 @@ func TestEncodeDecodeMsg(t *testing.T) {
}
var data struct {
- I int
+ I uint
S string
}
if err := decmsg.Decode(&data); err != nil {
diff --git a/peer.go b/peer.go
index bf84f6e35..331e9de37 100644
--- a/peer.go
+++ b/peer.go
@@ -24,7 +24,7 @@ const (
// The size of the output buffer for writing messages
outputBufferSize = 50
// Current protocol version
- ProtocolVersion = 47
+ ProtocolVersion = 49
// Current P2P version
P2PVersion = 2
// Ethereum network version
@@ -129,9 +129,11 @@ type Peer struct {
statusKnown bool
// Last received pong message
- lastPong int64
- lastBlockReceived time.Time
- doneFetchingHashes bool
+ lastPong int64
+ lastBlockReceived time.Time
+ doneFetchingHashes bool
+ lastHashAt time.Time
+ lastHashRequestedAt time.Time
host []byte
port uint16
@@ -327,19 +329,16 @@ out:
}
}
+ switch msg.Type {
+ case wire.MsgGetBlockHashesTy:
+ p.lastHashRequestedAt = time.Now()
+ }
+
p.writeMessage(msg)
p.lastSend = time.Now()
// Ping timer
case <-pingTimer.C:
- /*
- timeSince := time.Since(time.Unix(p.lastPong, 0))
- if !p.pingStartTime.IsZero() && p.lastPong != 0 && timeSince > (pingPongTimer+30*time.Second) {
- peerlogger.Infof("Peer did not respond to latest pong fast enough, it took %s, disconnecting.\n", timeSince)
- p.Stop()
- return
- }
- */
p.writeMessage(wire.NewMessage(wire.MsgPingTy, ""))
p.pingStartTime = time.Now()
@@ -462,18 +461,6 @@ func (p *Peer) HandleInbound() {
// TMP
if p.statusKnown {
switch msg.Type {
- /*
- case wire.MsgGetTxsTy:
- // Get the current transactions of the pool
- txs := p.ethereum.TxPool().CurrentTransactions()
- // Get the RlpData values from the txs
- txsInterface := make([]interface{}, len(txs))
- for i, tx := range txs {
- txsInterface[i] = tx.RlpData()
- }
- // Broadcast it back to the peer
- p.QueueMessage(wire.NewMessage(wire.MsgTxTy, txsInterface))
- */
case wire.MsgGetBlockHashesTy:
if msg.Data.Len() < 2 {
@@ -508,6 +495,7 @@ func (p *Peer) HandleInbound() {
blockPool := p.ethereum.blockPool
foundCommonHash := false
+ p.lastHashAt = time.Now()
it := msg.Data.NewIterator()
for it.Next() {
@@ -524,9 +512,6 @@ func (p *Peer) HandleInbound() {
}
if !foundCommonHash {
- //if !p.FetchHashes() {
- // p.doneFetchingHashes = true
- //}
p.FetchHashes()
} else {
peerlogger.Infof("Found common hash (%x...)\n", p.lastReceivedHash[0:4])
@@ -756,7 +741,6 @@ func (p *Peer) handleHandshake(msg *wire.Msg) {
// Check correctness of p2p protocol version
if p2pVersion != P2PVersion {
- fmt.Println(p)
peerlogger.Debugf("Invalid P2P version. Require protocol %d, received %d\n", P2PVersion, p2pVersion)
p.Stop()
return
diff --git a/pow/block.go b/pow/block.go
new file mode 100644
index 000000000..4759e19fb
--- /dev/null
+++ b/pow/block.go
@@ -0,0 +1,9 @@
+package pow
+
+import "math/big"
+
+type Block interface {
+ Diff() *big.Int
+ HashNoNonce() []byte
+ N() []byte
+}
diff --git a/pow/ezp/pow.go b/pow/ezp/pow.go
new file mode 100644
index 000000000..cdf89950f
--- /dev/null
+++ b/pow/ezp/pow.go
@@ -0,0 +1,89 @@
+package ezp
+
+import (
+ "math/big"
+ "math/rand"
+ "time"
+
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/pow"
+ "github.com/obscuren/sha3"
+)
+
+var powlogger = logger.NewLogger("POW")
+
+type EasyPow struct {
+ hash *big.Int
+ HashRate int64
+ turbo bool
+}
+
+func New() *EasyPow {
+ return &EasyPow{}
+}
+
+func (pow *EasyPow) GetHashrate() int64 {
+ return pow.HashRate
+}
+
+func (pow *EasyPow) Turbo(on bool) {
+ pow.turbo = on
+}
+
+func (pow *EasyPow) Search(block pow.Block, stop <-chan struct{}) []byte {
+ r := rand.New(rand.NewSource(time.Now().UnixNano()))
+ hash := block.HashNoNonce()
+ diff := block.Diff()
+ i := int64(0)
+ start := time.Now().UnixNano()
+ t := time.Now()
+
+ for {
+ select {
+ case <-stop:
+ powlogger.Infoln("Breaking from mining")
+ pow.HashRate = 0
+ return nil
+ default:
+ i++
+
+ if time.Since(t) > (1 * time.Second) {
+ elapsed := time.Now().UnixNano() - start
+ hashes := ((float64(1e9) / float64(elapsed)) * float64(i)) / 1000
+ pow.HashRate = int64(hashes)
+ powlogger.Infoln("Hashing @", pow.HashRate, "khash")
+
+ t = time.Now()
+ }
+
+ sha := crypto.Sha3(big.NewInt(r.Int63()).Bytes())
+ if pow.verify(hash, diff, sha) {
+ return sha
+ }
+ }
+
+ if !pow.turbo {
+ time.Sleep(20 * time.Microsecond)
+ }
+ }
+
+ return nil
+}
+
+func (pow *EasyPow) verify(hash []byte, diff *big.Int, nonce []byte) bool {
+ sha := sha3.NewKeccak256()
+
+ d := append(hash, nonce...)
+ sha.Write(d)
+
+ verification := new(big.Int).Div(ethutil.BigPow(2, 256), diff)
+ res := ethutil.U256(ethutil.BigD(sha.Sum(nil)))
+
+ return res.Cmp(verification) <= 0
+}
+
+func (pow *EasyPow) Verify(block pow.Block) bool {
+ return pow.verify(block.HashNoNonce(), block.Diff(), block.N())
+}
diff --git a/pow/pow.go b/pow/pow.go
new file mode 100644
index 000000000..c94ee40ba
--- /dev/null
+++ b/pow/pow.go
@@ -0,0 +1,8 @@
+package pow
+
+type PoW interface {
+ Search(block Block, stop <-chan struct{}) []byte
+ Verify(block Block) bool
+ GetHashrate() int64
+ Turbo(bool)
+}
diff --git a/rlp/decode.go b/rlp/decode.go
index 7d95af02b..712d9fcf1 100644
--- a/rlp/decode.go
+++ b/rlp/decode.go
@@ -54,7 +54,7 @@ type Decoder interface {
// To decode into a Go string, the input must be an RLP string. The
// bytes are taken as-is and will not necessarily be valid UTF-8.
//
-// To decode into an integer type, the input must also be an RLP
+// To decode into an unsigned integer type, the input must also be an RLP
// string. The bytes are interpreted as a big endian representation of
// the integer. If the RLP string is larger than the bit size of the
// type, Decode will return an error. Decode also supports *big.Int.
@@ -66,8 +66,9 @@ type Decoder interface {
// []interface{}, for RLP lists
// []byte, for RLP strings
//
-// Non-empty interface types are not supported, nor are bool, float32,
-// float64, maps, channel types and functions.
+// Non-empty interface types are not supported, nor are booleans,
+// signed integers, floating point numbers, maps, channels and
+// functions.
func Decode(r io.Reader, val interface{}) error {
return NewStream(r).Decode(val)
}
@@ -81,37 +82,58 @@ func (err decodeError) Error() string {
return fmt.Sprintf("rlp: %s for %v", err.msg, err.typ)
}
-func makeNumDecoder(typ reflect.Type) decoder {
- kind := typ.Kind()
- switch {
- case kind <= reflect.Int64:
- return decodeInt
- case kind <= reflect.Uint64:
- return decodeUint
- default:
- panic("fallthrough")
+func wrapStreamError(err error, typ reflect.Type) error {
+ switch err {
+ case ErrExpectedList:
+ return decodeError{"expected input list", typ}
+ case ErrExpectedString:
+ return decodeError{"expected input string or byte", typ}
+ case errUintOverflow:
+ return decodeError{"input string too long", typ}
+ case errNotAtEOL:
+ return decodeError{"input list has too many elements", typ}
}
+ return err
}
-func decodeInt(s *Stream, val reflect.Value) error {
- typ := val.Type()
- num, err := s.uint(typ.Bits())
- if err == errUintOverflow {
- return decodeError{"input string too long", typ}
- } else if err != nil {
- return err
+var (
+ decoderInterface = reflect.TypeOf(new(Decoder)).Elem()
+ bigInt = reflect.TypeOf(big.Int{})
+)
+
+func makeDecoder(typ reflect.Type) (dec decoder, err error) {
+ kind := typ.Kind()
+ switch {
+ case typ.Implements(decoderInterface):
+ return decodeDecoder, nil
+ case kind != reflect.Ptr && reflect.PtrTo(typ).Implements(decoderInterface):
+ return decodeDecoderNoPtr, nil
+ case typ.AssignableTo(reflect.PtrTo(bigInt)):
+ return decodeBigInt, nil
+ case typ.AssignableTo(bigInt):
+ return decodeBigIntNoPtr, nil
+ case isUint(kind):
+ return decodeUint, nil
+ case kind == reflect.String:
+ return decodeString, nil
+ case kind == reflect.Slice || kind == reflect.Array:
+ return makeListDecoder(typ)
+ case kind == reflect.Struct:
+ return makeStructDecoder(typ)
+ case kind == reflect.Ptr:
+ return makePtrDecoder(typ)
+ case kind == reflect.Interface && typ.NumMethod() == 0:
+ return decodeInterface, nil
+ default:
+ return nil, fmt.Errorf("rlp: type %v is not RLP-serializable", typ)
}
- val.SetInt(int64(num))
- return nil
}
func decodeUint(s *Stream, val reflect.Value) error {
typ := val.Type()
num, err := s.uint(typ.Bits())
- if err == errUintOverflow {
- return decodeError{"input string too big", typ}
- } else if err != nil {
- return err
+ if err != nil {
+ return wrapStreamError(err, val.Type())
}
val.SetUint(num)
return nil
@@ -120,7 +142,7 @@ func decodeUint(s *Stream, val reflect.Value) error {
func decodeString(s *Stream, val reflect.Value) error {
b, err := s.Bytes()
if err != nil {
- return err
+ return wrapStreamError(err, val.Type())
}
val.SetString(string(b))
return nil
@@ -133,7 +155,7 @@ func decodeBigIntNoPtr(s *Stream, val reflect.Value) error {
func decodeBigInt(s *Stream, val reflect.Value) error {
b, err := s.Bytes()
if err != nil {
- return err
+ return wrapStreamError(err, val.Type())
}
i := val.Interface().(*big.Int)
if i == nil {
@@ -144,8 +166,6 @@ func decodeBigInt(s *Stream, val reflect.Value) error {
return nil
}
-const maxInt = int(^uint(0) >> 1)
-
func makeListDecoder(typ reflect.Type) (decoder, error) {
etype := typ.Elem()
if etype.Kind() == reflect.Uint8 && !reflect.PtrTo(etype).Implements(decoderInterface) {
@@ -159,55 +179,41 @@ func makeListDecoder(typ reflect.Type) (decoder, error) {
if err != nil {
return nil, err
}
- var maxLen = maxInt
+
if typ.Kind() == reflect.Array {
- maxLen = typ.Len()
- }
- dec := func(s *Stream, val reflect.Value) error {
- return decodeList(s, val, etypeinfo.decoder, maxLen)
+ return func(s *Stream, val reflect.Value) error {
+ return decodeListArray(s, val, etypeinfo.decoder)
+ }, nil
}
- return dec, nil
+ return func(s *Stream, val reflect.Value) error {
+ return decodeListSlice(s, val, etypeinfo.decoder)
+ }, nil
}
-// decodeList decodes RLP list elements into slices and arrays.
-//
-// The approach here is stolen from package json, although we differ
-// in the semantics for arrays. package json discards remaining
-// elements that would not fit into the array. We generate an error in
-// this case because we'd be losing information.
-func decodeList(s *Stream, val reflect.Value, elemdec decoder, maxelem int) error {
+func decodeListSlice(s *Stream, val reflect.Value, elemdec decoder) error {
size, err := s.List()
if err != nil {
- return err
+ return wrapStreamError(err, val.Type())
}
if size == 0 {
- if val.Kind() == reflect.Slice {
- val.Set(reflect.MakeSlice(val.Type(), 0, 0))
- } else {
- zero(val, 0)
- }
+ val.Set(reflect.MakeSlice(val.Type(), 0, 0))
return s.ListEnd()
}
i := 0
- for {
- if i > maxelem {
- return decodeError{"input list has too many elements", val.Type()}
- }
- if val.Kind() == reflect.Slice {
- // grow slice if necessary
- if i >= val.Cap() {
- newcap := val.Cap() + val.Cap()/2
- if newcap < 4 {
- newcap = 4
- }
- newv := reflect.MakeSlice(val.Type(), val.Len(), newcap)
- reflect.Copy(newv, val)
- val.Set(newv)
- }
- if i >= val.Len() {
- val.SetLen(i + 1)
+ for ; ; i++ {
+ // grow slice if necessary
+ if i >= val.Cap() {
+ newcap := val.Cap() + val.Cap()/2
+ if newcap < 4 {
+ newcap = 4
}
+ newv := reflect.MakeSlice(val.Type(), val.Len(), newcap)
+ reflect.Copy(newv, val)
+ val.Set(newv)
+ }
+ if i >= val.Len() {
+ val.SetLen(i + 1)
}
// decode into element
if err := elemdec(s, val.Index(i)); err == EOL {
@@ -215,26 +221,49 @@ func decodeList(s *Stream, val reflect.Value, elemdec decoder, maxelem int) erro
} else if err != nil {
return err
}
- i++
}
if i < val.Len() {
- if val.Kind() == reflect.Array {
- // zero the rest of the array.
- zero(val, i)
- } else {
- val.SetLen(i)
- }
+ val.SetLen(i)
}
return s.ListEnd()
}
+func decodeListArray(s *Stream, val reflect.Value, elemdec decoder) error {
+ size, err := s.List()
+ if err != nil {
+ return err
+ }
+ if size == 0 {
+ zero(val, 0)
+ return s.ListEnd()
+ }
+
+ // The approach here is stolen from package json, although we differ
+ // in the semantics for arrays. package json discards remaining
+ // elements that would not fit into the array. We generate an error in
+ // this case because we'd be losing information.
+ vlen := val.Len()
+ i := 0
+ for ; i < vlen; i++ {
+ if err := elemdec(s, val.Index(i)); err == EOL {
+ break
+ } else if err != nil {
+ return err
+ }
+ }
+ if i < vlen {
+ zero(val, i)
+ }
+ return wrapStreamError(s.ListEnd(), val.Type())
+}
+
func decodeByteSlice(s *Stream, val reflect.Value) error {
kind, _, err := s.Kind()
if err != nil {
return err
}
if kind == List {
- return decodeList(s, val, decodeUint, maxInt)
+ return decodeListSlice(s, val, decodeUint)
}
b, err := s.Bytes()
if err == nil {
@@ -251,14 +280,14 @@ func decodeByteArray(s *Stream, val reflect.Value) error {
switch kind {
case Byte:
if val.Len() == 0 {
- return decodeError{"input string too big", val.Type()}
+ return decodeError{"input string too long", val.Type()}
}
bv, _ := s.Uint()
val.Index(0).SetUint(bv)
zero(val, 1)
case String:
if uint64(val.Len()) < size {
- return decodeError{"input string too big", val.Type()}
+ return decodeError{"input string too long", val.Type()}
}
slice := val.Slice(0, int(size)).Interface().([]byte)
if err := s.readFull(slice); err != nil {
@@ -266,14 +295,15 @@ func decodeByteArray(s *Stream, val reflect.Value) error {
}
zero(val, int(size))
case List:
- return decodeList(s, val, decodeUint, val.Len())
+ return decodeListArray(s, val, decodeUint)
}
return nil
}
func zero(val reflect.Value, start int) {
z := reflect.Zero(val.Type().Elem())
- for i := start; i < val.Len(); i++ {
+ end := val.Len()
+ for i := start; i < end; i++ {
val.Index(i).Set(z)
}
}
@@ -296,7 +326,7 @@ func makeStructDecoder(typ reflect.Type) (decoder, error) {
}
dec := func(s *Stream, val reflect.Value) (err error) {
if _, err = s.List(); err != nil {
- return err
+ return wrapStreamError(err, typ)
}
for _, f := range fields {
err = f.info.decoder(s, val.Field(f.index))
@@ -307,10 +337,7 @@ func makeStructDecoder(typ reflect.Type) (decoder, error) {
return err
}
}
- if err = s.ListEnd(); err == errNotAtEOL {
- err = decodeError{"input list has too many elements", typ}
- }
- return err
+ return wrapStreamError(s.ListEnd(), typ)
}
return dec, nil
}
@@ -348,7 +375,7 @@ func decodeInterface(s *Stream, val reflect.Value) error {
}
if kind == List {
slice := reflect.New(ifsliceType).Elem()
- if err := decodeList(s, slice, decodeInterface, maxInt); err != nil {
+ if err := decodeListSlice(s, slice, decodeInterface); err != nil {
return err
}
val.Set(slice)
diff --git a/rlp/decode_test.go b/rlp/decode_test.go
index 3b60234dd..7a1743937 100644
--- a/rlp/decode_test.go
+++ b/rlp/decode_test.go
@@ -171,7 +171,7 @@ func TestDecodeErrors(t *testing.T) {
t.Errorf("Decode(r, new(chan bool)) error mismatch, got %q, want %q", err, expectErr)
}
- if err := Decode(r, new(int)); err != io.EOF {
+ if err := Decode(r, new(uint)); err != io.EOF {
t.Errorf("Decode(r, new(int)) error mismatch, got %q, want %q", err, io.EOF)
}
}
@@ -184,12 +184,12 @@ type decodeTest struct {
}
type simplestruct struct {
- A int
+ A uint
B string
}
type recstruct struct {
- I int
+ I uint
Child *recstruct
}
@@ -202,7 +202,7 @@ var (
var (
sharedByteArray [5]byte
- sharedPtr = new(*int)
+ sharedPtr = new(*uint)
)
var decodeTests = []decodeTest{
@@ -213,17 +213,17 @@ var decodeTests = []decodeTest{
{input: "820505", ptr: new(uint32), value: uint32(0x0505)},
{input: "83050505", ptr: new(uint32), value: uint32(0x050505)},
{input: "8405050505", ptr: new(uint32), value: uint32(0x05050505)},
- {input: "850505050505", ptr: new(uint32), error: "rlp: input string too big for uint32"},
- {input: "C0", ptr: new(uint32), error: ErrExpectedString.Error()},
+ {input: "850505050505", ptr: new(uint32), error: "rlp: input string too long for uint32"},
+ {input: "C0", ptr: new(uint32), error: "rlp: expected input string or byte for uint32"},
// slices
- {input: "C0", ptr: new([]int), value: []int{}},
- {input: "C80102030405060708", ptr: new([]int), value: []int{1, 2, 3, 4, 5, 6, 7, 8}},
+ {input: "C0", ptr: new([]uint), value: []uint{}},
+ {input: "C80102030405060708", ptr: new([]uint), value: []uint{1, 2, 3, 4, 5, 6, 7, 8}},
// arrays
- {input: "C0", ptr: new([5]int), value: [5]int{}},
- {input: "C50102030405", ptr: new([5]int), value: [5]int{1, 2, 3, 4, 5}},
- {input: "C6010203040506", ptr: new([5]int), error: "rlp: input list has too many elements for [5]int"},
+ {input: "C0", ptr: new([5]uint), value: [5]uint{}},
+ {input: "C50102030405", ptr: new([5]uint), value: [5]uint{1, 2, 3, 4, 5}},
+ {input: "C6010203040506", ptr: new([5]uint), error: "rlp: input list has too many elements for [5]uint"},
// byte slices
{input: "01", ptr: new([]byte), value: []byte{1}},
@@ -231,7 +231,7 @@ var decodeTests = []decodeTest{
{input: "8D6162636465666768696A6B6C6D", ptr: new([]byte), value: []byte("abcdefghijklm")},
{input: "C0", ptr: new([]byte), value: []byte{}},
{input: "C3010203", ptr: new([]byte), value: []byte{1, 2, 3}},
- {input: "C3820102", ptr: new([]byte), error: "rlp: input string too big for uint8"},
+ {input: "C3820102", ptr: new([]byte), error: "rlp: input string too long for uint8"},
// byte arrays
{input: "01", ptr: new([5]byte), value: [5]byte{1}},
@@ -239,8 +239,8 @@ var decodeTests = []decodeTest{
{input: "850102030405", ptr: new([5]byte), value: [5]byte{1, 2, 3, 4, 5}},
{input: "C0", ptr: new([5]byte), value: [5]byte{}},
{input: "C3010203", ptr: new([5]byte), value: [5]byte{1, 2, 3, 0, 0}},
- {input: "C3820102", ptr: new([5]byte), error: "rlp: input string too big for uint8"},
- {input: "86010203040506", ptr: new([5]byte), error: "rlp: input string too big for [5]uint8"},
+ {input: "C3820102", ptr: new([5]byte), error: "rlp: input string too long for uint8"},
+ {input: "86010203040506", ptr: new([5]byte), error: "rlp: input string too long for [5]uint8"},
{input: "850101", ptr: new([5]byte), error: io.ErrUnexpectedEOF.Error()},
// byte array reuse (should be zeroed)
@@ -254,19 +254,19 @@ var decodeTests = []decodeTest{
// zero sized byte arrays
{input: "80", ptr: new([0]byte), value: [0]byte{}},
{input: "C0", ptr: new([0]byte), value: [0]byte{}},
- {input: "01", ptr: new([0]byte), error: "rlp: input string too big for [0]uint8"},
- {input: "8101", ptr: new([0]byte), error: "rlp: input string too big for [0]uint8"},
+ {input: "01", ptr: new([0]byte), error: "rlp: input string too long for [0]uint8"},
+ {input: "8101", ptr: new([0]byte), error: "rlp: input string too long for [0]uint8"},
// strings
{input: "00", ptr: new(string), value: "\000"},
{input: "8D6162636465666768696A6B6C6D", ptr: new(string), value: "abcdefghijklm"},
- {input: "C0", ptr: new(string), error: ErrExpectedString.Error()},
+ {input: "C0", ptr: new(string), error: "rlp: expected input string or byte for string"},
// big ints
{input: "01", ptr: new(*big.Int), value: big.NewInt(1)},
{input: "89FFFFFFFFFFFFFFFFFF", ptr: new(*big.Int), value: veryBigInt},
{input: "10", ptr: new(big.Int), value: *big.NewInt(16)}, // non-pointer also works
- {input: "C0", ptr: new(*big.Int), error: ErrExpectedString.Error()},
+ {input: "C0", ptr: new(*big.Int), error: "rlp: expected input string or byte for *big.Int"},
// structs
{input: "C0", ptr: new(simplestruct), value: simplestruct{0, ""}},
@@ -280,17 +280,17 @@ var decodeTests = []decodeTest{
},
// pointers
- {input: "00", ptr: new(*int), value: (*int)(nil)},
- {input: "80", ptr: new(*int), value: (*int)(nil)},
- {input: "C0", ptr: new(*int), value: (*int)(nil)},
- {input: "07", ptr: new(*int), value: intp(7)},
- {input: "8108", ptr: new(*int), value: intp(8)},
- {input: "C109", ptr: new(*[]int), value: &[]int{9}},
+ {input: "00", ptr: new(*uint), value: (*uint)(nil)},
+ {input: "80", ptr: new(*uint), value: (*uint)(nil)},
+ {input: "C0", ptr: new(*uint), value: (*uint)(nil)},
+ {input: "07", ptr: new(*uint), value: uintp(7)},
+ {input: "8108", ptr: new(*uint), value: uintp(8)},
+ {input: "C109", ptr: new(*[]uint), value: &[]uint{9}},
{input: "C58403030303", ptr: new(*[][]byte), value: &[][]byte{{3, 3, 3, 3}}},
// pointer should be reset to nil
- {input: "05", ptr: sharedPtr, value: intp(5)},
- {input: "80", ptr: sharedPtr, value: (*int)(nil)},
+ {input: "05", ptr: sharedPtr, value: uintp(5)},
+ {input: "80", ptr: sharedPtr, value: (*uint)(nil)},
// interface{}
{input: "00", ptr: new(interface{}), value: []byte{0}},
@@ -301,7 +301,7 @@ var decodeTests = []decodeTest{
{input: "C50183040404", ptr: new(interface{}), value: []interface{}{[]byte{1}, []byte{4, 4, 4}}},
}
-func intp(i int) *int { return &i }
+func uintp(i uint) *uint { return &i }
func runTests(t *testing.T, decode func([]byte, interface{}) error) {
for i, test := range decodeTests {
@@ -434,8 +434,8 @@ func ExampleDecode() {
input, _ := hex.DecodeString("C90A1486666F6F626172")
type example struct {
- A, B int
- private int // private fields are ignored
+ A, B uint
+ private uint // private fields are ignored
String string
}
@@ -447,7 +447,7 @@ func ExampleDecode() {
fmt.Printf("Decoded value: %#v\n", s)
}
// Output:
- // Decoded value: rlp.example{A:10, B:20, private:0, String:"foobar"}
+ // Decoded value: rlp.example{A:0xa, B:0x14, private:0x0, String:"foobar"}
}
func ExampleStream() {
diff --git a/rlp/typecache.go b/rlp/typecache.go
index 75dbb43c2..52e68a3c5 100644
--- a/rlp/typecache.go
+++ b/rlp/typecache.go
@@ -1,8 +1,6 @@
package rlp
import (
- "fmt"
- "math/big"
"reflect"
"sync"
)
@@ -51,41 +49,14 @@ func cachedTypeInfo1(typ reflect.Type) (*typeinfo, error) {
return typeCache[typ], err
}
-var (
- decoderInterface = reflect.TypeOf(new(Decoder)).Elem()
- bigInt = reflect.TypeOf(big.Int{})
-)
-
func genTypeInfo(typ reflect.Type) (info *typeinfo, err error) {
info = new(typeinfo)
- kind := typ.Kind()
- switch {
- case typ.Implements(decoderInterface):
- info.decoder = decodeDecoder
- case kind != reflect.Ptr && reflect.PtrTo(typ).Implements(decoderInterface):
- info.decoder = decodeDecoderNoPtr
- case typ.AssignableTo(reflect.PtrTo(bigInt)):
- info.decoder = decodeBigInt
- case typ.AssignableTo(bigInt):
- info.decoder = decodeBigIntNoPtr
- case isInteger(kind):
- info.decoder = makeNumDecoder(typ)
- case kind == reflect.String:
- info.decoder = decodeString
- case kind == reflect.Slice || kind == reflect.Array:
- info.decoder, err = makeListDecoder(typ)
- case kind == reflect.Struct:
- info.decoder, err = makeStructDecoder(typ)
- case kind == reflect.Ptr:
- info.decoder, err = makePtrDecoder(typ)
- case kind == reflect.Interface && typ.NumMethod() == 0:
- info.decoder = decodeInterface
- default:
- err = fmt.Errorf("rlp: type %v is not RLP-serializable", typ)
+ if info.decoder, err = makeDecoder(typ); err != nil {
+ return nil, err
}
- return info, err
+ return info, nil
}
-func isInteger(k reflect.Kind) bool {
- return k >= reflect.Int && k <= reflect.Uintptr
+func isUint(k reflect.Kind) bool {
+ return k >= reflect.Uint && k <= reflect.Uintptr
}
diff --git a/state/state_test.go b/state/state_test.go
index 825d21fcc..28e4fc5da 100644
--- a/state/state_test.go
+++ b/state/state_test.go
@@ -9,7 +9,7 @@ import (
)
type StateSuite struct {
- state *State
+ state *StateDB
}
var _ = checker.Suite(&StateSuite{})
diff --git a/tests/files/StateTests/stExample.json b/tests/files/StateTests/stExample.json
index bab82e395..34bb4dd8e 100644
--- a/tests/files/StateTests/stExample.json
+++ b/tests/files/StateTests/stExample.json
@@ -8,8 +8,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
diff --git a/tests/files/StateTests/stLogTests.json b/tests/files/StateTests/stLogTests.json
new file mode 100644
index 000000000..888f6c5bb
--- /dev/null
+++ b/tests/files/StateTests/stLogTests.json
@@ -0,0 +1,3712 @@
+{
+ "log0_emptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x60006000a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "862",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899138",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log0_logMemStartTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log0_logMemsizeTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log0_logMemsizeZero" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "866",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899134",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log0_nonEmptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "898",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899102",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log0_nonEmptyMem_logMemSize1" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xaa",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260016000a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "867",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899133",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260016000a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log0_nonEmptyMem_logMemSize1_logMemStart31" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xdd",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526001601fa0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "867",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899133",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526001601fa0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_Caller" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000002880000000000000000000010000004000000000000000000000000000000000000000000000",
+ "data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
+ "topics" : [
+ "000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x60ff6000533360206000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "931",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899069",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60ff6000533360206000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_MaxTopic" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
+ "data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
+ "topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "931",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899069",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_emptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x600060006000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "895",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899105",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600060006000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_logMemStartTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_logMemsizeTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_logMemsizeZero" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "899",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899101",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_nonEmptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052600060206000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "931",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899069",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052600060206000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_nonEmptyMem_logMemSize1" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xaa",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060016000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "900",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899100",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060016000a1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log1_nonEmptyMem_logMemSize1_logMemStart31" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xdd",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001601fa1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "900",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899100",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006001601fa1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_Caller" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000002880000020000000000002010000004000000000080000000000000000000000000000000000",
+ "data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x60ff60005333600060206000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "964",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899036",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60ff60005333600060206000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_MaxTopic" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
+ "data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
+ "topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "964",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899036",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_emptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x6000600060006000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "928",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899072",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6000600060006000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_logMemStartTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_logMemsizeTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_logMemsizeZero" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060006001a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "932",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899068",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060006001a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_nonEmptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526000600060206000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "964",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899036",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000526000600060206000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_nonEmptyMem_logMemSize1" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xaa",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060016000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "933",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899067",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060016000a2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log2_nonEmptyMem_logMemSize1_logMemStart31" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xdd",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001601fa2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "933",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899067",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006001601fa2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_Caller" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000002880000020000000000002010000004000000000080000000000000000000000000000000000",
+ "data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "000000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d87"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x60ff600053336000600060206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "997",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899003",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60ff600053336000600060206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_MaxTopic" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
+ "data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
+ "topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "997",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899003",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_PC" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00003004000000000000800000000010000008000000000000000980000000000000000000000000000000000000000000001000000400000000000800000000",
+ "data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000007",
+ "0000000000000000000000000000000000000000000000000000000000000006",
+ "0000000000000000000000000000000000000000000000000000000000000005"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x60ff60005358585860206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "997",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899003",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60ff60005358585860206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_emptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x60006000600060006000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "961",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899039",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_logMemStartTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_logMemsizeTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_logMemsizeZero" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060006001a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "965",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899035",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060006001a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_nonEmptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260006000600060206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "997",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899003",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260006000600060206000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_nonEmptyMem_logMemSize1" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xaa",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060016000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "966",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899034",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060016000a3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log3_nonEmptyMem_logMemSize1_logMemStart31" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xdd",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060006001601fa3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "966",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899034",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000526000600060006001601fa3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_Caller" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "828",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899172",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_MaxTopic" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
+ "data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
+ "topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1030",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898970",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd6000527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60206000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_PC" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "828",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899172",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_emptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x600060006000600060006000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "994",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899006",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600060006000600060006000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_logMemStartTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_logMemsizeTooHigh" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1628",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898372",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_logMemsizeZero" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0x",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060006001a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "998",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899002",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060006001a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_nonEmptyMem" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052600060006000600060206000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1030",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898970",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600052600060006000600060206000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_nonEmptyMem_logMemSize1" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xaa",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060016000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "999",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899001",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd600052600060006000600060016000a4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "log4_nonEmptyMem_logMemSize1_logMemStart31" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
+ "data" : "0xdd",
+ "topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000099977",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01"
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060006001601fa4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "999",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899001",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006000600060006017730f572e5295c57f15886f9b263e2f6d2d6c7b5ec66103e8f1600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7faabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd60005260006000600060006001601fa4",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/files/StateTests/stPreCompiledContracts.json b/tests/files/StateTests/stPreCompiledContracts.json
index 22d66529a..0f1db1275 100644
--- a/tests/files/StateTests/stPreCompiledContracts.json
+++ b/tests/files/StateTests/stPreCompiledContracts.json
@@ -8,8 +8,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -79,8 +79,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -148,8 +148,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -216,8 +216,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -286,8 +286,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -348,7 +348,7 @@
"value" : "100000"
}
},
- "CallEcrecover1" : {
+ "CallEcrecover0_overlappingInputOutput" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -357,8 +357,79 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0000000000000000000000000000000000000001" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "20100000",
+ "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c45496060526020604060806000600060016103e8f160025560a060020a604051066000556000543214600155",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "0x01" : "0x01",
+ "0x02" : "0x01"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1976",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999898024",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
},
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "20000000",
+ "code" : "0x7f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c600052601c6020527f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f6040527feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c45496060526020604060806000600060016103e8f160025560a060020a604051066000556000543214600155",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "365224",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
+ "CallEcrecover1" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -426,8 +497,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -495,8 +566,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000001" : {
@@ -565,8 +636,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -634,8 +705,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -655,14 +726,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1232",
+ "balance" : "1182",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898768",
+ "balance" : "999999999999898818",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -704,8 +775,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -725,14 +796,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1236",
+ "balance" : "1286",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898764",
+ "balance" : "999999999999898714",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -774,8 +845,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -795,14 +866,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1236",
+ "balance" : "1286",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898764",
+ "balance" : "999999999999898714",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -844,8 +915,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -914,8 +985,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -983,8 +1054,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000003" : {
@@ -999,19 +1070,18 @@
"code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f42406000600060036101f4f1600255600051600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x953450193f7389363135b31dc0f371f22f3947db",
- "0x02" : "0x01"
+ "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "32484",
+ "balance" : "32684",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999867516",
+ "balance" : "999999999999867316",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1053,8 +1123,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1122,8 +1192,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1143,14 +1213,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1232",
+ "balance" : "1182",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898768",
+ "balance" : "999999999999898818",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1192,8 +1262,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1213,14 +1283,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1232",
+ "balance" : "1182",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898768",
+ "balance" : "999999999999898818",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1262,8 +1332,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1283,14 +1353,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1236",
+ "balance" : "1286",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898764",
+ "balance" : "999999999999898714",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1332,8 +1402,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1353,14 +1423,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1236",
+ "balance" : "1286",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898764",
+ "balance" : "999999999999898714",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1402,8 +1472,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1472,8 +1542,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1541,8 +1611,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0000000000000000000000000000000000000002" : {
@@ -1557,19 +1627,18 @@
"code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000620f42406000600060026101f4f1600255600051600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x739d5000bbe364e92a2fe28d62c17a6dfd4f32105420c30b97ec0180300a2dae",
- "0x02" : "0x01"
+ "0x" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "32484",
+ "balance" : "32684",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999867516",
+ "balance" : "999999999999867316",
"code" : "0x",
"nonce" : "1",
"storage" : {
diff --git a/tests/files/StateTests/stSpecialTest.json b/tests/files/StateTests/stSpecialTest.json
index 5009c701a..91b51fdb0 100644
--- a/tests/files/StateTests/stSpecialTest.json
+++ b/tests/files/StateTests/stSpecialTest.json
@@ -8,8 +8,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
diff --git a/tests/files/StateTests/stSystemOperationsTest.json b/tests/files/StateTests/stSystemOperationsTest.json
index 8c0e8dde4..8a7e0e6c3 100644
--- a/tests/files/StateTests/stSystemOperationsTest.json
+++ b/tests/files/StateTests/stSystemOperationsTest.json
@@ -8,8 +8,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -85,8 +85,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -162,8 +162,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -239,8 +239,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -316,8 +316,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
@@ -385,8 +385,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -461,8 +461,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -538,8 +538,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -601,8 +601,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -664,8 +664,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -718,7 +718,7 @@
"value" : "100000"
}
},
- "CallToNameRegistrator0" : {
+ "CallRecursiveBombLog" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -727,8 +727,3438 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
+ "logs" : [
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "20099977",
+ "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "76859",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "945304eb96065b2a98b57a48a06ae28d285a71b5" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a0600160005401600055600060006000600060003060e05a03f1600155",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0xea",
+ "0x01" : "0x01"
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999823141",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "20000000",
+ "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "945304eb96065b2a98b57a48a06ae28d285a71b5" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a0600160005401600055600060006000600060003060e05a03f1600155",
+ "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"
+ }
+ },
+ "CallRecursiveBombLog2" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001869f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001842d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000018283",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000180d9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017f2f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017d85",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017bdb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017a31",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017887",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000176dd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017533",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017389",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000171df",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000017035",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000016e8b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000016ce1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000016b37",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001698d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000167e3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000016639",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001648f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000162e5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001613b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015f91",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015de7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015c3d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015a93",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000158e9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001573f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015595",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000153eb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015241",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000015097",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000014eed",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000014d43",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000014b99",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000149ef",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000014845",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001469b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000144f1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000014347",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001419d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000013ff3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000013e49",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000013c9f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000013af5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001394b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000137a1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000135f7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001344d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000132a3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000130f9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000012f4f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000012da5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000012bfb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000012a51",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000128a7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000126fd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000012553",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000123a9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000121ff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000012055",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000011eab",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000011d01",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000011b57",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000119ad",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000011803",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000011659",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000114af",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000011305",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001115b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000010fb1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000010e07",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000010c5d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000010ab3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000010909",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001075f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000105b5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000001040b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000010261",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000100b7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000ff0d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000fd63",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000fbb9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000fa0f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000f865",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000f6bb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000f511",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000f367",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000f1bd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000f013",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000ee69",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000ecbf",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000eb15",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000e96b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000e7c1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000e617",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000e46d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000e2c3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000e119",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000df6f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000ddc5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000dc1b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000da71",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000d8c7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000d71d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000d573",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000d3c9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000d21f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000d075",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000cecb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000cd21",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000cb77",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000c9cd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000c823",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000c679",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000c4cf",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000c325",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000c17b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000bfd1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000be27",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000bc7d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000bad3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000b929",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000b77f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000b5d5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000b42b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000b281",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000b0d7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000af2d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000ad83",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000abd9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000aa2f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000a885",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000a6db",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000a531",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000a387",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000a1dd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000a033",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000009e89",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000009cdf",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000009b35",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000998b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000097e1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000009637",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000948d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000092e3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000009139",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000008f8f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000008de5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000008c3b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000008a91",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000088e7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000873d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000008593",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000083e9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000823f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000008095",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000007eeb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000007d41",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000007b97",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000079ed",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000007843",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000007699",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000074ef",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000007345",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000719b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000006ff1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000006e47",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000006c9d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000006af3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000006949",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000679f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000065f5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000644b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000062a1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000060f7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000005f4d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000005da3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000005bf9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000005a4f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000058a5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000056fb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000005551",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000053a7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000051fd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000005053",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004ea9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004cff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004b55",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000049ab",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004801",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004657",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000044ad",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004303",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000004159",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000003faf",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000003e05",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000003c5b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000003ab1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000003907",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000375d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000035b3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000003409",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000325f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000030b5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002f0b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002d61",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002bb7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002a0d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002863",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000026b9",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000250f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002365",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000021bb",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000002011",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000001e67",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000001cbd",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000001b13",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000001969",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000017bf",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000001615",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000146b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000012c1",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000001117",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000000f6d",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000000dc3",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000000c19",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000000a6f",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000008c5",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000071b",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x0000000000000000000000000000000000000000000000000000000000000571",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x00000000000000000000000000000000000000000000000000000000000003c7",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "945304eb96065b2a98b57a48a06ae28d285a71b5",
+ "bloom" : "00000000000000040000000000010000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0x000000000000000000000000000000000000000000000000000000000000021d",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "20099977",
+ "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "76859",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "945304eb96065b2a98b57a48a06ae28d285a71b5" : {
+ "balance" : "1000000000000000023",
+ "code" : "0x5a60005260206000a0600160005401600055600060006000600060003060e05a03f1600155",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0xea",
+ "0x01" : "0x01"
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999823141",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "20000000",
+ "code" : "0x6000600060006000601773945304eb96065b2a98b57a48a06ae28d285a71b5620186a0f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "945304eb96065b2a98b57a48a06ae28d285a71b5" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a60005260206000a0600160005401600055600060006000600060003060e05a03f1600155",
+ "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"
+ }
+ },
+ "CallToNameRegistrator0" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -804,8 +4234,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -881,8 +4311,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -957,8 +4387,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1032,8 +4462,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1107,8 +4537,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1182,8 +4612,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1257,8 +4687,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1278,7 +4708,7 @@
},
"945304eb96065b2a98b57a48a06ae28d285a71b5" : {
"balance" : "46",
- "code" : "0x6001600155603760005360026000f2",
+ "code" : "0x6001600155603760005360026000f3",
"nonce" : "0",
"storage" : {
"0x01" : "0x01"
@@ -1302,7 +4732,7 @@
},
"945304eb96065b2a98b57a48a06ae28d285a71b5" : {
"balance" : "23",
- "code" : "0x6001600155603760005360026000f2",
+ "code" : "0x6001600155603760005360026000f3",
"nonce" : "0",
"storage" : {
}
@@ -1334,8 +4764,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1409,8 +4839,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1471,13 +4901,13 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000100000",
- "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f3600055",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055",
"nonce" : "0",
"storage" : {
"0x" : "0x01",
@@ -1509,7 +4939,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f3600055",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055",
"nonce" : "0",
"storage" : {
}
@@ -1548,13 +4978,13 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000100000",
- "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526002600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f3600055",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526002600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f2600055",
"nonce" : "0",
"storage" : {
"0x" : "0x01",
@@ -1570,7 +5000,7 @@
},
"945304eb96065b2a98b57a48a06ae28d285a71b5" : {
"balance" : "23",
- "code" : "0x6001600155603760005360026000f2",
+ "code" : "0x6001600155603760005360026000f3",
"nonce" : "0",
"storage" : {
}
@@ -1586,14 +5016,14 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526002600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f3600055",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526002600060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f2600055",
"nonce" : "0",
"storage" : {
}
},
"945304eb96065b2a98b57a48a06ae28d285a71b5" : {
"balance" : "23",
- "code" : "0x6001600155603760005360026000f2",
+ "code" : "0x6001600155603760005360026000f3",
"nonce" : "0",
"storage" : {
}
@@ -1625,8 +5055,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
@@ -1701,27 +5131,27 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000099977",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052601c60046017f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052601c60046017f0600055",
"nonce" : "1",
"storage" : {
"0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "917",
+ "balance" : "997",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899083",
+ "balance" : "999999999999899003",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1738,7 +5168,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052601c60046017f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052601c60046017f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1770,13 +5200,13 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000100000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052601c650fffffffffff6017f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052601c650fffffffffff6017f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1799,7 +5229,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052601c650fffffffffff6017f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052601c650fffffffffff6017f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1831,13 +5261,13 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000100000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052650fffffffffff60046017f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052650fffffffffff60046017f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1860,7 +5290,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052650fffffffffff60046017f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052650fffffffffff60046017f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1892,13 +5322,13 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052601c60046103e8f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052601c60046103e8f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1914,7 +5344,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "1000000000000000000",
- "code" : "0x7b601080600c6000396000f20060003554156009570060203560003555600052601c60046103e8f0600055",
+ "code" : "0x7b601080600c6000396000f30060003554156009570060203560003555600052601c60046103e8f0600055",
"nonce" : "0",
"storage" : {
}
@@ -1946,26 +5376,26 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x37",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "100023",
- "code" : "0x603760005360016000f2",
+ "code" : "0x603760005360016000f3",
"nonce" : "0",
"storage" : {
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "507",
+ "balance" : "512",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899493",
+ "balance" : "999999999999899488",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -1975,7 +5405,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "23",
- "code" : "0x603760005360016000f2",
+ "code" : "0x603760005360016000f3",
"nonce" : "0",
"storage" : {
}
@@ -2007,26 +5437,26 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x3700",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "100023",
- "code" : "0x603760005360026000f2",
+ "code" : "0x603760005360026000f3",
"nonce" : "0",
"storage" : {
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "507",
+ "balance" : "517",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899493",
+ "balance" : "999999999999899483",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -2036,7 +5466,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "23",
- "code" : "0x603760005360026000f2",
+ "code" : "0x603760005360026000f3",
"nonce" : "0",
"storage" : {
}
@@ -2068,26 +5498,26 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x370000000000000000000000000000000000000000000000000000000000000000",
"post" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "100023",
- "code" : "0x603760005360216000f2",
+ "code" : "0x603760005360216000f3",
"nonce" : "0",
"storage" : {
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "508",
+ "balance" : "673",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899492",
+ "balance" : "999999999999899327",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -2097,7 +5527,7 @@
"pre" : {
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
"balance" : "23",
- "code" : "0x603760005360216000f2",
+ "code" : "0x603760005360216000f3",
"nonce" : "0",
"storage" : {
}
@@ -2129,8 +5559,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
@@ -2183,8 +5613,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
@@ -2237,8 +5667,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
@@ -2298,8 +5728,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
@@ -2352,8 +5782,8 @@
"currentTimestamp" : 1,
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
},
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
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 2ba56f4bc..2cc165f5d 100644
--- a/tests/files/VMTests/vmArithmeticTest.json
+++ b/tests/files/VMTests/vmArithmeticTest.json
@@ -21,8 +21,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -111,8 +111,8 @@
"value" : "1000000000000000000"
},
"gas" : "10000",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -155,8 +155,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -199,8 +199,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -243,8 +243,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -288,8 +288,8 @@
"value" : "1000000000000000000"
},
"gas" : "9691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -333,8 +333,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -378,8 +378,8 @@
"value" : "1000000000000000000"
},
"gas" : "9887",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -422,8 +422,8 @@
"value" : "1000000000000000000"
},
"gas" : "9687",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -467,8 +467,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -512,8 +512,8 @@
"value" : "1000000000000000000"
},
"gas" : "9891",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -556,8 +556,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -601,8 +601,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -645,8 +645,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -689,8 +689,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -734,8 +734,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -778,8 +778,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -823,8 +823,8 @@
"value" : "1000000000000000000"
},
"gas" : "9664",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -868,8 +868,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -913,8 +913,8 @@
"value" : "1000000000000000000"
},
"gas" : "9892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -957,8 +957,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1002,8 +1002,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1047,8 +1047,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1092,8 +1092,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1136,8 +1136,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1181,8 +1181,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1226,8 +1226,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1270,8 +1270,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1314,8 +1314,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1359,8 +1359,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1404,8 +1404,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1449,8 +1449,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1493,8 +1493,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1538,8 +1538,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1583,8 +1583,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1627,8 +1627,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1672,8 +1672,8 @@
"value" : "1000000000000000000"
},
"gas" : "9895",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1716,8 +1716,8 @@
"value" : "1000000000000000000"
},
"gas" : "9891",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1760,8 +1760,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1805,8 +1805,8 @@
"value" : "1000000000000000000"
},
"gas" : "9887",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1849,8 +1849,8 @@
"value" : "1000000000000000000"
},
"gas" : "9687",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1894,8 +1894,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1939,8 +1939,8 @@
"value" : "1000000000000000000"
},
"gas" : "9891",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1983,8 +1983,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2028,8 +2028,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2073,8 +2073,8 @@
"value" : "1000000000000000000"
},
"gas" : "9892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2117,8 +2117,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2162,8 +2162,8 @@
"value" : "1000000000000000000"
},
"gas" : "9892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2206,8 +2206,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2250,8 +2250,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2295,8 +2295,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2339,8 +2339,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2384,8 +2384,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2429,8 +2429,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2474,8 +2474,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2519,8 +2519,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2563,8 +2563,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2608,8 +2608,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2653,8 +2653,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2698,8 +2698,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2743,8 +2743,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2788,8 +2788,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2833,8 +2833,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2878,8 +2878,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2923,8 +2923,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2967,8 +2967,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3011,8 +3011,8 @@
"value" : "1000000000000000000"
},
"gas" : "10000",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3055,8 +3055,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3100,8 +3100,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3145,8 +3145,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3190,8 +3190,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3235,8 +3235,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmBitwiseLogicOperationTest.json b/tests/files/VMTests/vmBitwiseLogicOperationTest.json
index 2dd7fec2c..f72711995 100644
--- a/tests/files/VMTests/vmBitwiseLogicOperationTest.json
+++ b/tests/files/VMTests/vmBitwiseLogicOperationTest.json
@@ -21,8 +21,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -110,8 +110,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -155,8 +155,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -200,8 +200,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -245,8 +245,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -290,8 +290,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -335,8 +335,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -380,8 +380,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -424,8 +424,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -468,8 +468,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -513,8 +513,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -558,8 +558,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -603,8 +603,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -648,8 +648,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -693,8 +693,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -738,8 +738,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -782,8 +782,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -826,8 +826,8 @@
"value" : "1000000000000000000"
},
"gas" : "9892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -870,8 +870,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -915,8 +915,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -960,8 +960,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1005,8 +1005,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1049,8 +1049,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1094,8 +1094,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1138,8 +1138,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1183,8 +1183,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1228,8 +1228,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1273,8 +1273,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1317,8 +1317,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1362,8 +1362,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1406,8 +1406,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1451,8 +1451,8 @@
"value" : "1000000000000000000"
},
"gas" : "9697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1496,8 +1496,8 @@
"value" : "1000000000000000000"
},
"gas" : "9897",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1540,8 +1540,8 @@
"value" : "1000000000000000000"
},
"gas" : "9897",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1584,8 +1584,8 @@
"value" : "1000000000000000000"
},
"gas" : "9895",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1628,8 +1628,8 @@
"value" : "1000000000000000000"
},
"gas" : "9895",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1672,8 +1672,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1717,8 +1717,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1762,8 +1762,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1807,8 +1807,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1852,8 +1852,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1897,8 +1897,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1942,8 +1942,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1987,8 +1987,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2031,8 +2031,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2076,8 +2076,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2120,8 +2120,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2165,8 +2165,8 @@
"value" : "1000000000000000000"
},
"gas" : "9892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2209,8 +2209,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2254,8 +2254,8 @@
"value" : "1000000000000000000"
},
"gas" : "9894",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2298,8 +2298,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2343,8 +2343,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2387,8 +2387,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2432,8 +2432,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2476,8 +2476,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2521,8 +2521,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2566,8 +2566,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2611,8 +2611,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2656,8 +2656,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmBlockInfoTest.json b/tests/files/VMTests/vmBlockInfoTest.json
index 127c00abb..90fa77a3d 100644
--- a/tests/files/VMTests/vmBlockInfoTest.json
+++ b/tests/files/VMTests/vmBlockInfoTest.json
@@ -21,8 +21,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -111,8 +111,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -156,8 +156,8 @@
"value" : "1000000000000000000"
},
"gas" : "9898",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -200,8 +200,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -245,8 +245,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmEnvironmentalInfoTest.json b/tests/files/VMTests/vmEnvironmentalInfoTest.json
index b7d6ca7bb..37563707b 100644
--- a/tests/files/VMTests/vmEnvironmentalInfoTest.json
+++ b/tests/files/VMTests/vmEnvironmentalInfoTest.json
@@ -21,8 +21,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"cd1722f3947def4cf144679da39c4c32bdc35681" : {
@@ -111,8 +111,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999878",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -162,8 +162,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999678",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -207,8 +207,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999656",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -252,8 +252,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999656",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -304,8 +304,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -349,8 +349,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -394,8 +394,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -416,6 +416,94 @@
}
}
},
+ "calldatacopy_DataIndexTooHigh" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600037600051600055",
+ "data" : "0x01234567890abcdef01234567890abcdef",
+ "gas" : "100000000000",
+ "gasPrice" : "1000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "99999999877",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600037600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600037600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "calldatacopy_DataIndexTooHigh2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600037600051600055",
+ "data" : "0x01234567890abcdef01234567890abcdef",
+ "gas" : "100000000000",
+ "gasPrice" : "1000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "99999999891",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600037600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60097ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600037600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
"calldataload0" : {
"callcreates" : [
],
@@ -438,8 +526,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -483,8 +571,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -528,8 +616,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -551,6 +639,50 @@
}
}
},
+ "calldataloadSizeTooHigh" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa35600055",
+ "data" : "0x0123456789abcdef0000000000000000000000000000000000000000000000000024",
+ "gas" : "100000000000",
+ "gasPrice" : "1000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "99999999897",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa35600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa35600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
"calldatasize0" : {
"callcreates" : [
],
@@ -573,8 +705,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -618,8 +750,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -663,8 +795,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -708,8 +840,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -753,8 +885,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -798,8 +930,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -843,8 +975,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -866,6 +998,50 @@
}
}
},
+ "codecopy_DataIndexTooHigh" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600039600051600055",
+ "data" : "0x01234567890abcdef01234567890abcdef",
+ "gas" : "100000000000",
+ "gasPrice" : "1000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "99999999891",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600039600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600039600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
"codesize" : {
"callcreates" : [
],
@@ -888,8 +1064,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -933,8 +1109,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999689",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -970,6 +1146,50 @@
}
}
},
+ "extcodecopy_DataIndexTooHigh" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa6000303c600051600055",
+ "data" : "0x01234567890abcdef01234567890abcdef",
+ "gas" : "100000000000",
+ "gasPrice" : "1000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "99999999890",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa6000303c600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60087ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa6000303c600051600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
"extcodesize0" : {
"callcreates" : [
],
@@ -992,8 +1212,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1051,8 +1271,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1110,8 +1330,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1155,8 +1375,8 @@
"value" : "1000000000000000000"
},
"gas" : "99999999698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmIOandFlowOperationsTest.json b/tests/files/VMTests/vmIOandFlowOperationsTest.json
index 8542a7dba..120977086 100644
--- a/tests/files/VMTests/vmIOandFlowOperationsTest.json
+++ b/tests/files/VMTests/vmIOandFlowOperationsTest.json
@@ -21,8 +21,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "9688",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -111,8 +111,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -156,8 +156,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -230,8 +230,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -275,8 +275,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -320,8 +320,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -423,8 +423,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -468,8 +468,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -513,8 +513,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -558,8 +558,8 @@
"value" : "1000000000000000000"
},
"gas" : "9997",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -602,8 +602,8 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -646,8 +646,8 @@
"value" : "1000000000000000000"
},
"gas" : "9892",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -719,8 +719,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -764,8 +764,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -809,8 +809,8 @@
"value" : "1000000000000000000"
},
"gas" : "9690",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -854,8 +854,8 @@
"value" : "1000000000000000000"
},
"gas" : "9688",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -899,8 +899,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -944,8 +944,8 @@
"value" : "1000000000000000000"
},
"gas" : "9690",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -989,8 +989,8 @@
"value" : "1000000000000000000"
},
"gas" : "10000",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1033,8 +1033,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1078,8 +1078,8 @@
"value" : "1000000000000000000"
},
"gas" : "9690",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1123,8 +1123,8 @@
"value" : "1000000000000000000"
},
"gas" : "10000",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1167,8 +1167,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1212,8 +1212,8 @@
"value" : "1000000000000000000"
},
"gas" : "9898",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1256,8 +1256,8 @@
"value" : "1000000000000000000"
},
"gas" : "9596",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1301,8 +1301,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1375,8 +1375,8 @@
"value" : "1000000000000000000"
},
"gas" : "9074",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1422,8 +1422,8 @@
"value" : "1000000000000000000"
},
"gas" : "9274",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1468,8 +1468,8 @@
"value" : "1000000000000000000"
},
"gas" : "8450",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmLogTest.json b/tests/files/VMTests/vmLogTest.json
index 8a1b6e703..48e20ac63 100644
--- a/tests/files/VMTests/vmLogTest.json
+++ b/tests/files/VMTests/vmLogTest.json
@@ -21,14 +21,15 @@
"value" : "1000000000000000000"
},
"gas" : "9966",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
"data" : "0x",
"topics" : [
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -129,14 +130,15 @@
"value" : "1000000000000000000"
},
"gas" : "9962",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
"data" : "0x",
"topics" : [
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -179,14 +181,15 @@
"value" : "1000000000000000000"
},
"gas" : "9930",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
"data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"topics" : [
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -229,14 +232,15 @@
"value" : "1000000000000000000"
},
"gas" : "9961",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
"data" : "0xaa",
"topics" : [
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -279,14 +283,15 @@
"value" : "1000000000000000000"
},
"gas" : "9961",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
"data" : "0xdd",
"topics" : [
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -329,15 +334,16 @@
"value" : "1000000000000000000"
},
"gas" : "9897",
- "logs" : {
- "00000000000008000000808100000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000008000000808100000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
"data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
"topics" : [
"000000000000000000000000cd1722f3947def4cf144679da39c4c32bdc35681"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -380,15 +386,16 @@
"value" : "1000000000000000000"
},
"gas" : "9897",
- "logs" : {
- "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
"data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
"topics" : [
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -431,15 +438,16 @@
"value" : "1000000000000000000"
},
"gas" : "9933",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -540,15 +548,16 @@
"value" : "1000000000000000000"
},
"gas" : "9929",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -591,15 +600,16 @@
"value" : "1000000000000000000"
},
"gas" : "9897",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -642,15 +652,16 @@
"value" : "1000000000000000000"
},
"gas" : "9928",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xaa",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -693,15 +704,16 @@
"value" : "1000000000000000000"
},
"gas" : "9928",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xdd",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -744,16 +756,17 @@
"value" : "1000000000000000000"
},
"gas" : "9864",
- "logs" : {
- "00000000000008000000808100000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000008000000808100000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000",
"000000000000000000000000cd1722f3947def4cf144679da39c4c32bdc35681"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -796,15 +809,17 @@
"value" : "1000000000000000000"
},
"gas" : "9864",
- "logs" : {
- "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
"data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
"topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -847,15 +862,17 @@
"value" : "1000000000000000000"
},
"gas" : "9900",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -956,15 +973,17 @@
"value" : "1000000000000000000"
},
"gas" : "9896",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1007,15 +1026,17 @@
"value" : "1000000000000000000"
},
"gas" : "9864",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1058,15 +1079,17 @@
"value" : "1000000000000000000"
},
"gas" : "9895",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xaa",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1109,15 +1132,17 @@
"value" : "1000000000000000000"
},
"gas" : "9895",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xdd",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1160,16 +1185,18 @@
"value" : "1000000000000000000"
},
"gas" : "9831",
- "logs" : {
- "00000000000008000000808100000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000008000000808100000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
"topics" : [
"0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"000000000000000000000000cd1722f3947def4cf144679da39c4c32bdc35681"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1212,15 +1239,18 @@
"value" : "1000000000000000000"
},
"gas" : "9831",
- "logs" : {
- "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
"data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
"topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1263,17 +1293,18 @@
"value" : "1000000000000000000"
},
"gas" : "9831",
- "logs" : {
- "00003004000000000000800000000010000008000000000000000980000000000000000000000000000000000000000000001000000400000000000800000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00003004000000000000800000000010000008000000000000000980000000000000000000000000000000000000000000001000000400000000000800000000",
"data" : "0xff00000000000000000000000000000000000000000000000000000000000000",
"topics" : [
- "0000000000000000000000000000000000000000000000000000000000000005",
+ "0000000000000000000000000000000000000000000000000000000000000007",
"0000000000000000000000000000000000000000000000000000000000000006",
- "0000000000000000000000000000000000000000000000000000000000000007"
+ "0000000000000000000000000000000000000000000000000000000000000005"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1316,15 +1347,18 @@
"value" : "1000000000000000000"
},
"gas" : "9867",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1425,15 +1459,18 @@
"value" : "1000000000000000000"
},
"gas" : "9863",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1476,15 +1513,18 @@
"value" : "1000000000000000000"
},
"gas" : "9831",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1527,15 +1567,18 @@
"value" : "1000000000000000000"
},
"gas" : "9862",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xaa",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1578,15 +1621,18 @@
"value" : "1000000000000000000"
},
"gas" : "9862",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xdd",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1629,8 +1675,8 @@
"value" : "1000000000000000000"
},
"gas" : "10000",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1673,15 +1719,19 @@
"value" : "1000000000000000000"
},
"gas" : "9798",
- "logs" : {
- "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000200000800000000000000000000000000000000880000000000000000000000000000000000000000000000010000000000000000000000020",
"data" : "0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd",
"topics" : [
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1724,8 +1774,8 @@
"value" : "1000000000000000000"
},
"gas" : "10000",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1768,15 +1818,19 @@
"value" : "1000000000000000000"
},
"gas" : "9834",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1877,15 +1931,19 @@
"value" : "1000000000000000000"
},
"gas" : "9830",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0x",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1928,15 +1986,19 @@
"value" : "1000000000000000000"
},
"gas" : "9798",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1979,15 +2041,19 @@
"value" : "1000000000000000000"
},
"gas" : "9829",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xaa",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2030,15 +2096,19 @@
"value" : "1000000000000000000"
},
"gas" : "9829",
- "logs" : {
- "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000" : {
+ "logs" : [
+ {
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000020000000000002000000000000000000080000000000000000000000000000000000",
"data" : "0xdd",
"topics" : [
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
+ "0000000000000000000000000000000000000000000000000000000000000000",
"0000000000000000000000000000000000000000000000000000000000000000"
]
}
- },
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2058,5 +2128,63 @@
}
}
}
+ },
+ "log_2logs" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a060106002a0",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9880",
+ "logs" : [
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ },
+ {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "bloom" : "00000000000000000000800000000000000000000000000000000880000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data" : "0xffffffffffffffffffffffffffffffff",
+ "topics" : [
+ ]
+ }
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a060106002a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005260206000a060106002a0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
}
} \ No newline at end of file
diff --git a/tests/files/VMTests/vmPushDupSwapTest.json b/tests/files/VMTests/vmPushDupSwapTest.json
index e9f89e230..9c69aed80 100644
--- a/tests/files/VMTests/vmPushDupSwapTest.json
+++ b/tests/files/VMTests/vmPushDupSwapTest.json
@@ -21,8 +21,8 @@
"value" : "1000000000000000000"
},
"gas" : "9697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "9688",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -111,8 +111,8 @@
"value" : "1000000000000000000"
},
"gas" : "9687",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -156,8 +156,8 @@
"value" : "1000000000000000000"
},
"gas" : "9686",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -201,8 +201,8 @@
"value" : "1000000000000000000"
},
"gas" : "9685",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -246,8 +246,8 @@
"value" : "1000000000000000000"
},
"gas" : "9684",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -291,8 +291,8 @@
"value" : "1000000000000000000"
},
"gas" : "9683",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -336,8 +336,8 @@
"value" : "1000000000000000000"
},
"gas" : "9682",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -381,8 +381,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -455,8 +455,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -500,8 +500,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -545,8 +545,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -590,8 +590,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -635,8 +635,8 @@
"value" : "1000000000000000000"
},
"gas" : "9691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -680,8 +680,8 @@
"value" : "1000000000000000000"
},
"gas" : "9690",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -725,8 +725,8 @@
"value" : "1000000000000000000"
},
"gas" : "9689",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -770,8 +770,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -815,8 +815,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -860,8 +860,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -905,8 +905,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -950,8 +950,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -995,8 +995,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1040,8 +1040,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1085,8 +1085,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1130,8 +1130,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1175,8 +1175,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1220,8 +1220,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1265,8 +1265,8 @@
"value" : "1000000000000000000"
},
"gas" : "9999",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1309,8 +1309,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1354,8 +1354,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1399,8 +1399,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1444,8 +1444,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1489,8 +1489,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1534,8 +1534,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1579,8 +1579,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1624,8 +1624,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1669,8 +1669,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1714,8 +1714,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1759,8 +1759,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1804,8 +1804,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1849,8 +1849,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1894,8 +1894,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1939,8 +1939,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -1984,8 +1984,8 @@
"value" : "1000000000000000000"
},
"gas" : "9999",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"bbccddeeff00112233445566778899aabbccddee" : {
@@ -2028,8 +2028,8 @@
"value" : "1000000000000000000"
},
"gas" : "9999",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2072,8 +2072,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2117,8 +2117,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2162,8 +2162,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2207,8 +2207,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2252,8 +2252,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2297,8 +2297,8 @@
"value" : "1000000000000000000"
},
"gas" : "9698",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2342,8 +2342,8 @@
"value" : "1000000000000000000"
},
"gas" : "9697",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2387,8 +2387,8 @@
"value" : "1000000000000000000"
},
"gas" : "9688",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2432,8 +2432,8 @@
"value" : "1000000000000000000"
},
"gas" : "9687",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2477,8 +2477,8 @@
"value" : "1000000000000000000"
},
"gas" : "9686",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2522,8 +2522,8 @@
"value" : "1000000000000000000"
},
"gas" : "9685",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2567,8 +2567,8 @@
"value" : "1000000000000000000"
},
"gas" : "9684",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2612,8 +2612,8 @@
"value" : "1000000000000000000"
},
"gas" : "9683",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2657,8 +2657,8 @@
"value" : "1000000000000000000"
},
"gas" : "9682",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2702,8 +2702,8 @@
"value" : "1000000000000000000"
},
"gas" : "9696",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2776,8 +2776,8 @@
"value" : "1000000000000000000"
},
"gas" : "9695",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2821,8 +2821,8 @@
"value" : "1000000000000000000"
},
"gas" : "9694",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2866,8 +2866,8 @@
"value" : "1000000000000000000"
},
"gas" : "9693",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2911,8 +2911,8 @@
"value" : "1000000000000000000"
},
"gas" : "9692",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -2956,8 +2956,8 @@
"value" : "1000000000000000000"
},
"gas" : "9691",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3001,8 +3001,8 @@
"value" : "1000000000000000000"
},
"gas" : "9690",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -3046,8 +3046,8 @@
"value" : "1000000000000000000"
},
"gas" : "9689",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmSha3Test.json b/tests/files/VMTests/vmSha3Test.json
index 55aeb3b84..b9e6b46a1 100644
--- a/tests/files/VMTests/vmSha3Test.json
+++ b/tests/files/VMTests/vmSha3Test.json
@@ -20,9 +20,9 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "99999999677",
- "logs" : {
- },
+ "gas" : "99999999687",
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -66,8 +66,8 @@
"value" : "1000000000000000000"
},
"gas" : "9676",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -111,8 +111,8 @@
"value" : "1000000000000000000"
},
"gas" : "9676",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
diff --git a/tests/files/VMTests/vmtests.json b/tests/files/VMTests/vmtests.json
index bd2fa6fa2..e1d73ee5d 100644
--- a/tests/files/VMTests/vmtests.json
+++ b/tests/files/VMTests/vmtests.json
@@ -27,8 +27,8 @@
"value" : "1000000000000000000"
},
"gas" : "9949",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -95,8 +95,8 @@
"value" : "1000000000000000000"
},
"gas" : "9824",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -145,8 +145,8 @@
"value" : "1000000000000000000"
},
"gas" : "9971",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
@@ -189,8 +189,8 @@
"value" : "1000000000000000000"
},
"gas" : "9999",
- "logs" : {
- },
+ "logs" : [
+ ],
"out" : "0x",
"post" : {
"cd1722f3947def4cf144679da39c4c32bdc35681" : {
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index 3da37cd3a..da5a41251 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -20,9 +20,21 @@ type Account struct {
}
type Log struct {
- Address string
- Data string
- Topics []string
+ AddressF string `json:"address"`
+ DataF string `json:"data"`
+ TopicsF []string `json:"topics"`
+ BloomF string `json:"bloom"`
+}
+
+func (self Log) Address() []byte { return ethutil.Hex2Bytes(self.AddressF) }
+func (self Log) Data() []byte { return ethutil.Hex2Bytes(self.DataF) }
+func (self Log) RlpData() interface{} { return nil }
+func (self Log) Topics() [][]byte {
+ t := make([][]byte, len(self.TopicsF))
+ for i, topic := range self.TopicsF {
+ t[i] = ethutil.Hex2Bytes(topic)
+ }
+ return t
}
func StateObjectFromAccount(addr string, account Account) *state.StateObject {
@@ -53,7 +65,7 @@ type VmTest struct {
Env Env
Exec map[string]string
Transaction map[string]string
- Logs map[string]Log
+ Logs []Log
Gas string
Out string
Post map[string]Account
@@ -128,10 +140,10 @@ func RunVmTest(p string, t *testing.T) {
}
if len(test.Logs) > 0 {
- genBloom := ethutil.LeftPadBytes(types.LogsBloom(logs).Bytes(), 64)
// Logs within the test itself aren't correct, missing empty fields (32 0s)
- for bloom /*logs*/, _ := range test.Logs {
- if !bytes.Equal(genBloom, ethutil.Hex2Bytes(bloom)) {
+ for i, log := range test.Logs {
+ genBloom := ethutil.LeftPadBytes(types.LogsBloom(state.Logs{logs[i]}).Bytes(), 64)
+ if !bytes.Equal(genBloom, ethutil.Hex2Bytes(log.BloomF)) {
t.Errorf("bloom mismatch")
}
}
diff --git a/vm/address.go b/vm/address.go
index 06bd35f6b..be8921a3b 100644
--- a/vm/address.go
+++ b/vm/address.go
@@ -12,7 +12,7 @@ type Address interface {
}
type PrecompiledAddress struct {
- Gas *big.Int
+ Gas func(l int) *big.Int
fn func(in []byte) []byte
}
@@ -21,9 +21,19 @@ func (self PrecompiledAddress) Call(in []byte) []byte {
}
var Precompiled = map[uint64]*PrecompiledAddress{
- 1: &PrecompiledAddress{big.NewInt(500), ecrecoverFunc},
- 2: &PrecompiledAddress{big.NewInt(100), sha256Func},
- 3: &PrecompiledAddress{big.NewInt(100), ripemd160Func},
+ 1: &PrecompiledAddress{func(l int) *big.Int {
+ return GasEcrecover
+ }, ecrecoverFunc},
+ 2: &PrecompiledAddress{func(l int) *big.Int {
+ n := big.NewInt(int64(l+31)/32 + 1)
+ n.Mul(n, GasSha256)
+ return n
+ }, sha256Func},
+ 3: &PrecompiledAddress{func(l int) *big.Int {
+ n := big.NewInt(int64(l+31)/32 + 1)
+ n.Mul(n, GasRipemd)
+ return n
+ }, ripemd160Func},
}
func sha256Func(in []byte) []byte {
diff --git a/vm/common.go b/vm/common.go
index 9514ff6d3..3d6d377ca 100644
--- a/vm/common.go
+++ b/vm/common.go
@@ -20,17 +20,24 @@ const (
var (
GasStep = big.NewInt(1)
- GasSha = big.NewInt(20)
+ GasSha = big.NewInt(10)
GasSLoad = big.NewInt(20)
GasSStore = big.NewInt(100)
GasSStoreRefund = big.NewInt(100)
GasBalance = big.NewInt(20)
GasCreate = big.NewInt(100)
GasCall = big.NewInt(20)
+ GasCreateByte = big.NewInt(5)
+ GasSha3Byte = big.NewInt(10)
+ GasSha256Byte = big.NewInt(50)
+ GasRipemdByte = big.NewInt(50)
GasMemory = big.NewInt(1)
GasData = big.NewInt(5)
GasTx = big.NewInt(500)
GasLog = big.NewInt(32)
+ GasSha256 = big.NewInt(50)
+ GasRipemd = big.NewInt(50)
+ GasEcrecover = big.NewInt(100)
Pow256 = ethutil.BigPow(2, 256)
@@ -41,7 +48,7 @@ var (
S256 = ethutil.S256
)
-const MaxCallDepth = 1025
+const MaxCallDepth = 1024
func calcMemSize(off, l *big.Int) *big.Int {
if l.Cmp(ethutil.Big0) == 0 {
diff --git a/vm/stack.go b/vm/stack.go
index 98795cc03..6091479cb 100644
--- a/vm/stack.go
+++ b/vm/stack.go
@@ -111,10 +111,10 @@ func NewMemory() *Memory {
return &Memory{nil}
}
-func (m *Memory) Set(offset, size int64, value []byte) {
+func (m *Memory) Set(offset, size uint64, value []byte) {
if len(value) > 0 {
totSize := offset + size
- lenSize := int64(len(m.store) - 1)
+ lenSize := uint64(len(m.store) - 1)
if totSize > lenSize {
// Calculate the diff between the sizes
diff := totSize - lenSize
diff --git a/vm/virtual_machine.go b/vm/virtual_machine.go
index 5738075fb..3b6f98ab2 100644
--- a/vm/virtual_machine.go
+++ b/vm/virtual_machine.go
@@ -5,7 +5,6 @@ import "math/big"
type VirtualMachine interface {
Env() Environment
Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, data []byte) ([]byte, error)
- Depth() int
Printf(string, ...interface{}) VirtualMachine
Endl() VirtualMachine
}
diff --git a/vm/vm_debug.go b/vm/vm_debug.go
index 0a541a769..8af1979b1 100644
--- a/vm/vm_debug.go
+++ b/vm/vm_debug.go
@@ -25,8 +25,6 @@ type DebugVm struct {
Fn string
Recoverable bool
-
- depth int
}
func NewDebugVm(env Environment) *DebugVm {
@@ -51,8 +49,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
closure := NewClosure(msg, caller, me, code, gas, price)
if self.env.Depth() == MaxCallDepth {
- closure.UseGas(gas)
-
+ //closure.UseGas(gas)
return closure.Return(nil), DepthError{}
}
@@ -98,7 +95,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
} else {
nop := OpCode(closure.GetOp(p))
if !(nop == JUMPDEST || destinations[from] != nil) {
- panic(fmt.Sprintf("JUMP missed JUMPDEST (%v) %v", nop, p))
+ 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"))
}
@@ -116,7 +113,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
return closure.Return(nil), nil
}
- vmlogger.Debugf("(%d) %x gas: %v (d) %x\n", self.depth, closure.Address(), closure.Gas, callData)
+ vmlogger.Debugf("(%d) %x gas: %v (d) %x\n", self.env.Depth(), closure.Address(), closure.Gas, callData)
for {
prevStep = step
@@ -166,13 +163,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
case EXP:
require(2)
- exp := new(big.Int).Set(stack.data[stack.Len()-2])
- nbytes := 0
- for exp.Cmp(ethutil.Big0) > 0 {
- nbytes += 1
- exp.Rsh(exp, 8)
- }
- gas.Set(big.NewInt(int64(nbytes + 1)))
+ gas.Set(big.NewInt(int64(len(stack.data[stack.Len()-2].Bytes()) + 1)))
// Gas only
case STOP:
gas.Set(ethutil.Big0)
@@ -260,9 +251,12 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
newMemSize.Mul(newMemSize, u256(32))
switch op {
- // Additional gas usage on *CODPY
case CALLDATACOPY, CODECOPY, EXTCODECOPY:
addStepGasUsage(new(big.Int).Div(newMemSize, u256(32)))
+ case SHA3:
+ g := new(big.Int).Div(newMemSize, u256(32))
+ g.Mul(g, GasSha3Byte)
+ addStepGasUsage(g)
}
if newMemSize.Cmp(u256(int64(mem.Len()))) > 0 {
@@ -614,10 +608,10 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => %d", l)
case CALLDATACOPY:
var (
- size = int64(len(callData))
- mOff = stack.Pop().Int64()
- cOff = stack.Pop().Int64()
- l = stack.Pop().Int64()
+ size = uint64(len(callData))
+ mOff = stack.Pop().Uint64()
+ cOff = stack.Pop().Uint64()
+ l = stack.Pop().Uint64()
)
if cOff > size {
@@ -657,10 +651,10 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}
var (
- size = int64(len(code))
- mOff = stack.Pop().Int64()
- cOff = stack.Pop().Int64()
- l = stack.Pop().Int64()
+ size = uint64(len(code))
+ mOff = stack.Pop().Uint64()
+ cOff = stack.Pop().Uint64()
+ l = stack.Pop().Uint64()
)
if cOff > size {
@@ -744,12 +738,12 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
case LOG0, LOG1, LOG2, LOG3, LOG4:
n := int(op - LOG0)
topics := make([][]byte, n)
- mSize, mStart := stack.Pop().Int64(), stack.Pop().Int64()
- data := mem.Geti(mStart, mSize)
+ mSize, mStart := stack.Popn()
for i := 0; i < n; i++ {
topics[i] = ethutil.LeftPadBytes(stack.Pop().Bytes(), 32)
}
+ data := mem.Geti(mStart.Int64(), mSize.Int64())
log := &Log{closure.Address(), topics, data}
self.env.AddLog(log)
@@ -763,7 +757,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
case MSTORE: // Store the value at stack top-1 in to memory at location stack top
// Pop value of the stack
val, mStart := stack.Popn()
- mem.Set(mStart.Int64(), 32, ethutil.BigToBytes(val, 256))
+ mem.Set(mStart.Uint64(), 32, ethutil.BigToBytes(val, 256))
self.Printf(" => 0x%x", val)
case MSTORE8:
@@ -839,8 +833,13 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf("CREATE err %v", err)
} else {
- ref.SetCode(ret)
- msg.Output = ret
+ // gas < len(ret) * CreateDataGas == NO_CODE
+ dataGas := big.NewInt(int64(len(ret)))
+ dataGas.Mul(dataGas, GasCreateByte)
+ if closure.UseGas(dataGas) {
+ ref.SetCode(ret)
+ msg.Output = ret
+ }
stack.Push(ethutil.BigD(addr))
}
@@ -865,14 +864,16 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// Get the arguments from the memory
args := mem.Get(inOffset.Int64(), inSize.Int64())
- var executeAddr []byte
+ var (
+ ret []byte
+ err error
+ )
if op == CALLCODE {
- executeAddr = closure.Address()
+ ret, err = self.env.CallCode(closure, addr.Bytes(), args, gas, price, value)
} else {
- executeAddr = addr.Bytes()
+ ret, err = self.env.Call(closure, addr.Bytes(), args, gas, price, value)
}
- ret, err := self.env.Call(closure, executeAddr, args, gas, price, value)
if err != nil {
stack.Push(ethutil.BigFalse)
@@ -881,9 +882,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
stack.Push(ethutil.BigTrue)
msg.Output = ret
- mem.Set(retOffset.Int64(), retSize.Int64(), ret)
+ mem.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
- self.Printf("resume %x", closure.Address())
+ self.Printf("resume %x (%v)", closure.Address(), closure.Gas)
// Debug hook
if self.Dbg != nil {
@@ -912,7 +913,6 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
default:
vmlogger.Debugf("(pc) %-3v Invalid opcode %x\n", pc, op)
- //panic(fmt.Sprintf("Invalid opcode %x", op))
closure.ReturnGas(big.NewInt(1), nil)
return closure.Return(nil), fmt.Errorf("Invalid opcode %x", op)
@@ -961,7 +961,3 @@ func (self *DebugVm) Endl() VirtualMachine {
func (self *DebugVm) Env() Environment {
return self.env
}
-
-func (self *DebugVm) Depth() int {
- return self.depth
-}
diff --git a/vm/vm_test.go b/vm/vm_test.go
index 19aa171a6..9bd147a72 100644
--- a/vm/vm_test.go
+++ b/vm/vm_test.go
@@ -1,181 +1,3 @@
package vm
-import (
- "fmt"
- "io/ioutil"
- "log"
- "math/big"
- "os"
-
- "github.com/ethereum/go-ethereum/crypto"
- "github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/logger"
- "github.com/ethereum/go-ethereum/state"
- "github.com/ethereum/go-ethereum/trie"
- checker "gopkg.in/check.v1"
- // "github.com/obscuren/mutan"
-)
-
-type VmSuite struct{}
-
-var _ = checker.Suite(&VmSuite{})
-var big9 = ethutil.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000009")
-
-const mutcode = `
-var x = 0;
-for i := 0; i < 10; i++ {
- x = i
-}
-
-return x`
-
-type TestEnv struct{}
-
-func (TestEnv) Origin() []byte { return nil }
-func (TestEnv) BlockNumber() *big.Int { return nil }
-func (TestEnv) BlockHash() []byte { return nil }
-func (TestEnv) PrevHash() []byte { return nil }
-func (TestEnv) Coinbase() []byte { return nil }
-func (TestEnv) Time() int64 { return 0 }
-func (TestEnv) GasLimit() *big.Int { return nil }
-func (TestEnv) Difficulty() *big.Int { return nil }
-func (TestEnv) Value() *big.Int { return nil }
-func (TestEnv) AddLog(*state.Log) {}
-func (TestEnv) Transfer(from, to Account, amount *big.Int) error {
- return nil
-}
-
-// This is likely to fail if anything ever gets looked up in the state trie :-)
-func (TestEnv) State() *state.State {
- return state.New(trie.New(nil, ""))
-}
-
-func setup(level logger.LogLevel, typ Type) (*Closure, VirtualMachine) {
- code, err := ethutil.Compile(mutcode, true)
- if err != nil {
- log.Fatal(err)
- }
-
- // Pipe output to /dev/null
- logger.AddLogSystem(logger.NewStdLogSystem(ioutil.Discard, log.LstdFlags, level))
-
- ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
-
- stateObject := state.NewStateObject([]byte{'j', 'e', 'f', 'f'})
- callerClosure := NewClosure(nil, stateObject, stateObject, code, big.NewInt(1000000), big.NewInt(0))
-
- return callerClosure, New(TestEnv{}, typ)
-}
-
-func (s *VmSuite) TestDebugVm(c *checker.C) {
- // if mutan.Version < "0.6" {
- // t.Skip("skipping for mutan version", mutan.Version, " < 0.6")
- // }
- closure, vm := setup(logger.DebugLevel, DebugVmTy)
- ret, _, e := closure.Call(vm, nil)
- c.Assert(e, checker.NotNil)
- c.Skip("Depends on mutan")
- c.Assert(ret, checker.DeepEquals, big9)
-}
-
-func (s *VmSuite) TestVm(c *checker.C) {
- // if mutan.Version < "0.6" {
- // t.Skip("skipping for mutan version", mutan.Version, " < 0.6")
- // }
- closure, vm := setup(logger.DebugLevel, StandardVmTy)
- ret, _, e := closure.Call(vm, nil)
- c.Assert(e, checker.NotNil)
- c.Skip("Depends on mutan")
- c.Assert(ret, checker.DeepEquals, big9)
-}
-
-func (s *VmSuite) BenchmarkDebugVm(c *checker.C) {
- closure, vm := setup(logger.InfoLevel, StandardVmTy)
-
- c.ResetTimer()
-
- for i := 0; i < c.N; i++ {
- closure.Call(vm, nil)
- }
-}
-
-func (s *VmSuite) BenchmarkVm(c *checker.C) {
- closure, vm := setup(logger.InfoLevel, DebugVmTy)
-
- c.ResetTimer()
-
- for i := 0; i < c.N; i++ {
- closure.Call(vm, nil)
- }
-}
-
-func RunCode(mutCode string, typ Type) []byte {
- code, err := ethutil.Compile(mutCode, true)
- if err != nil {
- log.Fatal(err)
- }
-
- logger.AddLogSystem(logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.InfoLevel))
-
- ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
-
- stateObject := state.NewStateObject([]byte{'j', 'e', 'f', 'f'})
- closure := NewClosure(nil, stateObject, stateObject, code, big.NewInt(1000000), big.NewInt(0))
-
- vm := New(TestEnv{}, typ)
- ret, _, e := closure.Call(vm, nil)
- if e != nil {
- fmt.Println(e)
- }
-
- return ret
-}
-
-func (s *VmSuite) TestBuildInSha256(c *checker.C) {
- ret := RunCode(`
- var in = 42
- var out = 0
-
- call(0x2, 0, 10000, in, out)
-
- return out
- `, DebugVmTy)
-
- exp := crypto.Sha256(ethutil.LeftPadBytes([]byte{42}, 32))
- c.Skip("Depends on mutan")
- c.Assert(ret, checker.DeepEquals, exp)
-}
-
-func (s *VmSuite) TestBuildInRipemd(c *checker.C) {
- ret := RunCode(`
- var in = 42
- var out = 0
-
- call(0x3, 0, 10000, in, out)
-
- return out
- `, DebugVmTy)
-
- exp := ethutil.RightPadBytes(crypto.Ripemd160(ethutil.LeftPadBytes([]byte{42}, 32)), 32)
- c.Skip("Depends on mutan")
- c.Assert(ret, checker.DeepEquals, exp)
-}
-
-func (s *VmSuite) TestOog(c *checker.C) {
- // This tests takes a long time and will eventually run out of gas
- // t.Skip()
- c.Skip("This tests takes a long time and will eventually run out of gas")
-
- logger.AddLogSystem(logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.InfoLevel))
-
- ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
-
- stateObject := state.NewStateObject([]byte{'j', 'e', 'f', 'f'})
- closure := NewClosure(nil, stateObject, stateObject, ethutil.Hex2Bytes("60ff60ff600057"), big.NewInt(1000000), big.NewInt(0))
-
- vm := New(TestEnv{}, DebugVmTy)
- _, _, e := closure.Call(vm, nil)
- if e != nil {
- fmt.Println(e)
- }
-}
+// Tests have been removed in favour of general tests. If anything implementation specific needs testing, put it here
diff --git a/whisper/envelope.go b/whisper/envelope.go
new file mode 100644
index 000000000..359fa1568
--- /dev/null
+++ b/whisper/envelope.go
@@ -0,0 +1,116 @@
+package whisper
+
+import (
+ "bytes"
+ "crypto/ecdsa"
+ "encoding/binary"
+ "fmt"
+ "io"
+ "time"
+
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/rlp"
+)
+
+const (
+ DefaultPow = 50 * time.Millisecond
+)
+
+type Envelope struct {
+ Expiry uint32 // Whisper protocol specifies int32, really should be int64
+ Ttl uint32 // ^^^^^^
+ Topics [][]byte
+ Data []byte
+ Nonce uint32
+
+ hash Hash
+}
+
+func NewEnvelopeFromReader(reader io.Reader) (*Envelope, error) {
+ var envelope Envelope
+
+ buf := new(bytes.Buffer)
+ buf.ReadFrom(reader)
+
+ h := H(crypto.Sha3(buf.Bytes()))
+ if err := rlp.Decode(buf, &envelope); err != nil {
+ return nil, err
+ }
+
+ envelope.hash = h
+
+ return &envelope, nil
+}
+
+func (self *Envelope) Hash() Hash {
+ if self.hash == EmptyHash {
+ self.hash = H(crypto.Sha3(ethutil.Encode(self)))
+ }
+
+ return self.hash
+}
+
+func NewEnvelope(ttl time.Duration, topics [][]byte, data *Message) *Envelope {
+ exp := time.Now().Add(ttl)
+
+ return &Envelope{uint32(exp.Unix()), uint32(ttl.Seconds()), topics, data.Bytes(), 0, Hash{}}
+}
+
+func (self *Envelope) Seal(pow time.Duration) {
+ self.proveWork(pow)
+}
+
+func (self *Envelope) Open(prv *ecdsa.PrivateKey) (*Message, error) {
+ data := self.Data
+ if data[0] > 0 && len(data) < 66 {
+ return nil, fmt.Errorf("unable to open envelope. First bit set but len(data) < 66")
+ }
+
+ if data[0] > 0 {
+ payload, err := crypto.Decrypt(prv, data[66:])
+ if err != nil {
+ return nil, fmt.Errorf("unable to open envelope. Decrypt failed: %v", err)
+ }
+
+ return NewMessage(payload), nil
+ }
+
+ return NewMessage(data[1:]), nil
+}
+
+func (self *Envelope) proveWork(dura time.Duration) {
+ var bestBit int
+ d := make([]byte, 64)
+ copy(d[:32], ethutil.Encode(self.withoutNonce()))
+
+ then := time.Now().Add(dura).UnixNano()
+ for n := uint32(0); time.Now().UnixNano() < then; {
+ for i := 0; i < 1024; i++ {
+ binary.BigEndian.PutUint32(d[60:], n)
+
+ fbs := ethutil.FirstBitSet(ethutil.BigD(crypto.Sha3(d)))
+ if fbs > bestBit {
+ bestBit = fbs
+ self.Nonce = n
+ }
+
+ n++
+ }
+ }
+}
+
+func (self *Envelope) valid() bool {
+ d := make([]byte, 64)
+ copy(d[:32], ethutil.Encode(self.withoutNonce()))
+ binary.BigEndian.PutUint32(d[60:], self.Nonce)
+ return ethutil.FirstBitSet(ethutil.BigD(crypto.Sha3(d))) > 0
+}
+
+func (self *Envelope) withoutNonce() interface{} {
+ return []interface{}{self.Expiry, self.Ttl, ethutil.ByteSliceToInterface(self.Topics), self.Data}
+}
+
+func (self *Envelope) RlpData() interface{} {
+ return []interface{}{self.Expiry, self.Ttl, ethutil.ByteSliceToInterface(self.Topics), self.Data, self.Nonce}
+}
diff --git a/whisper/main.go b/whisper/main.go
new file mode 100644
index 000000000..80050d899
--- /dev/null
+++ b/whisper/main.go
@@ -0,0 +1,46 @@
+// +build none
+
+package main
+
+import (
+ "fmt"
+ "log"
+ "net"
+ "os"
+
+ "github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/p2p"
+ "github.com/ethereum/go-ethereum/whisper"
+ "github.com/obscuren/secp256k1-go"
+)
+
+func main() {
+ logger.AddLogSystem(logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.InfoLevel))
+
+ pub, sec := secp256k1.GenerateKeyPair()
+
+ whisper := whisper.New(sec)
+
+ srv := p2p.Server{
+ MaxPeers: 10,
+ Identity: p2p.NewSimpleClientIdentity("whisper-go", "1.0", "", string(pub)),
+ ListenAddr: ":30303",
+ NAT: p2p.UPNP(),
+
+ Protocols: []p2p.Protocol{whisper.Protocol()},
+ }
+ if err := srv.Start(); err != nil {
+ fmt.Println("could not start server:", err)
+ os.Exit(1)
+ }
+
+ // add seed peers
+ seed, err := net.ResolveTCPAddr("tcp", "poc-7.ethdev.com:30300")
+ if err != nil {
+ fmt.Println("couldn't resolve:", err)
+ os.Exit(1)
+ }
+ srv.SuggestPeer(seed.IP, seed.Port, nil)
+
+ select {}
+}
diff --git a/whisper/message.go b/whisper/message.go
new file mode 100644
index 000000000..8ce5d880b
--- /dev/null
+++ b/whisper/message.go
@@ -0,0 +1,70 @@
+package whisper
+
+import (
+ "crypto/ecdsa"
+ "time"
+
+ "github.com/ethereum/go-ethereum/crypto"
+)
+
+type Message struct {
+ Flags byte
+ Signature []byte
+ Payload []byte
+}
+
+func NewMessage(payload []byte) *Message {
+ return &Message{Flags: 0, Payload: payload}
+}
+
+func (self *Message) hash() []byte {
+ return crypto.Sha3(append([]byte{self.Flags}, self.Payload...))
+}
+
+func (self *Message) sign(key *ecdsa.PrivateKey) (err error) {
+ self.Flags = 1
+ self.Signature, err = crypto.Sign(self.hash(), key)
+ return
+}
+
+func (self *Message) Recover() *ecdsa.PublicKey {
+ return crypto.SigToPub(self.hash(), self.Signature)
+}
+
+func (self *Message) Encrypt(from *ecdsa.PrivateKey, to *ecdsa.PublicKey) (err error) {
+ err = self.sign(from)
+ if err != nil {
+ return err
+ }
+
+ self.Payload, err = crypto.Encrypt(to, self.Payload)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (self *Message) Bytes() []byte {
+ return append([]byte{self.Flags}, append(self.Signature, self.Payload...)...)
+}
+
+type Opts struct {
+ From *ecdsa.PrivateKey
+ To *ecdsa.PublicKey
+ Ttl time.Duration
+ Topics [][]byte
+}
+
+func (self *Message) Seal(pow time.Duration, opts Opts) (*Envelope, error) {
+ if opts.To != nil && opts.From != nil {
+ if err := self.Encrypt(opts.From, opts.To); err != nil {
+ return nil, err
+ }
+ }
+
+ envelope := NewEnvelope(DefaultTtl, opts.Topics, self)
+ envelope.Seal(pow)
+
+ return envelope, nil
+}
diff --git a/whisper/messages_test.go b/whisper/messages_test.go
new file mode 100644
index 000000000..cba103011
--- /dev/null
+++ b/whisper/messages_test.go
@@ -0,0 +1,51 @@
+package whisper
+
+import (
+ "bytes"
+ "crypto/elliptic"
+ "fmt"
+ "testing"
+
+ "github.com/ethereum/go-ethereum/crypto"
+)
+
+func TestSign(t *testing.T) {
+ prv, _ := crypto.GenerateKey()
+ msg := NewMessage([]byte("hello world"))
+ msg.sign(prv)
+
+ pubKey := msg.Recover()
+ p1 := elliptic.Marshal(crypto.S256(), prv.PublicKey.X, prv.PublicKey.Y)
+ p2 := elliptic.Marshal(crypto.S256(), pubKey.X, pubKey.Y)
+
+ if !bytes.Equal(p1, p2) {
+ t.Error("recovered pub key did not match")
+ }
+}
+
+func TestMessageEncryptDecrypt(t *testing.T) {
+ prv1, _ := crypto.GenerateKey()
+ prv2, _ := crypto.GenerateKey()
+
+ data := []byte("hello world")
+ msg := NewMessage(data)
+ envelope, err := msg.Seal(DefaultPow, Opts{
+ From: prv1,
+ To: &prv2.PublicKey,
+ })
+ if err != nil {
+ fmt.Println(err)
+ t.FailNow()
+ }
+
+ msg1, err := envelope.Open(prv2)
+ if err != nil {
+ fmt.Println(err)
+ t.FailNow()
+ }
+
+ if !bytes.Equal(msg1.Payload, data) {
+ fmt.Println("encryption error. data did not match")
+ t.FailNow()
+ }
+}
diff --git a/whisper/peer.go b/whisper/peer.go
new file mode 100644
index 000000000..d42b374b5
--- /dev/null
+++ b/whisper/peer.go
@@ -0,0 +1,128 @@
+package whisper
+
+import (
+ "fmt"
+ "io/ioutil"
+ "time"
+
+ "github.com/ethereum/go-ethereum/p2p"
+ "gopkg.in/fatih/set.v0"
+)
+
+const (
+ protocolVersion = 0x02
+)
+
+type peer struct {
+ host *Whisper
+ peer *p2p.Peer
+ ws p2p.MsgReadWriter
+
+ // XXX Eventually this is going to reach exceptional large space. We need an expiry here
+ known *set.Set
+
+ quit chan struct{}
+}
+
+func NewPeer(host *Whisper, p *p2p.Peer, ws p2p.MsgReadWriter) *peer {
+ return &peer{host, p, ws, set.New(), make(chan struct{})}
+}
+
+func (self *peer) init() error {
+ if err := self.handleStatus(); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (self *peer) start() {
+ go self.update()
+ self.peer.Infoln("whisper started")
+}
+
+func (self *peer) stop() {
+ self.peer.Infoln("whisper stopped")
+
+ close(self.quit)
+}
+
+func (self *peer) update() {
+ relay := time.NewTicker(300 * time.Millisecond)
+out:
+ for {
+ select {
+ case <-relay.C:
+ err := self.broadcast(self.host.envelopes())
+ if err != nil {
+ self.peer.Infoln(err)
+ break out
+ }
+
+ case <-self.quit:
+ break out
+ }
+ }
+}
+
+func (self *peer) broadcast(envelopes []*Envelope) error {
+ envs := make([]interface{}, len(envelopes))
+ i := 0
+ for _, envelope := range envelopes {
+ if !self.known.Has(envelope.Hash()) {
+ envs[i] = envelope
+ self.known.Add(envelope.Hash())
+ i++
+ }
+ }
+
+ if i > 0 {
+ msg := p2p.NewMsg(envelopesMsg, envs[:i]...)
+ if err := self.ws.WriteMsg(msg); err != nil {
+ return err
+ }
+ self.peer.Infoln("broadcasted", i, "message(s)")
+ }
+
+ return nil
+}
+
+func (self *peer) addKnown(envelope *Envelope) {
+ self.known.Add(envelope.Hash())
+}
+
+func (self *peer) handleStatus() error {
+ ws := self.ws
+
+ if err := ws.WriteMsg(self.statusMsg()); err != nil {
+ return err
+ }
+
+ msg, err := ws.ReadMsg()
+ if err != nil {
+ return err
+ }
+
+ if msg.Code != statusMsg {
+ return fmt.Errorf("peer send %x before status msg", msg.Code)
+ }
+
+ data, err := ioutil.ReadAll(msg.Payload)
+ if err != nil {
+ return err
+ }
+
+ if len(data) == 0 {
+ return fmt.Errorf("malformed status. data len = 0")
+ }
+
+ if pv := data[0]; pv != protocolVersion {
+ return fmt.Errorf("protocol version mismatch %d != %d", pv, protocolVersion)
+ }
+
+ return nil
+}
+
+func (self *peer) statusMsg() p2p.Msg {
+ return p2p.NewMsg(statusMsg, protocolVersion)
+}
diff --git a/whisper/sort.go b/whisper/sort.go
new file mode 100644
index 000000000..8c5b46e9e
--- /dev/null
+++ b/whisper/sort.go
@@ -0,0 +1,25 @@
+package whisper
+
+import "sort"
+
+type sortedKeys struct {
+ k []int32
+}
+
+func (self *sortedKeys) Len() int { return len(self.k) }
+func (self *sortedKeys) Less(i, j int) bool { return self.k[i] < self.k[j] }
+func (self *sortedKeys) Swap(i, j int) { self.k[i], self.k[j] = self.k[j], self.k[i] }
+
+func sortKeys(m map[int32]Hash) []int32 {
+ sorted := new(sortedKeys)
+ sorted.k = make([]int32, len(m))
+ i := 0
+ for key, _ := range m {
+ sorted.k[i] = key
+ i++
+ }
+
+ sort.Sort(sorted)
+
+ return sorted.k
+}
diff --git a/whisper/sort_test.go b/whisper/sort_test.go
new file mode 100644
index 000000000..5d8177d41
--- /dev/null
+++ b/whisper/sort_test.go
@@ -0,0 +1,19 @@
+package whisper
+
+import "testing"
+
+func TestSorting(t *testing.T) {
+ m := map[int32]Hash{
+ 1: HS("1"),
+ 3: HS("3"),
+ 2: HS("2"),
+ 5: HS("5"),
+ }
+ exp := []int32{1, 2, 3, 5}
+ res := sortKeys(m)
+ for i, k := range res {
+ if k != exp[i] {
+ t.Error(k, "failed. Expected", exp[i])
+ }
+ }
+}
diff --git a/whisper/whisper.go b/whisper/whisper.go
new file mode 100644
index 000000000..4d7a2a23e
--- /dev/null
+++ b/whisper/whisper.go
@@ -0,0 +1,194 @@
+package whisper
+
+import (
+ "bytes"
+ "crypto/ecdsa"
+ "errors"
+ "fmt"
+ "sync"
+ "time"
+
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/p2p"
+ "gopkg.in/fatih/set.v0"
+)
+
+// MOVE ME
+type Hash struct {
+ hash string
+}
+
+var EmptyHash Hash
+
+func H(hash []byte) Hash {
+ return Hash{string(hash)}
+}
+func HS(hash string) Hash {
+ return Hash{hash}
+}
+
+func (self Hash) Compare(other Hash) int {
+ return bytes.Compare([]byte(self.hash), []byte(other.hash))
+}
+
+// MOVE ME END
+
+const (
+ statusMsg = 0x0
+ envelopesMsg = 0x01
+)
+
+const DefaultTtl = 50 * time.Second
+
+type Whisper struct {
+ key *ecdsa.PrivateKey
+ protocol p2p.Protocol
+
+ mmu sync.RWMutex
+ messages map[Hash]*Envelope
+ expiry map[uint32]*set.SetNonTS
+
+ quit chan struct{}
+}
+
+func New(sec []byte) *Whisper {
+ whisper := &Whisper{
+ key: crypto.ToECDSA(sec),
+ messages: make(map[Hash]*Envelope),
+ expiry: make(map[uint32]*set.SetNonTS),
+ quit: make(chan struct{}),
+ }
+ go whisper.update()
+
+ msg := NewMessage([]byte(fmt.Sprintf("Hello world. This is whisper-go. Incase you're wondering; the time is %v", time.Now())))
+ envelope, _ := msg.Seal(DefaultPow, Opts{
+ Ttl: DefaultTtl,
+ })
+ if err := whisper.Send(envelope); err != nil {
+ fmt.Println(err)
+ }
+
+ // p2p whisper sub protocol handler
+ whisper.protocol = p2p.Protocol{
+ Name: "shh",
+ Version: 2,
+ Length: 2,
+ Run: whisper.msgHandler,
+ }
+
+ return whisper
+}
+
+func (self *Whisper) Stop() {
+ close(self.quit)
+}
+
+func (self *Whisper) Send(envelope *Envelope) error {
+ return self.add(envelope)
+}
+
+// Main handler for passing whisper messages to whisper peer objects
+func (self *Whisper) msgHandler(peer *p2p.Peer, ws p2p.MsgReadWriter) error {
+ wpeer := NewPeer(self, peer, ws)
+ // initialise whisper peer (handshake/status)
+ if err := wpeer.init(); err != nil {
+ return err
+ }
+ // kick of the main handler for broadcasting/managing envelopes
+ go wpeer.start()
+ defer wpeer.stop()
+
+ // Main *read* loop. Writing is done by the peer it self.
+ for {
+ msg, err := ws.ReadMsg()
+ if err != nil {
+ return err
+ }
+
+ envelope, err := NewEnvelopeFromReader(msg.Payload)
+ if err != nil {
+ peer.Infoln(err)
+ continue
+ }
+
+ if err := self.add(envelope); err != nil {
+ // TODO Punish peer here. Invalid envelope.
+ peer.Infoln(err)
+ }
+ wpeer.addKnown(envelope)
+ }
+}
+
+// takes care of adding envelopes to the messages pool. At this moment no sanity checks are being performed.
+func (self *Whisper) add(envelope *Envelope) error {
+ if !envelope.valid() {
+ return errors.New("invalid pow for envelope")
+ }
+
+ self.mmu.Lock()
+ defer self.mmu.Unlock()
+
+ hash := envelope.Hash()
+ self.messages[hash] = envelope
+ if self.expiry[envelope.Expiry] == nil {
+ self.expiry[envelope.Expiry] = set.NewNonTS()
+ }
+
+ if !self.expiry[envelope.Expiry].Has(hash) {
+ self.expiry[envelope.Expiry].Add(hash)
+ // TODO notify listeners (given that we had any ...)
+ }
+
+ fmt.Println("add", envelope)
+
+ return nil
+}
+
+func (self *Whisper) update() {
+ expire := time.NewTicker(800 * time.Millisecond)
+out:
+ for {
+ select {
+ case <-expire.C:
+ self.expire()
+ case <-self.quit:
+ break out
+ }
+ }
+}
+
+func (self *Whisper) expire() {
+ self.mmu.Lock()
+ defer self.mmu.Unlock()
+
+ now := uint32(time.Now().Unix())
+ for then, hashSet := range self.expiry {
+ if then > now {
+ continue
+ }
+
+ hashSet.Each(func(v interface{}) bool {
+ delete(self.messages, v.(Hash))
+ return true
+ })
+ self.expiry[then].Clear()
+ }
+}
+
+func (self *Whisper) envelopes() (envelopes []*Envelope) {
+ self.mmu.RLock()
+ defer self.mmu.RUnlock()
+
+ envelopes = make([]*Envelope, len(self.messages))
+ i := 0
+ for _, envelope := range self.messages {
+ envelopes[i] = envelope
+ i++
+ }
+
+ return
+}
+
+func (self *Whisper) Protocol() p2p.Protocol {
+ return self.protocol
+}
diff --git a/wire/messaging.go b/wire/messaging.go
index b919aa0f4..9c6cb5944 100644
--- a/wire/messaging.go
+++ b/wire/messaging.go
@@ -33,8 +33,7 @@ const (
MsgGetPeersTy = 0x04
MsgPeersTy = 0x05
- MsgStatusTy = 0x10
- //MsgGetTxsTy = 0x11
+ MsgStatusTy = 0x10
MsgTxTy = 0x12
MsgGetBlockHashesTy = 0x13
MsgBlockHashesTy = 0x14
diff --git a/xeth/pipe.go b/xeth/pipe.go
index 6da92cd23..a8d8ed999 100644
--- a/xeth/pipe.go
+++ b/xeth/pipe.go
@@ -22,7 +22,7 @@ type VmVars struct {
type XEth struct {
obj core.EthManager
blockManager *core.BlockManager
- blockChain *core.ChainManager
+ chainManager *core.ChainManager
world *World
Vm VmVars
@@ -32,7 +32,7 @@ func New(obj core.EthManager) *XEth {
pipe := &XEth{
obj: obj,
blockManager: obj.BlockManager(),
- blockChain: obj.ChainManager(),
+ chainManager: obj.ChainManager(),
}
pipe.world = NewWorld(pipe)
@@ -51,7 +51,7 @@ func (self *XEth) Nonce(addr []byte) uint64 {
}
func (self *XEth) Block(hash []byte) *types.Block {
- return self.blockChain.GetBlock(hash)
+ return self.chainManager.GetBlock(hash)
}
func (self *XEth) Storage(addr, storageAddr []byte) *ethutil.Value {
@@ -82,7 +82,7 @@ func (self *XEth) Execute(addr []byte, data []byte, value, gas, price *ethutil.V
func (self *XEth) ExecuteObject(object *Object, data []byte, value, gas, price *ethutil.Value) ([]byte, error) {
var (
initiator = state.NewStateObject(self.obj.KeyManager().KeyPair().Address())
- block = self.blockChain.CurrentBlock
+ block = self.chainManager.CurrentBlock
)
self.Vm.State = self.World().State().Copy()
@@ -131,16 +131,22 @@ func (self *XEth) Transact(key *crypto.KeyPair, to []byte, value, gas, price *et
tx = types.NewTransactionMessage(hash, value.BigInt(), gas.BigInt(), price.BigInt(), data)
}
- state := self.blockManager.TransState()
+ state := self.chainManager.TransState()
nonce := state.GetNonce(key.Address())
tx.Nonce = nonce
tx.Sign(key.PrivateKey)
+
+ // Do some pre processing for our "pre" events and hooks
+ block := self.chainManager.NewBlock(key.Address())
+ coinbase := state.GetStateObject(key.Address())
+ coinbase.SetGasPool(block.GasLimit)
+ self.blockManager.ApplyTransactions(coinbase, state, block, types.Transactions{tx}, true)
+
err := self.obj.TxPool().Add(tx)
if err != nil {
return nil, err
}
-
state.SetNonce(key.Address(), nonce+1)
if contractCreation {
diff --git a/xeth/world.go b/xeth/world.go
index c5c20c224..956ef1e15 100644
--- a/xeth/world.go
+++ b/xeth/world.go
@@ -23,7 +23,7 @@ func (self *XEth) World() *World {
}
func (self *World) State() *state.StateDB {
- return self.pipe.blockManager.CurrentState()
+ return self.pipe.chainManager.State()
}
func (self *World) Get(addr []byte) *Object {