diff --git a/.travis.yml b/.travis.yml
index d09cbcdb09..21c15068b5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,6 @@
language: go
go:
- - 1.3
+ - tip
before_install:
- sudo add-apt-repository ppa:ubuntu-sdk-team/ppa -y
- sudo apt-get update -qq
@@ -8,10 +8,10 @@ before_install:
install:
- go get code.google.com/p/go.tools/cmd/goimports
- go get github.com/golang/lint/golint
- # - go get code.google.com/p/go.tools/cmd/vet
- - go get code.google.com/p/go.tools/cmd/cover
+ # - go get golang.org/x/tools/cmd/vet
+ - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
- go get github.com/mattn/goveralls
- - ./install_deps.sh
+ - ETH_DEPS=$(go list -f '{{.Imports}} {{.TestImports}} {{.XTestImports}}' github.com/ethereum/go-ethereum/... | sed -e 's/\[//g' | sed -e 's/\]//g' | sed -e 's/C //g'); if [ "$ETH_DEPS" ]; then go get $ETH_DEPS; fi
before_script:
- gofmt -l -w .
- goimports -l -w .
@@ -19,7 +19,7 @@ before_script:
# - go vet ./...
# - go test -race ./...
script:
- - ./gocoverage.sh && goveralls -coverprofile=profile.cov -service=travis-ci -repotoken $COVERALLS_TOKEN
+ - ./gocoverage.sh
env:
- secure: "U2U1AmkU4NJBgKR/uUAebQY87cNL0+1JHjnLOmmXwxYYyj5ralWb1aSuSH3qSXiT93qLBmtaUkuv9fberHVqrbAeVlztVdUsKAq7JMQH+M99iFkC9UiRMqHmtjWJ0ok4COD1sRYixxi21wb/JrMe3M1iL4QJVS61iltjHhVdM64="
diff --git a/Dockerfile b/Dockerfile
index 1f37ce892a..82ce9f7fc4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -25,14 +25,14 @@ RUN apt-get install -y qtbase5-private-dev qtdeclarative5-private-dev libqt5open
## Fetch and install serpent-go
RUN go get -v -d github.com/ethereum/serpent-go
WORKDIR $GOPATH/src/github.com/ethereum/serpent-go
-RUN git checkout master
+# RUN git checkout master
RUN git submodule update --init
RUN go install -v
# Fetch and install go-ethereum
RUN go get -v -d github.com/ethereum/go-ethereum/...
WORKDIR $GOPATH/src/github.com/ethereum/go-ethereum
-RUN git checkout poc8
+# RUN git checkout develop
RUN ETH_DEPS=$(go list -f '{{.Imports}} {{.TestImports}} {{.XTestImports}}' github.com/ethereum/go-ethereum/... | sed -e 's/\[//g' | sed -e 's/\]//g' | sed -e 's/C //g'); if [ "$ETH_DEPS" ]; then go get $ETH_DEPS; fi
RUN go install -v ./cmd/ethereum
diff --git a/README.md b/README.md
index 564e5c56dd..4830d93032 100644
--- a/README.md
+++ b/README.md
@@ -9,10 +9,11 @@ Ethereum
[](http://build.ethdev.com:8010/builders/Linux%20Go%20master%20branch/builds/-1) master [](http://build.ethdev.com:8010/builders/Linux%20Go%20develop%20branch/builds/-1) develop
+[](https://coveralls.io/r/ethereum/go-ethereum?branch=tests) tests
Ethereum Go Client © 2014 Jeffrey Wilcke.
-Current state: Proof of Concept 0.7
+Current state: Proof of Concept 0.8
Ethereum is currently in its testing phase.
diff --git a/_data/chain1 b/_data/chain1
deleted file mode 100755
index ef392e001e..0000000000
Binary files a/_data/chain1 and /dev/null differ
diff --git a/_data/chain2 b/_data/chain2
deleted file mode 100755
index 48ed4d5ea9..0000000000
Binary files a/_data/chain2 and /dev/null differ
diff --git a/_data/invalid1 b/_data/invalid1
new file mode 100755
index 0000000000..9c24b13e8e
Binary files /dev/null and b/_data/invalid1 differ
diff --git a/_data/valid1 b/_data/valid1
new file mode 100755
index 0000000000..809a55f1a6
Binary files /dev/null and b/_data/valid1 differ
diff --git a/_data/valid2 b/_data/valid2
new file mode 100755
index 0000000000..3e9d2971a9
Binary files /dev/null and b/_data/valid2 differ
diff --git a/_data/valid3 b/_data/valid3
new file mode 100755
index 0000000000..685bc9fd7b
Binary files /dev/null and b/_data/valid3 differ
diff --git a/_data/valid4 b/_data/valid4
new file mode 100755
index 0000000000..fc016057fa
Binary files /dev/null and b/_data/valid4 differ
diff --git a/cmd/ethereum/flags.go b/cmd/ethereum/flags.go
index 5567354912..d27b739c36 100644
--- a/cmd/ethereum/flags.go
+++ b/cmd/ethereum/flags.go
@@ -58,6 +58,7 @@ var (
DumpHash string
DumpNumber int
VmType int
+ ImportChain string
)
// flags specific to cli client
@@ -87,7 +88,7 @@ func Init() {
flag.StringVar(&OutboundPort, "port", "30303", "listening port")
flag.StringVar(&NatType, "nat", "", "NAT support (UPNP|PMP) (none)")
flag.StringVar(&PMPGateway, "pmp", "", "Gateway IP for PMP")
- flag.IntVar(&MaxPeer, "maxpeer", 10, "maximum desired peers")
+ flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
flag.IntVar(&RpcPort, "rpcport", 8080, "port to start json-rpc server on")
flag.BoolVar(&StartRpc, "rpc", false, "start rpc server")
flag.BoolVar(&StartWebSockets, "ws", false, "start websocket server")
@@ -104,6 +105,7 @@ func Init() {
flag.BoolVar(&DiffTool, "difftool", false, "creates output for diff'ing. Sets LogLevel=0")
flag.StringVar(&DiffType, "diff", "all", "sets the level of diff output [vm, all]. Has no effect if difftool=false")
flag.BoolVar(&ShowGenesis, "genesis", false, "Dump the genesis block")
+ flag.StringVar(&ImportChain, "chain", "", "Imports fiven chain")
flag.BoolVar(&Dump, "dump", false, "output the ethereum state in JSON format. Sub args [number, hash]")
flag.StringVar(&DumpHash, "hash", "", "specify arg in hex")
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index da09e0b588..b238522820 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -21,16 +21,18 @@ import (
"fmt"
"os"
"runtime"
+ "time"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
)
const (
ClientIdentifier = "Ethereum(G)"
- Version = "0.7.9"
+ Version = "0.8.0"
)
var clilogger = logger.NewLogger("CLI")
@@ -38,40 +40,35 @@ var clilogger = logger.NewLogger("CLI")
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
+ defer func() {
+ logger.Flush()
+ }()
+
utils.HandleInterrupt()
// precedence: code-internal flag default < config file < environment variables < command line
Init() // parsing command line
- // If the difftool option is selected ignore all other log output
- if DiffTool || Dump {
- LogLevel = 0
- }
-
utils.InitConfig(VmType, ConfigFile, Datadir, "ETH")
- ethutil.Config.Diff = DiffTool
- ethutil.Config.DiffType = DiffType
- utils.InitDataDir(Datadir)
-
- utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
-
- db := utils.NewDatabase()
- err := utils.DBSanityCheck(db)
+ ethereum, err := eth.New(ð.Config{
+ Name: ClientIdentifier,
+ Version: Version,
+ KeyStore: KeyStore,
+ DataDir: Datadir,
+ LogFile: LogFile,
+ LogLevel: LogLevel,
+ Identifier: Identifier,
+ MaxPeers: MaxPeer,
+ Port: OutboundPort,
+ NATType: PMPGateway,
+ PMPGateway: PMPGateway,
+ KeyRing: KeyRing,
+ })
if err != nil {
- fmt.Println(err)
-
- os.Exit(1)
+ clilogger.Fatalln(err)
}
-
- keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
-
- // create, import, export keys
- utils.KeyTasks(keyManager, KeyRing, GenAddr, SecretFile, ExportDir, NonInteractive)
-
- clientIdentity := utils.NewClientIdentity(ClientIdentifier, Version, Identifier, string(keyManager.PublicKey()))
-
- ethereum := utils.NewEthereum(db, clientIdentity, keyManager, utils.NatType(NatType, PMPGateway), OutboundPort, MaxPeer)
+ utils.KeyTasks(ethereum.KeyManager(), KeyRing, GenAddr, SecretFile, ExportDir, NonInteractive)
if Dump {
var block *types.Block
@@ -93,25 +90,28 @@ func main() {
os.Exit(1)
}
- // block.GetRoot() does not exist
- //fmt.Printf("RLP: %x\nstate: %x\nhash: %x\n", ethutil.Rlp(block), block.GetRoot(), block.Hash())
-
// Leave the Println. This needs clean output for piping
fmt.Printf("%s\n", block.State().Dump())
fmt.Println(block)
- os.Exit(0)
- }
-
- if ShowGenesis {
- utils.ShowGenesis(ethereum)
+ return
}
if StartMining {
utils.StartMining(ethereum)
}
+ if len(ImportChain) > 0 {
+ start := time.Now()
+ err := utils.ImportChain(ethereum, ImportChain)
+ if err != nil {
+ clilogger.Infoln(err)
+ }
+ clilogger.Infoln("import done in", time.Since(start))
+ return
+ }
+
// better reworked as cases
if StartJsConsole {
InitJsConsole(ethereum)
@@ -131,5 +131,4 @@ func main() {
// this blocks the thread
ethereum.WaitForShutdown()
- logger.Flush()
}
diff --git a/cmd/ethereum/repl/repl.go b/cmd/ethereum/repl/repl.go
index 4a7880ff42..78bb19cecf 100644
--- a/cmd/ethereum/repl/repl.go
+++ b/cmd/ethereum/repl/repl.go
@@ -86,11 +86,6 @@ func (self *JSRepl) Stop() {
}
func (self *JSRepl) parseInput(code string) {
- defer func() {
- if r := recover(); r != nil {
- fmt.Println("[native] error", r)
- }
- }()
value, err := self.re.Run(code)
if err != nil {
diff --git a/cmd/ethtest/.bowerrc b/cmd/ethtest/.bowerrc
new file mode 100644
index 0000000000..c3a8813e8b
--- /dev/null
+++ b/cmd/ethtest/.bowerrc
@@ -0,0 +1,5 @@
+{
+ "directory": "example/js/",
+ "cwd": "./",
+ "analytics": false
+}
\ No newline at end of file
diff --git a/cmd/ethtest/.editorconfig b/cmd/ethtest/.editorconfig
new file mode 100644
index 0000000000..60a2751d33
--- /dev/null
+++ b/cmd/ethtest/.editorconfig
@@ -0,0 +1,12 @@
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/cmd/ethtest/.gitignore b/cmd/ethtest/.gitignore
new file mode 100644
index 0000000000..399b6dc882
--- /dev/null
+++ b/cmd/ethtest/.gitignore
@@ -0,0 +1,18 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+#
+# If you find yourself ignoring temporary files generated by your text editor
+# or operating system, you probably want to add a global ignore instead:
+# git config --global core.excludesfile ~/.gitignore_global
+
+*.swp
+/tmp
+*/**/*un~
+*un~
+.DS_Store
+*/**/.DS_Store
+ethereum/ethereum
+ethereal/ethereal
+example/js
+node_modules
+bower_components
+npm-debug.log
diff --git a/cmd/ethtest/.jshintrc b/cmd/ethtest/.jshintrc
new file mode 100644
index 0000000000..c0ec5f89d1
--- /dev/null
+++ b/cmd/ethtest/.jshintrc
@@ -0,0 +1,50 @@
+{
+ "predef": [
+ "console",
+ "require",
+ "equal",
+ "test",
+ "testBoth",
+ "testWithDefault",
+ "raises",
+ "deepEqual",
+ "start",
+ "stop",
+ "ok",
+ "strictEqual",
+ "module",
+ "expect",
+ "reject",
+ "impl"
+ ],
+
+ "esnext": true,
+ "proto": true,
+ "node" : true,
+ "browser" : true,
+ "browserify" : true,
+
+ "boss" : true,
+ "curly": false,
+ "debug": true,
+ "devel": true,
+ "eqeqeq": true,
+ "evil": true,
+ "forin": false,
+ "immed": false,
+ "laxbreak": false,
+ "newcap": true,
+ "noarg": true,
+ "noempty": false,
+ "nonew": false,
+ "nomen": false,
+ "onevar": false,
+ "plusplus": false,
+ "regexp": false,
+ "undef": true,
+ "sub": true,
+ "strict": false,
+ "white": false,
+ "shadow": true,
+ "eqnull": true
+}
\ No newline at end of file
diff --git a/cmd/ethtest/.npmignore b/cmd/ethtest/.npmignore
new file mode 100644
index 0000000000..5bbffe4fd3
--- /dev/null
+++ b/cmd/ethtest/.npmignore
@@ -0,0 +1,9 @@
+example/js
+node_modules
+test
+.gitignore
+.editorconfig
+.travis.yml
+.npmignore
+component.json
+testling.html
\ No newline at end of file
diff --git a/cmd/ethtest/.travis.yml b/cmd/ethtest/.travis.yml
new file mode 100644
index 0000000000..fafacbd5a1
--- /dev/null
+++ b/cmd/ethtest/.travis.yml
@@ -0,0 +1,11 @@
+language: node_js
+node_js:
+ - "0.11"
+ - "0.10"
+before_script:
+ - npm install
+ - npm install jshint
+script:
+ - "jshint *.js lib"
+after_script:
+ - npm run-script gulp
diff --git a/cmd/ethtest/main.go b/cmd/ethtest/main.go
index 94ab779dba..96ef94e401 100644
--- a/cmd/ethtest/main.go
+++ b/cmd/ethtest/main.go
@@ -95,10 +95,15 @@ func RunVmTest(js string) (failed int) {
failed = 1
}
- gexp := ethutil.Big(test.Gas)
- if gexp.Cmp(gas) != 0 {
- log.Printf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas)
+ if len(test.Gas) == 0 && err == nil {
+ log.Printf("0 gas indicates error but no error given by VM")
failed = 1
+ } else {
+ gexp := ethutil.Big(test.Gas)
+ if gexp.Cmp(gas) != 0 {
+ log.Printf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas)
+ failed = 1
+ }
}
for addr, account := range test.Post {
diff --git a/cmd/evm/main.go b/cmd/evm/main.go
index c6c986a04a..31b7da3c82 100644
--- a/cmd/evm/main.go
+++ b/cmd/evm/main.go
@@ -37,8 +37,8 @@ import (
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/ptrie"
"github.com/ethereum/go-ethereum/state"
- "github.com/ethereum/go-ethereum/trie"
"github.com/ethereum/go-ethereum/vm"
)
@@ -65,7 +65,7 @@ func main() {
ethutil.ReadConfig("/tmp/evmtest", "/tmp/evm", "")
db, _ := ethdb.NewMemDatabase()
- statedb := state.New(trie.New(db, ""))
+ statedb := state.New(ptrie.New(nil, db))
sender := statedb.NewStateObject([]byte("sender"))
receiver := statedb.NewStateObject([]byte("receiver"))
//receiver.SetCode([]byte(*code))
@@ -141,24 +141,22 @@ func (self *VMEnv) Transfer(from, to vm.Account, amount *big.Int) error {
}
func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execution {
- evm := vm.New(self, vm.DebugVmTy)
-
- return core.NewExecution(evm, addr, data, gas, price, value)
+ return core.NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
ret, err := exe.Call(addr, caller)
self.Gas = exe.Gas
return ret, err
}
-func (self *VMEnv) CallCode(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(caller.Address(), data, gas, price, value)
return exe.Call(addr, caller)
}
-func (self *VMEnv) Create(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(caller)
}
diff --git a/cmd/mist/assets/qml/webapp.qml b/cmd/mist/assets/qml/browser.qml
similarity index 92%
rename from cmd/mist/assets/qml/webapp.qml
rename to cmd/mist/assets/qml/browser.qml
index bd7399dc9b..abaab4f15c 100644
--- a/cmd/mist/assets/qml/webapp.qml
+++ b/cmd/mist/assets/qml/browser.qml
@@ -66,7 +66,11 @@ Rectangle {
onMessages: {
// Bit of a cheat to get proper JSON
var m = JSON.parse(JSON.parse(JSON.stringify(messages)))
- webview.postEvent("messages", [m, id]);
+ webview.postEvent("messages", id, m);
+ }
+
+ function onShhMessage(message, id) {
+ webview.postEvent("shhChanged", id, message)
}
Item {
@@ -327,6 +331,33 @@ Rectangle {
require(1);
eth.uninstallFilter(data.args[0])
break;
+
+
+ case "shhNewFilter":
+ require(1);
+ var id = shh.watch(data.args[0], window);
+ postData(data._id, id);
+ break;
+
+ case "newIdentity":
+ postData(data._id, shh.newIdentity())
+ break
+
+ case "post":
+ require(1);
+ var params = data.args[0];
+ var fields = ["payload", "to", "from"];
+ for(var i = 0; i < fields.length; i++) {
+ params[fields[i]] = params[fields[i]] || "";
+ }
+ if(typeof params.payload !== "object") { params.payload = [params.payload]; } //params.payload = params.payload.join(""); }
+ params.topics = params.topics || [];
+ params.priority = params.priority || 1000;
+ params.ttl = params.ttl || 100;
+
+ console.log(JSON.stringify(params))
+ shh.post(params.payload, params.to, params.from, params.topics, params.priority, params.ttl);
+ break;
}
} catch(e) {
console.log(data.call + ": " + e)
@@ -348,8 +379,8 @@ Rectangle {
function postData(seed, data) {
webview.experimental.postMessage(JSON.stringify({data: data, _id: seed}))
}
- function postEvent(event, data) {
- webview.experimental.postMessage(JSON.stringify({data: data, _event: event}))
+ function postEvent(event, id, data) {
+ webview.experimental.postMessage(JSON.stringify({data: data, _id: id, _event: event}))
}
function onWatchedCb(data, id) {
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index 2857570809..5df4c8aad2 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -45,7 +45,7 @@ ApplicationWindow {
// Takes care of loading all default plugins
Component.onCompleted: {
var wallet = addPlugin("./views/wallet.qml", {noAdd: true, close: false, section: "ethereum", active: true});
- var browser = addPlugin("./webapp.qml", {noAdd: true, close: false, section: "ethereum", active: true});
+ var browser = addPlugin("./browser.qml", {noAdd: true, close: false, section: "ethereum", active: true});
root.browser = browser;
addPlugin("./views/miner.qml", {noAdd: true, close: false, section: "ethereum", active: true});
@@ -787,8 +787,8 @@ ApplicationWindow {
title: "About"
minimumWidth: 350
maximumWidth: 350
- maximumHeight: 200
- minimumHeight: 200
+ maximumHeight: 280
+ minimumHeight: 280
Image {
id: aboutIcon
@@ -798,7 +798,7 @@ ApplicationWindow {
smooth: true
source: "../facet.png"
x: 10
- y: 10
+ y: 30
}
Text {
@@ -807,7 +807,7 @@ ApplicationWindow {
anchors.top: parent.top
anchors.topMargin: 30
font.pointSize: 12
- text: "
Mist (0.6.5)
Amalthea
Development
Jeffrey Wilcke
Viktor Trón
Building
Maran Hidskes"
+ text: "Mist (0.7.10)
Development
Jeffrey Wilcke
Viktor Trón
Felix Lange
Taylor Gerring
Daniel Nagy
UX
Alex van de Sande
"
}
}
@@ -866,12 +866,14 @@ ApplicationWindow {
model: ListModel { id: pastPeers }
Component.onCompleted: {
+ /*
var ips = eth.pastPeers()
for(var i = 0; i < ips.length; i++) {
pastPeers.append({text: ips.get(i)})
}
pastPeers.insert(0, {text: "poc-7.ethdev.com:30303"})
+ */
}
}
diff --git a/cmd/mist/assets/qml/views/wallet.qml b/cmd/mist/assets/qml/views/wallet.qml
index 9727ef35c8..b81273a173 100644
--- a/cmd/mist/assets/qml/views/wallet.qml
+++ b/cmd/mist/assets/qml/views/wallet.qml
@@ -20,7 +20,7 @@ Rectangle {
}
function setBalance() {
- balance.text = "Balance: " + eth.numberToHuman(eth.balanceAt(eth.key().address))
+ //balance.text = "Balance: " + eth.numberToHuman(eth.balanceAt(eth.key().address))
if(menuItem)
menuItem.secondaryTitle = eth.numberToHuman(eth.balanceAt(eth.key().address))
}
diff --git a/cmd/mist/assets/qml/views/whisper.qml b/cmd/mist/assets/qml/views/whisper.qml
index b50841ba5f..56c4f1b070 100644
--- a/cmd/mist/assets/qml/views/whisper.qml
+++ b/cmd/mist/assets/qml/views/whisper.qml
@@ -9,7 +9,7 @@ import Ethereum 1.0
Rectangle {
id: root
- property var title: "Whisper"
+ property var title: "Whisper Traffic"
property var iconSource: "../facet.png"
property var menuItem
@@ -21,10 +21,22 @@ Rectangle {
identity = shh.newIdentity()
console.log("New identity:", identity)
- var t = shh.watch({topics: ["chat"]})
+ var t = shh.watch({}, root)
+ }
+
+ function onShhMessage(message, i) {
+ whisperModel.insert(0, {from: message.from, payload: eth.toAscii(message.payload)})
}
RowLayout {
+ id: input
+ anchors {
+ left: parent.left
+ leftMargin: 20
+ top: parent.top
+ topMargin: 20
+ }
+
TextField {
id: to
placeholderText: "To"
@@ -40,8 +52,25 @@ Rectangle {
Button {
text: "Send"
onClicked: {
- shh.post(eth.toHex(data.text), "", identity, topics.text.split(","), 500, 50)
+ shh.post([eth.toHex(data.text)], "", identity, topics.text.split(","), 500, 50)
}
}
}
+
+ TableView {
+ id: txTableView
+ anchors {
+ top: input.bottom
+ topMargin: 10
+ bottom: parent.bottom
+ left: parent.left
+ right: parent.right
+ }
+ TableViewColumn{ id: fromRole; role: "from" ; title: "From"; width: 300 }
+ TableViewColumn{ role: "payload" ; title: "Payload" ; width: parent.width - fromRole.width - 2 }
+
+ model: ListModel {
+ id: whisperModel
+ }
+ }
}
diff --git a/cmd/mist/bindings.go b/cmd/mist/bindings.go
index 6d2342c876..66d8d14916 100644
--- a/cmd/mist/bindings.go
+++ b/cmd/mist/bindings.go
@@ -72,7 +72,7 @@ func (gui *Gui) GetCustomIdentifier() string {
// functions that allow Gui to implement interface guilogger.LogSystem
func (gui *Gui) SetLogLevel(level logger.LogLevel) {
gui.logLevel = level
- gui.stdLog.SetLogLevel(level)
+ gui.eth.Logger().SetLogLevel(level)
gui.config.Save("loglevel", level)
}
diff --git a/cmd/mist/debugger.go b/cmd/mist/debugger.go
index a7a286e235..618e31f4ed 100644
--- a/cmd/mist/debugger.go
+++ b/cmd/mist/debugger.go
@@ -151,7 +151,7 @@ func (self *DebuggerWindow) Debug(valueStr, gasStr, gasPriceStr, scriptStr, data
block := self.lib.eth.ChainManager().CurrentBlock()
- env := utils.NewEnv(statedb, block, account.Address(), value)
+ env := utils.NewEnv(self.lib.eth.ChainManager(), statedb, block, account.Address(), value)
self.Logf("callsize %d", len(script))
go func() {
@@ -309,9 +309,11 @@ func (d *Debugger) halting(pc int, op vm.OpCode, mem *vm.Memory, stack *vm.Stack
d.win.Root().Call("setStack", val.String())
}
- stateObject.EachStorage(func(key string, node *ethutil.Value) {
- d.win.Root().Call("setStorage", storeVal{fmt.Sprintf("% x", key), fmt.Sprintf("% x", node.Str())})
- })
+ it := stateObject.Trie().Iterator()
+ for it.Next() {
+ d.win.Root().Call("setStorage", storeVal{fmt.Sprintf("% x", it.Key), fmt.Sprintf("% x", it.Value)})
+
+ }
stackFrameAt := new(big.Int).SetBytes(mem.Get(0, 32))
psize := mem.Len() - int(new(big.Int).SetBytes(mem.Get(0, 32)).Uint64())
diff --git a/cmd/mist/flags.go b/cmd/mist/flags.go
index 1d77532d90..fcee28f19b 100644
--- a/cmd/mist/flags.go
+++ b/cmd/mist/flags.go
@@ -106,7 +106,7 @@ func Init() {
flag.StringVar(&KeyStore, "keystore", "db", "system to store keyrings: db|file (db)")
flag.StringVar(&OutboundPort, "port", "30303", "listening port")
flag.BoolVar(&UseUPnP, "upnp", true, "enable UPnP support")
- flag.IntVar(&MaxPeer, "maxpeer", 10, "maximum desired peers")
+ flag.IntVar(&MaxPeer, "maxpeer", 30, "maximum desired peers")
flag.IntVar(&RpcPort, "rpcport", 8080, "port to start json-rpc server on")
flag.BoolVar(&StartRpc, "rpc", false, "start rpc server")
flag.BoolVar(&StartWebSockets, "ws", false, "start websocket server")
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index e858d7c61c..8e533d9772 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -43,38 +43,6 @@ import (
"gopkg.in/qml.v1"
)
-/*
-func LoadExtension(path string) (uintptr, error) {
- lib, err := ffi.NewLibrary(path)
- if err != nil {
- return 0, err
- }
-
- so, err := lib.Fct("sharedObject", ffi.Pointer, nil)
- if err != nil {
- return 0, err
- }
-
- ptr := so()
-
- err = lib.Close()
- if err != nil {
- return 0, err
- }
-
- return ptr.Interface().(uintptr), nil
-}
-*/
-/*
- vec, errr := LoadExtension("/Users/jeffrey/Desktop/build-libqmltest-Desktop_Qt_5_2_1_clang_64bit-Debug/liblibqmltest_debug.dylib")
- fmt.Printf("Fetched vec with addr: %#x\n", vec)
- if errr != nil {
- fmt.Println(errr)
- } else {
- context.SetVar("vec", (unsafe.Pointer)(vec))
- }
-*/
-
var guilogger = logger.NewLogger("GUI")
type Gui struct {
@@ -104,8 +72,7 @@ type Gui struct {
plugins map[string]plugin
- miner *miner.Miner
- stdLog logger.LogSystem
+ miner *miner.Miner
}
// Create GUI, but doesn't start it
@@ -145,7 +112,7 @@ func (gui *Gui) Start(assetPath string) {
// Expose the eth library and the ui library to QML
context.SetVar("gui", gui)
context.SetVar("eth", gui.uiLib)
- context.SetVar("shh", gui.whisper)
+ //context.SetVar("shh", gui.whisper)
// Load the main QML interface
data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
@@ -253,7 +220,7 @@ func (gui *Gui) setInitialChain(ancientBlocks bool) {
sBlk := gui.eth.ChainManager().LastBlockHash()
blk := gui.eth.ChainManager().GetBlock(sBlk)
for ; blk != nil; blk = gui.eth.ChainManager().GetBlock(sBlk) {
- sBlk = blk.PrevHash
+ sBlk = blk.ParentHash()
gui.processBlock(blk, true)
}
@@ -263,35 +230,33 @@ func (gui *Gui) loadAddressBook() {
view := gui.getObjectByName("infoView")
nameReg := gui.pipe.World().Config().Get("NameReg")
if nameReg != nil {
- nameReg.EachStorage(func(name string, value *ethutil.Value) {
- if name[0] != 0 {
- value.Decode()
-
- view.Call("addAddress", struct{ Name, Address string }{name, ethutil.Bytes2Hex(value.Bytes())})
+ it := nameReg.Trie().Iterator()
+ for it.Next() {
+ if it.Key[0] != 0 {
+ view.Call("addAddress", struct{ Name, Address string }{string(it.Key), ethutil.Bytes2Hex(it.Value)})
}
- })
+
+ }
}
}
func (self *Gui) loadMergedMiningOptions() {
view := self.getObjectByName("mergedMiningModel")
- nameReg := self.pipe.World().Config().Get("MergeMining")
- if nameReg != nil {
+ mergeMining := self.pipe.World().Config().Get("MergeMining")
+ if mergeMining != nil {
i := 0
- nameReg.EachStorage(func(name string, value *ethutil.Value) {
- if name[0] != 0 {
- value.Decode()
+ it := mergeMining.Trie().Iterator()
+ for it.Next() {
+ view.Call("addMergedMiningOption", struct {
+ Checked bool
+ Name, Address string
+ Id, ItemId int
+ }{false, string(it.Key), ethutil.Bytes2Hex(it.Value), 0, i})
- view.Call("addMergedMiningOption", struct {
- Checked bool
- Name, Address string
- Id, ItemId int
- }{false, name, ethutil.Bytes2Hex(value.Bytes()), 0, i})
+ i++
- i++
- }
- })
+ }
}
}
@@ -354,7 +319,7 @@ func (gui *Gui) readPreviousTransactions() {
}
func (gui *Gui) processBlock(block *types.Block, initial bool) {
- name := strings.Trim(gui.pipe.World().Config().Get("NameReg").Storage(block.Coinbase).Str(), "\x00")
+ name := strings.Trim(gui.pipe.World().Config().Get("NameReg").Storage(block.Coinbase()).Str(), "\x00")
b := xeth.NewJSBlock(block)
b.Name = name
@@ -432,7 +397,7 @@ func (gui *Gui) update() {
switch ev := ev.(type) {
case core.NewBlockEvent:
gui.processBlock(ev.Block, false)
- if bytes.Compare(ev.Block.Coinbase, gui.address()) == 0 {
+ if bytes.Compare(ev.Block.Coinbase(), gui.address()) == 0 {
gui.setWalletValue(gui.eth.ChainManager().State().GetBalance(gui.address()), nil)
}
@@ -470,7 +435,7 @@ func (gui *Gui) update() {
case <-peerUpdateTicker.C:
gui.setPeerInfo()
case <-generalUpdateTicker.C:
- statusText := "#" + gui.eth.ChainManager().CurrentBlock().Number.String()
+ statusText := "#" + gui.eth.ChainManager().CurrentBlock().Number().String()
lastBlockLabel.Set("text", statusText)
miningLabel.Set("text", "Mining @ "+strconv.FormatInt(gui.uiLib.miner.GetPow().GetHashrate(), 10)+"Khash")
@@ -535,3 +500,35 @@ func (gui *Gui) privateKey() string {
func (gui *Gui) address() []byte {
return gui.eth.KeyManager().Address()
}
+
+/*
+func LoadExtension(path string) (uintptr, error) {
+ lib, err := ffi.NewLibrary(path)
+ if err != nil {
+ return 0, err
+ }
+
+ so, err := lib.Fct("sharedObject", ffi.Pointer, nil)
+ if err != nil {
+ return 0, err
+ }
+
+ ptr := so()
+
+ err = lib.Close()
+ if err != nil {
+ return 0, err
+ }
+
+ return ptr.Interface().(uintptr), nil
+}
+*/
+/*
+ vec, errr := LoadExtension("/Users/jeffrey/Desktop/build-libqmltest-Desktop_Qt_5_2_1_clang_64bit-Debug/liblibqmltest_debug.dylib")
+ fmt.Printf("Fetched vec with addr: %#x\n", vec)
+ if errr != nil {
+ fmt.Println(errr)
+ } else {
+ context.SetVar("vec", (unsafe.Pointer)(vec))
+ }
+*/
diff --git a/cmd/mist/html_container.go b/cmd/mist/html_container.go
index b3fc219fad..bd11ccd57e 100644
--- a/cmd/mist/html_container.go
+++ b/cmd/mist/html_container.go
@@ -139,7 +139,7 @@ func (app *HtmlApplication) Window() *qml.Window {
}
func (app *HtmlApplication) NewBlock(block *types.Block) {
- b := &xeth.JSBlock{Number: int(block.BlockInfo().Number), Hash: ethutil.Bytes2Hex(block.Hash())}
+ b := &xeth.JSBlock{Number: int(block.NumberU64()), Hash: ethutil.Bytes2Hex(block.Hash())}
app.webView.Call("onNewBlockCb", b)
}
diff --git a/cmd/mist/main.go b/cmd/mist/main.go
index 3ea6e8e91f..ce5e8449a0 100644
--- a/cmd/mist/main.go
+++ b/cmd/mist/main.go
@@ -26,15 +26,17 @@ import (
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/p2p"
"gopkg.in/qml.v1"
)
const (
ClientIdentifier = "Mist"
- Version = "0.7.9"
+ Version = "0.8.0"
)
var ethereum *eth.Ethereum
+var mainlogger = logger.NewLogger("MAIN")
func run() error {
// precedence: code-internal flag default < config file < environment variables < command line
@@ -43,27 +45,24 @@ func run() error {
tstart := time.Now()
config := utils.InitConfig(VmType, ConfigFile, Datadir, "ETH")
- utils.InitDataDir(Datadir)
-
- stdLog := utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
-
- db := utils.NewDatabase()
- err := utils.DBSanityCheck(db)
+ ethereum, err := eth.New(ð.Config{
+ Name: ClientIdentifier,
+ Version: Version,
+ KeyStore: KeyStore,
+ DataDir: Datadir,
+ LogFile: LogFile,
+ LogLevel: LogLevel,
+ Identifier: Identifier,
+ MaxPeers: MaxPeer,
+ Port: OutboundPort,
+ NATType: PMPGateway,
+ PMPGateway: PMPGateway,
+ KeyRing: KeyRing,
+ })
if err != nil {
- ErrorWindow(err)
-
- os.Exit(1)
- }
- keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
-
- // create, import, export keys
- utils.KeyTasks(keyManager, KeyRing, GenAddr, SecretFile, ExportDir, NonInteractive)
- clientIdentity := utils.NewClientIdentity(ClientIdentifier, Version, Identifier, string(keyManager.PublicKey()))
- ethereum := utils.NewEthereum(db, clientIdentity, keyManager, utils.NatType(NatType, PMPGateway), OutboundPort, MaxPeer)
-
- if ShowGenesis {
- utils.ShowGenesis(ethereum)
+ mainlogger.Fatalln(err)
}
+ utils.KeyTasks(ethereum.KeyManager(), KeyRing, GenAddr, SecretFile, ExportDir, NonInteractive)
if StartRpc {
utils.StartRpc(ethereum, RpcPort)
@@ -73,8 +72,7 @@ func run() error {
utils.StartWebSockets(ethereum)
}
- gui := NewWindow(ethereum, config, clientIdentity, KeyRing, LogLevel)
- gui.stdLog = stdLog
+ gui := NewWindow(ethereum, config, ethereum.ClientIdentity().(*p2p.SimpleClientIdentity), KeyRing, LogLevel)
utils.RegisterInterrupt(func(os.Signal) {
gui.Stop()
diff --git a/cmd/mist/qml_container.go b/cmd/mist/qml_container.go
index a0a46f9b10..ed24737d0e 100644
--- a/cmd/mist/qml_container.go
+++ b/cmd/mist/qml_container.go
@@ -66,7 +66,7 @@ func (app *QmlApplication) NewWatcher(quitChan chan bool) {
// Events
func (app *QmlApplication) NewBlock(block *types.Block) {
- pblock := &xeth.JSBlock{Number: int(block.BlockInfo().Number), Hash: ethutil.Bytes2Hex(block.Hash())}
+ pblock := &xeth.JSBlock{Number: int(block.NumberU64()), Hash: ethutil.Bytes2Hex(block.Hash())}
app.win.Call("onNewBlockCb", pblock)
}
diff --git a/cmd/mist/ui_lib.go b/cmd/mist/ui_lib.go
index 68f3335631..4a92f64796 100644
--- a/cmd/mist/ui_lib.go
+++ b/cmd/mist/ui_lib.go
@@ -225,6 +225,83 @@ func (self *UiLib) StartDebugger() {
dbWindow.Show()
}
+func (self *UiLib) Transact(params map[string]interface{}) (string, error) {
+ object := mapToTxParams(params)
+
+ return self.JSXEth.Transact(
+ object["from"],
+ object["to"],
+ object["value"],
+ object["gas"],
+ object["gasPrice"],
+ object["data"],
+ )
+}
+
+func (self *UiLib) Compile(code string) (string, error) {
+ bcode, err := ethutil.Compile(code, false)
+ if err != nil {
+ return err.Error(), err
+ }
+
+ return ethutil.Bytes2Hex(bcode), err
+}
+
+func (self *UiLib) Call(params map[string]interface{}) (string, error) {
+ object := mapToTxParams(params)
+
+ return self.JSXEth.Execute(
+ object["to"],
+ object["value"],
+ object["gas"],
+ object["gasPrice"],
+ object["data"],
+ )
+}
+
+func (self *UiLib) AddLocalTransaction(to, data, gas, gasPrice, value string) int {
+ return self.miner.AddLocalTx(&miner.LocalTx{
+ To: ethutil.Hex2Bytes(to),
+ Data: ethutil.Hex2Bytes(data),
+ Gas: gas,
+ GasPrice: gasPrice,
+ Value: value,
+ }) - 1
+}
+
+func (self *UiLib) RemoveLocalTransaction(id int) {
+ self.miner.RemoveLocalTx(id)
+}
+
+func (self *UiLib) SetGasPrice(price string) {
+ self.miner.MinAcceptedGasPrice = ethutil.Big(price)
+}
+
+func (self *UiLib) ToggleMining() bool {
+ if !self.miner.Mining() {
+ self.miner.Start()
+
+ return true
+ } else {
+ self.miner.Stop()
+
+ return false
+ }
+}
+
+func (self *UiLib) ToHex(data string) string {
+ return "0x" + ethutil.Bytes2Hex([]byte(data))
+}
+
+func (self *UiLib) ToAscii(data string) string {
+ start := 0
+ if len(data) > 1 && data[0:2] == "0x" {
+ start = 2
+ }
+ return string(ethutil.Hex2Bytes(data[start:]))
+}
+
+/// Ethereum filter methods
func (self *UiLib) NewFilter(object map[string]interface{}) (id int) {
filter := qt.NewFilterFromMap(object, self.eth)
filter.MessageCallback = func(messages state.Messages) {
@@ -312,80 +389,3 @@ func mapToTxParams(object map[string]interface{}) map[string]string {
return conv
}
-
-func (self *UiLib) Transact(params map[string]interface{}) (string, error) {
- object := mapToTxParams(params)
-
- return self.JSXEth.Transact(
- object["from"],
- object["to"],
- object["value"],
- object["gas"],
- object["gasPrice"],
- object["data"],
- )
-}
-
-func (self *UiLib) Compile(code string) (string, error) {
- bcode, err := ethutil.Compile(code, false)
- if err != nil {
- return err.Error(), err
- }
-
- return ethutil.Bytes2Hex(bcode), err
-}
-
-func (self *UiLib) Call(params map[string]interface{}) (string, error) {
- object := mapToTxParams(params)
-
- return self.JSXEth.Execute(
- object["to"],
- object["value"],
- object["gas"],
- object["gasPrice"],
- object["data"],
- )
-}
-
-func (self *UiLib) AddLocalTransaction(to, data, gas, gasPrice, value string) int {
- return self.miner.AddLocalTx(&miner.LocalTx{
- To: ethutil.Hex2Bytes(to),
- Data: ethutil.Hex2Bytes(data),
- Gas: gas,
- GasPrice: gasPrice,
- Value: value,
- }) - 1
-}
-
-func (self *UiLib) RemoveLocalTransaction(id int) {
- self.miner.RemoveLocalTx(id)
-}
-
-func (self *UiLib) SetGasPrice(price string) {
- self.miner.MinAcceptedGasPrice = ethutil.Big(price)
-}
-
-func (self *UiLib) ToggleMining() bool {
- if !self.miner.Mining() {
- self.miner.Start()
-
- return true
- } else {
- self.miner.Stop()
-
- return false
- }
-}
-
-func (self *UiLib) ToHex(data string) string {
- return "0x" + ethutil.Bytes2Hex([]byte(data))
-}
-
-/*
-// XXX Refactor me & MOVE
-func (self *Ethereum) InstallFilter(filter *core.Filter) (id int) {
- return self.filterManager.InstallFilter(filter)
-}
-func (self *Ethereum) UninstallFilter(id int) { self.filterManager.UninstallFilter(id) }
-func (self *Ethereum) GetFilter(id int) *core.Filter { return self.filterManager.GetFilter(id) }
-*/
diff --git a/cmd/peerserver/main.go b/cmd/peerserver/main.go
index 0fa7a9b440..18d183f0bd 100644
--- a/cmd/peerserver/main.go
+++ b/cmd/peerserver/main.go
@@ -18,7 +18,7 @@ func main() {
marshaled := elliptic.Marshal(crypto.S256(), key.PublicKey.X, key.PublicKey.Y)
srv := p2p.Server{
- MaxPeers: 10,
+ MaxPeers: 100,
Identity: p2p.NewSimpleClientIdentity("Ethereum(G)", "0.1", "Peer Server Two", string(marshaled)),
ListenAddr: ":30301",
NAT: p2p.UPNP(),
@@ -29,12 +29,12 @@ func main() {
}
// add seed peers
- seed, err := net.ResolveTCPAddr("tcp", "poc-7.ethdev.com:30300")
+ seed, err := net.ResolveTCPAddr("tcp", "poc-8.ethdev.com:30303")
if err != nil {
fmt.Println("couldn't resolve:", err)
- os.Exit(1)
+ } else {
+ srv.SuggestPeer(seed.IP, seed.Port, nil)
}
- srv.SuggestPeer(seed.IP, seed.Port, nil)
select {}
}
diff --git a/cmd/utils/cmd.go b/cmd/utils/cmd.go
index 3e3ac617af..7e6dd5f912 100644
--- a/cmd/utils/cmd.go
+++ b/cmd/utils/cmd.go
@@ -2,9 +2,6 @@ package utils
import (
"fmt"
- "io"
- "log"
- "net"
"os"
"os/signal"
"path"
@@ -13,13 +10,13 @@ import (
"runtime"
"bitbucket.org/kardianos/osext"
+ "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/eth"
- "github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/miner"
- "github.com/ethereum/go-ethereum/p2p"
+ "github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/xeth"
)
@@ -50,15 +47,8 @@ func RunInterruptCallbacks(sig os.Signal) {
}
}
-func AbsolutePath(Datadir string, filename string) string {
- if path.IsAbs(filename) {
- return filename
- }
- return path.Join(Datadir, filename)
-}
-
func openLogFile(Datadir string, filename string) *os.File {
- path := AbsolutePath(Datadir, filename)
+ path := ethutil.AbsolutePath(Datadir, filename)
file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(fmt.Sprintf("error opening log file '%s': %v", filename, err))
@@ -74,23 +64,13 @@ func confirm(message string) bool {
if r == "n" || r == "y" {
break
} else {
- fmt.Printf("Yes or no?", r)
+ fmt.Printf("Yes or no? (%s)", r)
}
}
return r == "y"
}
-func DBSanityCheck(db ethutil.Database) error {
- d, _ := db.Get([]byte("ProtocolVersion"))
- protov := ethutil.NewValue(d).Uint()
- if protov != eth.ProtocolVersion && protov != 0 {
- return fmt.Errorf("Database version mismatch. Protocol(%d / %d). `rm -rf %s`", protov, eth.ProtocolVersion, ethutil.Config.ExecPath+"/database")
- }
-
- return nil
-}
-
-func InitDataDir(Datadir string) {
+func initDataDir(Datadir string) {
_, err := os.Stat(Datadir)
if err != nil {
if os.IsNotExist(err) {
@@ -100,26 +80,8 @@ func InitDataDir(Datadir string) {
}
}
-func InitLogging(Datadir string, LogFile string, LogLevel int, DebugFile string) logger.LogSystem {
- var writer io.Writer
- if LogFile == "" {
- writer = os.Stdout
- } else {
- writer = openLogFile(Datadir, LogFile)
- }
-
- sys := logger.NewStdLogSystem(writer, log.LstdFlags, logger.LogLevel(LogLevel))
- logger.AddLogSystem(sys)
- if DebugFile != "" {
- writer = openLogFile(Datadir, DebugFile)
- logger.AddLogSystem(logger.NewStdLogSystem(writer, log.LstdFlags, logger.DebugLevel))
- }
-
- return sys
-}
-
func InitConfig(vmType int, ConfigFile string, Datadir string, EnvPrefix string) *ethutil.ConfigManager {
- InitDataDir(Datadir)
+ initDataDir(Datadir)
cfg := ethutil.ReadConfig(ConfigFile, Datadir, EnvPrefix)
cfg.VmType = vmType
@@ -136,43 +98,6 @@ func exit(err error) {
os.Exit(status)
}
-func NewDatabase() ethutil.Database {
- db, err := ethdb.NewLDBDatabase("database")
- if err != nil {
- exit(err)
- }
- return db
-}
-
-func NewClientIdentity(clientIdentifier, version, customIdentifier string, pubkey string) *p2p.SimpleClientIdentity {
- return p2p.NewSimpleClientIdentity(clientIdentifier, version, customIdentifier, pubkey)
-}
-
-func NatType(natType string, gateway string) (nat p2p.NAT) {
- switch natType {
- case "UPNP":
- nat = p2p.UPNP()
- case "PMP":
- ip := net.ParseIP(gateway)
- if ip == nil {
- clilogger.Fatalf("cannot resolve PMP gateway IP %s", gateway)
- }
- nat = p2p.PMP(ip)
- case "":
- default:
- clilogger.Fatalf("unrecognised NAT type '%s'", natType)
- }
- return
-}
-
-func NewEthereum(db ethutil.Database, clientIdentity p2p.ClientIdentity, keyManager *crypto.KeyManager, nat p2p.NAT, OutboundPort string, MaxPeer int) *eth.Ethereum {
- ethereum, err := eth.New(db, clientIdentity, keyManager, nat, OutboundPort, MaxPeer)
- if err != nil {
- clilogger.Fatalln("eth start err:", err)
- }
- return ethereum
-}
-
func StartEthereum(ethereum *eth.Ethereum, UseSeed bool) {
clilogger.Infof("Starting %s", ethereum.ClientIdentity())
ethereum.Start(UseSeed)
@@ -182,24 +107,6 @@ func StartEthereum(ethereum *eth.Ethereum, UseSeed bool) {
})
}
-func ShowGenesis(ethereum *eth.Ethereum) {
- clilogger.Infoln(ethereum.ChainManager().Genesis())
- exit(nil)
-}
-
-func NewKeyManager(KeyStore string, Datadir string, db ethutil.Database) *crypto.KeyManager {
- var keyManager *crypto.KeyManager
- switch {
- case KeyStore == "db":
- keyManager = crypto.NewDBKeyManager(db)
- case KeyStore == "file":
- keyManager = crypto.NewFileKeyManager(Datadir)
- default:
- exit(fmt.Errorf("unknown keystore type: %s", KeyStore))
- }
- return keyManager
-}
-
func DefaultAssetPath() string {
var assetPath string
// If the current working directory is the go-ethereum dir
@@ -325,9 +232,9 @@ func BlockDo(ethereum *eth.Ethereum, hash []byte) error {
return fmt.Errorf("unknown block %x", hash)
}
- parent := ethereum.ChainManager().GetBlock(block.PrevHash)
+ parent := ethereum.ChainManager().GetBlock(block.ParentHash())
- _, err := ethereum.BlockManager().TransitionState(parent.State(), parent, block)
+ _, err := ethereum.BlockProcessor().TransitionState(parent.State(), parent, block)
if err != nil {
return err
}
@@ -335,3 +242,25 @@ func BlockDo(ethereum *eth.Ethereum, hash []byte) error {
return nil
}
+
+func ImportChain(ethereum *eth.Ethereum, fn string) error {
+ clilogger.Infof("importing chain '%s'\n", fn)
+ fh, err := os.OpenFile(fn, os.O_RDONLY, os.ModePerm)
+ if err != nil {
+ return err
+ }
+ defer fh.Close()
+
+ var chain types.Blocks
+ if err := rlp.Decode(fh, &chain); err != nil {
+ return err
+ }
+
+ ethereum.ChainManager().Reset()
+ if err := ethereum.ChainManager().InsertChain(chain); err != nil {
+ return err
+ }
+ clilogger.Infof("imported %d blocks\n", len(chain))
+
+ return nil
+}
diff --git a/cmd/utils/vm_env.go b/cmd/utils/vm_env.go
index 461a797c2d..acc2ffad95 100644
--- a/cmd/utils/vm_env.go
+++ b/cmd/utils/vm_env.go
@@ -10,6 +10,7 @@ import (
)
type VMEnv struct {
+ chain *core.ChainManager
state *state.StateDB
block *types.Block
@@ -20,8 +21,9 @@ type VMEnv struct {
Gas *big.Int
}
-func NewEnv(state *state.StateDB, block *types.Block, transactor []byte, value *big.Int) *VMEnv {
+func NewEnv(chain *core.ChainManager, state *state.StateDB, block *types.Block, transactor []byte, value *big.Int) *VMEnv {
return &VMEnv{
+ chain: chain,
state: state,
block: block,
transactor: transactor,
@@ -30,17 +32,23 @@ func NewEnv(state *state.StateDB, block *types.Block, transactor []byte, value *
}
func (self *VMEnv) Origin() []byte { return self.transactor }
-func (self *VMEnv) BlockNumber() *big.Int { return self.block.Number }
-func (self *VMEnv) PrevHash() []byte { return self.block.PrevHash }
-func (self *VMEnv) Coinbase() []byte { return self.block.Coinbase }
-func (self *VMEnv) Time() int64 { return self.block.Time }
-func (self *VMEnv) Difficulty() *big.Int { return self.block.Difficulty }
-func (self *VMEnv) BlockHash() []byte { return self.block.Hash() }
+func (self *VMEnv) BlockNumber() *big.Int { return self.block.Number() }
+func (self *VMEnv) PrevHash() []byte { return self.block.ParentHash() }
+func (self *VMEnv) Coinbase() []byte { return self.block.Coinbase() }
+func (self *VMEnv) Time() int64 { return self.block.Time() }
+func (self *VMEnv) Difficulty() *big.Int { return self.block.Difficulty() }
+func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit() }
func (self *VMEnv) Value() *big.Int { return self.value }
func (self *VMEnv) State() *state.StateDB { return self.state }
-func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
func (self *VMEnv) Depth() int { return self.depth }
func (self *VMEnv) SetDepth(i int) { self.depth = i }
+func (self *VMEnv) GetHash(n uint64) []byte {
+ if block := self.chain.GetBlockByNumber(n); block != nil {
+ return block.Hash()
+ }
+
+ return nil
+}
func (self *VMEnv) AddLog(log state.Log) {
self.state.AddLog(log)
}
@@ -52,19 +60,19 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execu
return core.NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
ret, err := exe.Call(addr, caller)
self.Gas = exe.Gas
return ret, err
}
-func (self *VMEnv) CallCode(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(caller.Address(), data, gas, price, value)
return exe.Call(addr, caller)
}
-func (self *VMEnv) Create(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(caller)
}
diff --git a/cmd/utils/websockets.go b/cmd/utils/websockets.go
index 29f9b8aebf..e4bc1b1854 100644
--- a/cmd/utils/websockets.go
+++ b/cmd/utils/websockets.go
@@ -3,10 +3,13 @@ package utils
import (
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/websocket"
"github.com/ethereum/go-ethereum/xeth"
)
+var wslogger = logger.NewLogger("WS")
+
func args(v ...interface{}) []interface{} {
return v
}
@@ -106,6 +109,8 @@ func (self *WebSocketServer) Serv() {
}
func StartWebSockets(eth *eth.Ethereum) {
+ wslogger.Infoln("Starting WebSockets")
+
sock := NewWebSocketServer(eth)
go sock.Serv()
}
diff --git a/core/block_manager.go b/core/block_processor.go
similarity index 65%
rename from core/block_manager.go
rename to core/block_processor.go
index 85b4891a5e..83399f4728 100644
--- a/core/block_manager.go
+++ b/core/block_processor.go
@@ -6,7 +6,6 @@ import (
"fmt"
"math/big"
"sync"
- "time"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
@@ -17,24 +16,13 @@ import (
"github.com/ethereum/go-ethereum/pow"
"github.com/ethereum/go-ethereum/pow/ezp"
"github.com/ethereum/go-ethereum/state"
+ "gopkg.in/fatih/set.v0"
)
var statelogger = logger.NewLogger("BLOCK")
-type Peer interface {
- Inbound() bool
- LastSend() time.Time
- LastPong() int64
- Host() []byte
- Port() uint16
- Version() string
- PingTime() string
- Connected() *int32
- Caps() *ethutil.Value
-}
-
type EthManager interface {
- BlockManager() *BlockManager
+ BlockProcessor() *BlockProcessor
ChainManager() *ChainManager
TxPool() *TxPool
PeerCount() int
@@ -47,7 +35,7 @@ type EthManager interface {
EventMux() *event.TypeMux
}
-type BlockManager struct {
+type BlockProcessor struct {
// Mutex for locking the block processor. Blocks can only be handled one at a time
mutex sync.Mutex
// Canonical block chain
@@ -69,8 +57,8 @@ type BlockManager struct {
eventMux *event.TypeMux
}
-func NewBlockManager(txpool *TxPool, chainManager *ChainManager, eventMux *event.TypeMux) *BlockManager {
- sm := &BlockManager{
+func NewBlockProcessor(txpool *TxPool, chainManager *ChainManager, eventMux *event.TypeMux) *BlockProcessor {
+ sm := &BlockProcessor{
mem: make(map[string]*big.Int),
Pow: ezp.New(),
bc: chainManager,
@@ -81,11 +69,11 @@ func NewBlockManager(txpool *TxPool, chainManager *ChainManager, eventMux *event
return sm
}
-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))
+func (sm *BlockProcessor) TransitionState(statedb *state.StateDB, parent, block *types.Block) (receipts types.Receipts, err error) {
+ coinbase := statedb.GetOrNewStateObject(block.Header().Coinbase)
+ coinbase.SetGasPool(CalcGasLimit(parent, block))
- // Process the transactions on to current block
+ // Process the transactions on to parent state
receipts, _, _, _, err = sm.ApplyTransactions(coinbase, statedb, block, block.Transactions(), false)
if err != nil {
return nil, err
@@ -94,7 +82,7 @@ func (sm *BlockManager) TransitionState(statedb *state.StateDB, parent, block *t
return receipts, nil
}
-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) {
+func (self *BlockProcessor) 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
@@ -112,7 +100,7 @@ done:
txGas := new(big.Int).Set(tx.Gas())
cb := state.GetStateObject(coinbase.Address())
- st := NewStateTransition(cb, tx, state, block)
+ st := NewStateTransition(NewEnv(state, self.bc, tx, block), tx, cb)
_, err = st.TransitionState()
if err != nil {
switch {
@@ -127,7 +115,6 @@ done:
statelogger.Infoln(err)
erroneous = append(erroneous, tx)
err = nil
- continue
}
}
@@ -141,6 +128,7 @@ done:
receipt := types.NewReceipt(state.Root(), cumulative)
receipt.SetLogs(state.Logs())
receipt.Bloom = types.CreateBloom(types.Receipts{receipt})
+ chainlogger.Debugln(receipt)
// Notify all subscribers
if !transientProcess {
@@ -156,38 +144,33 @@ done:
}
block.Reward = cumulativeSum
- block.GasUsed = totalUsedGas
+ block.Header().GasUsed = totalUsedGas
return receipts, handled, unhandled, erroneous, err
}
-func (sm *BlockManager) Process(block *types.Block) (td *big.Int, msgs state.Messages, err error) {
+func (sm *BlockProcessor) Process(block *types.Block) (td *big.Int, msgs state.Messages, err error) {
// Processing a blocks may never happen simultaneously
sm.mutex.Lock()
defer sm.mutex.Unlock()
- if sm.bc.HasBlock(block.Hash()) {
- return nil, nil, &KnownBlockError{block.Number, block.Hash()}
+ header := block.Header()
+ if sm.bc.HasBlock(header.Hash()) {
+ return nil, nil, &KnownBlockError{header.Number, header.Hash()}
}
- if !sm.bc.HasBlock(block.PrevHash) {
- return nil, nil, ParentError(block.PrevHash)
+ if !sm.bc.HasBlock(header.ParentHash) {
+ return nil, nil, ParentError(header.ParentHash)
}
- parent := sm.bc.GetBlock(block.PrevHash)
+ parent := sm.bc.GetBlock(header.ParentHash)
return sm.ProcessWithParent(block, parent)
}
-func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.Int, messages state.Messages, err error) {
+func (sm *BlockProcessor) ProcessWithParent(block, parent *types.Block) (td *big.Int, messages state.Messages, err error) {
sm.lastAttemptedBlock = block
- state := parent.State().Copy()
-
- // Defer the Undo on the Trie. If the block processing happened
- // we don't want to undo but since undo only happens on dirty
- // nodes this won't happen because Commit would have been called
- // before that.
- defer state.Reset()
+ state := state.New(parent.Trie().Copy())
// Block validation
if err = sm.ValidateBlock(block, parent); err != nil {
@@ -199,21 +182,24 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
return
}
+ header := block.Header()
+
rbloom := types.CreateBloom(receipts)
- if bytes.Compare(rbloom, block.LogsBloom) != 0 {
+ if bytes.Compare(rbloom, header.Bloom) != 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)
+ if bytes.Compare(txSha, header.TxHash) != 0 {
+ err = fmt.Errorf("validating transaction root. received=%x got=%x", header.TxHash, 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)
+ if bytes.Compare(receiptSha, header.ReceiptHash) != 0 {
+ fmt.Println("receipts", receipts)
+ err = fmt.Errorf("validating receipt root. received=%x got=%x", header.ReceiptHash, receiptSha)
return
}
@@ -223,8 +209,8 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
state.Update(ethutil.Big0)
- if !block.State().Cmp(state) {
- err = fmt.Errorf("invalid merkle root. received=%x got=%x", block.Root(), state.Root())
+ if !bytes.Equal(header.Root, state.Root()) {
+ err = fmt.Errorf("invalid merkle root. received=%x got=%x", header.Root, state.Root())
return
}
@@ -233,10 +219,12 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
// Sync the current block's state to the database and cancelling out the deferred Undo
state.Sync()
+ state.Manifest().SetHash(block.Hash())
+
messages := state.Manifest().Messages
state.Manifest().Reset()
- chainlogger.Infof("Processed block #%d (%x...)\n", block.Number, block.Hash()[0:4])
+ chainlogger.Infof("processed block #%d (%x...)\n", header.Number, block.Hash()[0:4])
sm.txpool.RemoveSet(block.Transactions())
@@ -246,16 +234,16 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
}
}
-func (sm *BlockManager) CalculateTD(block *types.Block) (*big.Int, bool) {
+func (sm *BlockProcessor) CalculateTD(block *types.Block) (*big.Int, bool) {
uncleDiff := new(big.Int)
- for _, uncle := range block.Uncles {
+ for _, uncle := range block.Uncles() {
uncleDiff = uncleDiff.Add(uncleDiff, uncle.Difficulty)
}
// TD(genesis_block) = 0 and TD(B) = TD(B.parent) + sum(u.difficulty for u in B.uncles) + B.difficulty
td := new(big.Int)
td = td.Add(sm.bc.Td(), uncleDiff)
- td = td.Add(td, block.Difficulty)
+ td = td.Add(td, block.Header().Difficulty)
// The new TD will only be accepted if the new difficulty is
// is greater than the previous.
@@ -269,15 +257,15 @@ func (sm *BlockManager) CalculateTD(block *types.Block) (*big.Int, bool) {
// Validates the current block. Returns an error if the block was invalid,
// an uncle or anything that isn't on the current block chain.
// Validation validates easy over difficult (dagger takes longer time = difficult)
-func (sm *BlockManager) ValidateBlock(block, parent *types.Block) error {
+func (sm *BlockProcessor) ValidateBlock(block, parent *types.Block) error {
expd := CalcDifficulty(block, parent)
- if expd.Cmp(block.Difficulty) < 0 {
- return fmt.Errorf("Difficulty check failed for block %v, %v", block.Difficulty, expd)
+ if expd.Cmp(block.Header().Difficulty) < 0 {
+ return fmt.Errorf("Difficulty check failed for block %v, %v", block.Header().Difficulty, expd)
}
- diff := block.Time - parent.Time
+ diff := block.Header().Time - parent.Header().Time
if diff < 0 {
- return ValidationError("Block timestamp less then prev block %v (%v - %v)", diff, block.Time, sm.bc.CurrentBlock().Time)
+ return ValidationError("Block timestamp less then prev block %v (%v - %v)", diff, block.Header().Time, sm.bc.CurrentBlock().Header().Time)
}
/* XXX
@@ -289,33 +277,37 @@ 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 /*block.HashNoNonce(), block.Difficulty, block.Nonce*/) {
- return ValidationError("Block's nonce is invalid (= %v)", ethutil.Bytes2Hex(block.Nonce))
+ return ValidationError("Block's nonce is invalid (= %v)", ethutil.Bytes2Hex(block.Header().Nonce))
}
return nil
}
-func (sm *BlockManager) AccumelateRewards(statedb *state.StateDB, block, parent *types.Block) error {
+func (sm *BlockProcessor) AccumelateRewards(statedb *state.StateDB, block, parent *types.Block) error {
reward := new(big.Int).Set(BlockReward)
- knownUncles := ethutil.Set(parent.Uncles)
- nonces := ethutil.NewSet(block.Nonce)
- for _, uncle := range block.Uncles {
+ knownUncles := set.New()
+ for _, uncle := range parent.Uncles() {
+ knownUncles.Add(string(uncle.Hash()))
+ }
+
+ nonces := ethutil.NewSet(block.Header().Nonce)
+ for _, uncle := range block.Uncles() {
if nonces.Include(uncle.Nonce) {
// Error not unique
return UncleError("Uncle not unique")
}
- uncleParent := sm.bc.GetBlock(uncle.PrevHash)
+ uncleParent := sm.bc.GetBlock(uncle.ParentHash)
if uncleParent == nil {
- return UncleError(fmt.Sprintf("Uncle's parent unknown (%x)", uncle.PrevHash[0:4]))
+ return UncleError(fmt.Sprintf("Uncle's parent unknown (%x)", uncle.ParentHash[0:4]))
}
- if uncleParent.Number.Cmp(new(big.Int).Sub(parent.Number, big.NewInt(6))) < 0 {
+ if uncleParent.Header().Number.Cmp(new(big.Int).Sub(parent.Header().Number, big.NewInt(6))) < 0 {
return UncleError("Uncle too old")
}
- if knownUncles.Include(uncle.Hash()) {
+ if knownUncles.Has(string(uncle.Hash())) {
return UncleError("Uncle in chain")
}
@@ -331,31 +323,31 @@ func (sm *BlockManager) AccumelateRewards(statedb *state.StateDB, block, parent
}
// Get the account associated with the coinbase
- account := statedb.GetAccount(block.Coinbase)
+ account := statedb.GetAccount(block.Header().Coinbase)
// Reward amount of ether to the coinbase address
account.AddAmount(reward)
statedb.Manifest().AddMessage(&state.Message{
- To: block.Coinbase,
- Input: nil,
- Origin: nil,
- Block: block.Hash(), Timestamp: block.Time, Coinbase: block.Coinbase, Number: block.Number,
+ To: block.Header().Coinbase,
+ Input: nil,
+ Origin: nil,
+ Timestamp: int64(block.Header().Time), Coinbase: block.Header().Coinbase, Number: block.Header().Number,
Value: new(big.Int).Add(reward, block.Reward),
})
return nil
}
-func (sm *BlockManager) GetMessages(block *types.Block) (messages []*state.Message, err error) {
- if !sm.bc.HasBlock(block.PrevHash) {
- return nil, ParentError(block.PrevHash)
+func (sm *BlockProcessor) GetMessages(block *types.Block) (messages []*state.Message, err error) {
+ if !sm.bc.HasBlock(block.Header().ParentHash) {
+ return nil, ParentError(block.Header().ParentHash)
}
sm.lastAttemptedBlock = block
var (
- parent = sm.bc.GetBlock(block.PrevHash)
- state = parent.State().Copy()
+ parent = sm.bc.GetBlock(block.Header().ParentHash)
+ state = state.New(parent.Trie().Copy())
)
defer state.Reset()
diff --git a/core/chain_manager.go b/core/chain_manager.go
index e6268c01e0..82b17cd931 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -1,6 +1,7 @@
package core
import (
+ "bytes"
"fmt"
"math/big"
"sync"
@@ -9,42 +10,49 @@ import (
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/state"
)
var chainlogger = logger.NewLogger("CHAIN")
-func AddTestNetFunds(block *types.Block) {
- for _, addr := range []string{
- "51ba59315b3a95761d0863b05ccc7a7f54703d99",
- "e4157b34ea9615cfbde6b4fda419828124b70c78",
- "b9c015918bdaba24b4ff057a92a3873d6eb201be",
- "6c386a4b26f73c802f34673f7248bb118f97424a",
- "cd2a3d9f938e13cd947ec05abc7fe734df8dd826",
- "2ef47100e0787b915105fd5e3f4ff6752079d5cb",
- "e6716f9544a56c530d868e4bfbacb172315bdead",
- "1a26338f0d905e295fccb71fa9ea849ffa12aaf4",
- } {
- codedAddr := ethutil.Hex2Bytes(addr)
- account := block.State().GetAccount(codedAddr)
- account.SetBalance(ethutil.Big("1606938044258990275541962092341162602522202993782792835301376")) //ethutil.BigPow(2, 200)
- block.State().UpdateStateObject(account)
- }
+type StateQuery interface {
+ GetAccount(addr []byte) *state.StateObject
}
func CalcDifficulty(block, parent *types.Block) *big.Int {
diff := new(big.Int)
- adjust := new(big.Int).Rsh(parent.Difficulty, 10)
- if block.Time >= parent.Time+5 {
- diff.Sub(parent.Difficulty, adjust)
+ bh, ph := block.Header(), parent.Header()
+ adjust := new(big.Int).Rsh(ph.Difficulty, 10)
+ if bh.Time >= ph.Time+5 {
+ diff.Sub(ph.Difficulty, adjust)
} else {
- diff.Add(parent.Difficulty, adjust)
+ diff.Add(ph.Difficulty, adjust)
}
return diff
}
+func CalcGasLimit(parent, block *types.Block) *big.Int {
+ if block.Number().Cmp(big.NewInt(0)) == 0 {
+ return ethutil.BigPow(10, 6)
+ }
+
+ // ((1024-1) * parent.gasLimit + (gasUsed * 6 / 5)) / 1024
+
+ previous := new(big.Int).Mul(big.NewInt(1024-1), parent.GasLimit())
+ current := new(big.Rat).Mul(new(big.Rat).SetInt(parent.GasUsed()), big.NewRat(6, 5))
+ curInt := new(big.Int).Div(current.Num(), current.Denom())
+
+ result := new(big.Int).Add(previous, curInt)
+ result.Div(result, big.NewInt(1024))
+
+ min := big.NewInt(125000)
+
+ return ethutil.BigMax(min, result)
+}
+
type ChainManager struct {
//eth EthManager
processor types.BlockProcessor
@@ -90,7 +98,7 @@ func (self *ChainManager) CurrentBlock() *types.Block {
func NewChainManager(mux *event.TypeMux) *ChainManager {
bc := &ChainManager{}
- bc.genesisBlock = types.NewBlockFromBytes(ethutil.Encode(Genesis))
+ bc.genesisBlock = GenesisBlock()
bc.eventMux = mux
bc.setLastBlock()
@@ -112,7 +120,7 @@ func (self *ChainManager) SetProcessor(proc types.BlockProcessor) {
}
func (self *ChainManager) State() *state.StateDB {
- return self.CurrentBlock().State()
+ return state.New(self.CurrentBlock().Trie())
}
func (self *ChainManager) TransState() *state.StateDB {
@@ -122,13 +130,11 @@ func (self *ChainManager) TransState() *state.StateDB {
func (bc *ChainManager) setLastBlock() {
data, _ := ethutil.Config.Db.Get([]byte("LastBlock"))
if len(data) != 0 {
- // Prep genesis
- AddTestNetFunds(bc.genesisBlock)
-
- block := types.NewBlockFromBytes(data)
- bc.currentBlock = block
+ var block types.Block
+ rlp.Decode(bytes.NewReader(data), &block)
+ bc.currentBlock = &block
bc.lastBlockHash = block.Hash()
- bc.lastBlockNumber = block.Number.Uint64()
+ bc.lastBlockNumber = block.Header().Number.Uint64()
// Set the last know difficulty (might be 0x0 as initial value, Genesis)
bc.td = ethutil.BigD(ethutil.Config.Db.LastKnownTD())
@@ -144,27 +150,28 @@ func (bc *ChainManager) NewBlock(coinbase []byte) *types.Block {
bc.mu.RLock()
defer bc.mu.RUnlock()
- var root interface{}
- hash := ZeroHash256
+ var root []byte
+ parentHash := ZeroHash256
if bc.CurrentBlock != nil {
- root = bc.currentBlock.Root()
- hash = bc.lastBlockHash
+ root = bc.currentBlock.Header().Root
+ parentHash = bc.lastBlockHash
}
- block := types.CreateBlock(
- root,
- hash,
+ block := types.NewBlock(
+ parentHash,
coinbase,
+ root,
ethutil.BigPow(2, 32),
nil,
"")
parent := bc.currentBlock
if parent != nil {
- block.Difficulty = CalcDifficulty(block, parent)
- block.Number = new(big.Int).Add(bc.currentBlock.Number, ethutil.Big1)
- block.GasLimit = block.CalcGasLimit(bc.currentBlock)
+ header := block.Header()
+ header.Difficulty = CalcDifficulty(block, parent)
+ header.Number = new(big.Int).Add(parent.Header().Number, ethutil.Big1)
+ header.GasLimit = CalcGasLimit(parent, block)
}
@@ -175,36 +182,34 @@ func (bc *ChainManager) Reset() {
bc.mu.Lock()
defer bc.mu.Unlock()
- AddTestNetFunds(bc.genesisBlock)
+ for block := bc.currentBlock; block != nil; block = bc.GetBlock(block.Header().ParentHash) {
+ ethutil.Config.Db.Delete(block.Hash())
+ }
- bc.genesisBlock.Trie().Sync()
// Prepare the genesis block
bc.write(bc.genesisBlock)
bc.insert(bc.genesisBlock)
bc.currentBlock = bc.genesisBlock
bc.setTotalDifficulty(ethutil.Big("0"))
-
- // Set the last know difficulty (might be 0x0 as initial value, Genesis)
- bc.td = ethutil.BigD(ethutil.Config.Db.LastKnownTD())
}
func (self *ChainManager) Export() []byte {
self.mu.RLock()
defer self.mu.RUnlock()
- chainlogger.Infof("exporting %v blocks...\n", self.currentBlock.Number)
+ chainlogger.Infof("exporting %v blocks...\n", self.currentBlock.Header().Number)
- blocks := make([]*types.Block, int(self.currentBlock.Number.Int64())+1)
- for block := self.currentBlock; block != nil; block = self.GetBlock(block.PrevHash) {
- blocks[block.Number.Int64()] = block
+ blocks := make([]*types.Block, int(self.currentBlock.NumberU64())+1)
+ for block := self.currentBlock; block != nil; block = self.GetBlock(block.Header().ParentHash) {
+ blocks[block.NumberU64()] = block
}
return ethutil.Encode(blocks)
}
func (bc *ChainManager) insert(block *types.Block) {
- encodedBlock := block.RlpEncode()
+ encodedBlock := ethutil.Encode(block)
ethutil.Config.Db.Put([]byte("LastBlock"), encodedBlock)
bc.currentBlock = block
bc.lastBlockHash = block.Hash()
@@ -213,7 +218,7 @@ func (bc *ChainManager) insert(block *types.Block) {
func (bc *ChainManager) write(block *types.Block) {
bc.writeBlockInfo(block)
- encodedBlock := block.RlpEncode()
+ encodedBlock := ethutil.Encode(block)
ethutil.Config.Db.Put(block.Hash(), encodedBlock)
}
@@ -238,11 +243,11 @@ func (self *ChainManager) GetBlockHashesFromHash(hash []byte, max uint64) (chain
for i := uint64(0); i < max; i++ {
chain = append(chain, block.Hash())
- if block.Number.Cmp(ethutil.Big0) <= 0 {
+ if block.Header().Number.Cmp(ethutil.Big0) <= 0 {
break
}
- block = self.GetBlock(block.PrevHash)
+ block = self.GetBlock(block.Header().ParentHash)
}
return
@@ -253,23 +258,28 @@ func (self *ChainManager) GetBlock(hash []byte) *types.Block {
if len(data) == 0 {
return nil
}
+ var block types.Block
+ if err := rlp.Decode(bytes.NewReader(data), &block); err != nil {
+ fmt.Println(err)
+ return nil
+ }
- return types.NewBlockFromBytes(data)
+ return &block
}
func (self *ChainManager) GetBlockByNumber(num uint64) *types.Block {
self.mu.RLock()
defer self.mu.RUnlock()
- block := self.currentBlock
- for ; block != nil; block = self.GetBlock(block.PrevHash) {
- if block.Number.Uint64() == num {
- break
- }
- }
+ var block *types.Block
- if block != nil && block.Number.Uint64() == 0 && num != 0 {
- return nil
+ if num <= self.currentBlock.Number().Uint64() {
+ block = self.currentBlock
+ for ; block != nil; block = self.GetBlock(block.Header().ParentHash) {
+ if block.Header().Number.Uint64() == num {
+ break
+ }
+ }
}
return block
@@ -281,40 +291,28 @@ func (bc *ChainManager) setTotalDifficulty(td *big.Int) {
}
func (self *ChainManager) CalcTotalDiff(block *types.Block) (*big.Int, error) {
- parent := self.GetBlock(block.PrevHash)
+ parent := self.GetBlock(block.Header().ParentHash)
if parent == nil {
- return nil, fmt.Errorf("Unable to calculate total diff without known parent %x", block.PrevHash)
+ return nil, fmt.Errorf("Unable to calculate total diff without known parent %x", block.Header().ParentHash)
}
- parentTd := parent.BlockInfo().TD
+ parentTd := parent.Td
uncleDiff := new(big.Int)
- for _, uncle := range block.Uncles {
+ for _, uncle := range block.Uncles() {
uncleDiff = uncleDiff.Add(uncleDiff, uncle.Difficulty)
}
td := new(big.Int)
td = td.Add(parentTd, uncleDiff)
- td = td.Add(td, block.Difficulty)
+ td = td.Add(td, block.Header().Difficulty)
return td, nil
}
-func (bc *ChainManager) BlockInfo(block *types.Block) types.BlockInfo {
- bi := types.BlockInfo{}
- data, _ := ethutil.Config.Db.Get(append(block.Hash(), []byte("Info")...))
- bi.RlpDecode(data)
-
- return bi
-}
-
// Unexported method for writing extra non-essential block info to the db
func (bc *ChainManager) writeBlockInfo(block *types.Block) {
bc.lastBlockNumber++
- bi := types.BlockInfo{Number: bc.lastBlockNumber, Hash: block.Hash(), Parent: block.PrevHash, TD: bc.td}
-
- // For now we use the block hash with the words "info" appended as key
- ethutil.Config.Db.Put(append(block.Hash(), []byte("Info")...), bi.RlpEncode())
}
func (bc *ChainManager) Stop() {
@@ -331,24 +329,26 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
continue
}
- chainlogger.Infof("block #%v process failed (%x)\n", block.Number, block.Hash()[:4])
+ h := block.Header()
+ chainlogger.Infof("block #%v process failed (%x)\n", h.Number, h.Hash()[:4])
chainlogger.Infoln(block)
chainlogger.Infoln(err)
return err
}
+ block.Td = td
self.mu.Lock()
{
-
self.write(block)
+ cblock := self.currentBlock
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])
+ if block.Header().Number.Cmp(new(big.Int).Add(cblock.Header().Number, ethutil.Big1)) < 0 {
+ chainlogger.Infof("Split detected. New head #%v (%x), was #%v (%x)\n", block.Header().Number, block.Hash()[:4], cblock.Header().Number, cblock.Hash()[:4])
}
self.setTotalDifficulty(td)
self.insert(block)
- self.transState = self.currentBlock.State().Copy()
+ self.transState = state.New(cblock.Trie().Copy())
}
}
@@ -360,3 +360,8 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
return nil
}
+
+// Satisfy state query interface
+func (self *ChainManager) GetAccount(addr []byte) *state.StateObject {
+ return self.State().GetAccount(addr)
+}
diff --git a/core/chain_manager_test.go b/core/chain_manager_test.go
index 52be8b0eab..2ed3c6c9e0 100644
--- a/core/chain_manager_test.go
+++ b/core/chain_manager_test.go
@@ -2,27 +2,26 @@ package core
import (
"fmt"
+ "os"
"path"
+ "reflect"
"runtime"
+ "strconv"
"testing"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
- //logpkg "github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/rlp"
)
-//var Logger logpkg.LogSystem
-//var Log = logpkg.NewLogger("TEST")
-
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
- //Logger = logpkg.NewStdLogSystem(os.Stdout, log.LstdFlags, logpkg.InfoLevel)
- //logpkg.AddLogSystem(Logger)
-
ethutil.ReadConfig("/tmp/ethtest", "/tmp/ethtest", "ETH")
+}
+func reset() {
db, err := ethdb.NewMemDatabase()
if err != nil {
panic("Could not create mem-db, failing")
@@ -30,20 +29,19 @@ func init() {
ethutil.Config.Db = db
}
-func loadChain(fn string, t *testing.T) types.Blocks {
- c1, err := ethutil.ReadAllFile(path.Join("..", "_data", fn))
+func loadChain(fn string, t *testing.T) (types.Blocks, error) {
+ fh, err := os.OpenFile(path.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "_data", fn), os.O_RDONLY, os.ModePerm)
if err != nil {
- fmt.Println(err)
- t.FailNow()
+ return nil, err
}
- value := ethutil.NewValueFromBytes([]byte(c1))
- blocks := make(types.Blocks, value.Len())
- it := value.NewIterator()
- for it.Next() {
- blocks[it.Idx()] = types.NewBlockFromRlpValue(it.Value())
+ defer fh.Close()
+
+ var chain types.Blocks
+ if err := rlp.Decode(fh, &chain); err != nil {
+ return nil, err
}
- return blocks
+ return chain, nil
}
func insertChain(done chan bool, chainMan *ChainManager, chain types.Blocks, t *testing.T) {
@@ -56,11 +54,23 @@ func insertChain(done chan bool, chainMan *ChainManager, chain types.Blocks, t *
}
func TestChainInsertions(t *testing.T) {
- chain1 := loadChain("chain1", t)
- chain2 := loadChain("chain2", t)
+ reset()
+
+ chain1, err := loadChain("valid1", t)
+ if err != nil {
+ fmt.Println(err)
+ t.FailNow()
+ }
+
+ chain2, err := loadChain("valid2", t)
+ if err != nil {
+ fmt.Println(err)
+ t.FailNow()
+ }
+
var eventMux event.TypeMux
chainMan := NewChainManager(&eventMux)
- txPool := NewTxPool(chainMan, nil, &eventMux)
+ txPool := NewTxPool(&eventMux)
blockMan := NewBlockManager(txPool, chainMan, &eventMux)
chainMan.SetProcessor(blockMan)
@@ -73,5 +83,56 @@ func TestChainInsertions(t *testing.T) {
for i := 0; i < max; i++ {
<-done
}
- fmt.Println(chainMan.CurrentBlock())
+
+ if reflect.DeepEqual(chain2[len(chain2)-1], chainMan.CurrentBlock()) {
+ t.Error("chain2 is canonical and shouldn't be")
+ }
+
+ if !reflect.DeepEqual(chain1[len(chain1)-1], chainMan.CurrentBlock()) {
+ t.Error("chain1 isn't canonical and should be")
+ }
+}
+
+func TestChainMultipleInsertions(t *testing.T) {
+ reset()
+
+ const max = 4
+ chains := make([]types.Blocks, max)
+ var longest int
+ for i := 0; i < max; i++ {
+ var err error
+ name := "valid" + strconv.Itoa(i+1)
+ chains[i], err = loadChain(name, t)
+ if len(chains[i]) >= len(chains[longest]) {
+ longest = i
+ }
+ fmt.Println("loaded", name, "with a length of", len(chains[i]))
+ if err != nil {
+ fmt.Println(err)
+ t.FailNow()
+ }
+ }
+ var eventMux event.TypeMux
+ chainMan := NewChainManager(&eventMux)
+ txPool := NewTxPool(&eventMux)
+ blockMan := NewBlockManager(txPool, chainMan, &eventMux)
+ chainMan.SetProcessor(blockMan)
+ done := make(chan bool, max)
+ for i, chain := range chains {
+ // XXX the go routine would otherwise reference the same (chain[3]) variable and fail
+ i := i
+ chain := chain
+ go func() {
+ insertChain(done, chainMan, chain, t)
+ fmt.Println(i, "done")
+ }()
+ }
+
+ for i := 0; i < max; i++ {
+ <-done
+ }
+
+ if !reflect.DeepEqual(chains[longest][len(chains[longest])-1], chainMan.CurrentBlock()) {
+ t.Error("Invalid canonical chain")
+ }
}
diff --git a/core/execution.go b/core/execution.go
index cd98746c41..a7bb596516 100644
--- a/core/execution.go
+++ b/core/execution.go
@@ -3,41 +3,39 @@ package core
import (
"fmt"
"math/big"
+ "time"
"github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/vm"
)
type Execution struct {
- vm vm.VirtualMachine
+ env vm.Environment
address, input []byte
Gas, price, value *big.Int
- object *state.StateObject
SkipTransfer bool
}
func NewExecution(env vm.Environment, address, input []byte, gas, gasPrice, value *big.Int) *Execution {
- evm := vm.New(env, vm.DebugVmTy)
-
- return &Execution{vm: evm, address: address, input: input, Gas: gas, price: gasPrice, value: value}
+ return &Execution{env: env, address: address, input: input, Gas: gas, price: gasPrice, value: value}
}
func (self *Execution) Addr() []byte {
return self.address
}
-func (self *Execution) Call(codeAddr []byte, caller vm.ClosureRef) ([]byte, error) {
+func (self *Execution) Call(codeAddr []byte, caller vm.ContextRef) ([]byte, error) {
// Retrieve the executing code
- code := self.vm.Env().State().GetCode(codeAddr)
+ code := self.env.State().GetCode(codeAddr)
return self.exec(code, codeAddr, caller)
}
-func (self *Execution) exec(code, contextAddr []byte, caller vm.ClosureRef) (ret []byte, err error) {
- env := self.vm.Env()
- chainlogger.Debugf("pre state %x\n", env.State().Root())
+func (self *Execution) exec(code, contextAddr []byte, caller vm.ContextRef) (ret []byte, err error) {
+ env := self.env
+ evm := vm.New(env, vm.DebugVmTy)
- if self.vm.Env().Depth() == vm.MaxCallDepth {
+ if env.Depth() == vm.MaxCallDepth {
// Consume all gas (by not returning it) and return a depth error
return nil, vm.DepthError{}
}
@@ -55,22 +53,19 @@ func (self *Execution) exec(code, contextAddr []byte, caller vm.ClosureRef) (ret
}
snapshot := env.State().Copy()
- defer func() {
- if /*vm.IsDepthErr(err) ||*/ vm.IsOOGErr(err) {
- env.State().Set(snapshot)
- }
- chainlogger.Debugf("post state %x\n", env.State().Root())
- }()
-
- self.object = to
- ret, err = self.vm.Run(to, caller, code, self.value, self.Gas, self.price, self.input)
+ start := time.Now()
+ ret, err = evm.Run(to, caller, code, self.value, self.Gas, self.price, self.input)
+ if err != nil {
+ env.State().Set(snapshot)
+ }
+ chainlogger.Debugf("vm took %v\n", time.Since(start))
return
}
-func (self *Execution) Create(caller vm.ClosureRef) (ret []byte, err error, account *state.StateObject) {
+func (self *Execution) Create(caller vm.ContextRef) (ret []byte, err error, account *state.StateObject) {
ret, err = self.exec(self.input, nil, caller)
- account = self.vm.Env().State().GetStateObject(self.address)
+ account = self.env.State().GetStateObject(self.address)
return
}
diff --git a/core/filter.go b/core/filter.go
index fb992782df..29be8841c9 100644
--- a/core/filter.go
+++ b/core/filter.go
@@ -76,13 +76,14 @@ func (self *Filter) SetSkip(skip int) {
// Run filters messages with the current parameters set
func (self *Filter) Find() []*state.Message {
+ earliestBlock := self.eth.ChainManager().CurrentBlock()
var earliestBlockNo uint64 = uint64(self.earliest)
if self.earliest == -1 {
- earliestBlockNo = self.eth.ChainManager().CurrentBlock().Number.Uint64()
+ earliestBlockNo = earliestBlock.NumberU64()
}
var latestBlockNo uint64 = uint64(self.latest)
if self.latest == -1 {
- latestBlockNo = self.eth.ChainManager().CurrentBlock().Number.Uint64()
+ latestBlockNo = earliestBlock.NumberU64()
}
var (
@@ -93,7 +94,7 @@ func (self *Filter) Find() []*state.Message {
for i := 0; !quit && block != nil; i++ {
// Quit on latest
switch {
- case block.Number.Uint64() == earliestBlockNo, block.Number.Uint64() == 0:
+ case block.NumberU64() == earliestBlockNo, block.NumberU64() == 0:
quit = true
case self.max <= len(messages):
break
@@ -103,7 +104,7 @@ func (self *Filter) Find() []*state.Message {
// current parameters
if self.bloomFilter(block) {
// Get the messages of the block
- msgs, err := self.eth.BlockManager().GetMessages(block)
+ msgs, err := self.eth.BlockProcessor().GetMessages(block)
if err != nil {
chainlogger.Warnln("err: filter get messages ", err)
@@ -113,7 +114,7 @@ func (self *Filter) Find() []*state.Message {
messages = append(messages, self.FilterMessages(msgs)...)
}
- block = self.eth.ChainManager().GetBlock(block.PrevHash)
+ block = self.eth.ChainManager().GetBlock(block.ParentHash())
}
skip := int(math.Min(float64(len(messages)), float64(self.skip)))
@@ -176,7 +177,7 @@ func (self *Filter) bloomFilter(block *types.Block) bool {
var fromIncluded, toIncluded bool
if len(self.from) > 0 {
for _, from := range self.from {
- if types.BloomLookup(block.LogsBloom, from) || bytes.Equal(block.Coinbase, from) {
+ if types.BloomLookup(block.Bloom(), from) || bytes.Equal(block.Coinbase(), from) {
fromIncluded = true
break
}
@@ -187,7 +188,7 @@ func (self *Filter) bloomFilter(block *types.Block) bool {
if len(self.to) > 0 {
for _, to := range self.to {
- if types.BloomLookup(block.LogsBloom, ethutil.U256(new(big.Int).Add(ethutil.Big1, ethutil.BigD(to))).Bytes()) || bytes.Equal(block.Coinbase, to) {
+ if types.BloomLookup(block.Bloom(), ethutil.U256(new(big.Int).Add(ethutil.Big1, ethutil.BigD(to))).Bytes()) || bytes.Equal(block.Coinbase(), to) {
toIncluded = true
break
}
diff --git a/core/genesis.go b/core/genesis.go
index 707154759a..10b40516ff 100644
--- a/core/genesis.go
+++ b/core/genesis.go
@@ -3,8 +3,10 @@ package core
import (
"math/big"
+ "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/state"
)
/*
@@ -17,36 +19,35 @@ var ZeroHash512 = make([]byte, 64)
var EmptyShaList = crypto.Sha3(ethutil.Encode([]interface{}{}))
var EmptyListRoot = crypto.Sha3(ethutil.Encode(""))
-var GenesisHeader = []interface{}{
- // Previous hash (none)
- ZeroHash256,
- // Empty uncles
- EmptyShaList,
- // Coinbase
- ZeroHash160,
- // Root state
- EmptyShaList,
- // tx root
- EmptyListRoot,
- // receipt root
- EmptyListRoot,
- // bloom
- ZeroHash512,
- // Difficulty
- //ethutil.BigPow(2, 22),
- big.NewInt(131072),
- // Number
- ethutil.Big0,
- // Block upper gas bound
- big.NewInt(1000000),
- // Block gas used
- ethutil.Big0,
- // Time
- ethutil.Big0,
- // Extra
- nil,
- // Nonce
- crypto.Sha3(big.NewInt(42).Bytes()),
-}
+func GenesisBlock() *types.Block {
+ genesis := types.NewBlock(ZeroHash256, ZeroHash160, nil, big.NewInt(131072), crypto.Sha3(big.NewInt(42).Bytes()), "")
+ genesis.Header().Number = ethutil.Big0
+ genesis.Header().GasLimit = big.NewInt(1000000)
+ genesis.Header().GasUsed = ethutil.Big0
+ genesis.Header().Time = 0
-var Genesis = []interface{}{GenesisHeader, []interface{}{}, []interface{}{}}
+ genesis.SetUncles([]*types.Header{})
+ genesis.SetTransactions(types.Transactions{})
+ genesis.SetReceipts(types.Receipts{})
+
+ statedb := state.New(genesis.Trie())
+ for _, addr := range []string{
+ "51ba59315b3a95761d0863b05ccc7a7f54703d99",
+ "e4157b34ea9615cfbde6b4fda419828124b70c78",
+ "b9c015918bdaba24b4ff057a92a3873d6eb201be",
+ "6c386a4b26f73c802f34673f7248bb118f97424a",
+ "cd2a3d9f938e13cd947ec05abc7fe734df8dd826",
+ "2ef47100e0787b915105fd5e3f4ff6752079d5cb",
+ "e6716f9544a56c530d868e4bfbacb172315bdead",
+ "1a26338f0d905e295fccb71fa9ea849ffa12aaf4",
+ } {
+ codedAddr := ethutil.Hex2Bytes(addr)
+ account := statedb.GetAccount(codedAddr)
+ account.SetBalance(ethutil.Big("1606938044258990275541962092341162602522202993782792835301376")) //ethutil.BigPow(2, 200)
+ statedb.UpdateStateObject(account)
+ }
+ statedb.Sync()
+ genesis.Header().Root = statedb.Root()
+
+ return genesis
+}
diff --git a/core/helper_test.go b/core/helper_test.go
index b340144fdd..b8bf254d76 100644
--- a/core/helper_test.go
+++ b/core/helper_test.go
@@ -9,7 +9,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
- "github.com/ethereum/go-ethereum/wire"
+ "github.com/ethereum/go-ethereum/p2p"
)
// Implement our EthTest Manager
@@ -54,11 +54,11 @@ func (tm *TestManager) TxPool() *TxPool {
func (tm *TestManager) EventMux() *event.TypeMux {
return tm.eventMux
}
-func (tm *TestManager) Broadcast(msgType wire.MsgType, data []interface{}) {
+func (tm *TestManager) Broadcast(msgType p2p.Msg, data []interface{}) {
fmt.Println("Broadcast not implemented")
}
-func (tm *TestManager) ClientIdentity() wire.ClientIdentity {
+func (tm *TestManager) ClientIdentity() p2p.ClientIdentity {
return nil
}
func (tm *TestManager) KeyManager() *crypto.KeyManager {
diff --git a/core/simple_pow.go b/core/simple_pow.go
deleted file mode 100644
index 9a8bc9592b..0000000000
--- a/core/simple_pow.go
+++ /dev/null
@@ -1 +0,0 @@
-package core
diff --git a/core/state_transition.go b/core/state_transition.go
index 9e81ddf284..b22c5bf217 100644
--- a/core/state_transition.go
+++ b/core/state_transition.go
@@ -4,7 +4,6 @@ import (
"fmt"
"math/big"
- "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/state"
@@ -28,18 +27,17 @@ import (
* 6) Derive new state root
*/
type StateTransition struct {
- coinbase, receiver []byte
- msg Message
- gas, gasPrice *big.Int
- initialGas *big.Int
- value *big.Int
- data []byte
- state *state.StateDB
- block *types.Block
+ coinbase []byte
+ msg Message
+ gas, gasPrice *big.Int
+ initialGas *big.Int
+ value *big.Int
+ data []byte
+ state *state.StateDB
cb, rec, sen *state.StateObject
- Env vm.Environment
+ env vm.Environment
}
type Message interface {
@@ -69,16 +67,19 @@ func MessageGasValue(msg Message) *big.Int {
return new(big.Int).Mul(msg.Gas(), msg.GasPrice())
}
-func NewStateTransition(coinbase *state.StateObject, msg Message, state *state.StateDB, block *types.Block) *StateTransition {
- return &StateTransition{coinbase.Address(), msg.To(), msg, new(big.Int), new(big.Int).Set(msg.GasPrice()), new(big.Int), msg.Value(), msg.Data(), state, block, coinbase, nil, nil, nil}
-}
-
-func (self *StateTransition) VmEnv() vm.Environment {
- if self.Env == nil {
- self.Env = NewEnv(self.state, self.msg, self.block)
+func NewStateTransition(env vm.Environment, msg Message, coinbase *state.StateObject) *StateTransition {
+ return &StateTransition{
+ coinbase: coinbase.Address(),
+ env: env,
+ msg: msg,
+ gas: new(big.Int),
+ gasPrice: new(big.Int).Set(msg.GasPrice()),
+ initialGas: new(big.Int),
+ value: msg.Value(),
+ data: msg.Data(),
+ state: env.State(),
+ cb: coinbase,
}
-
- return self.Env
}
func (self *StateTransition) Coinbase() *state.StateObject {
@@ -112,7 +113,7 @@ func (self *StateTransition) BuyGas() error {
sender := self.From()
if sender.Balance().Cmp(MessageGasValue(self.msg)) < 0 {
- return fmt.Errorf("Insufficient funds to pre-pay gas. Req %v, has %v", MessageGasValue(self.msg), sender.Balance())
+ return fmt.Errorf("insufficient ETH for gas (%x). Req %v, has %v", sender.Address()[:4], MessageGasValue(self.msg), sender.Balance())
}
coinbase := self.Coinbase()
@@ -183,18 +184,25 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) {
return
}
- vmenv := self.VmEnv()
- var ref vm.ClosureRef
+ vmenv := self.env
+ var ref vm.ContextRef
if MessageCreatesContract(msg) {
- self.rec = MakeContract(msg, self.state)
-
- ret, err, ref = vmenv.Create(sender, self.rec.Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
- ref.SetCode(ret)
+ contract := MakeContract(msg, self.state)
+ ret, err, ref = vmenv.Create(sender, contract.Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
+ if err == nil {
+ dataGas := big.NewInt(int64(len(ret)))
+ dataGas.Mul(dataGas, vm.GasCreateByte)
+ if err = self.UseGas(dataGas); err == nil {
+ //self.state.SetCode(ref.Address(), ret)
+ ref.SetCode(ret)
+ }
+ }
} else {
ret, err = vmenv.Call(self.From(), self.To().Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
}
+
if err != nil {
- statelogger.Debugln(err)
+ self.UseGas(self.gas)
}
return
@@ -211,20 +219,19 @@ func MakeContract(msg Message, state *state.StateDB) *state.StateObject {
}
func (self *StateTransition) RefundGas() {
- coinbaseSub := new(big.Int).Set(self.gas)
- uhalf := new(big.Int).Div(self.GasUsed(), ethutil.Big2)
- for addr, ref := range self.state.Refunds() {
- refund := ethutil.BigMin(uhalf, ref)
- coinbaseSub.Add(self.gas, refund)
- self.state.AddBalance([]byte(addr), refund.Mul(refund, self.msg.GasPrice()))
- }
-
coinbase, sender := self.Coinbase(), self.From()
- coinbase.RefundGas(coinbaseSub, self.msg.GasPrice())
-
// Return remaining gas
remaining := new(big.Int).Mul(self.gas, self.msg.GasPrice())
sender.AddAmount(remaining)
+
+ uhalf := new(big.Int).Div(self.GasUsed(), ethutil.Big2)
+ for addr, ref := range self.state.Refunds() {
+ refund := ethutil.BigMin(uhalf, ref)
+ self.gas.Add(self.gas, refund)
+ self.state.AddBalance([]byte(addr), refund.Mul(refund, self.msg.GasPrice()))
+ }
+
+ coinbase.RefundGas(self.gas, self.msg.GasPrice())
}
func (self *StateTransition) GasUsed() *big.Int {
diff --git a/core/transaction_pool.go b/core/transaction_pool.go
index 1149d4cfb8..fa284e52d0 100644
--- a/core/transaction_pool.go
+++ b/core/transaction_pool.go
@@ -1,16 +1,13 @@
package core
import (
- "bytes"
- "container/list"
"fmt"
- "math/big"
- "sync"
"github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
- "github.com/ethereum/go-ethereum/state"
+ "gopkg.in/fatih/set.v0"
)
var txplogger = logger.NewLogger("TXP")
@@ -26,101 +23,66 @@ const (
minGasPrice = 1000000
)
-var MinGasPrice = big.NewInt(10000000000000)
-
-func EachTx(pool *list.List, it func(*types.Transaction, *list.Element) bool) {
- for e := pool.Front(); e != nil; e = e.Next() {
- if it(e.Value.(*types.Transaction), e) {
- break
- }
- }
-}
-
-func FindTx(pool *list.List, finder func(*types.Transaction, *list.Element) bool) *types.Transaction {
- for e := pool.Front(); e != nil; e = e.Next() {
- if tx, ok := e.Value.(*types.Transaction); ok {
- if finder(tx, e) {
- return tx
- }
- }
- }
-
- return nil
-}
-
type TxProcessor interface {
ProcessTransaction(tx *types.Transaction)
}
// The tx pool a thread safe transaction pool handler. In order to
// guarantee a non blocking pool we use a queue channel which can be
-// independently read without needing access to the actual pool. If the
-// pool is being drained or synced for whatever reason the transactions
-// will simple queue up and handled when the mutex is freed.
+// independently read without needing access to the actual pool.
type TxPool struct {
- // The mutex for accessing the Tx pool.
- mutex sync.Mutex
// Queueing channel for reading and writing incoming
// transactions to
queueChan chan *types.Transaction
// Quiting channel
quit chan bool
// The actual pool
- pool *list.List
+ //pool *list.List
+ pool *set.Set
SecondaryProcessor TxProcessor
subscribers []chan TxMsg
- chainManager *ChainManager
- eventMux *event.TypeMux
+ eventMux *event.TypeMux
}
-func NewTxPool(chainManager *ChainManager, eventMux *event.TypeMux) *TxPool {
+func NewTxPool(eventMux *event.TypeMux) *TxPool {
return &TxPool{
- pool: list.New(),
- queueChan: make(chan *types.Transaction, txPoolQueueSize),
- quit: make(chan bool),
- chainManager: chainManager,
- eventMux: eventMux,
+ pool: set.New(),
+ queueChan: make(chan *types.Transaction, txPoolQueueSize),
+ quit: make(chan bool),
+ eventMux: eventMux,
}
}
-// Blocking function. Don't use directly. Use QueueTransaction instead
func (pool *TxPool) addTransaction(tx *types.Transaction) {
- pool.mutex.Lock()
- defer pool.mutex.Unlock()
-
- pool.pool.PushBack(tx)
+ pool.pool.Add(tx)
// Broadcast the transaction to the rest of the peers
pool.eventMux.Post(TxPreEvent{tx})
}
func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
- // Get the last block so we can retrieve the sender and receiver from
- // the merkle trie
- block := pool.chainManager.CurrentBlock
- // Something has gone horribly wrong if this happens
- if block == nil {
- return fmt.Errorf("No last block on the block chain")
- }
-
if len(tx.To()) != 0 && len(tx.To()) != 20 {
return fmt.Errorf("Invalid recipient. len = %d", len(tx.To()))
}
v, _, _ := tx.Curve()
if v > 28 || v < 27 {
- return fmt.Errorf("tx.v != (28 || 27)")
+ return fmt.Errorf("tx.v != (28 || 27) => %v", v)
}
+ /* XXX this kind of validation needs to happen elsewhere in the gui when sending txs.
+ Other clients should do their own validation. Value transfer could throw error
+ but doesn't necessarily invalidate the tx. Gas can still be payed for and miner
+ can still be rewarded for their inclusion and processing.
// Get the sender
senderAddr := tx.From()
if senderAddr == nil {
return fmt.Errorf("invalid sender")
}
- sender := pool.chainManager.State().GetAccount(senderAddr)
+ sender := pool.stateQuery.GetAccount(senderAddr)
totAmount := new(big.Int).Set(tx.Value())
// Make sure there's enough in the sender's account. Having insufficient
@@ -128,20 +90,14 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
if sender.Balance().Cmp(totAmount) < 0 {
return fmt.Errorf("Insufficient amount in sender's (%x) account", tx.From())
}
-
- // Increment the nonce making each tx valid only once to prevent replay
- // attacks
+ */
return nil
}
func (self *TxPool) Add(tx *types.Transaction) error {
hash := tx.Hash()
- foundTx := FindTx(self.pool, func(tx *types.Transaction, e *list.Element) bool {
- return bytes.Compare(tx.Hash(), hash) == 0
- })
-
- if foundTx != nil {
+ if self.pool.Has(tx) {
return fmt.Errorf("Known transaction (%x)", hash[0:4])
}
@@ -152,7 +108,14 @@ func (self *TxPool) Add(tx *types.Transaction) error {
self.addTransaction(tx)
- txplogger.Debugf("(t) %x => %x (%v) %x\n", tx.From()[:4], tx.To()[:4], tx.Value, tx.Hash())
+ var to string
+ if len(tx.To()) > 0 {
+ to = ethutil.Bytes2Hex(tx.To()[:4])
+ } else {
+ to = "[NEW_CONTRACT]"
+ }
+
+ txplogger.Debugf("(t) %x => %s (%v) %x\n", tx.From()[:4], to, tx.Value, tx.Hash())
// Notify the subscribers
go self.eventMux.Post(TxPreEvent{tx})
@@ -161,7 +124,7 @@ func (self *TxPool) Add(tx *types.Transaction) error {
}
func (self *TxPool) Size() int {
- return self.pool.Len()
+ return self.pool.Size()
}
func (self *TxPool) AddTransactions(txs []*types.Transaction) {
@@ -175,63 +138,47 @@ func (self *TxPool) AddTransactions(txs []*types.Transaction) {
}
func (pool *TxPool) GetTransactions() []*types.Transaction {
- pool.mutex.Lock()
- defer pool.mutex.Unlock()
-
- txList := make([]*types.Transaction, pool.pool.Len())
+ txList := make([]*types.Transaction, pool.Size())
i := 0
- for e := pool.pool.Front(); e != nil; e = e.Next() {
- tx := e.Value.(*types.Transaction)
-
- txList[i] = tx
-
+ pool.pool.Each(func(v interface{}) bool {
+ txList[i] = v.(*types.Transaction)
i++
- }
+
+ return true
+ })
return txList
}
-func (pool *TxPool) RemoveInvalid(state *state.StateDB) {
- pool.mutex.Lock()
- defer pool.mutex.Unlock()
-
- for e := pool.pool.Front(); e != nil; e = e.Next() {
- tx := e.Value.(*types.Transaction)
- sender := state.GetAccount(tx.From())
+func (pool *TxPool) RemoveInvalid(query StateQuery) {
+ var removedTxs types.Transactions
+ pool.pool.Each(func(v interface{}) bool {
+ tx := v.(*types.Transaction)
+ sender := query.GetAccount(tx.From())
err := pool.ValidateTransaction(tx)
if err != nil || sender.Nonce >= tx.Nonce() {
- pool.pool.Remove(e)
+ removedTxs = append(removedTxs, tx)
}
- }
+
+ return true
+ })
+ pool.RemoveSet(removedTxs)
}
func (self *TxPool) RemoveSet(txs types.Transactions) {
- self.mutex.Lock()
- defer self.mutex.Unlock()
-
for _, tx := range txs {
- EachTx(self.pool, func(t *types.Transaction, element *list.Element) bool {
- if t == tx {
- self.pool.Remove(element)
- return true // To stop the loop
- }
- return false
- })
+ self.pool.Remove(tx)
}
}
func (pool *TxPool) Flush() []*types.Transaction {
txList := pool.GetTransactions()
-
- // Recreate a new list all together
- // XXX Is this the fastest way?
- pool.pool = list.New()
+ pool.pool.Clear()
return txList
}
func (pool *TxPool) Start() {
- //go pool.queueHandler()
}
func (pool *TxPool) Stop() {
diff --git a/core/transaction_pool_test.go b/core/transaction_pool_test.go
new file mode 100644
index 0000000000..e77d7a1aed
--- /dev/null
+++ b/core/transaction_pool_test.go
@@ -0,0 +1,81 @@
+package core
+
+import (
+ "crypto/ecdsa"
+ "testing"
+
+ "github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/event"
+ "github.com/ethereum/go-ethereum/state"
+)
+
+// State query interface
+type stateQuery struct{}
+
+func (self stateQuery) GetAccount(addr []byte) *state.StateObject {
+ return state.NewStateObject(addr)
+}
+
+func transaction() *types.Transaction {
+ return types.NewTransactionMessage(make([]byte, 20), ethutil.Big0, ethutil.Big0, ethutil.Big0, nil)
+}
+
+func setup() (*TxPool, *ecdsa.PrivateKey) {
+ var m event.TypeMux
+ key, _ := crypto.GenerateKey()
+ return NewTxPool(&m), key
+}
+
+func TestTxAdding(t *testing.T) {
+ pool, key := setup()
+ tx1 := transaction()
+ tx1.SignECDSA(key)
+ err := pool.Add(tx1)
+ if err != nil {
+ t.Error(err)
+ }
+
+ err = pool.Add(tx1)
+ if err == nil {
+ t.Error("added tx twice")
+ }
+}
+
+func TestAddInvalidTx(t *testing.T) {
+ pool, _ := setup()
+ tx1 := transaction()
+ err := pool.Add(tx1)
+ if err == nil {
+ t.Error("expected error")
+ }
+}
+
+func TestRemoveSet(t *testing.T) {
+ pool, _ := setup()
+ tx1 := transaction()
+ pool.pool.Add(tx1)
+ pool.RemoveSet(types.Transactions{tx1})
+ if pool.Size() > 0 {
+ t.Error("expected pool size to be 0")
+ }
+}
+
+func TestRemoveInvalid(t *testing.T) {
+ pool, key := setup()
+ tx1 := transaction()
+ pool.pool.Add(tx1)
+ pool.RemoveInvalid(stateQuery{})
+ if pool.Size() > 0 {
+ t.Error("expected pool size to be 0")
+ }
+
+ tx1.SetNonce(1)
+ tx1.SignECDSA(key)
+ pool.pool.Add(tx1)
+ pool.RemoveInvalid(stateQuery{})
+ if pool.Size() != 1 {
+ t.Error("expected pool size to be 1, is", pool.Size())
+ }
+}
diff --git a/core/types/block.go b/core/types/block.go
index 2d889f35f4..b59044bfce 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -9,41 +9,240 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/ptrie"
+ "github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/state"
- "github.com/ethereum/go-ethereum/trie"
)
-type BlockInfo struct {
- Number uint64
- Hash []byte
- Parent []byte
- TD *big.Int
+type Header struct {
+ // Hash to the previous block
+ ParentHash ethutil.Bytes
+ // Uncles of this block
+ UncleHash []byte
+ // The coin base address
+ Coinbase []byte
+ // Block Trie state
+ Root []byte
+ // Tx sha
+ TxHash []byte
+ // Receipt sha
+ ReceiptHash []byte
+ // Bloom
+ Bloom []byte
+ // Difficulty for the current block
+ Difficulty *big.Int
+ // The block number
+ Number *big.Int
+ // Gas limit
+ GasLimit *big.Int
+ // Gas used
+ GasUsed *big.Int
+ // Creation time
+ Time uint64
+ // Extra data
+ Extra string
+ // Block Nonce for verification
+ Nonce ethutil.Bytes
}
-func (bi *BlockInfo) RlpDecode(data []byte) {
- decoder := ethutil.NewValueFromBytes(data)
+func (self *Header) rlpData(withNonce bool) []interface{} {
+ fields := []interface{}{self.ParentHash, self.UncleHash, self.Coinbase, self.Root, self.TxHash, self.ReceiptHash, self.Bloom, self.Difficulty, self.Number, self.GasLimit, self.GasUsed, self.Time, self.Extra}
+ if withNonce {
+ fields = append(fields, self.Nonce)
+ }
- bi.Number = decoder.Get(0).Uint()
- bi.Hash = decoder.Get(1).Bytes()
- bi.Parent = decoder.Get(2).Bytes()
- bi.TD = decoder.Get(3).BigInt()
+ return fields
}
-func (bi *BlockInfo) RlpEncode() []byte {
- return ethutil.Encode([]interface{}{bi.Number, bi.Hash, bi.Parent, bi.TD})
+func (self *Header) RlpData() interface{} {
+ return self.rlpData(true)
+}
+
+func (self *Header) Hash() []byte {
+ return crypto.Sha3(ethutil.Encode(self.rlpData(true)))
+}
+
+func (self *Header) HashNoNonce() []byte {
+ return crypto.Sha3(ethutil.Encode(self.rlpData(false)))
+}
+
+type Block struct {
+ header *Header
+ uncles []*Header
+ transactions Transactions
+ Td *big.Int
+
+ receipts Receipts
+ Reward *big.Int
+}
+
+func NewBlock(parentHash []byte, coinbase []byte, root []byte, difficulty *big.Int, nonce []byte, extra string) *Block {
+ header := &Header{
+ Root: root,
+ ParentHash: parentHash,
+ Coinbase: coinbase,
+ Difficulty: difficulty,
+ Nonce: nonce,
+ Time: uint64(time.Now().Unix()),
+ Extra: extra,
+ GasUsed: new(big.Int),
+ GasLimit: new(big.Int),
+ }
+
+ block := &Block{header: header, Reward: new(big.Int)}
+
+ return block
+}
+
+func NewBlockWithHeader(header *Header) *Block {
+ return &Block{header: header}
+}
+
+func (self *Block) DecodeRLP(s *rlp.Stream) error {
+ if _, err := s.List(); err != nil {
+ return err
+ }
+
+ var header Header
+ if err := s.Decode(&header); err != nil {
+ return err
+ }
+
+ var transactions []*Transaction
+ if err := s.Decode(&transactions); err != nil {
+ return err
+ }
+
+ var uncleHeaders []*Header
+ if err := s.Decode(&uncleHeaders); err != nil {
+ return err
+ }
+
+ var tdBytes []byte
+ if err := s.Decode(&tdBytes); err != nil {
+ // If this block comes from the network that's fine. If loaded from disk it should be there
+ // Blocks don't store their Td when propagated over the network
+ } else {
+ self.Td = ethutil.BigD(tdBytes)
+ }
+
+ if err := s.ListEnd(); err != nil {
+ return err
+ }
+
+ self.header = &header
+ self.uncles = uncleHeaders
+ self.transactions = transactions
+
+ return nil
+}
+
+func (self *Block) Header() *Header {
+ return self.header
+}
+
+func (self *Block) Uncles() []*Header {
+ return self.uncles
+}
+
+func (self *Block) SetUncles(uncleHeaders []*Header) {
+ self.uncles = uncleHeaders
+ self.header.UncleHash = crypto.Sha3(ethutil.Encode(uncleHeaders))
+}
+
+func (self *Block) Transactions() Transactions {
+ return self.transactions
+}
+
+func (self *Block) Transaction(hash []byte) *Transaction {
+ for _, transaction := range self.transactions {
+ if bytes.Equal(hash, transaction.Hash()) {
+ return transaction
+ }
+ }
+ return nil
+}
+
+func (self *Block) SetTransactions(transactions Transactions) {
+ self.transactions = transactions
+ self.header.TxHash = DeriveSha(transactions)
+}
+
+func (self *Block) Receipts() Receipts {
+ return self.receipts
+}
+
+func (self *Block) SetReceipts(receipts Receipts) {
+ self.receipts = receipts
+ self.header.ReceiptHash = DeriveSha(receipts)
+ self.header.Bloom = CreateBloom(receipts)
+}
+
+func (self *Block) RlpData() interface{} {
+ return []interface{}{self.header, self.transactions, self.uncles}
+}
+
+func (self *Block) RlpDataForStorage() interface{} {
+ return []interface{}{self.header, self.transactions, self.uncles, self.Td /* TODO receipts */}
+}
+
+// Header accessors (add as you need them)
+func (self *Block) Number() *big.Int { return self.header.Number }
+func (self *Block) NumberU64() uint64 { return self.header.Number.Uint64() }
+func (self *Block) ParentHash() []byte { return self.header.ParentHash }
+func (self *Block) Bloom() []byte { return self.header.Bloom }
+func (self *Block) Coinbase() []byte { return self.header.Coinbase }
+func (self *Block) Time() int64 { return int64(self.header.Time) }
+func (self *Block) GasLimit() *big.Int { return self.header.GasLimit }
+func (self *Block) GasUsed() *big.Int { return self.header.GasUsed }
+func (self *Block) Hash() []byte { return self.header.Hash() }
+func (self *Block) Trie() *ptrie.Trie { return ptrie.New(self.header.Root, ethutil.Config.Db) }
+func (self *Block) State() *state.StateDB { return state.New(self.Trie()) }
+func (self *Block) Size() ethutil.StorageSize { return ethutil.StorageSize(len(ethutil.Encode(self))) }
+func (self *Block) SetRoot(root []byte) { self.header.Root = root }
+
+// Implement block.Pow
+func (self *Block) Difficulty() *big.Int { return self.header.Difficulty }
+func (self *Block) N() []byte { return self.header.Nonce }
+func (self *Block) HashNoNonce() []byte {
+ return crypto.Sha3(ethutil.Encode(self.header.rlpData(false)))
+}
+
+func (self *Block) String() string {
+ return fmt.Sprintf(`BLOCK(%x): Size: %v TD: %v {
+Header:
+[
+%v
+]
+Transactions:
+%v
+Uncles:
+%v
+}
+`, self.header.Hash(), self.Size(), self.Td, self.header, self.transactions, self.uncles)
+}
+
+func (self *Header) String() string {
+ return fmt.Sprintf(`
+ ParentHash: %x
+ UncleHash: %x
+ Coinbase: %x
+ Root: %x
+ TxSha %x
+ ReceiptSha: %x
+ Bloom: %x
+ Difficulty: %v
+ Number: %v
+ GasLimit: %v
+ GasUsed: %v
+ Time: %v
+ Extra: %v
+ Nonce: %x
+`, self.ParentHash, self.UncleHash, self.Coinbase, self.Root, self.TxHash, self.ReceiptHash, self.Bloom, self.Difficulty, self.Number, self.GasLimit, self.GasUsed, self.Time, self.Extra, self.Nonce)
}
type Blocks []*Block
-func (self Blocks) AsSet() ethutil.UniqueSet {
- set := make(ethutil.UniqueSet)
- for _, block := range self {
- set.Insert(block.Hash())
- }
-
- return set
-}
-
type BlockBy func(b1, b2 *Block) bool
func (self BlockBy) Sort(blocks Blocks) {
@@ -65,352 +264,4 @@ func (self blockSorter) Swap(i, j int) {
}
func (self blockSorter) Less(i, j int) bool { return self.by(self.blocks[i], self.blocks[j]) }
-func Number(b1, b2 *Block) bool { return b1.Number.Cmp(b2.Number) < 0 }
-
-type Block struct {
- // Hash to the previous block
- PrevHash ethutil.Bytes
- // Uncles of this block
- Uncles Blocks
- UncleSha []byte
- // The coin base address
- Coinbase []byte
- // Block Trie state
- //state *ethutil.Trie
- state *state.StateDB
- // Difficulty for the current block
- Difficulty *big.Int
- // Creation time
- Time int64
- // The block number
- Number *big.Int
- // Gas limit
- GasLimit *big.Int
- // Gas used
- GasUsed *big.Int
- // Extra data
- Extra string
- // Block Nonce for verification
- Nonce ethutil.Bytes
- // List of transactions and/or contracts
- transactions Transactions
- receipts Receipts
- TxSha, ReceiptSha []byte
- LogsBloom []byte
-
- Reward *big.Int
-}
-
-func NewBlockFromBytes(raw []byte) *Block {
- block := &Block{}
- block.RlpDecode(raw)
-
- return block
-}
-
-// New block takes a raw encoded string
-func NewBlockFromRlpValue(rlpValue *ethutil.Value) *Block {
- block := &Block{}
- block.RlpValueDecode(rlpValue)
-
- return block
-}
-
-func CreateBlock(root interface{},
- prevHash []byte,
- base []byte,
- Difficulty *big.Int,
- Nonce []byte,
- extra string) *Block {
-
- block := &Block{
- PrevHash: prevHash,
- Coinbase: base,
- Difficulty: Difficulty,
- Nonce: Nonce,
- Time: time.Now().Unix(),
- Extra: extra,
- UncleSha: nil,
- GasUsed: new(big.Int),
- GasLimit: new(big.Int),
- }
- block.SetUncles([]*Block{})
-
- block.state = state.New(trie.New(ethutil.Config.Db, root))
-
- return block
-}
-
-// Returns a hash of the block
-func (block *Block) Hash() ethutil.Bytes {
- return crypto.Sha3(ethutil.NewValue(block.header()).Encode())
- //return crypto.Sha3(block.Value().Encode())
-}
-
-func (block *Block) HashNoNonce() []byte {
- return crypto.Sha3(ethutil.Encode(block.miningHeader()))
-}
-
-func (block *Block) State() *state.StateDB {
- return block.state
-}
-
-func (block *Block) Transactions() Transactions {
- return block.transactions
-}
-
-func (block *Block) CalcGasLimit(parent *Block) *big.Int {
- if block.Number.Cmp(big.NewInt(0)) == 0 {
- return ethutil.BigPow(10, 6)
- }
-
- // ((1024-1) * parent.gasLimit + (gasUsed * 6 / 5)) / 1024
-
- previous := new(big.Int).Mul(big.NewInt(1024-1), parent.GasLimit)
- current := new(big.Rat).Mul(new(big.Rat).SetInt(parent.GasUsed), big.NewRat(6, 5))
- curInt := new(big.Int).Div(current.Num(), current.Denom())
-
- result := new(big.Int).Add(previous, curInt)
- result.Div(result, big.NewInt(1024))
-
- min := big.NewInt(125000)
-
- return ethutil.BigMax(min, result)
-}
-
-func (block *Block) BlockInfo() BlockInfo {
- bi := BlockInfo{}
- data, _ := ethutil.Config.Db.Get(append(block.Hash(), []byte("Info")...))
- bi.RlpDecode(data)
-
- return bi
-}
-
-func (self *Block) GetTransaction(hash []byte) *Transaction {
- for _, tx := range self.transactions {
- if bytes.Compare(tx.Hash(), hash) == 0 {
- return tx
- }
- }
-
- return nil
-}
-
-// Sync the block's state and contract respectively
-func (block *Block) Sync() {
- block.state.Sync()
-}
-
-func (block *Block) Undo() {
- // Sync the block state itself
- block.state.Reset()
-}
-
-/////// Block Encoding
-func (block *Block) rlpReceipts() interface{} {
- // Marshal the transactions of this block
- encR := make([]interface{}, len(block.receipts))
- for i, r := range block.receipts {
- // Cast it to a string (safe)
- encR[i] = r.RlpData()
- }
-
- return encR
-}
-
-func (block *Block) rlpUncles() interface{} {
- // Marshal the transactions of this block
- uncles := make([]interface{}, len(block.Uncles))
- for i, uncle := range block.Uncles {
- // Cast it to a string (safe)
- uncles[i] = uncle.header()
- }
-
- return uncles
-}
-
-func (block *Block) SetUncles(uncles []*Block) {
- block.Uncles = uncles
- block.UncleSha = crypto.Sha3(ethutil.Encode(block.rlpUncles()))
-}
-
-func (self *Block) SetReceipts(receipts Receipts) {
- self.receipts = receipts
- self.ReceiptSha = DeriveSha(receipts)
- self.LogsBloom = CreateBloom(receipts)
-}
-
-func (self *Block) SetTransactions(txs Transactions) {
- self.transactions = txs
- self.TxSha = DeriveSha(txs)
-}
-
-func (block *Block) Value() *ethutil.Value {
- return ethutil.NewValue([]interface{}{block.header(), block.transactions, block.rlpUncles()})
-}
-
-func (block *Block) RlpEncode() []byte {
- // Encode a slice interface which contains the header and the list of
- // transactions.
- return block.Value().Encode()
-}
-
-func (block *Block) RlpDecode(data []byte) {
- rlpValue := ethutil.NewValueFromBytes(data)
- block.RlpValueDecode(rlpValue)
-}
-
-func (block *Block) RlpValueDecode(decoder *ethutil.Value) {
- block.setHeader(decoder.Get(0))
-
- // Tx list might be empty if this is an uncle. Uncles only have their
- // header set.
- if decoder.Get(1).IsNil() == false { // Yes explicitness
- //receipts := decoder.Get(1)
- //block.receipts = make([]*Receipt, receipts.Len())
- txs := decoder.Get(1)
- block.transactions = make(Transactions, txs.Len())
- for i := 0; i < txs.Len(); i++ {
- block.transactions[i] = NewTransactionFromValue(txs.Get(i))
- //receipt := NewRecieptFromValue(receipts.Get(i))
- //block.transactions[i] = receipt.Tx
- //block.receipts[i] = receipt
- }
-
- }
-
- if decoder.Get(2).IsNil() == false { // Yes explicitness
- uncles := decoder.Get(2)
- block.Uncles = make([]*Block, uncles.Len())
- for i := 0; i < uncles.Len(); i++ {
- block.Uncles[i] = NewUncleBlockFromValue(uncles.Get(i))
- }
- }
-
-}
-
-func (self *Block) setHeader(header *ethutil.Value) {
- self.PrevHash = header.Get(0).Bytes()
- self.UncleSha = header.Get(1).Bytes()
- self.Coinbase = header.Get(2).Bytes()
- self.state = state.New(trie.New(ethutil.Config.Db, header.Get(3).Val))
- self.TxSha = header.Get(4).Bytes()
- self.ReceiptSha = header.Get(5).Bytes()
- self.LogsBloom = header.Get(6).Bytes()
- self.Difficulty = header.Get(7).BigInt()
- self.Number = header.Get(8).BigInt()
- self.GasLimit = header.Get(9).BigInt()
- self.GasUsed = header.Get(10).BigInt()
- self.Time = int64(header.Get(11).BigInt().Uint64())
- self.Extra = header.Get(12).Str()
- self.Nonce = header.Get(13).Bytes()
-}
-
-func NewUncleBlockFromValue(header *ethutil.Value) *Block {
- block := &Block{}
- block.setHeader(header)
-
- return block
-}
-
-func (block *Block) Trie() *trie.Trie {
- return block.state.Trie
-}
-
-func (block *Block) Root() interface{} {
- return block.state.Root()
-}
-
-func (block *Block) Diff() *big.Int {
- return block.Difficulty
-}
-
-func (self *Block) Receipts() []*Receipt {
- return self.receipts
-}
-
-func (block *Block) miningHeader() []interface{} {
- return []interface{}{
- // Sha of the previous block
- block.PrevHash,
- // Sha of uncles
- block.UncleSha,
- // Coinbase address
- block.Coinbase,
- // root state
- block.Root(),
- // tx root
- block.TxSha,
- // Sha of tx
- block.ReceiptSha,
- // Bloom
- block.LogsBloom,
- // Current block Difficulty
- block.Difficulty,
- // The block number
- block.Number,
- // Block upper gas bound
- block.GasLimit,
- // Block gas used
- block.GasUsed,
- // Time the block was found?
- block.Time,
- // Extra data
- block.Extra,
- }
-}
-
-func (block *Block) header() []interface{} {
- return append(block.miningHeader(), block.Nonce)
-}
-
-func (block *Block) String() string {
- return fmt.Sprintf(`
- BLOCK(%x): Size: %v
- PrevHash: %x
- UncleSha: %x
- Coinbase: %x
- Root: %x
- TxSha %x
- ReceiptSha: %x
- Bloom: %x
- Difficulty: %v
- Number: %v
- MaxLimit: %v
- GasUsed: %v
- Time: %v
- Extra: %v
- Nonce: %x
- NumTx: %v
-`,
- block.Hash(),
- block.Size(),
- block.PrevHash,
- block.UncleSha,
- block.Coinbase,
- block.Root(),
- block.TxSha,
- block.ReceiptSha,
- block.LogsBloom,
- block.Difficulty,
- block.Number,
- block.GasLimit,
- block.GasUsed,
- block.Time,
- block.Extra,
- block.Nonce,
- len(block.transactions),
- )
-}
-
-func (self *Block) Size() ethutil.StorageSize {
- return ethutil.StorageSize(len(self.RlpEncode()))
-}
-
-// Implement RlpEncodable
-func (self *Block) RlpData() interface{} {
- return []interface{}{self.header(), self.transactions, self.rlpUncles()}
-}
-
-// Implement pow.Block
-func (self *Block) N() []byte { return self.Nonce }
+func Number(b1, b2 *Block) bool { return b1.Header().Number.Cmp(b2.Header().Number) < 0 }
diff --git a/core/types/block_test.go b/core/types/block_test.go
new file mode 100644
index 0000000000..ab1254f4c2
--- /dev/null
+++ b/core/types/block_test.go
@@ -0,0 +1 @@
+package types
diff --git a/core/types/derive_sha.go b/core/types/derive_sha.go
index 1897ff198f..0beb196709 100644
--- a/core/types/derive_sha.go
+++ b/core/types/derive_sha.go
@@ -2,7 +2,7 @@ package types
import (
"github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/trie"
+ "github.com/ethereum/go-ethereum/ptrie"
)
type DerivableList interface {
@@ -11,10 +11,10 @@ type DerivableList interface {
}
func DeriveSha(list DerivableList) []byte {
- trie := trie.New(ethutil.Config.Db, "")
+ trie := ptrie.New(nil, ethutil.Config.Db)
for i := 0; i < list.Len(); i++ {
- trie.Update(string(ethutil.NewValue(i).Encode()), string(list.GetRlp(i)))
+ trie.Update(ethutil.Encode(i), list.GetRlp(i))
}
- return trie.GetRoot()
+ return trie.Root()
}
diff --git a/core/types/transaction.go b/core/types/transaction.go
index 95a256a763..83d76648fd 100644
--- a/core/types/transaction.go
+++ b/core/types/transaction.go
@@ -1,11 +1,14 @@
package types
import (
+ "bytes"
+ "crypto/ecdsa"
"fmt"
"math/big"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/rlp"
"github.com/obscuren/secp256k1-go"
)
@@ -14,22 +17,22 @@ func IsContractAddr(addr []byte) bool {
}
type Transaction struct {
- nonce uint64
- recipient []byte
- value *big.Int
- gas *big.Int
- gasPrice *big.Int
- data []byte
- v byte
- r, s []byte
+ AccountNonce uint64
+ Price *big.Int
+ GasLimit *big.Int
+ Recipient []byte
+ Amount *big.Int
+ Payload []byte
+ V uint64
+ R, S []byte
}
-func NewContractCreationTx(value, gas, gasPrice *big.Int, script []byte) *Transaction {
- return &Transaction{recipient: nil, value: value, gas: gas, gasPrice: gasPrice, data: script}
+func NewContractCreationTx(Amount, gasAmount, price *big.Int, data []byte) *Transaction {
+ return NewTransactionMessage(nil, Amount, gasAmount, price, data)
}
-func NewTransactionMessage(to []byte, value, gas, gasPrice *big.Int, data []byte) *Transaction {
- return &Transaction{recipient: to, value: value, gasPrice: gasPrice, gas: gas, data: data}
+func NewTransactionMessage(to []byte, Amount, gasAmount, price *big.Int, data []byte) *Transaction {
+ return &Transaction{Recipient: to, Amount: Amount, Price: price, GasLimit: gasAmount, Payload: data}
}
func NewTransactionFromBytes(data []byte) *Transaction {
@@ -39,7 +42,7 @@ func NewTransactionFromBytes(data []byte) *Transaction {
return tx
}
-func NewTransactionFromValue(val *ethutil.Value) *Transaction {
+func NewTransactionFromAmount(val *ethutil.Value) *Transaction {
tx := &Transaction{}
tx.RlpValueDecode(val)
@@ -47,33 +50,33 @@ func NewTransactionFromValue(val *ethutil.Value) *Transaction {
}
func (tx *Transaction) Hash() []byte {
- data := []interface{}{tx.Nonce, tx.gasPrice, tx.gas, tx.recipient, tx.Value, tx.Data}
+ data := []interface{}{tx.AccountNonce, tx.Price, tx.GasLimit, tx.Recipient, tx.Amount, tx.Payload}
- return crypto.Sha3(ethutil.NewValue(data).Encode())
+ return crypto.Sha3(ethutil.Encode(data))
}
func (self *Transaction) Data() []byte {
- return self.data
+ return self.Payload
}
func (self *Transaction) Gas() *big.Int {
- return self.gas
+ return self.GasLimit
}
func (self *Transaction) GasPrice() *big.Int {
- return self.gasPrice
+ return self.Price
}
func (self *Transaction) Value() *big.Int {
- return self.value
+ return self.Amount
}
func (self *Transaction) Nonce() uint64 {
- return self.nonce
+ return self.AccountNonce
}
-func (self *Transaction) SetNonce(nonce uint64) {
- self.nonce = nonce
+func (self *Transaction) SetNonce(AccountNonce uint64) {
+ self.AccountNonce = AccountNonce
}
func (self *Transaction) From() []byte {
@@ -81,13 +84,13 @@ func (self *Transaction) From() []byte {
}
func (self *Transaction) To() []byte {
- return self.recipient
+ return self.Recipient
}
func (tx *Transaction) Curve() (v byte, r []byte, s []byte) {
- v = tx.v
- r = ethutil.LeftPadBytes(tx.r, 32)
- s = ethutil.LeftPadBytes(tx.s, 32)
+ v = byte(tx.V)
+ r = ethutil.LeftPadBytes(tx.R, 32)
+ s = ethutil.LeftPadBytes(tx.S, 32)
return
}
@@ -108,8 +111,8 @@ func (tx *Transaction) PublicKey() []byte {
sig := append(r, s...)
sig = append(sig, v-27)
- pubkey := crypto.Ecrecover(append(hash, sig...))
- //pubkey, _ := secp256k1.RecoverPubkey(hash, sig)
+ //pubkey := crypto.Ecrecover(append(hash, sig...))
+ pubkey, _ := secp256k1.RecoverPubkey(hash, sig)
return pubkey
}
@@ -130,44 +133,41 @@ func (tx *Transaction) Sign(privk []byte) error {
sig := tx.Signature(privk)
- tx.r = sig[:32]
- tx.s = sig[32:64]
- tx.v = sig[64] + 27
+ tx.R = sig[:32]
+ tx.S = sig[32:64]
+ tx.V = uint64(sig[64] + 27)
return nil
}
-func (tx *Transaction) RlpData() interface{} {
- data := []interface{}{tx.Nonce, tx.GasPrice, tx.Gas, tx.recipient, tx.Value, tx.Data}
-
- // TODO Remove prefixing zero's
-
- return append(data, tx.v, new(big.Int).SetBytes(tx.r).Bytes(), new(big.Int).SetBytes(tx.s).Bytes())
+func (tx *Transaction) SignECDSA(key *ecdsa.PrivateKey) error {
+ return tx.Sign(crypto.FromECDSA(key))
}
-func (tx *Transaction) RlpValue() *ethutil.Value {
- return ethutil.NewValue(tx.RlpData())
+func (tx *Transaction) RlpData() interface{} {
+ data := []interface{}{tx.AccountNonce, tx.Price, tx.GasLimit, tx.Recipient, tx.Amount, tx.Payload}
+
+ return append(data, tx.V, new(big.Int).SetBytes(tx.R).Bytes(), new(big.Int).SetBytes(tx.S).Bytes())
}
func (tx *Transaction) RlpEncode() []byte {
- return tx.RlpValue().Encode()
+ return ethutil.Encode(tx)
}
func (tx *Transaction) RlpDecode(data []byte) {
- tx.RlpValueDecode(ethutil.NewValueFromBytes(data))
+ rlp.Decode(bytes.NewReader(data), tx)
}
func (tx *Transaction) RlpValueDecode(decoder *ethutil.Value) {
- tx.nonce = decoder.Get(0).Uint()
- tx.gasPrice = decoder.Get(1).BigInt()
- tx.gas = decoder.Get(2).BigInt()
- tx.recipient = decoder.Get(3).Bytes()
- tx.value = decoder.Get(4).BigInt()
- tx.data = decoder.Get(5).Bytes()
- tx.v = byte(decoder.Get(6).Uint())
-
- tx.r = decoder.Get(7).Bytes()
- tx.s = decoder.Get(8).Bytes()
+ tx.AccountNonce = decoder.Get(0).Uint()
+ tx.Price = decoder.Get(1).BigInt()
+ tx.GasLimit = decoder.Get(2).BigInt()
+ tx.Recipient = decoder.Get(3).Bytes()
+ tx.Amount = decoder.Get(4).BigInt()
+ tx.Payload = decoder.Get(5).Bytes()
+ tx.V = decoder.Get(6).Uint()
+ tx.R = decoder.Get(7).Bytes()
+ tx.S = decoder.Get(8).Bytes()
}
func (tx *Transaction) String() string {
@@ -178,25 +178,28 @@ func (tx *Transaction) String() string {
To: %x
Nonce: %v
GasPrice: %v
- Gas: %v
+ GasLimit %v
Value: %v
Data: 0x%x
V: 0x%x
R: 0x%x
S: 0x%x
- `,
+ Hex: %x
+`,
tx.Hash(),
- len(tx.recipient) == 0,
+ len(tx.Recipient) == 0,
tx.From(),
- tx.recipient,
- tx.nonce,
- tx.gasPrice,
- tx.gas,
- tx.Value,
- tx.Data,
- tx.v,
- tx.r,
- tx.s)
+ tx.To(),
+ tx.AccountNonce,
+ tx.Price,
+ tx.GasLimit,
+ tx.Amount,
+ tx.Payload,
+ tx.V,
+ tx.R,
+ tx.S,
+ ethutil.Encode(tx),
+ )
}
// Transaction slice type for basic sorting
@@ -219,5 +222,5 @@ func (s Transactions) GetRlp(i int) []byte { return ethutil.Rlp(s[i]) }
type TxByNonce struct{ Transactions }
func (s TxByNonce) Less(i, j int) bool {
- return s.Transactions[i].nonce < s.Transactions[j].nonce
+ return s.Transactions[i].AccountNonce < s.Transactions[j].AccountNonce
}
diff --git a/core/vm_env.go b/core/vm_env.go
index ad63ecf9c6..624a633334 100644
--- a/core/vm_env.go
+++ b/core/vm_env.go
@@ -13,10 +13,12 @@ type VMEnv struct {
block *types.Block
msg Message
depth int
+ chain *ChainManager
}
-func NewEnv(state *state.StateDB, msg Message, block *types.Block) *VMEnv {
+func NewEnv(state *state.StateDB, chain *ChainManager, msg Message, block *types.Block) *VMEnv {
return &VMEnv{
+ chain: chain,
state: state,
block: block,
msg: msg,
@@ -24,17 +26,22 @@ func NewEnv(state *state.StateDB, msg Message, block *types.Block) *VMEnv {
}
func (self *VMEnv) Origin() []byte { return self.msg.From() }
-func (self *VMEnv) BlockNumber() *big.Int { return self.block.Number }
-func (self *VMEnv) PrevHash() []byte { return self.block.PrevHash }
-func (self *VMEnv) Coinbase() []byte { return self.block.Coinbase }
-func (self *VMEnv) Time() int64 { return self.block.Time }
-func (self *VMEnv) Difficulty() *big.Int { return self.block.Difficulty }
-func (self *VMEnv) BlockHash() []byte { return self.block.Hash() }
+func (self *VMEnv) BlockNumber() *big.Int { return self.block.Number() }
+func (self *VMEnv) Coinbase() []byte { return self.block.Coinbase() }
+func (self *VMEnv) Time() int64 { return self.block.Time() }
+func (self *VMEnv) Difficulty() *big.Int { return self.block.Difficulty() }
+func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit() }
func (self *VMEnv) Value() *big.Int { return self.msg.Value() }
func (self *VMEnv) State() *state.StateDB { return self.state }
-func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
func (self *VMEnv) Depth() int { return self.depth }
func (self *VMEnv) SetDepth(i int) { self.depth = i }
+func (self *VMEnv) GetHash(n uint64) []byte {
+ if block := self.chain.GetBlockByNumber(n); block != nil {
+ return block.Hash()
+ }
+
+ return nil
+}
func (self *VMEnv) AddLog(log state.Log) {
self.state.AddLog(log)
}
@@ -46,16 +53,16 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *Execution
return NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) CallCode(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(me.Address(), data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) Create(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(me)
}
diff --git a/eth/backend.go b/eth/backend.go
index 0aad6a5141..db8e8e029e 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -1,11 +1,13 @@
package eth
import (
+ "fmt"
"net"
"sync"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/event"
ethlogger "github.com/ethereum/go-ethereum/logger"
@@ -19,6 +21,24 @@ const (
seedNodeAddress = "poc-7.ethdev.com:30300"
)
+type Config struct {
+ Name string
+ Version string
+ Identifier string
+ KeyStore string
+ DataDir string
+ LogFile string
+ LogLevel int
+ KeyRing string
+
+ MaxPeers int
+ Port string
+ NATType string
+ PMPGateway string
+
+ KeyManager *crypto.KeyManager
+}
+
var logger = ethlogger.NewLogger("SERV")
type Ethereum struct {
@@ -32,13 +52,13 @@ type Ethereum struct {
//*** SERVICES ***
// State manager for processing new blocks and managing the over all states
- blockManager *core.BlockManager
- txPool *core.TxPool
- chainManager *core.ChainManager
- blockPool *BlockPool
- whisper *whisper.Whisper
+ blockProcessor *core.BlockProcessor
+ txPool *core.TxPool
+ chainManager *core.ChainManager
+ blockPool *BlockPool
+ whisper *whisper.Whisper
- server *p2p.Server
+ net *p2p.Server
eventMux *event.TypeMux
txSub event.Subscription
blockSub event.Subscription
@@ -47,6 +67,7 @@ type Ethereum struct {
keyManager *crypto.KeyManager
clientIdentity p2p.ClientIdentity
+ logger ethlogger.LogSystem
synclock sync.Mutex
syncGroup sync.WaitGroup
@@ -54,7 +75,36 @@ type Ethereum struct {
Mining bool
}
-func New(db ethutil.Database, identity p2p.ClientIdentity, keyManager *crypto.KeyManager, nat p2p.NAT, port string, maxPeers int) (*Ethereum, error) {
+func New(config *Config) (*Ethereum, error) {
+ // Boostrap database
+ logger := ethlogger.New(config.DataDir, config.LogFile, config.LogLevel)
+ db, err := ethdb.NewLDBDatabase("database")
+ if err != nil {
+ return nil, err
+ }
+
+ // Perform database sanity checks
+ d, _ := db.Get([]byte("ProtocolVersion"))
+ protov := ethutil.NewValue(d).Uint()
+ if protov != ProtocolVersion && protov != 0 {
+ return nil, fmt.Errorf("Database version mismatch. Protocol(%d / %d). `rm -rf %s`", protov, ProtocolVersion, ethutil.Config.ExecPath+"/database")
+ }
+
+ // Create new keymanager
+ var keyManager *crypto.KeyManager
+ switch config.KeyStore {
+ case "db":
+ keyManager = crypto.NewDBKeyManager(db)
+ case "file":
+ keyManager = crypto.NewFileKeyManager(config.DataDir)
+ default:
+ return nil, fmt.Errorf("unknown keystore type: %s", config.KeyStore)
+ }
+ // Initialise the keyring
+ keyManager.Init(config.KeyRing, 0, false)
+
+ // Create a new client id for this instance. This will help identifying the node on the network
+ clientId := p2p.NewSimpleClientIdentity(config.Name, config.Version, config.Identifier, keyManager.PublicKey())
saveProtocolVersion(db)
ethutil.Config.Db = db
@@ -64,15 +114,16 @@ func New(db ethutil.Database, identity p2p.ClientIdentity, keyManager *crypto.Ke
quit: make(chan bool),
db: db,
keyManager: keyManager,
- clientIdentity: identity,
+ clientIdentity: clientId,
blacklist: p2p.NewBlacklist(),
eventMux: &event.TypeMux{},
+ logger: logger,
}
eth.chainManager = core.NewChainManager(eth.EventMux())
- eth.txPool = core.NewTxPool(eth.chainManager, eth.EventMux())
- eth.blockManager = core.NewBlockManager(eth.txPool, eth.chainManager, eth.EventMux())
- eth.chainManager.SetProcessor(eth.blockManager)
+ eth.txPool = core.NewTxPool(eth.EventMux())
+ eth.blockProcessor = core.NewBlockProcessor(eth.txPool, eth.chainManager, eth.EventMux())
+ eth.chainManager.SetProcessor(eth.blockProcessor)
eth.whisper = whisper.New()
hasBlock := eth.chainManager.HasBlock
@@ -85,17 +136,20 @@ func New(db ethutil.Database, identity p2p.ClientIdentity, keyManager *crypto.Ke
ethProto := EthProtocol(eth.txPool, eth.chainManager, eth.blockPool)
protocols := []p2p.Protocol{ethProto, eth.whisper.Protocol()}
- server := &p2p.Server{
- Identity: identity,
- MaxPeers: maxPeers,
+ nat, err := p2p.ParseNAT(config.NATType, config.PMPGateway)
+ if err != nil {
+ return nil, err
+ }
+
+ eth.net = &p2p.Server{
+ Identity: clientId,
+ MaxPeers: config.MaxPeers,
Protocols: protocols,
- ListenAddr: ":" + port,
+ ListenAddr: ":" + config.Port,
Blacklist: eth.blacklist,
NAT: nat,
}
- eth.server = server
-
return eth, nil
}
@@ -103,6 +157,10 @@ func (s *Ethereum) KeyManager() *crypto.KeyManager {
return s.keyManager
}
+func (s *Ethereum) Logger() ethlogger.LogSystem {
+ return s.logger
+}
+
func (s *Ethereum) ClientIdentity() p2p.ClientIdentity {
return s.clientIdentity
}
@@ -111,8 +169,8 @@ func (s *Ethereum) ChainManager() *core.ChainManager {
return s.chainManager
}
-func (s *Ethereum) BlockManager() *core.BlockManager {
- return s.blockManager
+func (s *Ethereum) BlockProcessor() *core.BlockProcessor {
+ return s.blockProcessor
}
func (s *Ethereum) TxPool() *core.TxPool {
@@ -144,20 +202,20 @@ func (s *Ethereum) IsListening() bool {
}
func (s *Ethereum) PeerCount() int {
- return s.server.PeerCount()
+ return s.net.PeerCount()
}
func (s *Ethereum) Peers() []*p2p.Peer {
- return s.server.Peers()
+ return s.net.Peers()
}
func (s *Ethereum) MaxPeers() int {
- return s.server.MaxPeers
+ return s.net.MaxPeers
}
// Start the ethereum
func (s *Ethereum) Start(seed bool) error {
- err := s.server.Start()
+ err := s.net.Start()
if err != nil {
return err
}
@@ -191,7 +249,7 @@ func (self *Ethereum) SuggestPeer(addr string) error {
return err
}
- self.server.SuggestPeer(netaddr.IP, netaddr.Port, nil)
+ self.net.SuggestPeer(netaddr.IP, netaddr.Port, nil)
return nil
}
@@ -227,15 +285,17 @@ func (self *Ethereum) txBroadcastLoop() {
// automatically stops if unsubscribe
for obj := range self.txSub.Chan() {
event := obj.(core.TxPreEvent)
- self.server.Broadcast("eth", TxMsg, []interface{}{event.Tx.RlpData()})
+ self.net.Broadcast("eth", TxMsg, []interface{}{event.Tx.RlpData()})
}
}
func (self *Ethereum) blockBroadcastLoop() {
// automatically stops if unsubscribe
for obj := range self.txSub.Chan() {
- event := obj.(core.NewMinedBlockEvent)
- self.server.Broadcast("eth", NewBlockMsg, event.Block.Value().Val)
+ switch ev := obj.(type) {
+ case core.NewMinedBlockEvent:
+ self.net.Broadcast("eth", NewBlockMsg, ev.Block.RlpData())
+ }
}
}
diff --git a/eth/protocol.go b/eth/protocol.go
index 3b6f95d440..7c5d09489b 100644
--- a/eth/protocol.go
+++ b/eth/protocol.go
@@ -13,7 +13,7 @@ import (
)
const (
- ProtocolVersion = 49
+ ProtocolVersion = 51
NetworkId = 0
ProtocolLength = uint64(8)
ProtocolMaxMsgSize = 10 * 1024 * 1024
@@ -172,7 +172,7 @@ func (self *ethProtocol) handle() error {
}
block := self.chainManager.GetBlock(hash)
if block != nil {
- blocks = append(blocks, block.Value().Raw())
+ blocks = append(blocks, block.RlpData())
}
}
return self.rw.EncodeMsg(BlocksMsg, blocks...)
diff --git a/eth/wallet.go b/eth/wallet.go
new file mode 100644
index 0000000000..9ec8343094
--- /dev/null
+++ b/eth/wallet.go
@@ -0,0 +1,80 @@
+package eth
+
+/*
+import (
+ "crypto/ecdsa"
+ "errors"
+ "math/big"
+
+ "github.com/ethereum/go-ethereum/core"
+ "github.com/ethereum/go-ethereum/core/types"
+)
+
+type Account struct {
+ w *Wallet
+}
+
+func (self *Account) Transact(to *Account, value, gas, price *big.Int, data []byte) error {
+ return self.w.transact(self, to, value, gas, price, data)
+}
+
+func (self *Account) Address() []byte {
+ return nil
+}
+
+func (self *Account) PrivateKey() *ecdsa.PrivateKey {
+ return nil
+}
+
+type Wallet struct{}
+
+func NewWallet() *Wallet {
+ return &Wallet{}
+}
+
+func (self *Wallet) GetAccount(i int) *Account {
+}
+
+func (self *Wallet) transact(from, to *Account, value, gas, price *big.Int, data []byte) error {
+ if from.PrivateKey() == nil {
+ return errors.New("accounts is not owned (no private key available)")
+ }
+
+ var createsContract bool
+ if to == nil {
+ createsContract = true
+ }
+
+ var msg *types.Transaction
+ if contractCreation {
+ msg = types.NewContractCreationTx(value, gas, price, data)
+ } else {
+ msg = types.NewTransactionMessage(to.Address(), value, gas, price, data)
+ }
+
+ state := self.chainManager.TransState()
+ nonce := state.GetNonce(key.Address())
+
+ msg.SetNonce(nonce)
+ msg.SignECDSA(from.PriateKey())
+
+ // Do some pre processing for our "pre" events and hooks
+ block := self.chainManager.NewBlock(from.Address())
+ coinbase := state.GetOrNewStateObject(from.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 {
+ addr := core.AddressFromMessage(tx)
+ pipelogger.Infof("Contract addr %x\n", addr)
+ }
+
+ return tx, nil
+}
+*/
diff --git a/ethdb/database.go b/ethdb/database.go
index 19aa83466e..47ddec9c02 100644
--- a/ethdb/database.go
+++ b/ethdb/database.go
@@ -71,6 +71,10 @@ func (self *LDBDatabase) NewIterator() iterator.Iterator {
return self.db.NewIterator(nil, nil)
}
+func (self *LDBDatabase) Write(batch *leveldb.Batch) error {
+ return self.db.Write(batch, nil)
+}
+
func (self *LDBDatabase) Close() {
// Close the leveldb database
self.db.Close()
diff --git a/ethutil/path.go b/ethutil/path.go
index cfbc389508..f64e3849e0 100644
--- a/ethutil/path.go
+++ b/ethutil/path.go
@@ -4,6 +4,7 @@ import (
"io/ioutil"
"os"
"os/user"
+ "path"
"strings"
)
@@ -58,3 +59,10 @@ func WriteFile(filePath string, content []byte) error {
return nil
}
+
+func AbsolutePath(Datadir string, filename string) string {
+ if path.IsAbs(filename) {
+ return filename
+ }
+ return path.Join(Datadir, filename)
+}
diff --git a/gocoverage.sh b/gocoverage.sh
index 35038108b9..24c8e92801 100755
--- a/gocoverage.sh
+++ b/gocoverage.sh
@@ -13,7 +13,10 @@ for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d)
do
if ls $dir/*.go &> /dev/null; then
# echo $dir
- go test -covermode=count -coverprofile=$dir/profile.tmp $dir
+ if [[ $dir != "./tests/vm" ]]
+ then
+ go test -covermode=count -coverprofile=$dir/profile.tmp $dir
+ fi
if [ -f $dir/profile.tmp ]
then
cat $dir/profile.tmp | tail -n +2 >> profile.cov
@@ -26,4 +29,4 @@ go tool cover -func profile.cov
# To submit the test coverage result to coveralls.io,
# use goveralls (https://github.com/mattn/goveralls)
-# goveralls -coverprofile=profile.cov -service=travis-ci
+goveralls -coverprofile=profile.cov -service=travis-ci -repotoken $COVERALLS_TOKEN
diff --git a/install_deps.sh b/install_deps.sh
deleted file mode 100755
index 73a3133244..0000000000
--- a/install_deps.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-set -e
-
-TEST_DEPS=$(go list -f '{{.Imports}} {{.TestImports}} {{.XTestImports}}' github.com/ethereum/go-ethereum/... | sed -e 's/\[//g' | sed -e 's/\]//g' | sed -e 's/C //g')
-if [ "$TEST_DEPS" ]; then
- go get -race $TEST_DEPS
-fi
diff --git a/javascript/types.go b/javascript/types.go
index cf5a6677bc..61a57033b2 100644
--- a/javascript/types.go
+++ b/javascript/types.go
@@ -18,11 +18,11 @@ type JSStateObject struct {
func (self *JSStateObject) EachStorage(call otto.FunctionCall) otto.Value {
cb := call.Argument(0)
- self.JSObject.EachStorage(func(key string, value *ethutil.Value) {
- value.Decode()
- cb.Call(self.eth.toVal(self), self.eth.toVal(key), self.eth.toVal(ethutil.Bytes2Hex(value.Bytes())))
- })
+ it := self.JSObject.Trie().Iterator()
+ for it.Next() {
+ cb.Call(self.eth.toVal(self), self.eth.toVal(ethutil.Bytes2Hex(it.Key)), self.eth.toVal(ethutil.Bytes2Hex(it.Value)))
+ }
return otto.UndefinedValue()
}
@@ -72,15 +72,21 @@ type JSEthereum struct {
ethereum *eth.Ethereum
}
-func (self *JSEthereum) GetBlock(hash string) otto.Value {
- return self.toVal(&JSBlock{self.JSXEth.BlockByHash(hash), self})
+func (self *JSEthereum) Block(v interface{}) otto.Value {
+ if number, ok := v.(int64); ok {
+ return self.toVal(&JSBlock{self.JSXEth.BlockByNumber(int32(number)), self})
+ } else if hash, ok := v.(string); ok {
+ return self.toVal(&JSBlock{self.JSXEth.BlockByHash(hash), self})
+ }
+
+ return otto.UndefinedValue()
}
-func (self *JSEthereum) GetPeers() otto.Value {
+func (self *JSEthereum) Peers() otto.Value {
return self.toVal(self.JSXEth.Peers())
}
-func (self *JSEthereum) GetKey() otto.Value {
+func (self *JSEthereum) Key() otto.Value {
return self.toVal(self.JSXEth.Key())
}
@@ -88,10 +94,6 @@ func (self *JSEthereum) GetStateObject(addr string) otto.Value {
return self.toVal(&JSStateObject{xeth.NewJSObject(self.JSXEth.World().SafeGet(ethutil.Hex2Bytes(addr))), self})
}
-func (self *JSEthereum) Peers() otto.Value {
- return self.toVal(self.JSXEth.Peers())
-}
-
func (self *JSEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr, dataStr string) otto.Value {
r, err := self.JSXEth.Transact(key, recipient, valueStr, gasStr, gasPriceStr, dataStr)
if err != nil {
@@ -103,18 +105,6 @@ func (self *JSEthereum) Transact(key, recipient, valueStr, gasStr, gasPriceStr,
return self.toVal(r)
}
-func (self *JSEthereum) Create(key, valueStr, gasStr, gasPriceStr, scriptStr string) otto.Value {
- r, err := self.JSXEth.Transact(key, "", valueStr, gasStr, gasPriceStr, scriptStr)
-
- if err != nil {
- fmt.Println(err)
-
- return otto.UndefinedValue()
- }
-
- return self.toVal(r)
-}
-
func (self *JSEthereum) toVal(v interface{}) otto.Value {
result, err := self.vm.ToValue(v)
diff --git a/logger/log.go b/logger/log.go
new file mode 100644
index 0000000000..53065f870b
--- /dev/null
+++ b/logger/log.go
@@ -0,0 +1,33 @@
+package logger
+
+import (
+ "fmt"
+ "io"
+ "log"
+ "os"
+
+ "github.com/ethereum/go-ethereum/ethutil"
+)
+
+func openLogFile(datadir string, filename string) *os.File {
+ path := ethutil.AbsolutePath(datadir, filename)
+ file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
+ if err != nil {
+ panic(fmt.Sprintf("error opening log file '%s': %v", filename, err))
+ }
+ return file
+}
+
+func New(datadir string, logFile string, logLevel int) LogSystem {
+ var writer io.Writer
+ if logFile == "" {
+ writer = os.Stdout
+ } else {
+ writer = openLogFile(datadir, logFile)
+ }
+
+ sys := NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel))
+ AddLogSystem(sys)
+
+ return sys
+}
diff --git a/miner/miner.go b/miner/miner.go
index d909c228b7..949227d983 100644
--- a/miner/miner.go
+++ b/miner/miner.go
@@ -56,7 +56,7 @@ type Miner struct {
eth *eth.Ethereum
events event.Subscription
- uncles types.Blocks
+ uncles []*types.Header
localTxs map[int]*LocalTx
localTxId int
@@ -174,9 +174,9 @@ func (self *Miner) reset() {
func (self *Miner) mine() {
var (
- blockManager = self.eth.BlockManager()
- chainMan = self.eth.ChainManager()
- block = chainMan.NewBlock(self.Coinbase)
+ blockProcessor = self.eth.BlockProcessor()
+ chainMan = self.eth.ChainManager()
+ block = chainMan.NewBlock(self.Coinbase)
)
// Apply uncles
@@ -184,15 +184,17 @@ func (self *Miner) mine() {
block.SetUncles(self.uncles)
}
- parent := chainMan.GetBlock(block.PrevHash)
- coinbase := block.State().GetOrNewStateObject(block.Coinbase)
- coinbase.SetGasPool(block.CalcGasLimit(parent))
+ parent := chainMan.GetBlock(block.ParentHash())
+ coinbase := block.State().GetOrNewStateObject(block.Coinbase())
+ coinbase.SetGasPool(core.CalcGasLimit(parent, block))
transactions := self.finiliseTxs()
+ state := block.State()
+
// 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.ApplyTransactions(coinbase, block.State(), block, transactions, true)
+ receipts, txs, _, erroneous, err := blockProcessor.ApplyTransactions(coinbase, state, block, transactions, true)
if err != nil {
minerlogger.Debugln(err)
}
@@ -202,16 +204,17 @@ func (self *Miner) mine() {
block.SetReceipts(receipts)
// Accumulate the rewards included for this block
- blockManager.AccumelateRewards(block.State(), block, parent)
+ blockProcessor.AccumelateRewards(state, block, parent)
- block.State().Update(ethutil.Big0)
+ state.Update(ethutil.Big0)
+ block.SetRoot(state.Root())
minerlogger.Infof("Mining on block. Includes %v transactions", len(transactions))
// Find a valid nonce
nonce := self.pow.Search(block, self.powQuitCh)
if nonce != nil {
- block.Nonce = nonce
+ block.Header().Nonce = nonce
err := chainMan.InsertChain(types.Blocks{block})
if err != nil {
minerlogger.Infoln(err)
diff --git a/p2p/client_identity.go b/p2p/client_identity.go
index bc865b63b0..f15fd01bfc 100644
--- a/p2p/client_identity.go
+++ b/p2p/client_identity.go
@@ -17,10 +17,10 @@ type SimpleClientIdentity struct {
customIdentifier string
os string
implementation string
- pubkey string
+ pubkey []byte
}
-func NewSimpleClientIdentity(clientIdentifier string, version string, customIdentifier string, pubkey string) *SimpleClientIdentity {
+func NewSimpleClientIdentity(clientIdentifier string, version string, customIdentifier string, pubkey []byte) *SimpleClientIdentity {
clientIdentity := &SimpleClientIdentity{
clientIdentifier: clientIdentifier,
version: version,
diff --git a/p2p/nat.go b/p2p/nat.go
new file mode 100644
index 0000000000..9b771c3e8c
--- /dev/null
+++ b/p2p/nat.go
@@ -0,0 +1,23 @@
+package p2p
+
+import (
+ "fmt"
+ "net"
+)
+
+func ParseNAT(natType string, gateway string) (nat NAT, err error) {
+ switch natType {
+ case "UPNP":
+ nat = UPNP()
+ case "PMP":
+ ip := net.ParseIP(gateway)
+ if ip == nil {
+ return nil, fmt.Errorf("cannot resolve PMP gateway IP %s", gateway)
+ }
+ nat = PMP(ip)
+ case "":
+ default:
+ return nil, fmt.Errorf("unrecognised NAT type '%s'", natType)
+ }
+ return
+}
diff --git a/pow/block.go b/pow/block.go
index 4759e19fb3..62df2b5ff5 100644
--- a/pow/block.go
+++ b/pow/block.go
@@ -3,7 +3,7 @@ package pow
import "math/big"
type Block interface {
- Diff() *big.Int
+ Difficulty() *big.Int
HashNoNonce() []byte
N() []byte
}
diff --git a/core/dagger.go b/pow/dagger/dagger.go
similarity index 99%
rename from core/dagger.go
rename to pow/dagger/dagger.go
index 3039d89959..9ac0004433 100644
--- a/core/dagger.go
+++ b/pow/dagger/dagger.go
@@ -1,4 +1,4 @@
-package core
+package dagger
import (
"hash"
diff --git a/core/dagger_test.go b/pow/dagger/dagger_test.go
similarity index 96%
rename from core/dagger_test.go
rename to pow/dagger/dagger_test.go
index e80064e6bf..f3a71d1eb4 100644
--- a/core/dagger_test.go
+++ b/pow/dagger/dagger_test.go
@@ -1,4 +1,4 @@
-package core
+package dagger
import (
"math/big"
diff --git a/pow/ezp/pow.go b/pow/ezp/pow.go
index f669f8aa4a..f9f27326fa 100644
--- a/pow/ezp/pow.go
+++ b/pow/ezp/pow.go
@@ -35,7 +35,7 @@ func (pow *EasyPow) Turbo(on bool) {
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()
+ diff := block.Difficulty()
i := int64(0)
start := time.Now().UnixNano()
t := time.Now()
@@ -89,5 +89,5 @@ func verify(hash []byte, diff *big.Int, nonce []byte) bool {
}
func Verify(block pow.Block) bool {
- return verify(block.HashNoNonce(), block.Diff(), block.N())
+ return verify(block.HashNoNonce(), block.Difficulty(), block.N())
}
diff --git a/profile.cov b/profile.cov
deleted file mode 100644
index e92cd379f3..0000000000
--- a/profile.cov
+++ /dev/null
@@ -1,3038 +0,0 @@
-mode: count
-github.com/ethereum/go-ethereum/chain/state_transition.go:40.134,42.2 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:44.60,45.20 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:49.2,50.16 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:45.20,47.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:52.58,53.21 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:57.2,59.17 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:53.21,55.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:61.60,62.49 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:66.2,66.21 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:70.2,71.17 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:62.49,64.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:66.21,68.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:74.60,75.30 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:78.2,80.12 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:75.30,77.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:83.54,85.2 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:87.45,91.50 3 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:95.2,97.16 3 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:101.2,104.12 3 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:91.50,93.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:97.16,99.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:107.42,114.2 4 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:116.53,123.30 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:128.2,128.37 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:132.2,132.12 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:123.30,125.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:128.37,130.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:135.60,139.39 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:143.2,155.45 4 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:160.2,162.46 3 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:166.2,166.42 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:170.2,172.26 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:198.2,207.41 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:264.2,264.8 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:139.39,141.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:155.45,157.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:162.46,164.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:166.42,168.3 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:172.26,181.22 5 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:186.3,186.33 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:181.22,183.4 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:187.4,196.3 4 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:207.41,214.20 3 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:220.3,221.20 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:214.20,218.4 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:222.4,223.29 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:223.29,225.21 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:231.4,231.20 1 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:225.21,229.5 2 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:267.122,281.2 5 0
-github.com/ethereum/go-ethereum/chain/state_transition.go:284.81,291.2 4 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:34.79,35.48 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:35.48,36.42 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:36.42,37.9 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:42.102,43.48 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:51.2,51.12 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:43.48,44.49 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:44.49,45.21 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:45.21,47.5 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:80.45,87.2 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:90.59,98.2 4 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:100.70,105.18 2 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:109.2,109.55 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:113.2,113.38 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:119.2,124.41 3 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:128.2,128.21 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:137.2,137.12 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:105.18,107.3 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:109.55,111.3 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:113.38,115.3 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:124.41,126.3 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:128.21,129.51 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:129.51,131.4 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:140.36,142.6 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:142.6,143.10 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:144.3,146.83 2 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:150.4,150.22 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:155.4,156.18 2 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:170.3,171.13 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:146.83,148.5 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:150.22,151.10 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:156.18,158.5 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:158.6,169.5 5 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:176.61,178.2 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:180.64,186.53 5 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:194.2,194.15 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:186.53,192.3 3 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:197.55,201.53 3 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:201.53,205.45 4 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:205.45,207.4 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:211.55,215.25 3 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:215.25,216.76 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:216.76,217.15 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:221.4,221.16 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:217.15,220.5 2 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:226.50,234.2 3 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:236.29,238.2 1 0
-github.com/ethereum/go-ethereum/chain/transaction_pool.go:240.28,246.2 3 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:78.57,89.2 4 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:91.35,93.2 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:95.34,97.2 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:99.53,101.2 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:103.51,105.2 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:107.52,109.2 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:111.55,115.2 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:117.54,119.2 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:121.232,131.25 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:178.2,180.53 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:131.25,140.17 6 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:159.3,173.62 10 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:140.17,142.11 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:143.4,145.13 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:146.4,149.15 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:150.4,154.13 4 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:173.62,175.4 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:183.99,188.34 3 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:192.2,192.37 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:195.2,197.44 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:188.34,190.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:192.37,194.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:200.121,211.61 4 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:215.2,216.16 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:220.2,221.44 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:226.2,227.54 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:233.2,233.55 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:238.2,238.66 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:244.2,245.49 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:250.2,252.31 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:258.2,258.41 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:211.61,213.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:216.16,218.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:221.44,224.3 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:227.54,230.3 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:233.55,236.3 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:238.66,241.3 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:245.49,248.3 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:252.31,255.3 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:258.41,272.3 7 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:272.4,274.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:277.120,283.16 4 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:287.2,287.22 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:283.16,285.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:290.74,292.37 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:297.2,303.26 4 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:310.2,310.19 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:292.37,294.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:303.26,308.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:316.73,318.36 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:322.2,323.14 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:335.2,335.72 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:339.2,339.12 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:318.36,320.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:323.14,325.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:335.72,337.3 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:342.97,347.37 4 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:378.2,382.12 3 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:347.37,348.34 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:353.3,354.25 2 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:358.3,358.81 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:362.3,362.40 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:366.3,374.68 6 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:348.34,351.4 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:354.25,356.4 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:358.81,360.4 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:362.40,364.4 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:385.96,386.37 1 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:390.2,403.39 6 0
-github.com/ethereum/go-ethereum/chain/block_manager.go:386.37,388.3 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:34.40,36.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:38.62,40.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:45.54,47.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:49.50,51.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:53.44,55.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:57.42,59.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:61.42,63.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:65.40,67.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:69.37,71.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:73.39,75.2 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:78.45,80.25 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:83.2,84.23 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:88.2,93.41 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:119.2,121.24 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:80.25,82.3 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:84.23,86.3 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:93.41,95.10 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:104.3,104.30 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:116.3,116.59 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:96.3,97.15 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:98.3,99.9 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:104.30,107.18 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:113.4,113.61 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:107.18,110.10 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:124.58,125.33 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:131.2,131.8 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:125.33,126.34 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:126.34,128.4 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:134.76,138.31 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:172.2,172.17 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:138.31,139.57 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:143.3,143.63 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:147.3,148.29 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:152.3,152.46 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:165.3,165.13 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:169.3,169.39 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:139.57,140.12 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:143.63,144.12 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:148.29,150.4 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:152.46,153.95 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:157.4,157.110 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:161.4,162.9 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:153.95,154.13 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:157.110,158.13 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:165.13,166.12 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:175.58,177.24 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:188.2,188.22 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:199.2,199.35 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:177.24,178.34 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:178.34,179.48 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:179.48,181.10 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:184.4,186.3 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:188.22,189.30 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:189.30,190.114 1 0
-github.com/ethereum/go-ethereum/chain/filter.go:190.114,192.10 2 0
-github.com/ethereum/go-ethereum/chain/filter.go:195.4,197.3 1 0
-github.com/ethereum/go-ethereum/chain/error.go:14.38,16.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:18.37,20.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:22.34,26.2 2 0
-github.com/ethereum/go-ethereum/chain/error.go:32.37,34.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:36.35,38.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:40.33,44.2 2 0
-github.com/ethereum/go-ethereum/chain/error.go:51.42,53.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:55.70,57.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:59.38,63.2 2 0
-github.com/ethereum/go-ethereum/chain/error.go:70.36,74.2 2 0
-github.com/ethereum/go-ethereum/chain/error.go:75.40,77.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:78.51,80.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:87.37,89.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:91.43,93.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:95.33,99.2 2 0
-github.com/ethereum/go-ethereum/chain/error.go:105.35,107.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:108.41,110.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:112.36,116.2 2 0
-github.com/ethereum/go-ethereum/chain/error.go:122.37,124.2 1 0
-github.com/ethereum/go-ethereum/chain/error.go:125.30,128.2 2 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:17.83,23.2 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:25.43,25.70 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:26.43,26.71 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:27.43,27.73 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:28.43,28.73 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:29.43,29.69 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:30.43,30.75 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:31.43,31.71 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:32.43,32.67 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:33.43,33.64 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:34.43,34.73 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:35.43,37.2 1 0
-github.com/ethereum/go-ethereum/chain/vm_env.go:38.73,40.2 1 0
-github.com/ethereum/go-ethereum/chain/asm.go:11.48,13.6 2 0
-github.com/ethereum/go-ethereum/chain/asm.go:49.2,49.12 1 0
-github.com/ethereum/go-ethereum/chain/asm.go:13.6,14.50 1 0
-github.com/ethereum/go-ethereum/chain/asm.go:19.3,25.13 4 0
-github.com/ethereum/go-ethereum/chain/asm.go:46.3,46.27 1 0
-github.com/ethereum/go-ethereum/chain/asm.go:14.50,16.4 1 0
-github.com/ethereum/go-ethereum/chain/asm.go:26.3,33.39 3 0
-github.com/ethereum/go-ethereum/chain/asm.go:37.4,38.22 2 0
-github.com/ethereum/go-ethereum/chain/asm.go:41.4,43.31 2 0
-github.com/ethereum/go-ethereum/chain/asm.go:33.39,35.5 1 0
-github.com/ethereum/go-ethereum/chain/asm.go:38.22,40.5 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:17.42,27.4 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:27.4,32.3 4 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:35.58,39.33 3 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:45.2,45.13 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:39.33,41.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:41.4,43.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:63.38,71.2 4 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:73.67,75.2 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:77.40,79.20 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:94.2,94.88 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:79.20,90.3 6 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:90.4,92.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:98.64,102.28 3 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:107.2,118.19 4 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:125.2,125.14 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:102.28,105.3 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:118.19,123.3 3 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:128.33,140.2 6 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:143.49,154.2 6 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:157.48,159.2 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:162.52,165.2 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:167.92,169.18 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:174.2,174.35 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:185.2,185.8 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:169.18,171.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:174.35,178.42 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:182.3,182.40 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:178.42,179.9 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:188.62,190.20 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:203.2,203.38 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:190.20,191.31 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:200.3,200.13 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:191.31,193.63 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:193.63,194.63 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:194.63,196.6 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:206.69,208.60 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:214.2,214.60 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:218.2,218.14 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:208.60,209.35 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:209.35,210.9 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:214.60,216.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:221.57,224.2 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:226.79,228.19 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:232.2,235.37 3 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:239.2,243.16 4 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:228.19,230.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:235.37,237.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:246.71,252.2 4 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:255.60,261.2 3 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:263.32,264.28 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:264.28,266.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:269.72,271.2 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:274.99,275.49 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:284.2,285.26 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:275.49,282.3 4 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:285.26,288.3 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:291.81,293.15 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:295.2,295.49 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:321.2,321.26 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:326.2,328.8 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:293.15,293.42 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:295.49,302.20 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:307.3,309.17 3 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:317.3,318.24 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:302.20,305.4 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:309.17,316.4 5 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:321.26,324.3 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:341.48,344.31 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:348.2,348.14 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:344.31,346.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:351.44,353.48 2 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:357.2,357.28 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:353.48,355.3 1 0
-github.com/ethereum/go-ethereum/chain/chain_manager.go:365.48,368.2 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:31.41,33.2 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:35.36,37.2 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:39.77,47.6 7 0
-github.com/ethereum/go-ethereum/chain/dagger.go:76.2,76.12 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:47.6,48.10 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:71.3,71.17 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:49.3,52.14 3 0
-github.com/ethereum/go-ethereum/chain/dagger.go:53.3,56.41 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:65.4,66.35 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:56.41,63.5 5 0
-github.com/ethereum/go-ethereum/chain/dagger.go:66.35,68.5 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:71.17,73.4 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:79.75,92.2 8 0
-github.com/ethereum/go-ethereum/chain/dagger.go:94.44,95.2 0 0
-github.com/ethereum/go-ethereum/chain/dagger.go:104.59,107.28 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:125.2,125.14 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:107.28,112.23 4 0
-github.com/ethereum/go-ethereum/chain/dagger.go:120.3,120.12 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:112.23,117.4 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:120.12,121.9 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:128.57,141.40 8 0
-github.com/ethereum/go-ethereum/chain/dagger.go:146.2,146.40 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:153.2,153.24 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:141.40,145.3 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:146.40,148.29 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:148.29,150.4 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:156.60,163.2 4 0
-github.com/ethereum/go-ethereum/chain/dagger.go:165.52,173.2 5 0
-github.com/ethereum/go-ethereum/chain/dagger.go:175.54,176.12 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:180.2,181.12 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:187.2,193.39 6 0
-github.com/ethereum/go-ethereum/chain/dagger.go:206.2,208.12 2 0
-github.com/ethereum/go-ethereum/chain/dagger.go:176.12,178.3 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:181.12,183.3 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:183.4,185.3 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:193.39,204.3 9 0
-github.com/ethereum/go-ethereum/chain/dagger.go:211.32,214.2 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:216.46,224.25 6 0
-github.com/ethereum/go-ethereum/chain/dagger.go:240.2,240.31 1 0
-github.com/ethereum/go-ethereum/chain/dagger.go:224.25,238.3 10 0
-github.com/ethereum/go-ethereum/chain/types/block.go:23.45,30.2 5 0
-github.com/ethereum/go-ethereum/chain/types/block.go:32.41,34.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:38.46,40.29 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:44.2,44.12 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:40.29,42.3 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:49.41,55.2 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:62.35,62.62 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:63.40,65.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:66.45,66.95 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:68.33,68.72 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:104.43,109.2 3 0
-github.com/ethereum/go-ethereum/chain/types/block.go:112.59,117.2 3 0
-github.com/ethereum/go-ethereum/chain/types/block.go:124.23,143.2 4 0
-github.com/ethereum/go-ethereum/chain/types/block.go:146.42,149.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:151.42,153.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:155.42,157.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:159.49,161.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:163.58,164.42 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:170.2,179.36 7 0
-github.com/ethereum/go-ethereum/chain/types/block.go:164.42,166.3 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:182.43,188.2 4 0
-github.com/ethereum/go-ethereum/chain/types/block.go:190.61,191.39 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:197.2,197.12 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:191.39,192.42 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:192.42,194.4 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:201.28,203.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:205.28,208.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:211.47,214.35 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:219.2,219.13 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:214.35,217.3 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:222.45,225.37 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:230.2,230.15 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:225.37,228.3 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:233.48,236.2 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:238.51,242.2 3 0
-github.com/ethereum/go-ethereum/chain/types/block.go:244.54,247.2 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:249.44,251.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:253.40,257.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:259.44,262.2 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:264.60,269.37 2 0
-github.com/ethereum/go-ethereum/chain/types/block.go:283.2,283.37 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:269.37,274.34 3 0
-github.com/ethereum/go-ethereum/chain/types/block.go:274.34,279.4 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:283.37,286.37 3 0
-github.com/ethereum/go-ethereum/chain/types/block.go:286.37,288.4 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:293.53,309.2 15 0
-github.com/ethereum/go-ethereum/chain/types/block.go:311.59,316.2 3 0
-github.com/ethereum/go-ethereum/chain/types/block.go:318.39,320.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:322.40,324.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:326.37,328.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:330.42,332.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:334.50,365.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:367.44,369.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:371.37,410.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:412.47,414.2 1 0
-github.com/ethereum/go-ethereum/chain/types/block.go:417.42,419.2 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:11.44,13.35 2 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:17.2,17.46 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:13.35,15.3 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:20.42,22.27 2 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:37.2,37.12 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:22.27,24.36 2 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:28.3,28.26 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:24.36,26.4 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:28.26,30.4 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:40.32,42.35 2 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:48.2,48.10 1 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:42.35,46.3 3 0
-github.com/ethereum/go-ethereum/chain/types/bloom9.go:51.42,56.2 3 0
-github.com/ethereum/go-ethereum/chain/types/derive_sha.go:13.43,15.34 2 0
-github.com/ethereum/go-ethereum/chain/types/derive_sha.go:19.2,19.23 1 0
-github.com/ethereum/go-ethereum/chain/types/derive_sha.go:15.34,17.3 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:19.67,21.2 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:23.55,28.2 3 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:30.47,32.2 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:34.61,40.16 5 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:40.16,42.3 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:45.44,47.2 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:49.41,51.2 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:53.47,54.57 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:58.2,58.13 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:54.57,56.3 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:61.38,63.2 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:67.43,67.63 1 0
-github.com/ethereum/go-ethereum/chain/types/receipt.go:68.43,68.74 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:15.39,18.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:34.87,36.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:38.96,40.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:42.56,47.2 3 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:49.63,54.2 3 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:56.46,58.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:60.48,63.2 2 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:65.38,69.2 2 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:71.47,73.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:76.42,78.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:80.67,88.2 2 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:90.53,96.2 3 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:98.43,112.2 7 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:114.40,119.40 2 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:123.2,123.37 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:119.40,121.3 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:126.49,135.2 5 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:137.46,143.2 2 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:145.50,147.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:149.43,151.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:153.47,155.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:157.63,169.34 10 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:169.34,171.3 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:174.40,201.2 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:206.48,209.26 2 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:214.2,214.12 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:209.26,212.3 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:216.44,216.61 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:217.44,217.71 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:218.44,218.72 1 0
-github.com/ethereum/go-ethereum/chain/types/transaction.go:222.40,224.2 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:20.45,23.32 2 4
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:45.2,45.25 1 4
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:23.32,24.22 1 4
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:24.22,25.22 1 4
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:25.22,26.21 1 4
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:36.5,36.8 1 4
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:27.5,28.22 1 1
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:29.5,30.26 1 1
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:31.5,32.26 1 1
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:33.5,34.46 1 1
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:37.6,39.5 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:40.5,42.4 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:48.52,49.9 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:50.2,51.38 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:52.2,54.32 2 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:60.3,60.39 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:61.2,62.64 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:67.3,67.14 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:68.2,69.20 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:54.32,55.19 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:58.4,58.7 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:55.19,56.10 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:62.64,64.4 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:64.5,64.79 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:64.79,66.4 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:73.34,77.19 3 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:83.2,83.20 1 0
-github.com/ethereum/go-ethereum/compression/rle/read_write.go:77.19,81.3 3 0
-github.com/ethereum/go-ethereum/crypto/crypto.go:13.31,18.2 3 1
-github.com/ethereum/go-ethereum/crypto/crypto.go:21.51,23.2 1 0
-github.com/ethereum/go-ethereum/crypto/crypto.go:25.33,29.2 2 1
-github.com/ethereum/go-ethereum/crypto/crypto.go:31.36,36.2 3 1
-github.com/ethereum/go-ethereum/crypto/crypto.go:38.36,47.2 3 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:18.55,20.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:22.52,24.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:26.41,28.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:30.41,32.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:34.42,36.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:38.41,40.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:42.39,44.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:46.67,48.16 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:51.2,52.12 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:48.16,50.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:55.61,57.12 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:64.2,64.21 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:57.12,60.17 3 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:60.17,62.4 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:67.45,69.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:71.80,72.29 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:75.2,79.16 5 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:82.2,85.12 4 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:72.29,74.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:79.16,81.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:88.50,89.31 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:92.2,93.12 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:89.31,91.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:96.73,98.12 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:105.2,105.20 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:108.2,108.42 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:98.12,101.17 3 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:101.17,103.4 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:105.20,107.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:111.96,113.16 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:116.2,116.42 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:113.16,115.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:119.87,121.16 2 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:124.2,124.42 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:121.16,123.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_manager.go:127.47,130.2 2 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:24.51,26.2 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:28.67,31.2 2 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:33.61,35.16 2 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:38.2,40.16 3 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:44.2,44.24 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:47.2,47.21 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:35.16,37.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:40.16,42.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:44.24,46.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:54.69,61.38 7 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:68.2,69.19 2 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:73.2,76.16 4 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:80.2,82.16 3 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:86.2,88.16 3 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:92.2,94.16 3 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:98.2,98.12 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:61.38,66.3 4 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:69.19,71.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:76.16,78.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:82.16,84.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:88.16,90.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:94.16,96.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:101.63,103.19 2 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:106.2,109.16 3 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:112.2,112.36 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:103.19,105.3 1 0
-github.com/ethereum/go-ethereum/crypto/key_store.go:109.16,111.3 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:19.36,23.2 3 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:25.57,27.16 2 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:31.2,31.61 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:27.16,29.3 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:34.36,35.22 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:38.2,38.18 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:35.22,37.3 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:41.37,42.22 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:45.2,45.19 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:42.22,44.3 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:48.64,50.2 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:52.38,54.2 1 0
-github.com/ethereum/go-ethereum/crypto/keypair.go:56.45,58.2 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:15.28,17.2 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:19.48,21.2 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:23.46,24.21 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:28.2,28.12 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:24.21,26.3 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:31.32,33.2 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:35.29,37.2 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:39.42,40.33 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:40.33,42.3 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:45.44,47.27 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:50.2,50.16 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:47.27,49.3 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:53.59,57.16 4 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:60.2,61.16 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:64.2,64.21 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:57.16,59.3 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:61.16,63.3 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:67.61,70.45 3 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:84.2,84.39 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:70.45,73.23 3 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:79.3,79.23 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:73.23,75.4 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:75.5,75.29 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:75.29,77.4 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:79.23,81.4 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:87.61,89.27 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:96.2,96.21 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:89.27,91.17 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:94.3,94.30 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:91.17,93.4 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:99.57,102.16 3 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:106.2,107.16 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:110.2,110.21 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:102.16,105.3 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:107.16,109.3 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:113.38,115.2 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:117.45,119.32 2 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:122.2,122.10 1 0
-github.com/ethereum/go-ethereum/crypto/keyring.go:119.32,121.3 1 0
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:9.50,10.26 1 24
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:15.2,15.11 1 0
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:10.26,11.17 1 18817
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:11.17,13.4 1 24
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:18.46,22.56 3 1
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:30.2,30.12 1 1
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:22.56,29.3 6 8
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:33.46,37.39 3 1
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:59.2,59.12 1 1
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:37.39,50.12 9 8
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:53.3,53.12 1 8
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:56.3,57.32 2 8
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:50.12,52.4 1 4
-github.com/ethereum/go-ethereum/crypto/mnemonic.go:53.12,55.4 1 2
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:16.45,20.2 2 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:22.54,24.2 1 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:26.56,28.2 1 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:38.49,42.2 2 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:44.32,45.30 1 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:45.30,49.3 3 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:52.32,53.2 0 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:55.45,58.35 2 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:62.2,62.13 1 0
-github.com/ethereum/go-ethereum/ethdb/memory_database.go:58.35,60.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:18.56,23.16 3 0
-github.com/ethereum/go-ethereum/ethdb/database.go:27.2,29.22 2 0
-github.com/ethereum/go-ethereum/ethdb/database.go:23.16,25.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:32.56,33.15 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:37.2,38.16 2 0
-github.com/ethereum/go-ethereum/ethdb/database.go:33.15,35.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:38.16,40.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:43.58,45.16 2 0
-github.com/ethereum/go-ethereum/ethdb/database.go:49.2,49.15 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:53.2,53.17 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:45.16,47.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:49.15,51.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:56.51,58.2 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:60.47,63.20 2 0
-github.com/ethereum/go-ethereum/ethdb/database.go:67.2,67.13 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:63.20,65.3 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:70.58,72.2 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:74.34,77.2 1 0
-github.com/ethereum/go-ethereum/ethdb/database.go:79.34,81.18 2 0
-github.com/ethereum/go-ethereum/ethdb/database.go:81.18,88.3 5 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:14.35,16.2 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:18.60,19.22 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:25.2,25.10 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:19.22,20.34 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:20.34,22.4 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:31.54,34.16 3 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:38.2,38.41 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:34.16,36.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:44.37,53.16 6 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:57.2,57.15 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:53.16,55.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:63.43,64.25 1 5
-github.com/ethereum/go-ethereum/ethutil/bytes.go:84.2,84.8 1 5
-github.com/ethereum/go-ethereum/ethutil/bytes.go:65.2,67.58 2 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:68.2,72.20 4 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:73.2,77.20 4 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:78.2,81.20 3 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:90.32,91.14 1 7
-github.com/ethereum/go-ethereum/ethutil/bytes.go:95.2,95.33 1 5
-github.com/ethereum/go-ethereum/ethutil/bytes.go:91.14,93.3 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:101.47,106.2 3 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:108.29,111.2 2 5
-github.com/ethereum/go-ethereum/ethutil/bytes.go:113.33,115.2 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:117.35,121.2 2 3
-github.com/ethereum/go-ethereum/ethutil/bytes.go:123.76,124.70 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:130.2,130.8 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:124.70,126.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:126.4,128.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:133.37,134.20 1 4
-github.com/ethereum/go-ethereum/ethutil/bytes.go:138.2,139.53 2 3
-github.com/ethereum/go-ethereum/ethutil/bytes.go:147.2,147.27 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:134.20,136.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:139.53,141.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:141.4,141.46 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:141.46,143.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:143.4,145.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:150.50,151.28 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:167.2,167.8 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:151.28,152.27 1 4
-github.com/ethereum/go-ethereum/ethutil/bytes.go:153.3,155.16 2 3
-github.com/ethereum/go-ethereum/ethutil/bytes.go:161.4,161.48 1 3
-github.com/ethereum/go-ethereum/ethutil/bytes.go:162.3,163.45 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:155.16,157.5 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:157.6,159.5 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:170.48,171.20 1 6
-github.com/ethereum/go-ethereum/ethutil/bytes.go:175.2,178.15 3 5
-github.com/ethereum/go-ethereum/ethutil/bytes.go:171.20,173.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:181.47,182.20 1 7
-github.com/ethereum/go-ethereum/ethutil/bytes.go:186.2,189.15 3 6
-github.com/ethereum/go-ethereum/ethutil/bytes.go:182.20,184.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:192.46,193.18 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:197.2,199.20 2 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:193.18,195.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:203.47,204.18 1 2
-github.com/ethereum/go-ethereum/ethutil/bytes.go:208.2,210.20 2 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:204.18,206.3 1 1
-github.com/ethereum/go-ethereum/ethutil/bytes.go:214.42,215.21 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:223.2,225.8 2 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:215.21,217.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:217.4,217.28 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:217.28,219.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:219.4,221.3 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:228.63,229.26 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:233.2,233.8 1 0
-github.com/ethereum/go-ethereum/ethutil/bytes.go:229.26,231.3 1 0
-github.com/ethereum/go-ethereum/ethutil/path.go:10.45,14.22 2 2
-github.com/ethereum/go-ethereum/ethutil/path.go:21.2,21.8 1 2
-github.com/ethereum/go-ethereum/ethutil/path.go:14.22,19.3 3 1
-github.com/ethereum/go-ethereum/ethutil/path.go:24.38,26.38 2 2
-github.com/ethereum/go-ethereum/ethutil/path.go:30.2,30.13 1 1
-github.com/ethereum/go-ethereum/ethutil/path.go:26.38,28.3 1 1
-github.com/ethereum/go-ethereum/ethutil/path.go:33.51,35.16 2 2
-github.com/ethereum/go-ethereum/ethutil/path.go:39.2,40.16 2 1
-github.com/ethereum/go-ethereum/ethutil/path.go:44.2,44.26 1 1
-github.com/ethereum/go-ethereum/ethutil/path.go:35.16,37.3 1 1
-github.com/ethereum/go-ethereum/ethutil/path.go:40.16,42.3 1 0
-github.com/ethereum/go-ethereum/ethutil/path.go:47.55,49.16 2 2
-github.com/ethereum/go-ethereum/ethutil/path.go:52.2,55.16 3 1
-github.com/ethereum/go-ethereum/ethutil/path.go:59.2,59.12 1 1
-github.com/ethereum/go-ethereum/ethutil/path.go:49.16,51.3 1 1
-github.com/ethereum/go-ethereum/ethutil/path.go:55.16,57.3 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:15.66,16.21 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:48.2,48.17 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:16.21,19.41 2 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:19.41,20.16 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:21.4,23.19 2 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:27.5,27.25 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:23.19,25.6 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:29.5,34.23 4 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:44.4,44.24 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:34.23,36.31 2 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:41.5,41.39 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:36.31,37.19 1 0
-github.com/ethereum/go-ethereum/ethutil/script_unix.go:37.19,39.7 1 0
-github.com/ethereum/go-ethereum/ethutil/size.go:7.41,8.20 1 3
-github.com/ethereum/go-ethereum/ethutil/size.go:8.20,10.3 1 1
-github.com/ethereum/go-ethereum/ethutil/size.go:10.4,10.24 1 2
-github.com/ethereum/go-ethereum/ethutil/size.go:10.24,12.3 1 1
-github.com/ethereum/go-ethereum/ethutil/size.go:12.4,14.3 1 1
-github.com/ethereum/go-ethereum/ethutil/rlp.go:22.36,24.2 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:30.34,34.2 2 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:35.65,37.2 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:46.25,47.16 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:51.2,51.15 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:47.16,49.3 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:54.57,59.9 3 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:91.2,91.14 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:60.2,61.14 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:63.2,64.39 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:66.2,69.34 2 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:71.2,73.31 2 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:78.3,78.15 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:79.2,81.39 2 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:86.3,86.15 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:87.2,88.53 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:73.31,76.4 2 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:81.39,84.4 2 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:100.40,103.19 2 59
-github.com/ethereum/go-ethereum/ethutil/rlp.go:177.2,177.21 1 59
-github.com/ethereum/go-ethereum/ethutil/rlp.go:103.19,104.29 1 59
-github.com/ethereum/go-ethereum/ethutil/rlp.go:105.3,106.31 1 2
-github.com/ethereum/go-ethereum/ethutil/rlp.go:107.3,108.35 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:110.3,111.44 1 10
-github.com/ethereum/go-ethereum/ethutil/rlp.go:112.3,113.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:114.3,115.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:116.3,117.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:118.3,119.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:120.3,121.37 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:122.3,123.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:124.3,125.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:126.3,127.44 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:128.3,129.44 1 1
-github.com/ethereum/go-ethereum/ethutil/rlp.go:130.3,132.16 1 12
-github.com/ethereum/go-ethereum/ethutil/rlp.go:137.3,138.33 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:139.3,140.35 1 20
-github.com/ethereum/go-ethereum/ethutil/rlp.go:151.3,152.33 1 6
-github.com/ethereum/go-ethereum/ethutil/rlp.go:153.3,155.41 1 8
-github.com/ethereum/go-ethereum/ethutil/rlp.go:165.4,166.26 2 8
-github.com/ethereum/go-ethereum/ethutil/rlp.go:169.4,170.25 2 8
-github.com/ethereum/go-ethereum/ethutil/rlp.go:132.16,134.5 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:134.6,136.5 1 12
-github.com/ethereum/go-ethereum/ethutil/rlp.go:140.35,142.5 1 11
-github.com/ethereum/go-ethereum/ethutil/rlp.go:142.6,142.26 1 9
-github.com/ethereum/go-ethereum/ethutil/rlp.go:142.26,145.5 2 8
-github.com/ethereum/go-ethereum/ethutil/rlp.go:145.6,150.5 4 1
-github.com/ethereum/go-ethereum/ethutil/rlp.go:155.41,156.20 1 8
-github.com/ethereum/go-ethereum/ethutil/rlp.go:156.20,158.6 1 8
-github.com/ethereum/go-ethereum/ethutil/rlp.go:158.7,162.6 3 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:166.26,168.5 1 19
-github.com/ethereum/go-ethereum/ethutil/rlp.go:172.4,175.3 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:182.60,185.9 3 16
-github.com/ethereum/go-ethereum/ethutil/rlp.go:241.2,241.17 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:186.2,187.28 1 3
-github.com/ethereum/go-ethereum/ethutil/rlp.go:189.2,192.44 2 9
-github.com/ethereum/go-ethereum/ethutil/rlp.go:194.2,199.54 3 1
-github.com/ethereum/go-ethereum/ethutil/rlp.go:201.2,205.30 4 3
-github.com/ethereum/go-ethereum/ethutil/rlp.go:217.3,217.20 1 3
-github.com/ethereum/go-ethereum/ethutil/rlp.go:219.2,226.38 5 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:235.3,235.20 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:237.2,238.53 1 0
-github.com/ethereum/go-ethereum/ethutil/rlp.go:205.30,216.4 5 9
-github.com/ethereum/go-ethereum/ethutil/rlp.go:226.38,234.4 5 0
-github.com/ethereum/go-ethereum/ethutil/set.go:13.40,15.24 2 0
-github.com/ethereum/go-ethereum/ethutil/set.go:19.2,19.12 1 0
-github.com/ethereum/go-ethereum/ethutil/set.go:15.24,17.3 1 0
-github.com/ethereum/go-ethereum/ethutil/set.go:22.54,26.2 2 0
-github.com/ethereum/go-ethereum/ethutil/set.go:28.50,32.2 2 0
-github.com/ethereum/go-ethereum/ethutil/set.go:34.32,36.2 1 0
-github.com/ethereum/go-ethereum/ethutil/big.go:8.32,13.2 3 18
-github.com/ethereum/go-ethereum/ethutil/big.go:18.31,23.2 3 8
-github.com/ethereum/go-ethereum/ethutil/big.go:28.33,33.2 3 1
-github.com/ethereum/go-ethereum/ethutil/big.go:35.40,37.2 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:46.32,54.2 2 2
-github.com/ethereum/go-ethereum/ethutil/big.go:56.32,57.22 1 2
-github.com/ethereum/go-ethereum/ethutil/big.go:57.22,59.3 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:59.4,62.3 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:69.48,72.31 2 4
-github.com/ethereum/go-ethereum/ethutil/big.go:76.2,76.64 1 3
-github.com/ethereum/go-ethereum/ethutil/big.go:72.31,74.3 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:82.37,84.2 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:89.37,90.19 1 2
-github.com/ethereum/go-ethereum/ethutil/big.go:94.2,94.10 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:90.19,92.3 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:100.37,101.19 1 2
-github.com/ethereum/go-ethereum/ethutil/big.go:105.2,105.10 1 1
-github.com/ethereum/go-ethereum/ethutil/big.go:101.19,103.3 1 1
-github.com/ethereum/go-ethereum/ethutil/config.go:30.85,31.19 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:48.2,48.15 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:31.19,33.29 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:37.3,41.17 2 0
-github.com/ethereum/go-ethereum/ethutil/config.go:46.3,46.83 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:33.29,36.4 2 0
-github.com/ethereum/go-ethereum/ethutil/config.go:41.17,43.4 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:43.5,45.4 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:52.61,55.2 2 0
-github.com/ethereum/go-ethereum/ethutil/config.go:57.44,59.2 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:67.49,69.2 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:71.43,71.64 1 0
-github.com/ethereum/go-ethereum/ethutil/config.go:72.43,72.73 2 0
-github.com/ethereum/go-ethereum/ethutil/list.go:20.35,22.34 2 0
-github.com/ethereum/go-ethereum/ethutil/list.go:26.2,26.49 1 0
-github.com/ethereum/go-ethereum/ethutil/list.go:22.34,24.3 1 0
-github.com/ethereum/go-ethereum/ethutil/list.go:29.24,31.2 1 0
-github.com/ethereum/go-ethereum/ethutil/list.go:34.42,35.25 1 0
-github.com/ethereum/go-ethereum/ethutil/list.go:44.2,44.12 1 0
-github.com/ethereum/go-ethereum/ethutil/list.go:35.25,42.3 4 0
-github.com/ethereum/go-ethereum/ethutil/list.go:47.48,53.2 3 0
-github.com/ethereum/go-ethereum/ethutil/list.go:57.41,63.2 4 0
-github.com/ethereum/go-ethereum/ethutil/list.go:66.43,68.2 1 0
-github.com/ethereum/go-ethereum/ethutil/list.go:71.35,74.35 2 0
-github.com/ethereum/go-ethereum/ethutil/list.go:78.2,80.21 2 0
-github.com/ethereum/go-ethereum/ethutil/list.go:74.35,76.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:33.44,35.16 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:38.2,41.16 3 0
-github.com/ethereum/go-ethereum/ethutil/package.go:45.2,45.21 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:35.16,37.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:41.16,43.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:51.48,55.49 3 0
-github.com/ethereum/go-ethereum/ethutil/package.go:60.2,60.23 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:55.49,56.3 0 0
-github.com/ethereum/go-ethereum/ethutil/package.go:56.4,56.23 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:56.23,58.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:66.66,69.26 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:75.2,75.8 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:69.26,70.19 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:70.19,72.4 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:83.50,85.16 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:88.2,92.23 3 0
-github.com/ethereum/go-ethereum/ethutil/package.go:96.2,97.16 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:101.2,102.16 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:106.2,106.26 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:110.2,111.20 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:115.2,116.16 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:120.2,122.24 2 0
-github.com/ethereum/go-ethereum/ethutil/package.go:85.16,87.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:92.23,94.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:97.16,99.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:102.16,104.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:106.26,108.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:111.20,113.3 1 0
-github.com/ethereum/go-ethereum/ethutil/package.go:116.16,118.3 1 0
-github.com/ethereum/go-ethereum/ethutil/common.go:9.23,11.2 1 2
-github.com/ethereum/go-ethereum/ethutil/common.go:13.40,14.43 1 1
-github.com/ethereum/go-ethereum/ethutil/common.go:17.2,17.13 1 1
-github.com/ethereum/go-ethereum/ethutil/common.go:14.43,16.3 1 0
-github.com/ethereum/go-ethereum/ethutil/common.go:36.44,42.9 2 12
-github.com/ethereum/go-ethereum/ethutil/common.go:70.2,70.27 1 12
-github.com/ethereum/go-ethereum/ethutil/common.go:74.2,74.41 1 10
-github.com/ethereum/go-ethereum/ethutil/common.go:43.2,45.20 2 2
-github.com/ethereum/go-ethereum/ethutil/common.go:46.2,48.21 2 2
-github.com/ethereum/go-ethereum/ethutil/common.go:49.2,51.18 2 1
-github.com/ethereum/go-ethereum/ethutil/common.go:52.2,54.19 2 1
-github.com/ethereum/go-ethereum/ethutil/common.go:55.2,57.18 2 1
-github.com/ethereum/go-ethereum/ethutil/common.go:58.2,60.20 2 1
-github.com/ethereum/go-ethereum/ethutil/common.go:61.2,63.20 2 2
-github.com/ethereum/go-ethereum/ethutil/common.go:64.2,66.16 2 1
-github.com/ethereum/go-ethereum/ethutil/common.go:70.27,72.3 1 2
-github.com/ethereum/go-ethereum/ethutil/rand.go:9.48,12.17 3 2
-github.com/ethereum/go-ethereum/ethutil/rand.go:15.2,15.16 1 2
-github.com/ethereum/go-ethereum/ethutil/rand.go:18.2,18.40 1 2
-github.com/ethereum/go-ethereum/ethutil/rand.go:12.17,14.3 1 0
-github.com/ethereum/go-ethereum/ethutil/rand.go:15.16,17.3 1 0
-github.com/ethereum/go-ethereum/ethutil/rand.go:22.37,24.2 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:19.35,21.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:23.39,25.31 2 39
-github.com/ethereum/go-ethereum/ethutil/value.go:29.2,29.23 1 39
-github.com/ethereum/go-ethereum/ethutil/value.go:25.31,27.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:32.39,34.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:36.32,38.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:40.29,42.45 1 8
-github.com/ethereum/go-ethereum/ethutil/value.go:46.2,46.25 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:42.45,44.3 1 7
-github.com/ethereum/go-ethereum/ethutil/value.go:49.37,51.2 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:53.43,55.2 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:57.33,58.36 1 11
-github.com/ethereum/go-ethereum/ethutil/value.go:80.2,80.10 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:58.36,60.3 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:60.4,60.44 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:60.44,62.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:62.4,62.44 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:62.44,64.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:64.4,64.44 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:64.44,66.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:66.4,66.45 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:66.45,68.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:68.4,68.45 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:68.45,70.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:70.4,70.41 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:70.41,72.3 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:72.4,72.42 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:72.42,74.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:74.4,74.44 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:74.44,76.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:76.4,76.46 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:76.46,78.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:83.31,84.35 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:107.2,107.10 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:84.35,86.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:86.4,86.43 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:86.43,88.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:88.4,88.43 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:88.43,90.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:90.4,90.43 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:90.43,92.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:92.4,92.41 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:92.41,94.3 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:94.4,94.45 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:94.45,96.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:96.4,96.45 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:96.45,98.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:98.4,98.44 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:98.44,100.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:100.4,100.46 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:100.46,102.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:102.4,102.44 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:102.44,105.3 2 1
-github.com/ethereum/go-ethereum/ethutil/value.go:110.31,111.35 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:115.2,115.12 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:111.35,113.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:118.37,119.35 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:131.2,131.22 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:119.35,123.3 2 1
-github.com/ethereum/go-ethereum/ethutil/value.go:123.4,123.44 1 9
-github.com/ethereum/go-ethereum/ethutil/value.go:123.44,125.3 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:125.4,125.42 1 6
-github.com/ethereum/go-ethereum/ethutil/value.go:125.42,127.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:127.4,129.3 1 6
-github.com/ethereum/go-ethereum/ethutil/value.go:134.32,135.35 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:143.2,143.11 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:135.35,137.3 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:137.4,137.42 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:137.42,139.3 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:139.4,139.40 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:139.40,141.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:146.34,147.35 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:159.2,159.17 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:147.35,149.3 1 6
-github.com/ethereum/go-ethereum/ethutil/value.go:149.4,149.40 1 4
-github.com/ethereum/go-ethereum/ethutil/value.go:149.40,151.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:151.4,151.42 1 4
-github.com/ethereum/go-ethereum/ethutil/value.go:151.42,153.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:153.4,153.44 1 4
-github.com/ethereum/go-ethereum/ethutil/value.go:153.44,155.3 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:155.4,157.3 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:162.31,163.36 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:167.2,167.12 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:163.36,165.3 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:170.41,171.42 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:175.2,175.24 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:171.42,173.3 1 10
-github.com/ethereum/go-ethereum/ethutil/value.go:178.46,182.2 2 1
-github.com/ethereum/go-ethereum/ethutil/value.go:184.42,188.2 2 1
-github.com/ethereum/go-ethereum/ethutil/value.go:190.52,194.2 2 1
-github.com/ethereum/go-ethereum/ethutil/value.go:197.34,199.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:201.32,203.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:205.33,208.2 2 0
-github.com/ethereum/go-ethereum/ethutil/value.go:213.33,217.2 2 0
-github.com/ethereum/go-ethereum/ethutil/value.go:219.34,221.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:224.39,225.42 1 5
-github.com/ethereum/go-ethereum/ethutil/value.go:239.2,239.22 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:225.42,227.20 1 5
-github.com/ethereum/go-ethereum/ethutil/value.go:231.3,231.14 1 5
-github.com/ethereum/go-ethereum/ethutil/value.go:235.3,235.26 1 5
-github.com/ethereum/go-ethereum/ethutil/value.go:227.20,229.4 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:231.14,233.4 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:242.34,243.32 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:252.2,252.12 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:244.2,245.41 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:246.2,247.34 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:248.2,249.28 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:255.38,257.2 1 4
-github.com/ethereum/go-ethereum/ethutil/value.go:259.43,261.2 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:263.35,265.2 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:268.29,272.2 2 4
-github.com/ethereum/go-ethereum/ethutil/value.go:274.44,275.20 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:282.2,282.22 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:275.20,280.3 3 3
-github.com/ethereum/go-ethereum/ethutil/value.go:286.42,289.14 2 0
-github.com/ethereum/go-ethereum/ethutil/value.go:301.2,301.13 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:289.14,290.41 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:290.41,291.30 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:291.30,293.5 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:294.5,294.43 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:294.43,295.30 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:295.30,297.5 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:304.26,306.2 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:308.39,313.2 3 2
-github.com/ethereum/go-ethereum/ethutil/value.go:315.48,319.2 2 5
-github.com/ethereum/go-ethereum/ethutil/value.go:330.59,334.12 3 4
-github.com/ethereum/go-ethereum/ethutil/value.go:347.2,347.13 1 4
-github.com/ethereum/go-ethereum/ethutil/value.go:335.2,336.35 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:337.2,338.35 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:339.2,340.35 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:341.2,342.41 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:343.2,344.35 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:350.50,352.2 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:354.50,356.2 1 2
-github.com/ethereum/go-ethereum/ethutil/value.go:358.50,360.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:362.50,364.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:366.50,368.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:376.48,378.2 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:380.36,382.2 1 0
-github.com/ethereum/go-ethereum/ethutil/value.go:384.38,385.30 1 4
-github.com/ethereum/go-ethereum/ethutil/value.go:389.2,392.13 3 3
-github.com/ethereum/go-ethereum/ethutil/value.go:385.30,387.3 1 1
-github.com/ethereum/go-ethereum/ethutil/value.go:395.41,397.2 1 3
-github.com/ethereum/go-ethereum/ethutil/value.go:399.36,401.2 1 0
-github.com/ethereum/go-ethereum/event/event.go:41.66,45.17 4 1005
-github.com/ethereum/go-ethereum/event/event.go:63.2,63.12 1 1004
-github.com/ethereum/go-ethereum/event/event.go:45.17,47.3 1 1
-github.com/ethereum/go-ethereum/event/event.go:47.4,48.22 1 1004
-github.com/ethereum/go-ethereum/event/event.go:51.3,51.27 1 1004
-github.com/ethereum/go-ethereum/event/event.go:48.22,50.4 1 5
-github.com/ethereum/go-ethereum/event/event.go:51.27,54.32 3 1006
-github.com/ethereum/go-ethereum/event/event.go:57.4,60.25 4 1005
-github.com/ethereum/go-ethereum/event/event.go:54.32,56.5 1 1
-github.com/ethereum/go-ethereum/event/event.go:68.48,71.17 3 6657815
-github.com/ethereum/go-ethereum/event/event.go:75.2,77.27 3 6657811
-github.com/ethereum/go-ethereum/event/event.go:80.2,80.12 1 6657811
-github.com/ethereum/go-ethereum/event/event.go:71.17,74.3 2 4
-github.com/ethereum/go-ethereum/event/event.go:77.27,79.3 1 4004
-github.com/ethereum/go-ethereum/event/event.go:86.28,88.32 2 5
-github.com/ethereum/go-ethereum/event/event.go:93.2,95.20 3 5
-github.com/ethereum/go-ethereum/event/event.go:88.32,89.28 1 3
-github.com/ethereum/go-ethereum/event/event.go:89.28,91.4 1 3
-github.com/ethereum/go-ethereum/event/event.go:98.36,100.34 2 1001
-github.com/ethereum/go-ethereum/event/event.go:109.2,109.22 1 1001
-github.com/ethereum/go-ethereum/event/event.go:100.34,101.37 1 1001
-github.com/ethereum/go-ethereum/event/event.go:101.37,102.22 1 1001
-github.com/ethereum/go-ethereum/event/event.go:102.22,104.5 1 5
-github.com/ethereum/go-ethereum/event/event.go:104.6,106.5 1 996
-github.com/ethereum/go-ethereum/event/event.go:112.46,113.26 1 2007
-github.com/ethereum/go-ethereum/event/event.go:118.2,118.11 1 1005
-github.com/ethereum/go-ethereum/event/event.go:113.26,114.16 1 17982
-github.com/ethereum/go-ethereum/event/event.go:114.16,116.4 1 1002
-github.com/ethereum/go-ethereum/event/event.go:121.52,126.2 4 996
-github.com/ethereum/go-ethereum/event/event.go:142.35,150.2 2 1005
-github.com/ethereum/go-ethereum/event/event.go:152.44,154.2 1 1003
-github.com/ethereum/go-ethereum/event/event.go:156.32,159.2 2 1001
-github.com/ethereum/go-ethereum/event/event.go:161.30,164.14 3 1004
-github.com/ethereum/go-ethereum/event/event.go:167.2,173.19 6 1003
-github.com/ethereum/go-ethereum/event/event.go:164.14,166.3 1 1
-github.com/ethereum/go-ethereum/event/event.go:176.42,178.9 2 4004
-github.com/ethereum/go-ethereum/event/event.go:182.2,182.20 1 4004
-github.com/ethereum/go-ethereum/event/event.go:179.2,179.21 0 1004
-github.com/ethereum/go-ethereum/event/event.go:180.2,180.19 0 3000
-github.com/ethereum/go-ethereum/logger/loggers.go:56.13,58.2 1 1
-github.com/ethereum/go-ethereum/logger/loggers.go:64.21,70.36 2 1
-github.com/ethereum/go-ethereum/logger/loggers.go:77.2,77.6 1 1
-github.com/ethereum/go-ethereum/logger/loggers.go:70.36,75.3 4 22
-github.com/ethereum/go-ethereum/logger/loggers.go:77.6,78.10 1 52
-github.com/ethereum/go-ethereum/logger/loggers.go:79.3,80.31 1 20
-github.com/ethereum/go-ethereum/logger/loggers.go:84.3,86.19 2 16
-github.com/ethereum/go-ethereum/logger/loggers.go:88.3,90.31 1 7
-github.com/ethereum/go-ethereum/logger/loggers.go:93.4,96.17 4 7
-github.com/ethereum/go-ethereum/logger/loggers.go:98.3,100.31 1 8
-github.com/ethereum/go-ethereum/logger/loggers.go:103.4,105.32 3 8
-github.com/ethereum/go-ethereum/logger/loggers.go:108.4,108.17 1 8
-github.com/ethereum/go-ethereum/logger/loggers.go:80.31,82.5 1 19
-github.com/ethereum/go-ethereum/logger/loggers.go:90.31,92.5 1 6
-github.com/ethereum/go-ethereum/logger/loggers.go:100.31,102.5 1 6
-github.com/ethereum/go-ethereum/logger/loggers.go:105.32,107.5 1 6
-github.com/ethereum/go-ethereum/logger/loggers.go:113.68,114.22 1 22
-github.com/ethereum/go-ethereum/logger/loggers.go:119.2,119.11 1 12
-github.com/ethereum/go-ethereum/logger/loggers.go:114.22,115.37 1 19
-github.com/ethereum/go-ethereum/logger/loggers.go:115.37,117.4 1 14
-github.com/ethereum/go-ethereum/logger/loggers.go:124.14,128.2 3 7
-github.com/ethereum/go-ethereum/logger/loggers.go:132.14,136.2 3 8
-github.com/ethereum/go-ethereum/logger/loggers.go:139.34,141.2 1 16
-github.com/ethereum/go-ethereum/logger/loggers.go:150.36,152.2 1 7
-github.com/ethereum/go-ethereum/logger/loggers.go:154.64,156.2 1 10
-github.com/ethereum/go-ethereum/logger/loggers.go:158.78,160.2 1 10
-github.com/ethereum/go-ethereum/logger/loggers.go:163.49,165.2 1 2
-github.com/ethereum/go-ethereum/logger/loggers.go:168.48,170.2 1 4
-github.com/ethereum/go-ethereum/logger/loggers.go:173.48,175.2 1 3
-github.com/ethereum/go-ethereum/logger/loggers.go:178.49,180.2 1 1
-github.com/ethereum/go-ethereum/logger/loggers.go:183.55,185.2 1 0
-github.com/ethereum/go-ethereum/logger/loggers.go:188.63,190.2 1 7
-github.com/ethereum/go-ethereum/logger/loggers.go:193.62,195.2 1 1
-github.com/ethereum/go-ethereum/logger/loggers.go:198.62,200.2 1 1
-github.com/ethereum/go-ethereum/logger/loggers.go:203.63,205.2 1 1
-github.com/ethereum/go-ethereum/logger/loggers.go:208.69,210.2 1 0
-github.com/ethereum/go-ethereum/logger/loggers.go:213.49,217.2 3 0
-github.com/ethereum/go-ethereum/logger/loggers.go:220.63,224.2 3 0
-github.com/ethereum/go-ethereum/logger/loggers.go:228.77,231.2 2 11
-github.com/ethereum/go-ethereum/logger/loggers.go:238.61,240.2 1 2
-github.com/ethereum/go-ethereum/logger/loggers.go:242.48,244.2 1 0
-github.com/ethereum/go-ethereum/logger/loggers.go:246.47,248.2 1 2
-github.com/ethereum/go-ethereum/p2p/client_identity.go:23.133,34.2 2 6
-github.com/ethereum/go-ethereum/p2p/client_identity.go:36.39,37.2 0 0
-github.com/ethereum/go-ethereum/p2p/client_identity.go:39.48,41.33 2 11
-github.com/ethereum/go-ethereum/p2p/client_identity.go:45.2,50.20 1 11
-github.com/ethereum/go-ethereum/p2p/client_identity.go:41.33,43.3 1 11
-github.com/ethereum/go-ethereum/p2p/client_identity.go:53.48,55.2 1 23
-github.com/ethereum/go-ethereum/p2p/client_identity.go:57.77,59.2 1 1
-github.com/ethereum/go-ethereum/p2p/client_identity.go:61.61,63.2 1 2
-github.com/ethereum/go-ethereum/p2p/natpmp.go:21.42,23.2 1 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:25.70,27.16 2 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:30.2,32.8 3 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:27.16,29.3 1 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:36.71,37.18 1 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:42.2,43.16 2 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:46.2,47.8 2 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:37.18,40.3 2 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:43.16,45.3 1 0
-github.com/ethereum/go-ethereum/p2p/natpmp.go:50.103,55.2 2 0
-github.com/ethereum/go-ethereum/p2p/peer_error.go:60.79,62.9 2 17
-github.com/ethereum/go-ethereum/p2p/peer_error.go:65.2,67.34 3 17
-github.com/ethereum/go-ethereum/p2p/peer_error.go:62.9,64.3 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error.go:70.39,72.2 1 15
-github.com/ethereum/go-ethereum/p2p/peer_error.go:74.44,76.2 1 19
-github.com/ethereum/go-ethereum/p2p/protocol.go:81.37,82.38 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:86.2,86.30 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:82.38,84.3 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:95.48,101.2 2 10
-github.com/ethereum/go-ethereum/p2p/protocol.go:103.35,104.22 1 10
-github.com/ethereum/go-ethereum/p2p/protocol.go:104.22,112.3 2 7
-github.com/ethereum/go-ethereum/p2p/protocol.go:115.34,116.2 0 10
-github.com/ethereum/go-ethereum/p2p/protocol.go:118.34,121.2 2 6
-github.com/ethereum/go-ethereum/p2p/protocol.go:123.37,125.2 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:127.41,129.2 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:131.44,133.2 1 16
-github.com/ethereum/go-ethereum/p2p/protocol.go:135.64,138.25 3 8
-github.com/ethereum/go-ethereum/p2p/protocol.go:138.25,140.3 1 8
-github.com/ethereum/go-ethereum/p2p/protocol.go:140.4,142.3 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:145.66,146.32 1 3
-github.com/ethereum/go-ethereum/p2p/protocol.go:176.2,176.17 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:146.32,148.3 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:148.4,149.42 1 2
-github.com/ethereum/go-ethereum/p2p/protocol.go:154.3,154.21 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:149.42,153.4 3 2
-github.com/ethereum/go-ethereum/p2p/protocol.go:155.3,160.5 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:161.3,163.19 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:164.3,164.16 0 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:165.3,167.65 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:170.3,171.25 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:172.3,173.73 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:167.65,169.5 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:179.62,183.2 2 21
-github.com/ethereum/go-ethereum/p2p/protocol.go:185.91,189.22 4 2
-github.com/ethereum/go-ethereum/p2p/protocol.go:189.22,191.3 1 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:194.49,196.16 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:196.16,201.3 4 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:204.53,207.29 3 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:212.2,224.30 4 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:230.2,230.22 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:235.2,235.23 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:241.2,241.82 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:247.2,247.77 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:253.2,253.23 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:263.2,264.20 2 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:268.2,277.8 5 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:207.29,210.3 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:224.30,227.3 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:230.22,233.3 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:235.23,238.3 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:241.82,244.3 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:247.77,250.3 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:253.23,255.57 2 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:255.57,258.4 2 0
-github.com/ethereum/go-ethereum/p2p/protocol.go:258.5,260.4 1 1
-github.com/ethereum/go-ethereum/p2p/protocol.go:264.20,267.3 2 3
-github.com/ethereum/go-ethereum/p2p/server.go:32.35,36.2 1 6
-github.com/ethereum/go-ethereum/p2p/server.go:38.60,43.9 5 0
-github.com/ethereum/go-ethereum/p2p/server.go:46.2,46.15 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:43.9,45.3 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:49.59,54.2 4 1
-github.com/ethereum/go-ethereum/p2p/server.go:56.52,61.2 4 0
-github.com/ethereum/go-ethereum/p2p/server.go:63.55,68.2 4 0
-github.com/ethereum/go-ethereum/p2p/server.go:98.129,101.33 2 5
-github.com/ethereum/go-ethereum/p2p/server.go:104.2,130.32 5 5
-github.com/ethereum/go-ethereum/p2p/server.go:133.2,133.13 1 5
-github.com/ethereum/go-ethereum/p2p/server.go:101.33,103.3 1 3
-github.com/ethereum/go-ethereum/p2p/server.go:130.32,132.3 1 10
-github.com/ethereum/go-ethereum/p2p/server.go:136.79,139.2 2 0
-github.com/ethereum/go-ethereum/p2p/server.go:141.74,144.2 2 0
-github.com/ethereum/go-ethereum/p2p/server.go:146.53,148.2 1 1
-github.com/ethereum/go-ethereum/p2p/server.go:150.58,155.16 4 1
-github.com/ethereum/go-ethereum/p2p/server.go:168.2,168.8 1 1
-github.com/ethereum/go-ethereum/p2p/server.go:155.16,157.37 2 1
-github.com/ethereum/go-ethereum/p2p/server.go:161.3,161.25 1 1
-github.com/ethereum/go-ethereum/p2p/server.go:157.37,160.4 2 2
-github.com/ethereum/go-ethereum/p2p/server.go:161.25,163.4 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:163.5,166.4 2 1
-github.com/ethereum/go-ethereum/p2p/server.go:171.45,174.34 3 0
-github.com/ethereum/go-ethereum/p2p/server.go:179.2,179.8 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:174.34,175.18 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:175.18,177.4 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:182.37,186.2 3 1
-github.com/ethereum/go-ethereum/p2p/server.go:190.48,193.9 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:194.2,195.34 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:196.2,196.10 0 0
-github.com/ethereum/go-ethereum/p2p/server.go:200.61,202.2 1 7
-github.com/ethereum/go-ethereum/p2p/server.go:204.43,206.2 1 7
-github.com/ethereum/go-ethereum/p2p/server.go:208.41,210.2 1 7
-github.com/ethereum/go-ethereum/p2p/server.go:212.58,215.34 3 1
-github.com/ethereum/go-ethereum/p2p/server.go:215.34,216.18 1 2
-github.com/ethereum/go-ethereum/p2p/server.go:216.18,218.4 1 2
-github.com/ethereum/go-ethereum/p2p/server.go:223.51,225.12 2 4
-github.com/ethereum/go-ethereum/p2p/server.go:237.2,237.10 1 4
-github.com/ethereum/go-ethereum/p2p/server.go:249.2,249.33 1 4
-github.com/ethereum/go-ethereum/p2p/server.go:225.12,227.17 2 3
-github.com/ethereum/go-ethereum/p2p/server.go:227.17,231.4 3 0
-github.com/ethereum/go-ethereum/p2p/server.go:231.5,235.4 3 3
-github.com/ethereum/go-ethereum/p2p/server.go:237.10,239.17 2 3
-github.com/ethereum/go-ethereum/p2p/server.go:239.17,243.4 3 0
-github.com/ethereum/go-ethereum/p2p/server.go:243.5,247.4 3 3
-github.com/ethereum/go-ethereum/p2p/server.go:252.28,255.18 2 4
-github.com/ethereum/go-ethereum/p2p/server.go:263.2,263.20 1 4
-github.com/ethereum/go-ethereum/p2p/server.go:271.2,277.34 6 4
-github.com/ethereum/go-ethereum/p2p/server.go:282.2,283.32 2 4
-github.com/ethereum/go-ethereum/p2p/server.go:291.2,295.6 3 4
-github.com/ethereum/go-ethereum/p2p/server.go:305.2,305.33 1 4
-github.com/ethereum/go-ethereum/p2p/server.go:255.18,261.3 5 3
-github.com/ethereum/go-ethereum/p2p/server.go:263.20,269.3 5 3
-github.com/ethereum/go-ethereum/p2p/server.go:277.34,278.18 1 8
-github.com/ethereum/go-ethereum/p2p/server.go:278.18,280.4 1 6
-github.com/ethereum/go-ethereum/p2p/server.go:283.32,288.3 1 6
-github.com/ethereum/go-ethereum/p2p/server.go:295.6,296.10 1 8
-github.com/ethereum/go-ethereum/p2p/server.go:297.3,300.26 3 8
-github.com/ethereum/go-ethereum/p2p/server.go:300.26,301.14 1 4
-github.com/ethereum/go-ethereum/p2p/server.go:309.63,310.6 1 3
-github.com/ethereum/go-ethereum/p2p/server.go:310.6,311.10 1 2591
-github.com/ethereum/go-ethereum/p2p/server.go:312.3,313.46 1 2588
-github.com/ethereum/go-ethereum/p2p/server.go:314.3,318.10 4 3
-github.com/ethereum/go-ethereum/p2p/server.go:325.56,330.6 4 3
-github.com/ethereum/go-ethereum/p2p/server.go:330.6,331.10 1 10
-github.com/ethereum/go-ethereum/p2p/server.go:332.3,338.15 3 4
-github.com/ethereum/go-ethereum/p2p/server.go:339.3,346.21 3 3
-github.com/ethereum/go-ethereum/p2p/server.go:347.3,348.31 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:349.3,350.41 1 3
-github.com/ethereum/go-ethereum/p2p/server.go:353.4,355.10 3 3
-github.com/ethereum/go-ethereum/p2p/server.go:350.41,352.5 1 1
-github.com/ethereum/go-ethereum/p2p/server.go:361.61,366.11 4 6
-github.com/ethereum/go-ethereum/p2p/server.go:369.2,369.8 1 6
-github.com/ethereum/go-ethereum/p2p/server.go:366.11,368.3 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:373.73,376.16 3 2588
-github.com/ethereum/go-ethereum/p2p/server.go:383.2,383.16 1 2588
-github.com/ethereum/go-ethereum/p2p/server.go:376.16,379.17 3 3
-github.com/ethereum/go-ethereum/p2p/server.go:379.17,381.4 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:383.16,386.3 2 2585
-github.com/ethereum/go-ethereum/p2p/server.go:386.4,389.3 2 3
-github.com/ethereum/go-ethereum/p2p/server.go:393.84,396.16 3 3
-github.com/ethereum/go-ethereum/p2p/server.go:399.2,399.16 1 3
-github.com/ethereum/go-ethereum/p2p/server.go:396.16,398.3 1 3
-github.com/ethereum/go-ethereum/p2p/server.go:399.16,402.3 2 0
-github.com/ethereum/go-ethereum/p2p/server.go:402.4,404.3 1 3
-github.com/ethereum/go-ethereum/p2p/server.go:408.86,411.17 3 6
-github.com/ethereum/go-ethereum/p2p/server.go:411.17,415.3 3 0
-github.com/ethereum/go-ethereum/p2p/server.go:415.4,424.3 7 6
-github.com/ethereum/go-ethereum/p2p/server.go:428.59,435.17 6 6
-github.com/ethereum/go-ethereum/p2p/server.go:441.2,459.24 13 6
-github.com/ethereum/go-ethereum/p2p/server.go:435.17,439.3 3 0
-github.com/ethereum/go-ethereum/p2p/server.go:463.38,467.2 3 8
-github.com/ethereum/go-ethereum/p2p/server.go:469.74,471.35 1 1
-github.com/ethereum/go-ethereum/p2p/server.go:475.2,477.34 3 1
-github.com/ethereum/go-ethereum/p2p/server.go:482.2,483.12 2 1
-github.com/ethereum/go-ethereum/p2p/server.go:471.35,473.3 1 0
-github.com/ethereum/go-ethereum/p2p/server.go:477.34,478.82 1 2
-github.com/ethereum/go-ethereum/p2p/server.go:478.82,480.4 1 0
-github.com/ethereum/go-ethereum/p2p/connection.go:32.32,35.2 2 18
-github.com/ethereum/go-ethereum/p2p/connection.go:37.33,40.2 2 18
-github.com/ethereum/go-ethereum/p2p/connection.go:42.35,46.2 3 18
-github.com/ethereum/go-ethereum/p2p/connection.go:48.36,52.2 3 18
-github.com/ethereum/go-ethereum/p2p/connection.go:54.72,64.2 1 18
-github.com/ethereum/go-ethereum/p2p/connection.go:66.46,68.2 1 18
-github.com/ethereum/go-ethereum/p2p/connection.go:70.47,72.2 1 19
-github.com/ethereum/go-ethereum/p2p/connection.go:74.51,76.2 1 8
-github.com/ethereum/go-ethereum/p2p/connection.go:78.37,86.6 7 18
-github.com/ethereum/go-ethereum/p2p/connection.go:86.6,89.23 2 304
-github.com/ethereum/go-ethereum/p2p/connection.go:96.3,96.10 1 304
-github.com/ethereum/go-ethereum/p2p/connection.go:89.23,92.4 2 12
-github.com/ethereum/go-ethereum/p2p/connection.go:92.5,94.4 1 292
-github.com/ethereum/go-ethereum/p2p/connection.go:97.3,98.32 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:99.3,100.18 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:112.4,112.46 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:113.3,115.42 2 7
-github.com/ethereum/go-ethereum/p2p/connection.go:120.4,120.46 1 7
-github.com/ethereum/go-ethereum/p2p/connection.go:121.3,122.25 1 7
-github.com/ethereum/go-ethereum/p2p/connection.go:123.3,126.10 3 18
-github.com/ethereum/go-ethereum/p2p/connection.go:100.18,101.43 1 133
-github.com/ethereum/go-ethereum/p2p/connection.go:101.43,103.6 1 129
-github.com/ethereum/go-ethereum/p2p/connection.go:103.7,103.25 1 4
-github.com/ethereum/go-ethereum/p2p/connection.go:103.25,105.6 1 0
-github.com/ethereum/go-ethereum/p2p/connection.go:105.7,107.6 1 4
-github.com/ethereum/go-ethereum/p2p/connection.go:108.6,111.5 2 3
-github.com/ethereum/go-ethereum/p2p/connection.go:115.42,117.5 1 0
-github.com/ethereum/go-ethereum/p2p/connection.go:117.6,119.5 1 7
-github.com/ethereum/go-ethereum/p2p/connection.go:132.38,136.6 4 18
-github.com/ethereum/go-ethereum/p2p/connection.go:136.6,137.35 1 56
-github.com/ethereum/go-ethereum/p2p/connection.go:141.3,141.10 1 56
-github.com/ethereum/go-ethereum/p2p/connection.go:137.35,140.4 2 19
-github.com/ethereum/go-ethereum/p2p/connection.go:142.3,143.38 1 19
-github.com/ethereum/go-ethereum/p2p/connection.go:144.3,145.18 1 19
-github.com/ethereum/go-ethereum/p2p/connection.go:151.3,154.10 3 18
-github.com/ethereum/go-ethereum/p2p/connection.go:145.18,148.5 2 19
-github.com/ethereum/go-ethereum/p2p/connection.go:148.6,150.5 1 0
-github.com/ethereum/go-ethereum/p2p/connection.go:159.43,166.2 4 19
-github.com/ethereum/go-ethereum/p2p/connection.go:168.39,169.34 1 19
-github.com/ethereum/go-ethereum/p2p/connection.go:169.34,173.3 3 0
-github.com/ethereum/go-ethereum/p2p/connection.go:176.69,180.15 4 19
-github.com/ethereum/go-ethereum/p2p/connection.go:184.2,184.13 1 19
-github.com/ethereum/go-ethereum/p2p/connection.go:180.15,183.3 2 0
-github.com/ethereum/go-ethereum/p2p/connection.go:187.74,199.6 8 136
-github.com/ethereum/go-ethereum/p2p/connection.go:248.2,248.13 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:199.6,203.28 1 152
-github.com/ethereum/go-ethereum/p2p/connection.go:218.3,218.12 1 17
-github.com/ethereum/go-ethereum/p2p/connection.go:203.28,205.11 2 145
-github.com/ethereum/go-ethereum/p2p/connection.go:216.4,216.39 1 10
-github.com/ethereum/go-ethereum/p2p/connection.go:205.11,207.38 2 135
-github.com/ethereum/go-ethereum/p2p/connection.go:214.5,214.14 1 135
-github.com/ethereum/go-ethereum/p2p/connection.go:207.38,208.15 1 2
-github.com/ethereum/go-ethereum/p2p/connection.go:208.15,210.7 1 1
-github.com/ethereum/go-ethereum/p2p/connection.go:210.8,212.7 1 1
-github.com/ethereum/go-ethereum/p2p/connection.go:218.12,220.50 1 10
-github.com/ethereum/go-ethereum/p2p/connection.go:224.4,227.18 3 9
-github.com/ethereum/go-ethereum/p2p/connection.go:220.50,222.10 2 1
-github.com/ethereum/go-ethereum/p2p/connection.go:227.18,229.5 1 8
-github.com/ethereum/go-ethereum/p2p/connection.go:229.6,232.5 2 1
-github.com/ethereum/go-ethereum/p2p/connection.go:233.5,239.4 4 7
-github.com/ethereum/go-ethereum/p2p/connection.go:251.82,253.6 2 136
-github.com/ethereum/go-ethereum/p2p/connection.go:274.2,274.13 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:253.6,259.41 4 136
-github.com/ethereum/go-ethereum/p2p/connection.go:259.41,260.21 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:263.4,263.42 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:260.21,262.5 1 10
-github.com/ethereum/go-ethereum/p2p/connection.go:263.42,264.10 1 136
-github.com/ethereum/go-ethereum/p2p/connection.go:266.5,272.4 4 0
-github.com/ethereum/go-ethereum/p2p/message.go:16.33,18.2 1 54
-github.com/ethereum/go-ethereum/p2p/message.go:20.40,22.2 1 5
-github.com/ethereum/go-ethereum/p2p/message.go:24.72,43.2 1 37
-github.com/ethereum/go-ethereum/p2p/message.go:45.60,59.2 5 5
-github.com/ethereum/go-ethereum/p2p/message.go:61.41,63.2 1 5
-github.com/ethereum/go-ethereum/p2p/message.go:67.54,68.28 1 28
-github.com/ethereum/go-ethereum/p2p/message.go:74.2,74.8 1 28
-github.com/ethereum/go-ethereum/p2p/message.go:68.28,71.3 2 27
-github.com/ethereum/go-ethereum/p2p/message.go:71.4,73.3 1 1
-github.com/ethereum/go-ethereum/p2p/messenger.go:28.104,41.2 2 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:43.32,49.2 5 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:51.31,56.42 4 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:59.2,62.19 4 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:56.42,58.3 1 14
-github.com/ethereum/go-ethereum/p2p/messenger.go:65.36,67.6 2 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:67.6,68.10 1 14
-github.com/ethereum/go-ethereum/p2p/messenger.go:69.3,71.10 1 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:76.3,78.10 2 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:71.10,73.5 1 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:73.6,75.5 1 0
-github.com/ethereum/go-ethereum/p2p/messenger.go:88.47,97.16 3 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:102.2,103.16 2 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:108.2,114.6 5 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:97.16,100.3 2 0
-github.com/ethereum/go-ethereum/p2p/messenger.go:103.16,106.3 2 0
-github.com/ethereum/go-ethereum/p2p/messenger.go:114.6,115.10 1 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:116.3,118.10 1 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:123.3,124.10 1 0
-github.com/ethereum/go-ethereum/p2p/messenger.go:118.10,120.5 1 0
-github.com/ethereum/go-ethereum/p2p/messenger.go:120.6,122.5 1 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:134.82,138.42 4 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:144.2,144.67 1 0
-github.com/ethereum/go-ethereum/p2p/messenger.go:138.42,139.20 1 5
-github.com/ethereum/go-ethereum/p2p/messenger.go:142.3,142.16 1 1
-github.com/ethereum/go-ethereum/p2p/messenger.go:139.20,141.4 1 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:147.128,152.6 4 8
-github.com/ethereum/go-ethereum/p2p/messenger.go:152.6,153.10 1 19
-github.com/ethereum/go-ethereum/p2p/messenger.go:154.3,155.10 1 10
-github.com/ethereum/go-ethereum/p2p/messenger.go:162.3,163.14 1 9
-github.com/ethereum/go-ethereum/p2p/messenger.go:155.10,158.5 2 3
-github.com/ethereum/go-ethereum/p2p/messenger.go:158.6,161.5 1 7
-github.com/ethereum/go-ethereum/p2p/messenger.go:163.14,167.5 3 1
-github.com/ethereum/go-ethereum/p2p/messenger.go:167.6,172.5 4 8
-github.com/ethereum/go-ethereum/p2p/messenger.go:177.57,182.33 5 3
-github.com/ethereum/go-ethereum/p2p/messenger.go:182.33,184.9 2 5
-github.com/ethereum/go-ethereum/p2p/messenger.go:184.9,194.4 8 4
-github.com/ethereum/go-ethereum/p2p/messenger.go:194.5,197.4 1 1
-github.com/ethereum/go-ethereum/p2p/messenger.go:201.63,206.23 5 26
-github.com/ethereum/go-ethereum/p2p/messenger.go:214.2,216.28 2 24
-github.com/ethereum/go-ethereum/p2p/messenger.go:219.2,219.12 1 24
-github.com/ethereum/go-ethereum/p2p/messenger.go:206.23,209.10 3 5
-github.com/ethereum/go-ethereum/p2p/messenger.go:212.3,212.29 1 3
-github.com/ethereum/go-ethereum/p2p/messenger.go:209.10,211.4 1 2
-github.com/ethereum/go-ethereum/p2p/messenger.go:216.28,218.3 1 18
-github.com/ethereum/go-ethereum/p2p/natupnp.go:23.54,25.16 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:28.2,29.16 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:32.2,36.16 4 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:40.2,49.32 5 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:92.2,93.8 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:25.16,27.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:29.16,31.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:36.16,38.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:49.32,51.17 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:54.3,56.17 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:61.3,62.43 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:67.3,70.19 4 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:73.3,75.19 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:78.3,81.17 4 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:84.3,86.17 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:89.3,90.9 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:51.17,53.4 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:56.17,57.12 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:62.43,63.12 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:70.19,71.12 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:75.19,76.12 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:81.17,83.4 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:86.17,88.4 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:148.59,150.31 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:155.2,155.12 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:150.31,151.37 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:151.37,153.4 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:158.62,160.31 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:165.2,165.12 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:160.31,161.39 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:161.39,163.4 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:168.40,170.16 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:173.2,174.30 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:177.2,177.27 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:170.16,172.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:174.30,176.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:180.60,182.16 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:185.2,186.25 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:190.2,193.16 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:196.2,197.75 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:201.2,202.14 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:206.2,207.14 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:211.2,212.14 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:216.2,217.8 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:182.16,184.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:186.25,189.3 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:193.16,195.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:197.75,200.3 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:202.14,205.3 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:207.14,210.3 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:212.14,215.3 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:220.48,226.2 5 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:228.79,234.16 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:237.2,246.16 8 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:250.2,250.19 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:254.2,254.25 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:260.2,260.8 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:234.16,236.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:246.16,248.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:250.19,252.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:254.25,259.3 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:267.64,274.16 4 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:280.2,281.8 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:274.16,276.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:284.65,286.16 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:289.2,290.8 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:286.16,288.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:293.152,307.16 7 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:313.2,315.8 3 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:307.16,309.3 1 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:318.98,327.16 4 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:333.2,334.8 2 0
-github.com/ethereum/go-ethereum/p2p/natupnp.go:327.16,329.3 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:57.55,62.2 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:64.63,70.2 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:72.71,73.26 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:81.2,81.50 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:73.26,75.23 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:79.3,79.21 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:75.23,78.4 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:84.45,85.22 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:99.2,99.8 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:86.2,86.12 0 0
-github.com/ethereum/go-ethereum/p2p/network.go:87.2,89.18 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:94.2,95.42 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:96.2,97.57 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:89.18,91.4 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:91.5,93.4 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:102.32,106.2 3 0
-github.com/ethereum/go-ethereum/p2p/network.go:108.63,110.16 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:115.2,115.8 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:110.16,112.3 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:112.4,114.3 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:118.46,122.6 3 0
-github.com/ethereum/go-ethereum/p2p/network.go:141.2,142.28 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:122.6,123.10 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:124.3,127.53 3 0
-github.com/ethereum/go-ethereum/p2p/network.go:130.3,131.30 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:135.3,137.13 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:127.53,129.5 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:131.30,132.54 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:132.54,133.6 0 0
-github.com/ethereum/go-ethereum/p2p/network.go:142.28,143.73 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:143.73,145.4 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:145.5,147.4 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:151.74,153.16 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:159.2,159.17 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:153.16,158.3 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:162.69,164.16 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:169.2,169.17 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:164.16,168.3 3 0
-github.com/ethereum/go-ethereum/p2p/network.go:172.65,173.39 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:177.2,179.16 3 0
-github.com/ethereum/go-ethereum/p2p/network.go:183.2,183.19 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:188.2,188.18 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:195.2,195.8 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:173.39,175.3 1 0
-github.com/ethereum/go-ethereum/p2p/network.go:179.16,182.3 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:183.19,187.3 3 0
-github.com/ethereum/go-ethereum/p2p/network.go:188.18,192.3 2 0
-github.com/ethereum/go-ethereum/p2p/network.go:192.4,194.3 1 0
-github.com/ethereum/go-ethereum/p2p/peer.go:24.42,26.2 1 9
-github.com/ethereum/go-ethereum/p2p/peer.go:28.51,30.2 1 0
-github.com/ethereum/go-ethereum/p2p/peer.go:32.36,34.2 1 9
-github.com/ethereum/go-ethereum/p2p/peer.go:36.83,52.2 8 7
-github.com/ethereum/go-ethereum/p2p/peer.go:54.35,56.18 2 20
-github.com/ethereum/go-ethereum/p2p/peer.go:61.2,61.89 1 18
-github.com/ethereum/go-ethereum/p2p/peer.go:56.18,58.3 1 9
-github.com/ethereum/go-ethereum/p2p/peer.go:58.4,60.3 1 9
-github.com/ethereum/go-ethereum/p2p/peer.go:64.58,66.2 1 24
-github.com/ethereum/go-ethereum/p2p/peer.go:68.27,71.2 2 7
-github.com/ethereum/go-ethereum/p2p/peer.go:73.26,79.2 2 7
-github.com/ethereum/go-ethereum/p2p/peer.go:81.39,83.2 1 2
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:25.153,33.2 1 8
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:35.39,37.2 1 8
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:39.38,43.2 3 8
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:45.40,46.6 1 8
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:46.6,47.10 1 19
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:48.3,49.10 1 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:55.3,57.10 2 8
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:49.10,52.5 2 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:52.6,54.5 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:62.60,64.24 2 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:83.2,83.40 1 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:86.2,86.31 1 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:65.2,66.35 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:67.2,68.31 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:69.2,70.27 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:71.2,72.29 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:73.2,74.27 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:75.2,76.28 1 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:77.2,78.32 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:79.2,80.47 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:83.40,85.3 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:86.31,91.3 1 11
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:94.69,95.24 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:96.2,97.11 1 0
-github.com/ethereum/go-ethereum/p2p/peer_error_handler.go:98.2,99.11 1 0
-github.com/ethereum/go-ethereum/pow/ar/ops.go:11.13,21.2 9 1
-github.com/ethereum/go-ethereum/pow/ar/ops.go:23.34,25.2 1 899964
-github.com/ethereum/go-ethereum/pow/ar/ops.go:26.34,28.2 1 6
-github.com/ethereum/go-ethereum/pow/ar/ops.go:29.34,31.2 1 12
-github.com/ethereum/go-ethereum/pow/ar/ops.go:32.34,34.2 1 12
-github.com/ethereum/go-ethereum/pow/ar/ops.go:35.34,37.2 1 0
-github.com/ethereum/go-ethereum/pow/ar/ops.go:38.33,40.2 1 0
-github.com/ethereum/go-ethereum/pow/ar/ops.go:41.35,46.2 3 6
-github.com/ethereum/go-ethereum/pow/ar/ops.go:47.37,51.2 2 6
-github.com/ethereum/go-ethereum/pow/ar/ops.go:52.34,54.2 1 0
-github.com/ethereum/go-ethereum/pow/ar/pow.go:19.33,21.2 1 1
-github.com/ethereum/go-ethereum/pow/ar/pow.go:23.56,26.32 2 1
-github.com/ethereum/go-ethereum/pow/ar/pow.go:26.32,31.23 4 150000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:37.3,38.49 2 150000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:31.23,33.4 1 149979
-github.com/ethereum/go-ethereum/pow/ar/pow.go:33.5,35.4 1 21
-github.com/ethereum/go-ethereum/pow/ar/pow.go:42.69,44.32 2 6
-github.com/ethereum/go-ethereum/pow/ar/pow.go:48.2,48.30 1 6
-github.com/ethereum/go-ethereum/pow/ar/pow.go:55.2,56.34 2 6
-github.com/ethereum/go-ethereum/pow/ar/pow.go:74.2,74.18 1 6
-github.com/ethereum/go-ethereum/pow/ar/pow.go:44.32,46.3 1 60000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:48.30,53.3 3 900000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:56.34,58.10 2 9000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:68.3,69.65 2 9000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:58.10,59.29 1 9000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:59.29,61.5 1 900000
-github.com/ethereum/go-ethereum/pow/ar/pow.go:62.5,63.29 1 0
-github.com/ethereum/go-ethereum/pow/ar/pow.go:63.29,65.5 1 0
-github.com/ethereum/go-ethereum/pow/ar/pow.go:69.65,71.4 1 0
-github.com/ethereum/go-ethereum/pow/ar/pow.go:77.53,94.2 12 0
-github.com/ethereum/go-ethereum/pow/ar/pow.go:96.45,104.6 6 1
-github.com/ethereum/go-ethereum/pow/ar/pow.go:104.6,105.54 1 6
-github.com/ethereum/go-ethereum/pow/ar/pow.go:110.3,116.51 5 6
-github.com/ethereum/go-ethereum/pow/ar/pow.go:105.54,108.4 2 1
-github.com/ethereum/go-ethereum/pow/ar/pow.go:116.51,118.4 1 1
-github.com/ethereum/go-ethereum/pow/ar/pow.go:118.5,120.4 1 5
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:18.37,20.2 1 0
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:22.35,23.31 1 510007
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:36.2,36.12 1 0
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:23.31,25.3 1 509988
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:25.4,25.43 1 19
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:25.43,27.3 1 13
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:27.4,27.40 1 6
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:27.40,29.23 2 6
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:33.3,33.54 1 6
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:29.23,31.4 1 60000
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:48.26,50.2 1 7
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:52.43,57.46 3 510021
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:61.2,61.10 1 510021
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:57.46,59.3 1 509988
-github.com/ethereum/go-ethereum/pow/ar/rnd.go:64.42,66.2 1 450021
-github.com/ethereum/go-ethereum/ptrie/hashnode.go:7.36,9.2 1 0
-github.com/ethereum/go-ethereum/ptrie/hashnode.go:11.45,13.2 1 0
-github.com/ethereum/go-ethereum/ptrie/hashnode.go:15.42,17.2 1 2
-github.com/ethereum/go-ethereum/ptrie/hashnode.go:20.36,20.50 1 0
-github.com/ethereum/go-ethereum/ptrie/hashnode.go:21.36,21.51 1 0
-github.com/ethereum/go-ethereum/ptrie/hashnode.go:22.36,22.51 1 0
-github.com/ethereum/go-ethereum/ptrie/node.go:17.51,17.78 1 0
-github.com/ethereum/go-ethereum/ptrie/node.go:18.51,18.78 1 0
-github.com/ethereum/go-ethereum/ptrie/node.go:19.51,19.78 1 2
-github.com/ethereum/go-ethereum/ptrie/node.go:20.51,20.91 1 81
-github.com/ethereum/go-ethereum/ptrie/node.go:21.51,21.90 1 18
-github.com/ethereum/go-ethereum/ptrie/node.go:24.50,26.34 2 12
-github.com/ethereum/go-ethereum/ptrie/node.go:34.2,34.42 1 12
-github.com/ethereum/go-ethereum/ptrie/node.go:26.34,27.18 1 204
-github.com/ethereum/go-ethereum/ptrie/node.go:27.18,29.4 1 95
-github.com/ethereum/go-ethereum/ptrie/node.go:29.5,31.4 1 109
-github.com/ethereum/go-ethereum/ptrie/node.go:38.51,40.2 1 49
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:11.63,13.2 1 147
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:14.37,18.2 2 85
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:19.37,19.52 1 0
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:20.37,20.52 1 0
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:22.46,24.2 1 97
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:25.43,27.2 1 76
-github.com/ethereum/go-ethereum/ptrie/shortnode.go:29.37,31.2 1 85
-github.com/ethereum/go-ethereum/ptrie/trie.go:19.42,21.2 1 7
-github.com/ethereum/go-ethereum/ptrie/trie.go:22.48,24.2 1 76
-github.com/ethereum/go-ethereum/ptrie/trie.go:33.23,35.2 1 6
-github.com/ethereum/go-ethereum/ptrie/trie.go:37.46,46.2 6 2
-github.com/ethereum/go-ethereum/ptrie/trie.go:49.33,49.55 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:50.33,52.22 2 7
-github.com/ethereum/go-ethereum/ptrie/trie.go:63.2,65.13 2 7
-github.com/ethereum/go-ethereum/ptrie/trie.go:52.22,54.33 2 7
-github.com/ethereum/go-ethereum/ptrie/trie.go:54.33,56.4 1 7
-github.com/ethereum/go-ethereum/ptrie/trie.go:56.5,58.4 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:59.4,61.3 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:68.56,68.106 1 74
-github.com/ethereum/go-ethereum/ptrie/trie.go:69.50,75.21 4 74
-github.com/ethereum/go-ethereum/ptrie/trie.go:81.2,81.18 1 74
-github.com/ethereum/go-ethereum/ptrie/trie.go:75.21,77.3 1 70
-github.com/ethereum/go-ethereum/ptrie/trie.go:77.4,79.3 1 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:84.48,84.80 1 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:85.42,92.14 5 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:96.2,96.12 1 1
-github.com/ethereum/go-ethereum/ptrie/trie.go:92.14,94.3 1 3
-github.com/ethereum/go-ethereum/ptrie/trie.go:99.49,99.84 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:100.43,108.2 5 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:110.66,111.19 1 298
-github.com/ethereum/go-ethereum/ptrie/trie.go:115.2,115.17 1 285
-github.com/ethereum/go-ethereum/ptrie/trie.go:119.2,119.29 1 206
-github.com/ethereum/go-ethereum/ptrie/trie.go:111.19,113.3 1 13
-github.com/ethereum/go-ethereum/ptrie/trie.go:115.17,117.3 1 79
-github.com/ethereum/go-ethereum/ptrie/trie.go:120.2,123.26 3 76
-github.com/ethereum/go-ethereum/ptrie/trie.go:127.3,129.28 3 76
-github.com/ethereum/go-ethereum/ptrie/trie.go:139.3,139.23 1 76
-github.com/ethereum/go-ethereum/ptrie/trie.go:143.3,143.50 1 63
-github.com/ethereum/go-ethereum/ptrie/trie.go:145.2,149.13 3 130
-github.com/ethereum/go-ethereum/ptrie/trie.go:151.2,152.24 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:123.26,125.4 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:129.28,131.4 1 54
-github.com/ethereum/go-ethereum/ptrie/trie.go:131.5,138.4 6 22
-github.com/ethereum/go-ethereum/ptrie/trie.go:139.23,141.4 1 13
-github.com/ethereum/go-ethereum/ptrie/trie.go:156.51,157.19 1 15
-github.com/ethereum/go-ethereum/ptrie/trie.go:161.2,161.17 1 12
-github.com/ethereum/go-ethereum/ptrie/trie.go:165.2,165.29 1 12
-github.com/ethereum/go-ethereum/ptrie/trie.go:157.19,159.3 1 3
-github.com/ethereum/go-ethereum/ptrie/trie.go:161.17,163.3 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:166.2,170.57 3 5
-github.com/ethereum/go-ethereum/ptrie/trie.go:174.3,174.13 1 1
-github.com/ethereum/go-ethereum/ptrie/trie.go:175.2,176.45 1 7
-github.com/ethereum/go-ethereum/ptrie/trie.go:177.2,178.24 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:170.57,172.4 1 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:182.54,183.19 1 10
-github.com/ethereum/go-ethereum/ptrie/trie.go:187.2,187.29 1 10
-github.com/ethereum/go-ethereum/ptrie/trie.go:183.19,185.3 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:188.2,191.26 3 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:210.2,215.27 4 6
-github.com/ethereum/go-ethereum/ptrie/trie.go:225.3,226.16 2 6
-github.com/ethereum/go-ethereum/ptrie/trie.go:242.3,242.15 1 6
-github.com/ethereum/go-ethereum/ptrie/trie.go:244.2,245.24 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:191.26,193.4 1 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:193.5,193.42 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:193.42,197.33 3 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:205.4,205.12 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:198.4,200.48 2 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:201.4,202.44 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:206.5,208.4 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:215.27,216.29 1 102
-github.com/ethereum/go-ethereum/ptrie/trie.go:216.29,217.18 1 10
-github.com/ethereum/go-ethereum/ptrie/trie.go:217.18,219.6 1 6
-github.com/ethereum/go-ethereum/ptrie/trie.go:219.7,221.6 1 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:226.16,228.4 1 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:228.5,228.22 1 6
-github.com/ethereum/go-ethereum/ptrie/trie.go:228.22,230.33 2 2
-github.com/ethereum/go-ethereum/ptrie/trie.go:231.4,234.49 2 0
-github.com/ethereum/go-ethereum/ptrie/trie.go:235.4,236.68 1 2
-github.com/ethereum/go-ethereum/ptrie/trie.go:238.5,240.4 1 4
-github.com/ethereum/go-ethereum/ptrie/trie.go:250.53,252.11 2 95
-github.com/ethereum/go-ethereum/ptrie/trie.go:253.2,254.105 1 3
-github.com/ethereum/go-ethereum/ptrie/trie.go:255.2,257.26 2 5
-github.com/ethereum/go-ethereum/ptrie/trie.go:260.3,260.15 1 5
-github.com/ethereum/go-ethereum/ptrie/trie.go:261.2,262.34 1 25
-github.com/ethereum/go-ethereum/ptrie/trie.go:263.2,264.41 1 62
-github.com/ethereum/go-ethereum/ptrie/trie.go:257.26,259.4 1 85
-github.com/ethereum/go-ethereum/ptrie/trie.go:268.41,269.29 1 200
-github.com/ethereum/go-ethereum/ptrie/trie.go:270.2,272.28 2 5
-github.com/ethereum/go-ethereum/ptrie/trie.go:273.2,274.14 1 195
-github.com/ethereum/go-ethereum/ptrie/trie.go:278.48,280.21 2 103
-github.com/ethereum/go-ethereum/ptrie/trie.go:287.2,287.23 1 27
-github.com/ethereum/go-ethereum/ptrie/trie.go:280.21,285.3 3 76
-github.com/ethereum/go-ethereum/ptrie/valuenode.go:8.46,8.61 1 0
-github.com/ethereum/go-ethereum/ptrie/valuenode.go:9.46,9.66 1 3
-github.com/ethereum/go-ethereum/ptrie/valuenode.go:10.46,10.61 1 0
-github.com/ethereum/go-ethereum/ptrie/valuenode.go:11.46,11.61 1 0
-github.com/ethereum/go-ethereum/ptrie/valuenode.go:12.46,12.66 1 0
-github.com/ethereum/go-ethereum/ptrie/valuenode.go:13.46,13.66 1 135
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:8.37,10.2 1 27
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:12.36,12.51 1 0
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:13.36,16.2 2 0
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:18.35,18.50 1 136
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:21.42,22.34 1 0
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:28.2,28.8 1 0
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:22.34,23.18 1 0
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:23.18,25.4 1 0
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:31.42,33.2 1 27
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:35.45,37.34 2 33
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:45.2,45.10 1 33
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:37.34,38.18 1 561
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:38.18,40.4 1 136
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:40.5,42.4 1 425
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:48.47,50.2 1 265
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:52.40,53.31 1 249
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:58.2,58.12 1 134
-github.com/ethereum/go-ethereum/ptrie/fullnode.go:53.31,57.3 2 115
-github.com/ethereum/go-ethereum/rlp/decode.go:69.50,71.2 1 73
-github.com/ethereum/go-ethereum/rlp/decode.go:73.47,75.9 2 2
-github.com/ethereum/go-ethereum/rlp/decode.go:76.2,77.19 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:78.2,79.20 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:80.2,81.23 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:85.52,87.16 2 36
-github.com/ethereum/go-ethereum/rlp/decode.go:90.2,91.12 2 31
-github.com/ethereum/go-ethereum/rlp/decode.go:87.16,89.3 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:94.53,96.16 2 24
-github.com/ethereum/go-ethereum/rlp/decode.go:99.2,100.12 2 16
-github.com/ethereum/go-ethereum/rlp/decode.go:96.16,98.3 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:103.55,105.16 2 7
-github.com/ethereum/go-ethereum/rlp/decode.go:108.2,109.12 2 5
-github.com/ethereum/go-ethereum/rlp/decode.go:105.16,107.3 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:112.60,114.2 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:116.55,118.16 2 4
-github.com/ethereum/go-ethereum/rlp/decode.go:121.2,122.14 2 3
-github.com/ethereum/go-ethereum/rlp/decode.go:126.2,127.12 2 3
-github.com/ethereum/go-ethereum/rlp/decode.go:118.16,120.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:122.14,125.3 2 2
-github.com/ethereum/go-ethereum/rlp/decode.go:132.57,134.89 2 8
-github.com/ethereum/go-ethereum/rlp/decode.go:141.2,142.16 2 5
-github.com/ethereum/go-ethereum/rlp/decode.go:145.2,146.33 2 5
-github.com/ethereum/go-ethereum/rlp/decode.go:149.2,149.50 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:152.2,152.17 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:134.89,135.34 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:135.34,137.4 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:137.5,139.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:142.16,144.3 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:146.33,148.3 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:149.50,151.3 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:161.83,163.16 2 20
-github.com/ethereum/go-ethereum/rlp/decode.go:166.2,166.15 1 20
-github.com/ethereum/go-ethereum/rlp/decode.go:175.2,176.6 2 14
-github.com/ethereum/go-ethereum/rlp/decode.go:203.2,203.19 1 11
-github.com/ethereum/go-ethereum/rlp/decode.go:211.2,211.20 1 11
-github.com/ethereum/go-ethereum/rlp/decode.go:163.16,165.3 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:166.15,167.34 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:172.3,172.21 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:167.34,169.4 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:169.5,171.4 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:176.6,177.18 1 49
-github.com/ethereum/go-ethereum/rlp/decode.go:180.3,180.34 1 48
-github.com/ethereum/go-ethereum/rlp/decode.go:196.3,196.50 1 48
-github.com/ethereum/go-ethereum/rlp/decode.go:201.3,201.6 1 35
-github.com/ethereum/go-ethereum/rlp/decode.go:177.18,179.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:180.34,182.22 1 23
-github.com/ethereum/go-ethereum/rlp/decode.go:191.4,191.22 1 23
-github.com/ethereum/go-ethereum/rlp/decode.go:182.22,184.19 2 9
-github.com/ethereum/go-ethereum/rlp/decode.go:187.5,189.18 3 9
-github.com/ethereum/go-ethereum/rlp/decode.go:184.19,186.6 1 7
-github.com/ethereum/go-ethereum/rlp/decode.go:191.22,193.5 1 23
-github.com/ethereum/go-ethereum/rlp/decode.go:196.50,197.9 1 11
-github.com/ethereum/go-ethereum/rlp/decode.go:198.5,198.24 1 37
-github.com/ethereum/go-ethereum/rlp/decode.go:198.24,200.4 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:203.19,204.34 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:204.34,207.4 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:207.5,209.4 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:214.58,216.16 2 8
-github.com/ethereum/go-ethereum/rlp/decode.go:219.2,219.18 1 7
-github.com/ethereum/go-ethereum/rlp/decode.go:222.2,223.16 2 4
-github.com/ethereum/go-ethereum/rlp/decode.go:226.2,226.12 1 4
-github.com/ethereum/go-ethereum/rlp/decode.go:216.16,218.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:219.18,221.3 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:223.16,225.3 1 4
-github.com/ethereum/go-ethereum/rlp/decode.go:231.58,233.16 2 18
-github.com/ethereum/go-ethereum/rlp/decode.go:236.2,236.14 1 18
-github.com/ethereum/go-ethereum/rlp/decode.go:256.2,256.12 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:233.16,235.3 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:237.2,238.21 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:241.3,243.15 3 2
-github.com/ethereum/go-ethereum/rlp/decode.go:244.2,245.31 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:248.3,249.43 2 7
-github.com/ethereum/go-ethereum/rlp/decode.go:252.3,252.23 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:253.2,254.51 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:238.21,240.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:245.31,247.4 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:249.43,251.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:259.41,261.37 2 14
-github.com/ethereum/go-ethereum/rlp/decode.go:261.37,263.3 1 35
-github.com/ethereum/go-ethereum/rlp/decode.go:271.59,273.38 2 4
-github.com/ethereum/go-ethereum/rlp/decode.go:282.2,282.56 1 4
-github.com/ethereum/go-ethereum/rlp/decode.go:300.2,300.17 1 4
-github.com/ethereum/go-ethereum/rlp/decode.go:273.38,274.41 1 11
-github.com/ethereum/go-ethereum/rlp/decode.go:274.41,276.18 2 10
-github.com/ethereum/go-ethereum/rlp/decode.go:279.4,279.43 1 10
-github.com/ethereum/go-ethereum/rlp/decode.go:276.18,278.5 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:282.56,283.36 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:286.3,286.28 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:295.3,295.44 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:298.3,298.13 1 9
-github.com/ethereum/go-ethereum/rlp/decode.go:283.36,285.4 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:286.28,288.18 2 19
-github.com/ethereum/go-ethereum/rlp/decode.go:288.18,290.10 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:291.6,291.25 1 16
-github.com/ethereum/go-ethereum/rlp/decode.go:291.25,293.5 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:295.44,297.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:303.56,306.16 3 5
-github.com/ethereum/go-ethereum/rlp/decode.go:309.2,309.56 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:324.2,324.17 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:306.16,308.3 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:309.56,311.48 2 13
-github.com/ethereum/go-ethereum/rlp/decode.go:315.3,316.18 2 8
-github.com/ethereum/go-ethereum/rlp/decode.go:319.3,319.60 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:322.3,322.13 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:311.48,314.4 2 5
-github.com/ethereum/go-ethereum/rlp/decode.go:316.18,318.4 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:319.60,321.4 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:329.58,331.16 2 9
-github.com/ethereum/go-ethereum/rlp/decode.go:334.2,334.18 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:347.2,347.12 1 8
-github.com/ethereum/go-ethereum/rlp/decode.go:331.16,333.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:334.18,336.71 2 2
-github.com/ethereum/go-ethereum/rlp/decode.go:339.3,339.17 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:336.71,338.4 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:340.4,342.17 2 6
-github.com/ethereum/go-ethereum/rlp/decode.go:345.3,345.30 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:342.17,344.4 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:352.61,354.2 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:356.56,361.46 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:364.2,364.47 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:361.46,363.3 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:376.31,377.11 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:378.2,379.16 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:380.2,381.18 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:382.2,383.16 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:384.2,385.39 1 0
-github.com/ethereum/go-ethereum/rlp/decode.go:435.38,437.2 1 109
-github.com/ethereum/go-ethereum/rlp/decode.go:442.42,444.16 2 25
-github.com/ethereum/go-ethereum/rlp/decode.go:447.2,447.14 1 23
-github.com/ethereum/go-ethereum/rlp/decode.go:444.16,446.3 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:448.2,450.32 2 8
-github.com/ethereum/go-ethereum/rlp/decode.go:451.2,453.38 2 12
-github.com/ethereum/go-ethereum/rlp/decode.go:456.3,456.16 1 11
-github.com/ethereum/go-ethereum/rlp/decode.go:457.2,458.32 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:453.38,455.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:465.41,467.2 1 31
-github.com/ethereum/go-ethereum/rlp/decode.go:469.52,471.16 2 91
-github.com/ethereum/go-ethereum/rlp/decode.go:474.2,474.14 1 75
-github.com/ethereum/go-ethereum/rlp/decode.go:471.16,473.3 1 16
-github.com/ethereum/go-ethereum/rlp/decode.go:475.2,477.32 2 62
-github.com/ethereum/go-ethereum/rlp/decode.go:478.2,479.31 1 11
-github.com/ethereum/go-ethereum/rlp/decode.go:482.3,482.32 1 7
-github.com/ethereum/go-ethereum/rlp/decode.go:483.2,484.30 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:479.31,481.4 1 4
-github.com/ethereum/go-ethereum/rlp/decode.go:491.50,493.16 2 40
-github.com/ethereum/go-ethereum/rlp/decode.go:496.2,496.18 1 39
-github.com/ethereum/go-ethereum/rlp/decode.go:499.2,502.18 4 37
-github.com/ethereum/go-ethereum/rlp/decode.go:493.16,495.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:496.18,498.3 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:507.34,508.23 1 31
-github.com/ethereum/go-ethereum/rlp/decode.go:511.2,512.25 2 30
-github.com/ethereum/go-ethereum/rlp/decode.go:515.2,516.22 2 28
-github.com/ethereum/go-ethereum/rlp/decode.go:519.2,521.12 3 28
-github.com/ethereum/go-ethereum/rlp/decode.go:508.23,510.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:512.25,514.3 1 2
-github.com/ethereum/go-ethereum/rlp/decode.go:516.22,518.3 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:527.48,528.16 1 73
-github.com/ethereum/go-ethereum/rlp/decode.go:531.2,533.32 3 72
-github.com/ethereum/go-ethereum/rlp/decode.go:536.2,536.18 1 71
-github.com/ethereum/go-ethereum/rlp/decode.go:539.2,540.16 2 70
-github.com/ethereum/go-ethereum/rlp/decode.go:543.2,543.37 1 69
-github.com/ethereum/go-ethereum/rlp/decode.go:528.16,530.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:533.32,535.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:536.18,538.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:540.16,542.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:557.61,559.22 2 224
-github.com/ethereum/go-ethereum/rlp/decode.go:562.2,562.16 1 224
-github.com/ethereum/go-ethereum/rlp/decode.go:572.2,572.45 1 201
-github.com/ethereum/go-ethereum/rlp/decode.go:575.2,575.28 1 200
-github.com/ethereum/go-ethereum/rlp/decode.go:559.22,561.3 1 94
-github.com/ethereum/go-ethereum/rlp/decode.go:562.16,563.40 1 192
-github.com/ethereum/go-ethereum/rlp/decode.go:566.3,567.17 2 175
-github.com/ethereum/go-ethereum/rlp/decode.go:570.3,570.30 1 169
-github.com/ethereum/go-ethereum/rlp/decode.go:563.40,565.4 1 17
-github.com/ethereum/go-ethereum/rlp/decode.go:567.17,569.4 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:572.45,574.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:578.65,580.16 2 175
-github.com/ethereum/go-ethereum/rlp/decode.go:583.2,584.9 2 170
-github.com/ethereum/go-ethereum/rlp/decode.go:580.16,582.3 1 5
-github.com/ethereum/go-ethereum/rlp/decode.go:585.2,589.22 2 76
-github.com/ethereum/go-ethereum/rlp/decode.go:590.2,595.39 1 37
-github.com/ethereum/go-ethereum/rlp/decode.go:596.2,604.27 2 6
-github.com/ethereum/go-ethereum/rlp/decode.go:605.2,611.37 1 47
-github.com/ethereum/go-ethereum/rlp/decode.go:612.2,620.25 2 4
-github.com/ethereum/go-ethereum/rlp/decode.go:624.54,625.15 1 17
-github.com/ethereum/go-ethereum/rlp/decode.go:632.2,633.29 2 11
-github.com/ethereum/go-ethereum/rlp/decode.go:636.2,637.48 2 11
-github.com/ethereum/go-ethereum/rlp/decode.go:625.15,627.20 2 6
-github.com/ethereum/go-ethereum/rlp/decode.go:630.3,630.24 1 6
-github.com/ethereum/go-ethereum/rlp/decode.go:627.20,629.4 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:633.29,635.3 1 44
-github.com/ethereum/go-ethereum/rlp/decode.go:640.51,643.33 3 30
-github.com/ethereum/go-ethereum/rlp/decode.go:647.2,647.19 1 30
-github.com/ethereum/go-ethereum/rlp/decode.go:650.2,650.12 1 30
-github.com/ethereum/go-ethereum/rlp/decode.go:643.33,646.3 2 27
-github.com/ethereum/go-ethereum/rlp/decode.go:647.19,649.3 1 3
-github.com/ethereum/go-ethereum/rlp/decode.go:653.43,656.39 3 181
-github.com/ethereum/go-ethereum/rlp/decode.go:659.2,659.15 1 181
-github.com/ethereum/go-ethereum/rlp/decode.go:656.39,658.3 1 1
-github.com/ethereum/go-ethereum/rlp/decode.go:662.37,664.22 2 211
-github.com/ethereum/go-ethereum/rlp/decode.go:664.22,666.3 1 76
-github.com/ethereum/go-ethereum/rlp/typecache.go:21.58,25.17 4 70
-github.com/ethereum/go-ethereum/rlp/typecache.go:29.2,31.29 3 21
-github.com/ethereum/go-ethereum/rlp/typecache.go:25.17,27.3 1 49
-github.com/ethereum/go-ethereum/rlp/typecache.go:34.59,36.17 2 41
-github.com/ethereum/go-ethereum/rlp/typecache.go:43.2,45.16 3 27
-github.com/ethereum/go-ethereum/rlp/typecache.go:50.2,51.28 2 26
-github.com/ethereum/go-ethereum/rlp/typecache.go:36.17,39.3 1 14
-github.com/ethereum/go-ethereum/rlp/typecache.go:45.16,49.3 2 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:59.64,62.9 3 27
-github.com/ethereum/go-ethereum/rlp/typecache.go:86.2,86.18 1 27
-github.com/ethereum/go-ethereum/rlp/typecache.go:63.2,64.31 1 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:65.2,66.36 1 2
-github.com/ethereum/go-ethereum/rlp/typecache.go:67.2,68.30 1 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:69.2,70.35 1 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:71.2,72.37 1 2
-github.com/ethereum/go-ethereum/rlp/typecache.go:73.2,74.30 1 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:75.2,76.43 1 8
-github.com/ethereum/go-ethereum/rlp/typecache.go:77.2,78.45 1 4
-github.com/ethereum/go-ethereum/rlp/typecache.go:79.2,80.42 1 5
-github.com/ethereum/go-ethereum/rlp/typecache.go:81.2,82.33 1 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:83.2,84.64 1 1
-github.com/ethereum/go-ethereum/rlp/typecache.go:89.37,91.2 1 22
-github.com/ethereum/go-ethereum/state/dump.go:23.34,29.70 2 1
-github.com/ethereum/go-ethereum/state/dump.go:42.2,43.16 2 1
-github.com/ethereum/go-ethereum/state/dump.go:47.2,47.13 1 1
-github.com/ethereum/go-ethereum/state/dump.go:29.70,35.66 4 0
-github.com/ethereum/go-ethereum/state/dump.go:39.3,39.59 1 0
-github.com/ethereum/go-ethereum/state/dump.go:35.66,38.4 2 0
-github.com/ethereum/go-ethereum/state/dump.go:43.16,45.3 1 0
-github.com/ethereum/go-ethereum/state/dump.go:51.48,53.59 2 0
-github.com/ethereum/go-ethereum/state/dump.go:53.59,55.3 1 0
-github.com/ethereum/go-ethereum/state/errors.go:13.36,17.2 2 0
-github.com/ethereum/go-ethereum/state/errors.go:18.40,20.2 1 0
-github.com/ethereum/go-ethereum/state/errors.go:21.51,23.2 1 0
-github.com/ethereum/go-ethereum/state/log.go:16.51,23.16 3 0
-github.com/ethereum/go-ethereum/state/log.go:27.2,27.12 1 0
-github.com/ethereum/go-ethereum/state/log.go:23.16,25.3 1 0
-github.com/ethereum/go-ethereum/state/log.go:30.40,32.2 1 0
-github.com/ethereum/go-ethereum/state/log.go:34.34,36.2 1 0
-github.com/ethereum/go-ethereum/state/log.go:40.40,42.27 2 0
-github.com/ethereum/go-ethereum/state/log.go:46.2,46.13 1 0
-github.com/ethereum/go-ethereum/state/log.go:42.27,44.3 1 0
-github.com/ethereum/go-ethereum/state/log.go:49.34,51.27 2 0
-github.com/ethereum/go-ethereum/state/log.go:54.2,54.47 1 0
-github.com/ethereum/go-ethereum/state/log.go:51.27,53.3 1 0
-github.com/ethereum/go-ethereum/state/manifest.go:16.30,21.2 3 6
-github.com/ethereum/go-ethereum/state/manifest.go:23.28,25.2 1 6
-github.com/ethereum/go-ethereum/state/manifest.go:27.57,31.2 2 0
-github.com/ethereum/go-ethereum/state/manifest.go:49.52,51.2 1 0
-github.com/ethereum/go-ethereum/state/manifest.go:53.38,55.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:32.34,34.2 1 6
-github.com/ethereum/go-ethereum/state/state.go:36.32,38.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:40.37,42.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:44.32,46.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:49.53,51.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:55.2,55.21 1 0
-github.com/ethereum/go-ethereum/state/state.go:51.24,53.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:58.61,61.38 2 0
-github.com/ethereum/go-ethereum/state/state.go:65.2,65.66 1 0
-github.com/ethereum/go-ethereum/state/state.go:61.38,63.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:68.61,70.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:70.24,72.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:75.49,77.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:81.2,81.10 1 0
-github.com/ethereum/go-ethereum/state/state.go:77.24,79.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:84.56,86.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:86.24,88.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:91.48,93.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:97.2,97.12 1 0
-github.com/ethereum/go-ethereum/state/state.go:93.24,95.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:100.49,102.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:106.2,106.12 1 0
-github.com/ethereum/go-ethereum/state/state.go:102.24,104.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:109.66,111.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:111.24,113.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:116.45,118.24 2 0
-github.com/ethereum/go-ethereum/state/state.go:124.2,124.14 1 0
-github.com/ethereum/go-ethereum/state/state.go:118.24,122.3 2 0
-github.com/ethereum/go-ethereum/state/state.go:132.64,135.37 2 0
-github.com/ethereum/go-ethereum/state/state.go:139.2,139.65 1 0
-github.com/ethereum/go-ethereum/state/state.go:135.37,137.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:143.64,147.2 2 0
-github.com/ethereum/go-ethereum/state/state.go:150.61,154.24 3 3
-github.com/ethereum/go-ethereum/state/state.go:158.2,159.20 2 1
-github.com/ethereum/go-ethereum/state/state.go:163.2,166.20 3 0
-github.com/ethereum/go-ethereum/state/state.go:154.24,156.3 1 2
-github.com/ethereum/go-ethereum/state/state.go:159.20,161.3 1 1
-github.com/ethereum/go-ethereum/state/state.go:169.56,171.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:174.66,176.24 2 1
-github.com/ethereum/go-ethereum/state/state.go:180.2,180.20 1 1
-github.com/ethereum/go-ethereum/state/state.go:176.24,178.3 1 1
-github.com/ethereum/go-ethereum/state/state.go:184.61,193.2 5 1
-github.com/ethereum/go-ethereum/state/state.go:196.57,198.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:204.40,206.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:208.34,209.22 1 2
-github.com/ethereum/go-ethereum/state/state.go:226.2,226.12 1 0
-github.com/ethereum/go-ethereum/state/state.go:209.22,211.49 2 2
-github.com/ethereum/go-ethereum/state/state.go:215.3,215.41 1 2
-github.com/ethereum/go-ethereum/state/state.go:219.3,223.15 4 2
-github.com/ethereum/go-ethereum/state/state.go:211.49,213.4 1 1
-github.com/ethereum/go-ethereum/state/state.go:215.41,217.4 1 0
-github.com/ethereum/go-ethereum/state/state.go:229.38,230.18 1 1
-github.com/ethereum/go-ethereum/state/state.go:234.2,237.24 4 1
-github.com/ethereum/go-ethereum/state/state.go:230.18,232.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:240.31,242.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:245.25,249.45 2 0
-github.com/ethereum/go-ethereum/state/state.go:258.2,258.11 1 0
-github.com/ethereum/go-ethereum/state/state.go:249.45,250.31 1 0
-github.com/ethereum/go-ethereum/state/state.go:255.3,255.22 1 0
-github.com/ethereum/go-ethereum/state/state.go:250.31,251.12 1 0
-github.com/ethereum/go-ethereum/state/state.go:262.24,264.45 1 0
-github.com/ethereum/go-ethereum/state/state.go:272.2,274.11 2 0
-github.com/ethereum/go-ethereum/state/state.go:264.45,265.31 1 0
-github.com/ethereum/go-ethereum/state/state.go:269.3,269.27 1 0
-github.com/ethereum/go-ethereum/state/state.go:265.31,266.12 1 0
-github.com/ethereum/go-ethereum/state/state.go:277.28,280.2 2 0
-github.com/ethereum/go-ethereum/state/state.go:282.29,286.40 2 0
-github.com/ethereum/go-ethereum/state/state.go:290.2,290.48 1 0
-github.com/ethereum/go-ethereum/state/state.go:302.2,302.13 1 0
-github.com/ethereum/go-ethereum/state/state.go:286.40,288.3 1 0
-github.com/ethereum/go-ethereum/state/state.go:290.48,291.25 1 0
-github.com/ethereum/go-ethereum/state/state.go:291.25,294.4 2 0
-github.com/ethereum/go-ethereum/state/state.go:294.5,298.4 2 0
-github.com/ethereum/go-ethereum/state/state.go:302.13,304.13 2 0
-github.com/ethereum/go-ethereum/state/state.go:304.13,308.4 2 0
-github.com/ethereum/go-ethereum/state/state.go:312.41,314.2 1 0
-github.com/ethereum/go-ethereum/state/state.go:317.42,318.48 1 0
-github.com/ethereum/go-ethereum/state/state.go:318.48,320.3 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:14.34,16.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:20.36,22.31 2 1
-github.com/ethereum/go-ethereum/state/state_object.go:27.2,27.12 1 1
-github.com/ethereum/go-ethereum/state/state_object.go:22.31,25.3 1 1
-github.com/ethereum/go-ethereum/state/state_object.go:55.34,58.2 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:60.47,70.2 6 2
-github.com/ethereum/go-ethereum/state/state_object.go:72.78,78.2 4 0
-github.com/ethereum/go-ethereum/state/state_object.go:80.65,85.2 3 0
-github.com/ethereum/go-ethereum/state/state_object.go:87.44,90.2 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:92.59,94.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:96.63,98.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:100.66,102.2 1 1
-github.com/ethereum/go-ethereum/state/state_object.go:103.73,105.2 1 2
-github.com/ethereum/go-ethereum/state/state_object.go:107.62,109.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:111.60,115.18 3 1
-github.com/ethereum/go-ethereum/state/state_object.go:123.2,123.14 1 1
-github.com/ethereum/go-ethereum/state/state_object.go:115.18,118.21 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:118.21,120.4 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:126.67,129.2 2 2
-github.com/ethereum/go-ethereum/state/state_object.go:132.60,134.39 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:140.2,141.49 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:134.39,138.3 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:141.49,143.31 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:143.31,145.4 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:149.33,150.39 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:161.2,162.12 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:150.39,151.23 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:158.3,158.35 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:151.23,155.12 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:162.12,166.3 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:169.60,170.39 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:174.2,174.62 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:170.39,172.3 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:177.51,181.2 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:182.50,182.74 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:184.51,188.2 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:189.50,189.74 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:191.51,193.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:195.45,195.68 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:202.54,202.56 0 0
-github.com/ethereum/go-ethereum/state/state_object.go:203.61,205.30 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:209.2,211.12 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:205.30,207.3 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:214.56,218.2 2 0
-github.com/ethereum/go-ethereum/state/state_object.go:220.60,221.31 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:225.2,230.12 4 0
-github.com/ethereum/go-ethereum/state/state_object.go:221.31,223.3 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:233.57,240.2 4 0
-github.com/ethereum/go-ethereum/state/state_object.go:242.46,247.23 5 1
-github.com/ethereum/go-ethereum/state/state_object.go:250.2,256.20 6 1
-github.com/ethereum/go-ethereum/state/state_object.go:247.23,249.3 1 1
-github.com/ethereum/go-ethereum/state/state_object.go:259.56,261.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:267.36,269.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:272.40,274.2 1 1
-github.com/ethereum/go-ethereum/state/state_object.go:277.35,279.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:282.48,284.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:286.40,288.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:295.42,297.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:299.48,301.2 1 0
-github.com/ethereum/go-ethereum/state/state_object.go:303.46,315.2 8 0
-github.com/ethereum/go-ethereum/trie/encoding.go:9.44,11.37 2 17
-github.com/ethereum/go-ethereum/trie/encoding.go:15.2,15.21 1 17
-github.com/ethereum/go-ethereum/trie/encoding.go:19.2,21.17 3 17
-github.com/ethereum/go-ethereum/trie/encoding.go:27.2,28.40 2 17
-github.com/ethereum/go-ethereum/trie/encoding.go:32.2,32.22 1 17
-github.com/ethereum/go-ethereum/trie/encoding.go:11.37,13.3 1 9
-github.com/ethereum/go-ethereum/trie/encoding.go:15.21,17.3 1 9
-github.com/ethereum/go-ethereum/trie/encoding.go:21.17,23.3 1 9
-github.com/ethereum/go-ethereum/trie/encoding.go:23.4,25.3 1 8
-github.com/ethereum/go-ethereum/trie/encoding.go:28.40,30.3 1 46
-github.com/ethereum/go-ethereum/trie/encoding.go:35.39,38.18 3 12
-github.com/ethereum/go-ethereum/trie/encoding.go:41.2,41.20 1 12
-github.com/ethereum/go-ethereum/trie/encoding.go:47.2,47.13 1 12
-github.com/ethereum/go-ethereum/trie/encoding.go:38.18,40.3 1 7
-github.com/ethereum/go-ethereum/trie/encoding.go:41.20,43.3 1 6
-github.com/ethereum/go-ethereum/trie/encoding.go:43.4,45.3 1 6
-github.com/ethereum/go-ethereum/trie/encoding.go:50.42,55.24 4 21
-github.com/ethereum/go-ethereum/trie/encoding.go:58.2,60.17 2 21
-github.com/ethereum/go-ethereum/trie/encoding.go:55.24,57.3 1 152
-github.com/ethereum/go-ethereum/trie/encoding.go:63.39,67.24 3 0
-github.com/ethereum/go-ethereum/trie/encoding.go:73.2,75.20 2 0
-github.com/ethereum/go-ethereum/trie/encoding.go:67.24,68.13 1 0
-github.com/ethereum/go-ethereum/trie/encoding.go:68.13,70.4 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:18.44,19.21 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:23.2,23.21 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:32.2,32.19 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:19.21,21.3 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:23.21,25.17 2 0
-github.com/ethereum/go-ethereum/trie/iterator.go:29.3,29.17 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:25.17,27.4 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:43.40,45.2 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:47.70,48.23 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:73.2,73.12 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:49.2,55.11 4 0
-github.com/ethereum/go-ethereum/trie/iterator.go:56.2,57.29 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:61.3,61.33 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:67.2,70.79 2 0
-github.com/ethereum/go-ethereum/trie/iterator.go:57.29,59.4 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:61.33,63.16 2 0
-github.com/ethereum/go-ethereum/trie/iterator.go:63.16,65.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:76.83,77.35 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:129.2,129.12 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:78.2,79.13 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:80.2,81.19 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:90.3,91.19 2 0
-github.com/ethereum/go-ethereum/trie/iterator.go:95.3,95.27 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:102.2,104.22 2 0
-github.com/ethereum/go-ethereum/trie/iterator.go:81.19,85.16 3 0
-github.com/ethereum/go-ethereum/trie/iterator.go:85.16,87.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:91.19,93.4 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:95.27,98.16 3 0
-github.com/ethereum/go-ethereum/trie/iterator.go:98.16,100.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:104.22,105.49 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:105.49,110.5 3 0
-github.com/ethereum/go-ethereum/trie/iterator.go:111.5,115.26 4 0
-github.com/ethereum/go-ethereum/trie/iterator.go:123.4,123.18 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:115.26,117.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:117.6,117.49 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:117.49,119.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:119.6,121.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:123.18,125.5 1 0
-github.com/ethereum/go-ethereum/trie/iterator.go:133.47,143.2 6 0
-github.com/ethereum/go-ethereum/trie/slice.go:9.39,10.22 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:13.2,13.22 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:18.2,18.13 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:10.22,12.3 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:13.22,14.16 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:14.16,16.4 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:22.44,25.17 2 6
-github.com/ethereum/go-ethereum/trie/slice.go:32.2,32.10 1 6
-github.com/ethereum/go-ethereum/trie/slice.go:25.17,26.19 1 11
-github.com/ethereum/go-ethereum/trie/slice.go:29.3,29.6 1 7
-github.com/ethereum/go-ethereum/trie/slice.go:26.19,27.9 1 4
-github.com/ethereum/go-ethereum/trie/slice.go:35.29,37.2 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:39.31,40.16 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:44.2,44.10 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:40.16,42.3 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:47.35,48.21 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:52.2,52.35 1 0
-github.com/ethereum/go-ethereum/trie/slice.go:48.21,50.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:12.44,15.59 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:19.2,19.59 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:15.59,17.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:22.27,24.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:41.64,43.2 1 16
-github.com/ethereum/go-ethereum/trie/trie.go:45.29,47.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:55.43,57.2 1 1
-github.com/ethereum/go-ethereum/trie/trie.go:59.69,63.29 3 26
-github.com/ethereum/go-ethereum/trie/trie.go:72.2,72.10 1 10
-github.com/ethereum/go-ethereum/trie/trie.go:63.29,70.3 4 16
-github.com/ethereum/go-ethereum/trie/trie.go:75.52,77.2 1 25
-github.com/ethereum/go-ethereum/trie/trie.go:79.52,81.37 1 13
-github.com/ethereum/go-ethereum/trie/trie.go:86.2,90.15 3 0
-github.com/ethereum/go-ethereum/trie/trie.go:97.2,99.14 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:81.37,83.3 1 13
-github.com/ethereum/go-ethereum/trie/trie.go:90.15,91.31 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:91.31,94.4 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:102.40,106.2 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:108.30,110.20 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:114.2,114.37 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:120.2,124.28 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:110.20,112.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:114.37,115.17 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:115.17,118.4 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:124.28,126.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:129.28,130.37 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:135.2,135.23 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:130.37,131.17 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:131.17,133.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:152.45,154.32 2 2
-github.com/ethereum/go-ethereum/trie/trie.go:160.2,160.21 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:154.32,156.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:156.4,158.3 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:163.55,172.2 5 1
-github.com/ethereum/go-ethereum/trie/trie.go:174.45,175.26 1 9
-github.com/ethereum/go-ethereum/trie/trie.go:176.2,182.24 1 1
-github.com/ethereum/go-ethereum/trie/trie.go:183.2,184.19 1 7
-github.com/ethereum/go-ethereum/trie/trie.go:185.2,186.46 1 1
-github.com/ethereum/go-ethereum/trie/trie.go:194.42,201.17 5 8
-github.com/ethereum/go-ethereum/trie/trie.go:206.2,206.17 1 8
-github.com/ethereum/go-ethereum/trie/trie.go:201.17,203.3 1 6
-github.com/ethereum/go-ethereum/trie/trie.go:203.4,205.3 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:209.39,217.2 5 0
-github.com/ethereum/go-ethereum/trie/trie.go:219.35,227.2 5 0
-github.com/ethereum/go-ethereum/trie/trie.go:229.36,230.31 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:231.2,232.14 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:235.3,235.19 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:236.2,237.18 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:241.3,241.11 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:242.2,243.72 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:232.14,234.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:237.18,239.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:248.37,250.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:253.29,255.39 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:259.2,259.13 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:255.39,257.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:263.23,266.2 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:268.23,271.2 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:273.31,275.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:277.67,280.48 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:284.2,287.17 3 0
-github.com/ethereum/go-ethereum/trie/trie.go:304.2,304.28 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:280.48,282.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:287.17,289.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:289.4,289.24 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:289.24,294.57 3 0
-github.com/ethereum/go-ethereum/trie/trie.go:294.57,296.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:296.5,298.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:299.4,299.25 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:299.25,301.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:307.57,310.23 2 18
-github.com/ethereum/go-ethereum/trie/trie.go:314.2,315.19 2 13
-github.com/ethereum/go-ethereum/trie/trie.go:321.2,323.13 2 13
-github.com/ethereum/go-ethereum/trie/trie.go:310.23,312.3 1 5
-github.com/ethereum/go-ethereum/trie/trie.go:315.19,317.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:317.4,317.26 1 13
-github.com/ethereum/go-ethereum/trie/trie.go:317.26,319.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:326.84,328.2 1 6
-github.com/ethereum/go-ethereum/trie/trie.go:330.50,333.2 1 25
-github.com/ethereum/go-ethereum/trie/trie.go:335.44,337.25 2 13
-github.com/ethereum/go-ethereum/trie/trie.go:340.2,340.14 1 13
-github.com/ethereum/go-ethereum/trie/trie.go:337.25,339.3 1 221
-github.com/ethereum/go-ethereum/trie/trie.go:343.89,344.19 1 22
-github.com/ethereum/go-ethereum/trie/trie.go:349.2,350.33 2 19
-github.com/ethereum/go-ethereum/trie/trie.go:356.2,358.28 2 12
-github.com/ethereum/go-ethereum/trie/trie.go:412.2,412.25 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:344.19,346.3 1 3
-github.com/ethereum/go-ethereum/trie/trie.go:350.33,354.3 2 7
-github.com/ethereum/go-ethereum/trie/trie.go:358.28,365.26 3 6
-github.com/ethereum/go-ethereum/trie/trie.go:370.3,372.31 3 6
-github.com/ethereum/go-ethereum/trie/trie.go:388.3,388.26 1 6
-github.com/ethereum/go-ethereum/trie/trie.go:365.26,368.4 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:372.31,375.4 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:375.5,386.4 6 4
-github.com/ethereum/go-ethereum/trie/trie.go:388.26,391.4 1 1
-github.com/ethereum/go-ethereum/trie/trie.go:391.5,394.4 2 5
-github.com/ethereum/go-ethereum/trie/trie.go:395.4,400.27 2 6
-github.com/ethereum/go-ethereum/trie/trie.go:407.3,409.24 2 6
-github.com/ethereum/go-ethereum/trie/trie.go:400.27,402.18 2 102
-github.com/ethereum/go-ethereum/trie/trie.go:402.18,404.5 1 102
-github.com/ethereum/go-ethereum/trie/trie.go:415.70,416.19 1 5
-github.com/ethereum/go-ethereum/trie/trie.go:421.2,423.33 2 5
-github.com/ethereum/go-ethereum/trie/trie.go:430.2,432.28 2 5
-github.com/ethereum/go-ethereum/trie/trie.go:502.2,502.28 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:416.19,418.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:423.33,428.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:432.28,438.26 3 2
-github.com/ethereum/go-ethereum/trie/trie.go:438.26,442.4 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:442.5,442.42 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:442.42,447.24 4 0
-github.com/ethereum/go-ethereum/trie/trie.go:456.4,456.25 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:447.24,450.5 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:450.6,452.5 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:457.5,459.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:460.4,465.27 3 3
-github.com/ethereum/go-ethereum/trie/trie.go:472.3,474.27 3 3
-github.com/ethereum/go-ethereum/trie/trie.go:483.3,483.19 1 3
-github.com/ethereum/go-ethereum/trie/trie.go:499.3,499.24 1 3
-github.com/ethereum/go-ethereum/trie/trie.go:465.27,467.18 2 51
-github.com/ethereum/go-ethereum/trie/trie.go:467.18,469.5 1 51
-github.com/ethereum/go-ethereum/trie/trie.go:474.27,475.18 1 51
-github.com/ethereum/go-ethereum/trie/trie.go:475.18,476.21 1 5
-github.com/ethereum/go-ethereum/trie/trie.go:476.21,478.6 1 3
-github.com/ethereum/go-ethereum/trie/trie.go:478.7,480.6 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:483.19,485.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:485.5,485.25 1 3
-github.com/ethereum/go-ethereum/trie/trie.go:485.25,487.25 2 1
-github.com/ethereum/go-ethereum/trie/trie.go:487.25,489.5 1 1
-github.com/ethereum/go-ethereum/trie/trie.go:489.6,489.31 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:489.31,492.5 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:494.5,496.4 1 2
-github.com/ethereum/go-ethereum/trie/trie.go:516.44,518.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:520.40,522.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:526.62,527.28 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:527.28,530.37 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:530.37,532.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:532.5,533.25 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:533.25,535.5 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:535.6,538.5 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:540.4,541.42 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:541.42,542.48 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:542.48,544.5 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:544.6,545.39 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:545.39,547.6 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:547.7,549.19 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:549.19,552.7 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:559.46,562.2 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:564.44,565.24 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:569.2,571.16 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:565.24,567.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:574.37,576.27 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:579.2,579.23 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:576.27,578.3 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:582.38,584.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:586.40,588.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:592.47,594.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:596.77,598.2 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:600.94,601.28 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:601.28,605.70 3 0
-github.com/ethereum/go-ethereum/trie/trie.go:605.70,607.4 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:607.5,608.25 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:608.25,610.5 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:610.6,612.5 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:614.4,615.42 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:615.42,617.48 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:617.48,619.5 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:619.6,620.72 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:620.72,622.6 1 0
-github.com/ethereum/go-ethereum/trie/trie.go:622.7,624.19 2 0
-github.com/ethereum/go-ethereum/trie/trie.go:624.19,626.7 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:25.24,27.2 1 4
-github.com/ethereum/go-ethereum/vm/stack.go:29.36,31.2 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:33.28,35.2 1 141
-github.com/ethereum/go-ethereum/vm/stack.go:37.33,44.2 4 42
-github.com/ethereum/go-ethereum/vm/stack.go:46.46,53.2 4 20
-github.com/ethereum/go-ethereum/vm/stack.go:55.34,59.2 2 16
-github.com/ethereum/go-ethereum/vm/stack.go:61.47,65.2 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:67.52,71.2 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:73.39,77.2 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:79.35,81.2 1 84
-github.com/ethereum/go-ethereum/vm/stack.go:83.50,86.29 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:91.2,91.12 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:86.29,89.3 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:94.26,96.22 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:103.2,103.30 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:96.22,97.31 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:97.31,99.4 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:100.4,102.3 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:110.26,112.2 1 3
-github.com/ethereum/go-ethereum/vm/stack.go:114.56,115.20 1 2
-github.com/ethereum/go-ethereum/vm/stack.go:115.20,118.24 3 2
-github.com/ethereum/go-ethereum/vm/stack.go:128.3,128.43 1 2
-github.com/ethereum/go-ethereum/vm/stack.go:118.24,121.16 2 2
-github.com/ethereum/go-ethereum/vm/stack.go:121.16,126.5 2 2
-github.com/ethereum/go-ethereum/vm/stack.go:132.38,133.28 1 28
-github.com/ethereum/go-ethereum/vm/stack.go:133.28,135.3 1 8
-github.com/ethereum/go-ethereum/vm/stack.go:138.49,139.32 1 4
-github.com/ethereum/go-ethereum/vm/stack.go:145.2,145.12 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:139.32,143.3 2 4
-github.com/ethereum/go-ethereum/vm/stack.go:148.59,149.35 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:157.2,157.8 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:149.35,155.3 4 0
-github.com/ethereum/go-ethereum/vm/stack.go:160.28,162.2 1 139
-github.com/ethereum/go-ethereum/vm/stack.go:164.32,166.2 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:168.26,170.22 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:179.2,179.37 1 0
-github.com/ethereum/go-ethereum/vm/stack.go:170.22,172.45 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:172.45,175.4 2 0
-github.com/ethereum/go-ethereum/vm/stack.go:176.4,178.3 1 0
-github.com/ethereum/go-ethereum/vm/address.go:19.55,21.2 1 2
-github.com/ethereum/go-ethereum/vm/address.go:29.35,31.2 1 1
-github.com/ethereum/go-ethereum/vm/address.go:33.38,35.2 1 1
-github.com/ethereum/go-ethereum/vm/address.go:37.38,39.15 1 0
-github.com/ethereum/go-ethereum/vm/address.go:41.2,41.29 1 0
-github.com/ethereum/go-ethereum/vm/address.go:39.15,39.28 1 0
-github.com/ethereum/go-ethereum/vm/execution.go:19.103,21.2 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:23.38,25.2 1 0
-github.com/ethereum/go-ethereum/vm/execution.go:27.81,32.2 2 2
-github.com/ethereum/go-ethereum/vm/execution.go:34.92,39.15 4 2
-github.com/ethereum/go-ethereum/vm/execution.go:46.2,56.24 3 2
-github.com/ethereum/go-ethereum/vm/execution.go:60.2,60.16 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:90.2,90.8 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:39.15,40.39 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:43.3,43.57 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:40.39,42.4 1 0
-github.com/ethereum/go-ethereum/vm/execution.go:56.24,58.3 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:60.16,64.3 2 0
-github.com/ethereum/go-ethereum/vm/execution.go:64.4,68.40 3 2
-github.com/ethereum/go-ethereum/vm/execution.go:68.40,69.32 1 2
-github.com/ethereum/go-ethereum/vm/execution.go:69.32,72.5 2 2
-github.com/ethereum/go-ethereum/vm/execution.go:73.5,78.39 3 0
-github.com/ethereum/go-ethereum/vm/execution.go:85.4,86.20 2 0
-github.com/ethereum/go-ethereum/vm/execution.go:78.39,82.5 2 0
-github.com/ethereum/go-ethereum/vm/execution.go:93.74,95.2 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:20.52,21.13 1 4
-github.com/ethereum/go-ethereum/vm/vm.go:22.2,23.25 1 3
-github.com/ethereum/go-ethereum/vm/vm.go:24.2,25.23 1 1
-github.com/ethereum/go-ethereum/vm/vm.go:29.70,33.15 2 1
-github.com/ethereum/go-ethereum/vm/vm.go:41.2,41.28 1 1
-github.com/ethereum/go-ethereum/vm/vm.go:45.2,52.25 1 1
-github.com/ethereum/go-ethereum/vm/vm.go:59.2,59.6 1 1
-github.com/ethereum/go-ethereum/vm/vm.go:33.15,34.31 1 1
-github.com/ethereum/go-ethereum/vm/vm.go:34.31,37.4 2 1
-github.com/ethereum/go-ethereum/vm/vm.go:41.28,43.3 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:52.25,53.23 1 15
-github.com/ethereum/go-ethereum/vm/vm.go:53.23,55.5 1 1
-github.com/ethereum/go-ethereum/vm/vm.go:59.6,68.44 5 22
-github.com/ethereum/go-ethereum/vm/vm.go:72.3,75.13 3 22
-github.com/ethereum/go-ethereum/vm/vm.go:144.3,144.39 1 22
-github.com/ethereum/go-ethereum/vm/vm.go:158.3,158.27 1 22
-github.com/ethereum/go-ethereum/vm/vm.go:166.3,168.13 2 22
-github.com/ethereum/go-ethereum/vm/vm.go:707.3,707.7 1 21
-github.com/ethereum/go-ethereum/vm/vm.go:68.44,70.4 1 24
-github.com/ethereum/go-ethereum/vm/vm.go:76.3,77.25 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:78.3,79.25 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:80.3,81.21 1 3
-github.com/ethereum/go-ethereum/vm/vm.go:82.3,86.65 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:93.4,93.43 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:94.3,95.23 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:96.3,98.52 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:99.3,102.52 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:103.3,105.51 2 4
-github.com/ethereum/go-ethereum/vm/vm.go:106.3,109.69 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:110.3,115.69 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:116.3,119.69 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:120.3,123.69 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:124.3,127.82 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:128.3,136.37 6 0
-github.com/ethereum/go-ethereum/vm/vm.go:137.3,141.82 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:86.65,88.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:88.6,88.73 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:88.73,90.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:90.6,92.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:144.39,149.50 4 4
-github.com/ethereum/go-ethereum/vm/vm.go:149.50,155.5 4 2
-github.com/ethereum/go-ethereum/vm/vm.go:158.27,164.4 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:170.3,179.20 5 3
-github.com/ethereum/go-ethereum/vm/vm.go:180.3,189.20 5 0
-github.com/ethereum/go-ethereum/vm/vm.go:190.3,199.20 5 0
-github.com/ethereum/go-ethereum/vm/vm.go:200.3,204.32 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:208.4,211.20 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:212.3,216.32 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:231.4,231.20 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:232.3,240.20 5 0
-github.com/ethereum/go-ethereum/vm/vm.go:241.3,245.32 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:260.4,260.20 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:262.3,270.20 5 1
-github.com/ethereum/go-ethereum/vm/vm.go:271.3,277.20 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:278.3,282.20 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:287.3,292.20 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:298.3,302.26 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:307.3,312.20 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:318.3,323.21 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:328.3,331.35 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:338.3,342.30 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:343.3,347.29 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:348.3,352.30 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:353.3,356.85 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:363.3,375.20 8 0
-github.com/ethereum/go-ethereum/vm/vm.go:376.3,388.20 8 0
-github.com/ethereum/go-ethereum/vm/vm.go:391.3,396.34 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:399.3,400.47 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:402.3,408.23 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:410.3,413.36 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:415.3,417.36 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:419.3,422.21 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:424.3,432.32 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:439.4,439.34 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:440.3,442.29 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:444.3,452.19 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:459.4,461.26 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:462.3,464.25 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:472.4,473.17 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:475.3,477.25 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:485.4,492.19 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:499.4,501.30 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:502.3,503.29 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:506.3,509.38 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:511.3,514.38 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:516.3,519.32 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:521.3,524.22 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:526.3,529.26 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:531.3,533.29 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:536.3,544.36 5 11
-github.com/ethereum/go-ethereum/vm/vm.go:545.3,547.15 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:548.3,550.17 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:551.3,553.18 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:555.3,559.19 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:561.3,565.61 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:567.3,572.53 4 4
-github.com/ethereum/go-ethereum/vm/vm.go:574.3,579.28 4 3
-github.com/ethereum/go-ethereum/vm/vm.go:581.3,586.49 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:588.3,593.12 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:594.3,597.38 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:606.3,606.17 0 0
-github.com/ethereum/go-ethereum/vm/vm.go:607.3,608.31 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:609.3,610.44 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:611.3,612.27 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:614.3,637.18 8 0
-github.com/ethereum/go-ethereum/vm/vm.go:649.3,664.22 8 0
-github.com/ethereum/go-ethereum/vm/vm.go:670.4,672.18 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:680.3,685.35 4 0
-github.com/ethereum/go-ethereum/vm/vm.go:686.3,695.15 5 0
-github.com/ethereum/go-ethereum/vm/vm.go:696.3,698.35 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:699.3,704.67 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:204.32,206.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:216.32,218.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:218.6,220.53 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:226.5,228.15 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:220.53,222.6 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:222.7,224.6 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:245.32,247.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:247.6,249.32 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:255.5,257.15 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:249.32,251.6 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:251.7,253.6 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:282.20,284.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:284.6,286.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:292.20,294.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:294.6,296.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:302.26,304.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:304.6,306.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:312.20,314.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:314.6,316.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:323.21,325.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:325.6,327.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:331.35,333.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:333.6,335.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:356.85,360.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:360.6,362.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:432.32,437.5 3 0
-github.com/ethereum/go-ethereum/vm/vm.go:452.19,455.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:455.6,455.28 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:455.28,457.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:464.25,468.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:468.6,470.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:477.25,481.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:481.6,483.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:492.19,495.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:495.6,495.28 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:495.28,497.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:597.38,600.43 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:604.5,604.13 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:600.43,602.6 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:637.18,643.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:643.6,647.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:664.22,666.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:666.6,668.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:672.18,674.5 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:674.6,678.5 2 0
-github.com/ethereum/go-ethereum/vm/vm.go:711.35,713.2 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:715.29,717.2 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:719.72,719.87 1 0
-github.com/ethereum/go-ethereum/vm/vm.go:720.72,720.87 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:32.43,34.25 2 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:38.2,38.57 1 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:34.25,36.3 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:41.75,44.22 2 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:60.2,70.30 1 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:100.2,100.21 1 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:105.2,105.28 1 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:109.2,111.6 2 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:44.22,46.16 1 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:46.16,47.32 1 3
-github.com/ethereum/go-ethereum/vm/vm_debug.go:47.32,56.5 4 1
-github.com/ethereum/go-ethereum/vm/vm_debug.go:70.30,71.23 1 33
-github.com/ethereum/go-ethereum/vm/vm_debug.go:71.23,73.5 1 1
-github.com/ethereum/go-ethereum/vm/vm_debug.go:76.34,81.14 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:95.4,95.15 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:81.14,83.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:83.6,85.64 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:91.5,91.12 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:85.64,87.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:87.7,87.43 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:87.43,89.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:100.21,102.3 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:105.28,107.3 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:111.6,122.30 5 80
-github.com/ethereum/go-ethereum/vm/vm_debug.go:139.3,140.44 2 80
-github.com/ethereum/go-ethereum/vm/vm_debug.go:146.3,150.13 3 80
-github.com/ethereum/go-ethereum/vm/vm_debug.go:253.3,253.39 1 79
-github.com/ethereum/go-ethereum/vm/vm_debug.go:270.3,273.27 3 79
-github.com/ethereum/go-ethereum/vm/vm_debug.go:283.3,283.13 1 79
-github.com/ethereum/go-ethereum/vm/vm_debug.go:917.3,921.22 3 77
-github.com/ethereum/go-ethereum/vm/vm_debug.go:122.30,123.14 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:131.4,132.19 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:136.4,136.92 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:124.4,125.98 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:125.98,128.6 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:132.19,134.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:140.44,141.37 1 88
-github.com/ethereum/go-ethereum/vm/vm_debug.go:141.37,143.5 1 88
-github.com/ethereum/go-ethereum/vm/vm_debug.go:152.3,153.14 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:154.3,155.14 1 10
-github.com/ethereum/go-ethereum/vm/vm_debug.go:156.3,157.14 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:158.3,160.14 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:161.3,163.14 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:164.3,171.52 6 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:173.3,174.25 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:175.3,178.25 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:179.3,182.21 2 9
-github.com/ethereum/go-ethereum/vm/vm_debug.go:184.3,190.65 5 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:201.4,201.46 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:202.3,204.23 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:205.3,207.52 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:208.3,211.52 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:212.3,214.51 2 10
-github.com/ethereum/go-ethereum/vm/vm_debug.go:215.3,218.69 2 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:219.3,224.69 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:225.3,228.69 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:229.3,232.69 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:233.3,236.82 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:237.3,245.37 6 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:246.3,250.82 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:190.65,193.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:193.6,193.73 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:193.73,197.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:197.6,200.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:253.39,258.50 4 12
-github.com/ethereum/go-ethereum/vm/vm_debug.go:258.50,266.5 5 6
-github.com/ethereum/go-ethereum/vm/vm_debug.go:273.27,281.4 4 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:285.3,295.20 6 9
-github.com/ethereum/go-ethereum/vm/vm_debug.go:296.3,306.20 6 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:307.3,317.20 6 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:318.3,322.32 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:326.4,330.20 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:331.3,336.32 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:351.4,352.20 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:353.3,358.32 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:364.4,367.20 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:368.3,373.32 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:388.4,389.20 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:391.3,402.20 6 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:403.3,405.17 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:422.3,428.20 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:429.3,433.20 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:438.3,443.20 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:449.3,453.26 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:458.3,463.20 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:469.3,474.21 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:479.3,481.35 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:488.3,492.30 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:493.3,497.29 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:498.3,502.30 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:503.3,506.34 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:514.4,516.20 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:517.3,530.20 8 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:531.3,544.20 8 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:547.3,553.31 4 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:555.3,558.44 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:559.3,566.45 4 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:567.3,572.33 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:573.3,577.33 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:578.3,583.32 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:584.3,591.32 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:598.4,600.34 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:601.3,605.28 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:606.3,614.19 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:621.4,625.72 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:626.3,628.25 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:636.4,639.28 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:640.3,642.25 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:650.4,657.19 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:664.4,668.72 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:669.3,672.40 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:675.3,680.37 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:681.3,686.37 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:687.3,692.33 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:693.3,698.43 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:699.3,704.47 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:705.3,706.35 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:709.3,720.41 8 47
-github.com/ethereum/go-ethereum/vm/vm_debug.go:721.3,722.15 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:723.3,729.151 4 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:732.3,736.62 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:737.3,742.27 5 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:746.4,749.30 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:750.3,755.40 4 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:756.3,761.32 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:762.3,768.42 4 10
-github.com/ethereum/go-ethereum/vm/vm_debug.go:769.3,774.59 4 9
-github.com/ethereum/go-ethereum/vm/vm_debug.go:775.3,780.30 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:784.4,784.59 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:785.3,789.12 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:790.3,793.38 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:799.3,799.17 0 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:800.3,801.18 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:802.3,803.44 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:804.3,805.27 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:807.3,831.18 9 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:844.4,847.23 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:850.3,865.22 8 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:871.4,873.18 3 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:882.4,885.23 2 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:889.3,895.35 4 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:896.3,903.15 4 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:904.3,907.35 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:908.3,914.67 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:322.32,324.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:336.32,338.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:338.6,340.53 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:346.5,348.15 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:340.53,342.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:342.7,344.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:358.32,360.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:360.6,362.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:373.32,375.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:375.6,377.32 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:383.5,385.15 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:377.32,379.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:379.7,381.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:405.17,410.39 5 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:416.5,420.20 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:410.39,412.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:412.7,414.6 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:433.20,435.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:435.6,437.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:443.20,445.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:445.6,447.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:453.26,455.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:455.6,457.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:463.20,465.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:465.6,467.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:474.21,476.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:476.6,478.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:481.35,483.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:483.6,485.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:506.34,510.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:510.6,512.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:591.32,596.5 3 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:614.19,617.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:617.6,617.28 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:617.28,619.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:628.25,632.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:632.6,634.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:642.25,646.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:646.6,648.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:657.19,660.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:660.6,660.28 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:660.28,662.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:729.151,731.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:742.27,744.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:780.30,782.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:793.38,796.13 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:831.18,838.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:838.6,842.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:847.23,849.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:865.22,867.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:867.6,869.5 1 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:873.18,877.5 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:877.6,881.5 2 2
-github.com/ethereum/go-ethereum/vm/vm_debug.go:885.23,887.5 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:921.22,922.51 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:922.51,923.41 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:923.41,926.98 2 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:926.98,928.7 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:929.7,929.29 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:929.29,930.97 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:930.97,932.7 1 0
-github.com/ethereum/go-ethereum/vm/vm_debug.go:940.77,941.31 1 248
-github.com/ethereum/go-ethereum/vm/vm_debug.go:945.2,945.13 1 248
-github.com/ethereum/go-ethereum/vm/vm_debug.go:941.31,943.3 1 248
-github.com/ethereum/go-ethereum/vm/vm_debug.go:948.44,949.31 1 82
-github.com/ethereum/go-ethereum/vm/vm_debug.go:954.2,954.13 1 82
-github.com/ethereum/go-ethereum/vm/vm_debug.go:949.31,952.3 2 82
-github.com/ethereum/go-ethereum/vm/vm_debug.go:957.40,959.2 1 4
-github.com/ethereum/go-ethereum/vm/vm_debug.go:961.34,963.2 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:34.126,46.2 5 4
-github.com/ethereum/go-ethereum/vm/closure.go:49.57,51.14 2 3
-github.com/ethereum/go-ethereum/vm/closure.go:55.2,55.10 1 3
-github.com/ethereum/go-ethereum/vm/closure.go:51.14,53.3 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:58.50,60.2 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:62.39,64.2 1 102
-github.com/ethereum/go-ethereum/vm/closure.go:66.39,67.21 1 102
-github.com/ethereum/go-ethereum/vm/closure.go:71.2,71.10 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:67.21,69.3 1 102
-github.com/ethereum/go-ethereum/vm/closure.go:74.45,75.42 1 11
-github.com/ethereum/go-ethereum/vm/closure.go:79.2,79.24 1 11
-github.com/ethereum/go-ethereum/vm/closure.go:75.42,77.3 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:82.54,83.72 1 47
-github.com/ethereum/go-ethereum/vm/closure.go:87.2,89.34 2 47
-github.com/ethereum/go-ethereum/vm/closure.go:83.72,85.3 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:92.62,94.2 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:96.36,98.2 1 16
-github.com/ethereum/go-ethereum/vm/closure.go:100.82,106.2 3 4
-github.com/ethereum/go-ethereum/vm/closure.go:108.45,113.2 2 4
-github.com/ethereum/go-ethereum/vm/closure.go:115.45,116.24 1 102
-github.com/ethereum/go-ethereum/vm/closure.go:121.2,124.13 3 102
-github.com/ethereum/go-ethereum/vm/closure.go:116.24,118.3 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:128.50,132.2 2 0
-github.com/ethereum/go-ethereum/vm/closure.go:134.47,136.2 1 2
-github.com/ethereum/go-ethereum/vm/closure.go:138.39,140.2 1 0
-github.com/ethereum/go-ethereum/vm/closure.go:142.51,144.2 1 0
-github.com/ethereum/go-ethereum/vm/common.go:46.44,47.30 1 20
-github.com/ethereum/go-ethereum/vm/common.go:51.2,51.33 1 18
-github.com/ethereum/go-ethereum/vm/common.go:47.30,49.3 1 2
-github.com/ethereum/go-ethereum/vm/common.go:55.29,57.2 1 94
-github.com/ethereum/go-ethereum/vm/common.go:60.40,63.59 2 0
-github.com/ethereum/go-ethereum/vm/common.go:67.2,67.12 1 0
-github.com/ethereum/go-ethereum/vm/common.go:63.59,65.3 1 0
-github.com/ethereum/go-ethereum/vm/types.go:328.33,330.19 2 81
-github.com/ethereum/go-ethereum/vm/types.go:334.2,334.12 1 81
-github.com/ethereum/go-ethereum/vm/types.go:330.19,332.3 1 0
-github.com/ethereum/go-ethereum/vm/asm.go:10.48,12.6 2 0
-github.com/ethereum/go-ethereum/vm/asm.go:44.2,44.8 1 0
-github.com/ethereum/go-ethereum/vm/asm.go:12.6,13.50 1 0
-github.com/ethereum/go-ethereum/vm/asm.go:18.3,24.13 4 0
-github.com/ethereum/go-ethereum/vm/asm.go:41.3,41.27 1 0
-github.com/ethereum/go-ethereum/vm/asm.go:13.50,15.4 1 0
-github.com/ethereum/go-ethereum/vm/asm.go:25.3,28.39 3 0
-github.com/ethereum/go-ethereum/vm/asm.go:32.4,33.22 2 0
-github.com/ethereum/go-ethereum/vm/asm.go:36.4,38.31 2 0
-github.com/ethereum/go-ethereum/vm/asm.go:28.39,30.5 1 0
-github.com/ethereum/go-ethereum/vm/asm.go:33.22,35.5 1 0
-github.com/ethereum/go-ethereum/vm/errors.go:12.43,14.2 1 0
-github.com/ethereum/go-ethereum/vm/errors.go:16.42,18.2 1 0
-github.com/ethereum/go-ethereum/vm/errors.go:20.31,23.2 2 2
-github.com/ethereum/go-ethereum/vm/errors.go:29.40,31.2 1 0
-github.com/ethereum/go-ethereum/vm/errors.go:33.39,35.2 1 0
-github.com/ethereum/go-ethereum/vm/errors.go:37.30,40.2 2 0
-github.com/ethereum/go-ethereum/vm/errors.go:44.39,46.2 1 0
-github.com/ethereum/go-ethereum/vm/errors.go:48.33,51.2 2 2
-github.com/ethereum/go-ethereum/vm/analysis.go:9.63,14.50 4 3
-github.com/ethereum/go-ethereum/vm/analysis.go:34.2,34.8 1 3
-github.com/ethereum/go-ethereum/vm/analysis.go:14.50,16.13 2 117
-github.com/ethereum/go-ethereum/vm/analysis.go:17.3,19.33 2 61
-github.com/ethereum/go-ethereum/vm/analysis.go:23.4,24.13 2 61
-github.com/ethereum/go-ethereum/vm/analysis.go:25.3,26.10 1 0
-github.com/ethereum/go-ethereum/vm/analysis.go:30.3,31.14 1 56
-github.com/ethereum/go-ethereum/vm/analysis.go:19.33,21.5 1 61
-github.com/ethereum/go-ethereum/vm/analysis.go:26.10,28.5 1 0
-github.com/ethereum/go-ethereum/vm/environment.go:38.56,39.36 1 0
-github.com/ethereum/go-ethereum/vm/environment.go:43.2,50.12 3 0
-github.com/ethereum/go-ethereum/vm/environment.go:39.36,41.3 1 0
-github.com/ethereum/go-ethereum/wire/client_identity.go:21.118,31.2 2 1
-github.com/ethereum/go-ethereum/wire/client_identity.go:33.39,34.2 0 0
-github.com/ethereum/go-ethereum/wire/client_identity.go:36.48,38.33 2 2
-github.com/ethereum/go-ethereum/wire/client_identity.go:42.2,47.20 1 2
-github.com/ethereum/go-ethereum/wire/client_identity.go:38.33,40.3 1 2
-github.com/ethereum/go-ethereum/wire/client_identity.go:50.77,52.2 1 1
-github.com/ethereum/go-ethereum/wire/client_identity.go:54.61,56.2 1 2
-github.com/ethereum/go-ethereum/wire/messages2.go:23.37,25.2 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:28.37,29.36 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:33.2,36.12 3 0
-github.com/ethereum/go-ethereum/wire/messages2.go:29.36,31.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:43.68,47.26 3 0
-github.com/ethereum/go-ethereum/wire/messages2.go:58.2,67.16 6 0
-github.com/ethereum/go-ethereum/wire/messages2.go:71.2,71.12 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:47.26,48.59 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:48.59,50.4 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:50.5,50.50 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:50.50,52.4 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:52.5,54.4 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:67.16,69.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:74.101,75.20 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:79.2,79.20 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:84.2,84.46 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:88.2,90.40 3 0
-github.com/ethereum/go-ethereum/wire/messages2.go:94.2,106.8 6 0
-github.com/ethereum/go-ethereum/wire/messages2.go:75.20,77.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:79.20,81.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:84.46,86.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:90.40,92.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:112.52,114.15 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:122.2,124.6 3 0
-github.com/ethereum/go-ethereum/wire/messages2.go:149.2,151.78 3 0
-github.com/ethereum/go-ethereum/wire/messages2.go:159.2,159.8 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:114.15,115.31 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:115.31,117.4 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:124.6,131.27 4 0
-github.com/ethereum/go-ethereum/wire/messages2.go:144.3,145.18 2 0
-github.com/ethereum/go-ethereum/wire/messages2.go:131.27,132.28 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:132.28,135.5 2 0
-github.com/ethereum/go-ethereum/wire/messages2.go:135.6,136.10 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:140.5,140.20 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:140.20,141.9 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:151.78,154.17 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:154.17,156.4 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:162.82,163.20 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:167.2,167.20 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:172.2,172.46 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:176.2,178.40 3 0
-github.com/ethereum/go-ethereum/wire/messages2.go:182.2,194.8 6 0
-github.com/ethereum/go-ethereum/wire/messages2.go:163.20,165.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:167.20,169.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:172.46,174.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:178.40,180.3 1 0
-github.com/ethereum/go-ethereum/wire/messages2.go:197.50,199.2 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:62.35,64.2 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:72.57,77.2 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:84.59,86.15 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:92.2,98.6 2 0
-github.com/ethereum/go-ethereum/wire/messaging.go:145.2,145.29 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:155.2,155.8 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:86.15,87.31 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:87.31,89.4 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:98.6,104.27 4 0
-github.com/ethereum/go-ethereum/wire/messaging.go:113.3,113.31 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:120.3,121.21 2 0
-github.com/ethereum/go-ethereum/wire/messaging.go:134.3,134.29 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:104.27,105.28 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:105.28,108.5 2 0
-github.com/ethereum/go-ethereum/wire/messaging.go:108.6,109.10 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:113.31,117.12 2 0
-github.com/ethereum/go-ethereum/wire/messaging.go:121.21,123.48 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:128.4,131.19 2 0
-github.com/ethereum/go-ethereum/wire/messaging.go:123.48,125.5 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:134.29,139.22 4 0
-github.com/ethereum/go-ethereum/wire/messaging.go:139.22,140.10 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:145.29,153.3 4 0
-github.com/ethereum/go-ethereum/wire/messaging.go:160.50,174.16 7 0
-github.com/ethereum/go-ethereum/wire/messaging.go:178.2,178.12 1 0
-github.com/ethereum/go-ethereum/wire/messaging.go:174.16,176.3 1 0
diff --git a/ptrie/fullnode.go b/ptrie/fullnode.go
index 7a7f7d22d4..4dd98049d5 100644
--- a/ptrie/fullnode.go
+++ b/ptrie/fullnode.go
@@ -1,5 +1,7 @@
package ptrie
+import "fmt"
+
type FullNode struct {
trie *Trie
nodes [17]Node
@@ -21,7 +23,9 @@ func (self *FullNode) Branches() []Node {
func (self *FullNode) Copy() Node {
nnode := NewFullNode(self.trie)
for i, node := range self.nodes {
- nnode.nodes[i] = node
+ if node != nil {
+ nnode.nodes[i] = node
+ }
}
return nnode
@@ -56,6 +60,10 @@ func (self *FullNode) RlpData() interface{} {
}
func (self *FullNode) set(k byte, value Node) {
+ if _, ok := value.(*ValueNode); ok && k != 16 {
+ fmt.Println(value, k)
+ }
+
self.nodes[int(k)] = value
}
diff --git a/ptrie/iterator.go b/ptrie/iterator.go
index 5714bdbc8a..787ba09c02 100644
--- a/ptrie/iterator.go
+++ b/ptrie/iterator.go
@@ -14,7 +14,7 @@ type Iterator struct {
}
func NewIterator(trie *Trie) *Iterator {
- return &Iterator{trie: trie, Key: []byte{0}}
+ return &Iterator{trie: trie, Key: make([]byte, 32)}
}
func (self *Iterator) Next() bool {
diff --git a/ptrie/node.go b/ptrie/node.go
index 2c85dbce72..ab90a1a021 100644
--- a/ptrie/node.go
+++ b/ptrie/node.go
@@ -17,7 +17,7 @@ type Node interface {
func (self *ValueNode) String() string { return self.fstring("") }
func (self *FullNode) String() string { return self.fstring("") }
func (self *ShortNode) String() string { return self.fstring("") }
-func (self *ValueNode) fstring(ind string) string { return fmt.Sprintf("%s ", self.data) }
+func (self *ValueNode) fstring(ind string) string { return fmt.Sprintf("%x ", self.data) }
func (self *HashNode) fstring(ind string) string { return fmt.Sprintf("%x ", self.key) }
// Full node
@@ -36,5 +36,5 @@ func (self *FullNode) fstring(ind string) string {
// Short node
func (self *ShortNode) fstring(ind string) string {
- return fmt.Sprintf("[ %s: %v ] ", self.key, self.value.fstring(ind+" "))
+ return fmt.Sprintf("[ %x: %v ] ", self.key, self.value.fstring(ind+" "))
}
diff --git a/ptrie/trie.go b/ptrie/trie.go
index 9fe9ea52a5..5c83b57d05 100644
--- a/ptrie/trie.go
+++ b/ptrie/trie.go
@@ -19,7 +19,7 @@ func ParanoiaCheck(t1 *Trie, backend Backend) (bool, *Trie) {
t2.Update(it.Key, it.Value)
}
- return bytes.Compare(t2.Hash(), t1.Hash()) == 0, t2
+ return bytes.Equal(t2.Hash(), t1.Hash()), t2
}
type Trie struct {
@@ -49,14 +49,17 @@ func (self *Trie) Iterator() *Iterator {
return NewIterator(self)
}
+func (self *Trie) Copy() *Trie {
+ return New(self.roothash, self.cache.backend)
+}
+
// Legacy support
func (self *Trie) Root() []byte { return self.Hash() }
func (self *Trie) Hash() []byte {
var hash []byte
if self.root != nil {
- //hash = self.root.Hash().([]byte)
t := self.root.Hash()
- if byts, ok := t.([]byte); ok {
+ if byts, ok := t.([]byte); ok && len(byts) > 0 {
hash = byts
} else {
hash = crypto.Sha3(ethutil.Encode(self.root.RlpData()))
@@ -73,6 +76,9 @@ func (self *Trie) Hash() []byte {
return hash
}
func (self *Trie) Commit() {
+ self.mu.Lock()
+ defer self.mu.Unlock()
+
// Hash first
self.Hash()
@@ -81,10 +87,15 @@ func (self *Trie) Commit() {
// Reset should only be called if the trie has been hashed
func (self *Trie) Reset() {
+ self.mu.Lock()
+ defer self.mu.Unlock()
+
self.cache.Reset()
- revision := self.revisions.Remove(self.revisions.Back()).([]byte)
- self.roothash = revision
+ if self.revisions.Len() > 0 {
+ revision := self.revisions.Remove(self.revisions.Back()).([]byte)
+ self.roothash = revision
+ }
value := ethutil.NewValueFromBytes(self.cache.Get(self.roothash))
self.root = self.mknode(value)
}
@@ -173,7 +184,7 @@ func (self *Trie) insert(node Node, key []byte, value Node) Node {
return cpy
default:
- panic("Invalid node")
+ panic(fmt.Sprintf("%T: invalid node: %v", node, node))
}
}
@@ -204,7 +215,7 @@ func (self *Trie) get(node Node, key []byte) Node {
}
func (self *Trie) delete(node Node, key []byte) Node {
- if len(key) == 0 {
+ if len(key) == 0 && node == nil {
return nil
}
@@ -223,7 +234,9 @@ func (self *Trie) delete(node Node, key []byte) Node {
nkey := append(k, child.Key()...)
n = NewShortNode(self, nkey, child.Value())
case *FullNode:
- n = NewShortNode(self, node.key, child)
+ sn := NewShortNode(self, node.Key(), child)
+ sn.key = node.key
+ n = sn
}
return n
@@ -264,9 +277,10 @@ func (self *Trie) delete(node Node, key []byte) Node {
}
return nnode
-
+ case nil:
+ return nil
default:
- panic("Invalid node")
+ panic(fmt.Sprintf("%T: invalid node: %v (%v)", node, node, key))
}
}
@@ -274,8 +288,13 @@ func (self *Trie) delete(node Node, key []byte) Node {
func (self *Trie) mknode(value *ethutil.Value) Node {
l := value.Len()
switch l {
+ case 0:
+ return nil
case 2:
- return NewShortNode(self, trie.CompactDecode(string(value.Get(0).Bytes())), self.mknode(value.Get(1)))
+ // A value node may consists of 2 bytes.
+ if value.Get(0).Len() != 0 {
+ return NewShortNode(self, trie.CompactDecode(string(value.Get(0).Bytes())), self.mknode(value.Get(1)))
+ }
case 17:
fnode := NewFullNode(self)
for i := 0; i < l; i++ {
@@ -284,9 +303,9 @@ func (self *Trie) mknode(value *ethutil.Value) Node {
return fnode
case 32:
return &HashNode{value.Bytes()}
- default:
- return &ValueNode{self, value.Bytes()}
}
+
+ return &ValueNode{self, value.Bytes()}
}
func (self *Trie) trans(node Node) Node {
@@ -310,3 +329,7 @@ func (self *Trie) store(node Node) interface{} {
return node.RlpData()
}
+
+func (self *Trie) PrintRoot() {
+ fmt.Println(self.root)
+}
diff --git a/ptrie/trie_test.go b/ptrie/trie_test.go
index 5b1c641401..63a8ed36e6 100644
--- a/ptrie/trie_test.go
+++ b/ptrie/trie_test.go
@@ -141,7 +141,7 @@ func TestReplication(t *testing.T) {
trie2 := New(trie.roothash, trie.cache.backend)
if string(trie2.GetString("horse")) != "stallion" {
- t.Error("expected to have harse => stallion")
+ t.Error("expected to have horse => stallion")
}
hash := trie2.Hash()
diff --git a/state/dump.go b/state/dump.go
index c1f5ecf3a0..40ecff50ce 100644
--- a/state/dump.go
+++ b/state/dump.go
@@ -22,22 +22,23 @@ type World struct {
func (self *StateDB) Dump() []byte {
world := World{
- Root: ethutil.Bytes2Hex(self.Trie.GetRoot()),
+ Root: ethutil.Bytes2Hex(self.trie.Root()),
Accounts: make(map[string]Account),
}
- self.Trie.NewIterator().Each(func(key string, value *ethutil.Value) {
- stateObject := NewStateObjectFromBytes([]byte(key), value.Bytes())
+ it := self.trie.Iterator()
+ for it.Next() {
+ stateObject := NewStateObjectFromBytes(it.Key, it.Value)
account := Account{Balance: stateObject.balance.String(), Nonce: stateObject.Nonce, Root: ethutil.Bytes2Hex(stateObject.Root()), CodeHash: ethutil.Bytes2Hex(stateObject.codeHash)}
account.Storage = make(map[string]string)
- stateObject.EachStorage(func(key string, value *ethutil.Value) {
- value.Decode()
- account.Storage[ethutil.Bytes2Hex([]byte(key))] = ethutil.Bytes2Hex(value.Bytes())
- })
- world.Accounts[ethutil.Bytes2Hex([]byte(key))] = account
- })
+ storageIt := stateObject.State.trie.Iterator()
+ for storageIt.Next() {
+ account.Storage[ethutil.Bytes2Hex(it.Key)] = ethutil.Bytes2Hex(it.Value)
+ }
+ world.Accounts[ethutil.Bytes2Hex(it.Key)] = account
+ }
json, err := json.MarshalIndent(world, "", " ")
if err != nil {
@@ -50,7 +51,8 @@ func (self *StateDB) Dump() []byte {
// Debug stuff
func (self *StateObject) CreateOutputForDiff() {
fmt.Printf("%x %x %x %x\n", self.Address(), self.State.Root(), self.balance.Bytes(), self.Nonce)
- self.EachStorage(func(addr string, value *ethutil.Value) {
- fmt.Printf("%x %x\n", addr, value.Bytes())
- })
+ it := self.State.trie.Iterator()
+ for it.Next() {
+ fmt.Printf("%x %x\n", it.Key, it.Value)
+ }
}
diff --git a/state/manifest.go b/state/manifest.go
index 21cd04a1a9..994019a086 100644
--- a/state/manifest.go
+++ b/state/manifest.go
@@ -30,6 +30,12 @@ func (self *Manifest) AddMessage(msg *Message) *Message {
return msg
}
+func (self *Manifest) SetHash(hash []byte) {
+ for _, message := range self.Messages {
+ message.Block = hash
+ }
+}
+
type Messages []*Message
type Message struct {
To, From []byte
diff --git a/state/state_object.go b/state/state_object.go
index b8af4e702a..420ad97570 100644
--- a/state/state_object.go
+++ b/state/state_object.go
@@ -6,7 +6,7 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/trie"
+ "github.com/ethereum/go-ethereum/ptrie"
)
type Code []byte
@@ -62,7 +62,7 @@ func NewStateObject(addr []byte) *StateObject {
address := ethutil.Address(addr)
object := &StateObject{address: address, balance: new(big.Int), gasPool: new(big.Int)}
- object.State = New(trie.New(ethutil.Config.Db, ""))
+ object.State = New(ptrie.New(nil, ethutil.Config.Db)) //New(trie.New(ethutil.Config.Db, ""))
object.storage = make(Storage)
object.gasPool = new(big.Int)
@@ -72,7 +72,7 @@ func NewStateObject(addr []byte) *StateObject {
func NewContract(address []byte, balance *big.Int, root []byte) *StateObject {
contract := NewStateObject(address)
contract.balance = balance
- contract.State = New(trie.New(ethutil.Config.Db, string(root)))
+ contract.State = New(ptrie.New(nil, ethutil.Config.Db)) //New(trie.New(ethutil.Config.Db, string(root)))
return contract
}
@@ -89,12 +89,12 @@ func (self *StateObject) MarkForDeletion() {
statelogger.DebugDetailf("%x: #%d %v (deletion)\n", self.Address(), self.Nonce, self.balance)
}
-func (c *StateObject) GetAddr(addr []byte) *ethutil.Value {
- return ethutil.NewValueFromBytes([]byte(c.State.Trie.Get(string(addr))))
+func (c *StateObject) getAddr(addr []byte) *ethutil.Value {
+ return ethutil.NewValueFromBytes([]byte(c.State.trie.Get(addr)))
}
-func (c *StateObject) SetAddr(addr []byte, value interface{}) {
- c.State.Trie.Update(string(addr), string(ethutil.NewValue(value).Encode()))
+func (c *StateObject) setAddr(addr []byte, value interface{}) {
+ c.State.trie.Update(addr, ethutil.Encode(value))
}
func (self *StateObject) GetStorage(key *big.Int) *ethutil.Value {
@@ -113,7 +113,7 @@ func (self *StateObject) GetState(k []byte) *ethutil.Value {
value := self.storage[string(key)]
if value == nil {
- value = self.GetAddr(key)
+ value = self.getAddr(key)
if !value.IsNil() {
self.storage[string(key)] = value
@@ -128,6 +128,7 @@ func (self *StateObject) SetState(k []byte, value *ethutil.Value) {
self.storage[string(key)] = value.Copy()
}
+/*
// Iterate over each storage address and yield callback
func (self *StateObject) EachStorage(cb trie.EachCallback) {
// First loop over the uncommit/cached values in storage
@@ -145,23 +146,26 @@ func (self *StateObject) EachStorage(cb trie.EachCallback) {
}
})
}
+*/
func (self *StateObject) Sync() {
for key, value := range self.storage {
if value.Len() == 0 {
- self.State.Trie.Delete(string(key))
+ self.State.trie.Delete([]byte(key))
continue
}
- self.SetAddr([]byte(key), value)
+ self.setAddr([]byte(key), value)
}
- valid, t2 := trie.ParanoiaCheck(self.State.Trie)
- if !valid {
- statelogger.Infof("Warn: PARANOIA: Different state storage root during copy %x vs %x\n", self.State.Root(), t2.GetRoot())
+ /*
+ valid, t2 := ptrie.ParanoiaCheck(self.State.trie, ethutil.Config.Db)
+ if !valid {
+ statelogger.Infof("Warn: PARANOIA: Different state storage root during copy %x vs %x\n", self.State.Root(), t2.Root())
- self.State.Trie = t2
- }
+ self.State.trie = t2
+ }
+ */
}
func (c *StateObject) GetInstr(pc *big.Int) *ethutil.Value {
@@ -276,8 +280,12 @@ func (c *StateObject) Init() Code {
return c.InitCode
}
+func (self *StateObject) Trie() *ptrie.Trie {
+ return self.State.trie
+}
+
func (self *StateObject) Root() []byte {
- return self.State.Trie.GetRoot()
+ return self.Trie().Root()
}
func (self *StateObject) SetCode(code []byte) {
@@ -302,7 +310,7 @@ func (c *StateObject) RlpDecode(data []byte) {
c.Nonce = decoder.Get(0).Uint()
c.balance = decoder.Get(1).BigInt()
- c.State = New(trie.New(ethutil.Config.Db, decoder.Get(2).Interface()))
+ c.State = New(ptrie.New(decoder.Get(2).Bytes(), ethutil.Config.Db)) //New(trie.New(ethutil.Config.Db, decoder.Get(2).Interface()))
c.storage = make(map[string]*ethutil.Value)
c.gasPool = new(big.Int)
diff --git a/state/state_test.go b/state/state_test.go
index 28e4fc5da1..1f76eff0fb 100644
--- a/state/state_test.go
+++ b/state/state_test.go
@@ -5,7 +5,7 @@ import (
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
- "github.com/ethereum/go-ethereum/trie"
+ "github.com/ethereum/go-ethereum/ptrie"
)
type StateSuite struct {
@@ -18,9 +18,8 @@ var _ = checker.Suite(&StateSuite{})
func (s *StateSuite) TestDump(c *checker.C) {
key := []byte{0x01}
- value := "foo"
- node := []interface{}{key, value}
- s.state.Trie.Put(node)
+ value := []byte("foo")
+ s.state.trie.Update(key, value)
dump := s.state.Dump()
c.Assert(dump, checker.NotNil)
}
@@ -29,7 +28,7 @@ func (s *StateSuite) SetUpTest(c *checker.C) {
db, _ := ethdb.NewMemDatabase()
ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
ethutil.Config.Db = db
- s.state = New(trie.New(db, ""))
+ s.state = New(ptrie.New(nil, db))
}
func (s *StateSuite) TestSnapshot(c *checker.C) {
diff --git a/state/state.go b/state/statedb.go
similarity index 88%
rename from state/state.go
rename to state/statedb.go
index a8d6116685..6a11fc328f 100644
--- a/state/state.go
+++ b/state/statedb.go
@@ -1,11 +1,12 @@
package state
import (
+ "bytes"
"math/big"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
- "github.com/ethereum/go-ethereum/trie"
+ "github.com/ethereum/go-ethereum/ptrie"
)
var statelogger = logger.NewLogger("STATE")
@@ -16,8 +17,8 @@ var statelogger = logger.NewLogger("STATE")
// * Contracts
// * Accounts
type StateDB struct {
- // The trie for this structure
- Trie *trie.Trie
+ //Trie *trie.Trie
+ trie *ptrie.Trie
stateObjects map[string]*StateObject
@@ -29,8 +30,8 @@ type StateDB struct {
}
// Create a new state from a given trie
-func New(trie *trie.Trie) *StateDB {
- return &StateDB{Trie: trie, stateObjects: make(map[string]*StateObject), manifest: NewManifest(), refund: make(map[string]*big.Int)}
+func New(trie *ptrie.Trie) *StateDB {
+ return &StateDB{trie: trie, stateObjects: make(map[string]*StateObject), manifest: NewManifest(), refund: make(map[string]*big.Int)}
}
func (self *StateDB) EmptyLogs() {
@@ -94,6 +95,13 @@ func (self *StateDB) GetCode(addr []byte) []byte {
return nil
}
+func (self *StateDB) SetCode(addr, code []byte) {
+ stateObject := self.GetStateObject(addr)
+ if stateObject != nil {
+ stateObject.SetCode(code)
+ }
+}
+
func (self *StateDB) GetState(a, b []byte) []byte {
stateObject := self.GetStateObject(a)
if stateObject != nil {
@@ -133,12 +141,12 @@ func (self *StateDB) UpdateStateObject(stateObject *StateObject) {
ethutil.Config.Db.Put(stateObject.CodeHash(), stateObject.Code)
}
- self.Trie.Update(string(addr), string(stateObject.RlpEncode()))
+ self.trie.Update(addr, stateObject.RlpEncode())
}
// Delete the given state object and delete it from the state trie
func (self *StateDB) DeleteStateObject(stateObject *StateObject) {
- self.Trie.Delete(string(stateObject.Address()))
+ self.trie.Delete(stateObject.Address())
delete(self.stateObjects, string(stateObject.Address()))
}
@@ -152,7 +160,7 @@ func (self *StateDB) GetStateObject(addr []byte) *StateObject {
return stateObject
}
- data := self.Trie.Get(string(addr))
+ data := self.trie.Get(addr)
if len(data) == 0 {
return nil
}
@@ -199,12 +207,12 @@ func (self *StateDB) GetAccount(addr []byte) *StateObject {
//
func (s *StateDB) Cmp(other *StateDB) bool {
- return s.Trie.Cmp(other.Trie)
+ return bytes.Equal(s.trie.Root(), other.trie.Root())
}
func (self *StateDB) Copy() *StateDB {
- if self.Trie != nil {
- state := New(self.Trie.Copy())
+ if self.trie != nil {
+ state := New(self.trie.Copy())
for k, stateObject := range self.stateObjects {
state.stateObjects[k] = stateObject.Copy()
}
@@ -228,19 +236,19 @@ func (self *StateDB) Set(state *StateDB) {
panic("Tried setting 'state' to nil through 'Set'")
}
- self.Trie = state.Trie
+ self.trie = state.trie
self.stateObjects = state.stateObjects
self.refund = state.refund
self.logs = state.logs
}
func (s *StateDB) Root() []byte {
- return s.Trie.GetRoot()
+ return s.trie.Root()
}
// Resets the trie and all siblings
func (s *StateDB) Reset() {
- s.Trie.Undo()
+ s.trie.Reset()
// Reset all nested states
for _, stateObject := range s.stateObjects {
@@ -265,7 +273,7 @@ func (s *StateDB) Sync() {
stateObject.State.Sync()
}
- s.Trie.Sync()
+ s.trie.Commit()
s.Empty()
}
@@ -297,11 +305,11 @@ func (self *StateDB) Update(gasUsed *big.Int) {
// FIXME trie delete is broken
if deleted {
- valid, t2 := trie.ParanoiaCheck(self.Trie)
+ valid, t2 := ptrie.ParanoiaCheck(self.trie, ethutil.Config.Db)
if !valid {
- statelogger.Infof("Warn: PARANOIA: Different state root during copy %x vs %x\n", self.Trie.GetRoot(), t2.GetRoot())
+ statelogger.Infof("Warn: PARANOIA: Different state root during copy %x vs %x\n", self.trie.Root(), t2.Root())
- self.Trie = t2
+ self.trie = t2
}
}
}
diff --git a/tests/files/StateTests/stInitCodeTest.json b/tests/files/StateTests/stInitCodeTest.json
index 67aa42853b..c44d710391 100644
--- a/tests/files/StateTests/stInitCodeTest.json
+++ b/tests/files/StateTests/stInitCodeTest.json
@@ -1,4 +1,356 @@
{
+ "CallContractToCreateContractAndCallItOOG" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "998",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546000f1",
+ "nonce" : "1",
+ "storage" : {
+ "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1301",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99998699",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "2",
+ "code" : "0x602060406000f0",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c"
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546000f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractNoCash" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6103e9f0600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "709",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99999291",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6103e9f0600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractOOG" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0000000000000000000000000000000000000000" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "0",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060006000546000f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "756",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99999244",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "0",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060006000546000f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractWhichWouldCreateContractIfCalled" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "998",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546101f4f1",
+ "nonce" : "1",
+ "storage" : {
+ "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1407",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "62c01474f089b07dae603491675dc5b5748f7049" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99998593",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "2",
+ "code" : "0x602060406000f0",
+ "nonce" : "1",
+ "storage" : {
+ "0x" : "0x0c"
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000",
+ "code" : "0x74600c60005566602060406000f060205260076039f36000526015600b6001f0600055600060006000600060016000546101f4f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
+ "CallContractToCreateContractWhichWouldCreateContractInInitCode" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "100000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1",
+ "code" : "0x6b600c600055602060406000f0600052600c60146000f0",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1016",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "62c01474f089b07dae603491675dc5b5748f7049" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "99998984",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ "0x" : "0x0c"
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1",
+ "code" : "0x6b600c600055602060406000f0600052600c60146000f0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x00",
+ "gasLimit" : "20000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "0"
+ }
+ },
"CallRecursiveContract" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -244,251 +596,6 @@
"value" : "1"
}
},
- "CallTheContractToCreateContractWithInitCode" : {
- "env" : {
- "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "currentDifficulty" : "45678256",
- "currentGasLimit" : "1000000",
- "currentNumber" : "0",
- "currentTimestamp" : 1,
- "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
- },
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "04110d816c380812a427968ece99b1c963dfbce6" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x04110d816c380812a427968ece99b1c963dfbce6"
- }
- },
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10001",
- "code" : "0x3060025560206000600039602060006000f0",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x095e7baea6a6c7c4c2dfeb977efac326af552d87"
- }
- },
- "0a517d755cebbf66312b30fff713666a9cb917e0" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x0a517d755cebbf66312b30fff713666a9cb917e0"
- }
- },
- "24dd378f51adc67a50e339e8031fe9bd4aafab36" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x24dd378f51adc67a50e339e8031fe9bd4aafab36"
- }
- },
- "293f982d000532a7861ab122bdc4bbfd26bf9030" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x293f982d000532a7861ab122bdc4bbfd26bf9030"
- }
- },
- "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "10000",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
- },
- "2cf5732f017b0cf1b1f13a1478e10239716bf6b5" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x2cf5732f017b0cf1b1f13a1478e10239716bf6b5"
- }
- },
- "31c640b92c21a1f1465c91070b4b3b4d6854195f" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
- },
- "37f998764813b136ddf5a754f34063fd03065e36" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x37f998764813b136ddf5a754f34063fd03065e36"
- }
- },
- "37fa399a749c121f8a15ce77e3d9f9bec8020d7a" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x37fa399a749c121f8a15ce77e3d9f9bec8020d7a"
- }
- },
- "4f36659fa632310b6ec438dea4085b522a2dd077" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x4f36659fa632310b6ec438dea4085b522a2dd077"
- }
- },
- "62c01474f089b07dae603491675dc5b5748f7049" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x62c01474f089b07dae603491675dc5b5748f7049"
- }
- },
- "729af7294be595a0efd7d891c9e51f89c07950c7" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x729af7294be595a0efd7d891c9e51f89c07950c7"
- }
- },
- "83e3e5a16d3b696a0314b30b2534804dd5e11197" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x83e3e5a16d3b696a0314b30b2534804dd5e11197"
- }
- },
- "8703df2417e0d7c59d063caa9583cb10a4d20532" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x8703df2417e0d7c59d063caa9583cb10a4d20532"
- }
- },
- "8dffcd74e5b5923512916c6a64b502689cfa65e1" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x8dffcd74e5b5923512916c6a64b502689cfa65e1"
- }
- },
- "95a4d7cccb5204733874fa87285a176fe1e9e240" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x95a4d7cccb5204733874fa87285a176fe1e9e240"
- }
- },
- "99b2fcba8120bedd048fe79f5262a6690ed38c39" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0x99b2fcba8120bedd048fe79f5262a6690ed38c39"
- }
- },
- "a4202b8b8afd5354e3e40a219bdc17f6001bf2cf" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xa4202b8b8afd5354e3e40a219bdc17f6001bf2cf"
- }
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "89999",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- }
- },
- "a9647f4a0a14042d91dc33c0328030a7157c93ae" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xa9647f4a0a14042d91dc33c0328030a7157c93ae"
- }
- },
- "aa6cffe5185732689c18f37a7f86170cb7304c2a" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xaa6cffe5185732689c18f37a7f86170cb7304c2a"
- }
- },
- "aae4a2e3c51c04606dcb3723456e58f3ed214f45" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xaae4a2e3c51c04606dcb3723456e58f3ed214f45"
- }
- },
- "c37a43e940dfb5baf581a0b82b351d48305fc885" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xc37a43e940dfb5baf581a0b82b351d48305fc885"
- }
- },
- "d2571607e241ecf590ed94b12d87c94babe36db6" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
- }
- },
- "f735071cbee190d76b704ce68384fc21e389fbe7" : {
- "balance" : "0",
- "code" : "0x",
- "nonce" : "1",
- "storage" : {
- "0x02" : "0xf735071cbee190d76b704ce68384fc21e389fbe7"
- }
- }
- },
- "pre" : {
- "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
- "balance" : "10000",
- "code" : "0x3060025560206000600039602060006000f0",
- "nonce" : "0",
- "storage" : {
- }
- },
- "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "100000",
- "code" : "0x",
- "nonce" : "0",
- "storage" : {
- }
- }
- },
- "transaction" : {
- "data" : "0x00",
- "gasLimit" : "10000",
- "gasPrice" : "1",
- "nonce" : "0",
- "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
- "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
- "value" : "1"
- }
- },
"CallTheContractToCreateEmptyContract" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -651,6 +758,60 @@
"value" : "1"
}
},
+ "StackUnderFlowContractCreation" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "1000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "6295ee1b4f6dd65047762f924ecd367c17eabf8f" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "9000",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "10000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "0x6000f1",
+ "gasLimit" : "1000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "",
+ "value" : "0"
+ }
+ },
"TransactionContractCreation" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
diff --git a/tests/files/StateTests/stSystemOperationsTest.json b/tests/files/StateTests/stSystemOperationsTest.json
index 612331ae36..dd5d35c205 100644
--- a/tests/files/StateTests/stSystemOperationsTest.json
+++ b/tests/files/StateTests/stSystemOperationsTest.json
@@ -552,14 +552,14 @@
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "261077",
+ "balance" : "261097",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999638923",
+ "balance" : "999999999999638903",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -584,7 +584,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "365223",
+ "gasLimit" : "365243",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -610,19 +610,19 @@
"code" : "0x600160005401600055600060006000600060003060e05a03f1600155",
"nonce" : "0",
"storage" : {
- "0x" : "0x03ff",
+ "0x" : "0x0400",
"0x01" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "261078",
+ "balance" : "260996",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999638922",
+ "balance" : "999999999999639004",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -647,7 +647,7 @@
},
"transaction" : {
"data" : "",
- "gasLimit" : "365224",
+ "gasLimit" : "365244",
"gasPrice" : "1",
"nonce" : "0",
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
@@ -4166,11 +4166,10 @@
"code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1165",
+ "balance" : "1636",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4181,11 +4180,10 @@
"code" : "0x60003554156009570060203560003555",
"nonce" : "0",
"storage" : {
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa"
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898835",
+ "balance" : "999999999999898364",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4243,11 +4241,10 @@
"code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000620f120660406000601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1165",
+ "balance" : "1136",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4258,11 +4255,10 @@
"code" : "0x60003554156009570060203560003555",
"nonce" : "0",
"storage" : {
- "0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" : "0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa"
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898835",
+ "balance" : "999999999999898864",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4320,11 +4316,10 @@
"code" : "0x7feeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa602052600060406000620f1206601773945304eb96065b2a98b57a48a06ae28d285a71b56101f4f1600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "965",
+ "balance" : "1136",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4338,7 +4333,7 @@
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999899035",
+ "balance" : "999999999999898864",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4848,18 +4843,17 @@
"code" : "0x60003554156009570060203560003555",
"nonce" : "0",
"storage" : {
- "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1149",
+ "balance" : "1000000",
"code" : "0x",
"nonce" : "0",
"storage" : {
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898851",
+ "balance" : "999999999998900000",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -4892,6 +4886,68 @@
"value" : "100000"
}
},
+ "callValue" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000100000",
+ "code" : "0x34600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0186a0"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "802",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899198",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
"callcodeToNameRegistrator0" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -4910,12 +4966,10 @@
"code" : "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000527faaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa6020526000604060406000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f2600055",
"nonce" : "0",
"storage" : {
- "0x" : "0x01",
- "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" : "0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa"
}
},
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
- "balance" : "1165",
+ "balance" : "1636",
"code" : "0x",
"nonce" : "0",
"storage" : {
@@ -4929,7 +4983,7 @@
}
},
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
- "balance" : "999999999999898835",
+ "balance" : "999999999999898364",
"code" : "0x",
"nonce" : "1",
"storage" : {
@@ -5046,6 +5100,68 @@
"value" : "100000"
}
},
+ "callerAccountBalance" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000100000",
+ "code" : "0x3331600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0de0b6b3a6c9e2e0"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "822",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899178",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3331600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
"callstatelessToReturn1" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -5367,6 +5483,68 @@
"value" : "100000"
}
},
+ "currentAccountBalance" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "10000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000100000",
+ "code" : "0x3031600055",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0de0b6b3a76586a0"
+ }
+ },
+ "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
+ "balance" : "822",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "999999999999899178",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3031600055",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "10000000",
+ "gasPrice" : "1",
+ "nonce" : "0",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
+ "value" : "100000"
+ }
+ },
"return0" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
diff --git a/tests/files/StateTests/stTransactionTest.json b/tests/files/StateTests/stTransactionTest.json
index 0de8507979..56f43a7333 100644
--- a/tests/files/StateTests/stTransactionTest.json
+++ b/tests/files/StateTests/stTransactionTest.json
@@ -1,4 +1,156 @@
{
+ "ContractStoreClearsOOG" : {
+ "env" : {
+ "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "6390",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "600",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "10",
+ "code" : "0x600060005560006001556000600255600060035560006004556000600555600060065560006007556000600855600c600955",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c",
+ "0x01" : "0x0c",
+ "0x02" : "0x0c",
+ "0x03" : "0x0c",
+ "0x04" : "0x0c",
+ "0x05" : "0x0c",
+ "0x06" : "0x0c",
+ "0x07" : "0x0c",
+ "0x08" : "0x0c",
+ "0x09" : "0x0c"
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "7000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "0",
+ "code" : "0x600060005560006001556000600255600060035560006004556000600555600060065560006007556000600855600c600955",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c",
+ "0x01" : "0x0c",
+ "0x02" : "0x0c",
+ "0x03" : "0x0c",
+ "0x04" : "0x0c",
+ "0x05" : "0x0c",
+ "0x06" : "0x0c",
+ "0x07" : "0x0c",
+ "0x08" : "0x0c",
+ "0x09" : "0x0c"
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "600",
+ "gasPrice" : "1",
+ "nonce" : "",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "d2571607e241ecf590ed94b12d87c94babe36db6",
+ "value" : "10"
+ }
+ },
+ "ContractStoreClearsSuccess" : {
+ "env" : {
+ "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "6730",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "260",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "10",
+ "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "7000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "0",
+ "code" : "0x6000600055600060015560006002556000600355600060045560006005556000600655600060075560006008556000600955",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0c",
+ "0x01" : "0x0c",
+ "0x02" : "0x0c",
+ "0x03" : "0x0c",
+ "0x04" : "0x0c",
+ "0x05" : "0x0c",
+ "0x06" : "0x0c",
+ "0x07" : "0x0c",
+ "0x08" : "0x0c",
+ "0x09" : "0x0c"
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "600",
+ "gasPrice" : "1",
+ "nonce" : "",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "d2571607e241ecf590ed94b12d87c94babe36db6",
+ "value" : "10"
+ }
+ },
"EmptyTransaction" : {
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
@@ -273,5 +425,59 @@
"to" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b",
"value" : "502"
}
+ },
+ "TransactionTooManyRlpElements" : {
+ "env" : {
+ "currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "currentDifficulty" : "45678256",
+ "currentGasLimit" : "10000",
+ "currentNumber" : "0",
+ "currentTimestamp" : 1,
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "93990",
+ "code" : "0x",
+ "nonce" : "1",
+ "storage" : {
+ }
+ },
+ "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "6000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "d2571607e241ecf590ed94b12d87c94babe36db6" : {
+ "balance" : "10",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
+ "balance" : "100000",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "transaction" : {
+ "data" : "",
+ "gasLimit" : "1600",
+ "gasPrice" : "12",
+ "nonce" : "",
+ "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
+ "to" : "d2571607e241ecf590ed94b12d87c94babe36db6",
+ "value" : "10"
+ }
}
}
\ No newline at end of file
diff --git a/tests/files/TrieTests/trietest.json b/tests/files/TrieTests/trietest.json
index ce5c2d191b..d871a8a813 100644
--- a/tests/files/TrieTests/trietest.json
+++ b/tests/files/TrieTests/trietest.json
@@ -12,6 +12,61 @@
],
"root": "0x5991bb8c6514148a29db676a14ac506cd2cd5775ace63c30a4fe457715e9ac84"
},
+ "branchingTests": {
+ "in":[
+ ["0x04110d816c380812a427968ece99b1c963dfbce6", "something"],
+ ["0x095e7baea6a6c7c4c2dfeb977efac326af552d87", "something"],
+ ["0x0a517d755cebbf66312b30fff713666a9cb917e0", "something"],
+ ["0x24dd378f51adc67a50e339e8031fe9bd4aafab36", "something"],
+ ["0x293f982d000532a7861ab122bdc4bbfd26bf9030", "something"],
+ ["0x2cf5732f017b0cf1b1f13a1478e10239716bf6b5", "something"],
+ ["0x31c640b92c21a1f1465c91070b4b3b4d6854195f", "something"],
+ ["0x37f998764813b136ddf5a754f34063fd03065e36", "something"],
+ ["0x37fa399a749c121f8a15ce77e3d9f9bec8020d7a", "something"],
+ ["0x4f36659fa632310b6ec438dea4085b522a2dd077", "something"],
+ ["0x62c01474f089b07dae603491675dc5b5748f7049", "something"],
+ ["0x729af7294be595a0efd7d891c9e51f89c07950c7", "something"],
+ ["0x83e3e5a16d3b696a0314b30b2534804dd5e11197", "something"],
+ ["0x8703df2417e0d7c59d063caa9583cb10a4d20532", "something"],
+ ["0x8dffcd74e5b5923512916c6a64b502689cfa65e1", "something"],
+ ["0x95a4d7cccb5204733874fa87285a176fe1e9e240", "something"],
+ ["0x99b2fcba8120bedd048fe79f5262a6690ed38c39", "something"],
+ ["0xa4202b8b8afd5354e3e40a219bdc17f6001bf2cf", "something"],
+ ["0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "something"],
+ ["0xa9647f4a0a14042d91dc33c0328030a7157c93ae", "something"],
+ ["0xaa6cffe5185732689c18f37a7f86170cb7304c2a", "something"],
+ ["0xaae4a2e3c51c04606dcb3723456e58f3ed214f45", "something"],
+ ["0xc37a43e940dfb5baf581a0b82b351d48305fc885", "something"],
+ ["0xd2571607e241ecf590ed94b12d87c94babe36db6", "something"],
+ ["0xf735071cbee190d76b704ce68384fc21e389fbe7", "something"],
+ ["0x04110d816c380812a427968ece99b1c963dfbce6", null],
+ ["0x095e7baea6a6c7c4c2dfeb977efac326af552d87", null],
+ ["0x0a517d755cebbf66312b30fff713666a9cb917e0", null],
+ ["0x24dd378f51adc67a50e339e8031fe9bd4aafab36", null],
+ ["0x293f982d000532a7861ab122bdc4bbfd26bf9030", null],
+ ["0x2cf5732f017b0cf1b1f13a1478e10239716bf6b5", null],
+ ["0x31c640b92c21a1f1465c91070b4b3b4d6854195f", null],
+ ["0x37f998764813b136ddf5a754f34063fd03065e36", null],
+ ["0x37fa399a749c121f8a15ce77e3d9f9bec8020d7a", null],
+ ["0x4f36659fa632310b6ec438dea4085b522a2dd077", null],
+ ["0x62c01474f089b07dae603491675dc5b5748f7049", null],
+ ["0x729af7294be595a0efd7d891c9e51f89c07950c7", null],
+ ["0x83e3e5a16d3b696a0314b30b2534804dd5e11197", null],
+ ["0x8703df2417e0d7c59d063caa9583cb10a4d20532", null],
+ ["0x8dffcd74e5b5923512916c6a64b502689cfa65e1", null],
+ ["0x95a4d7cccb5204733874fa87285a176fe1e9e240", null],
+ ["0x99b2fcba8120bedd048fe79f5262a6690ed38c39", null],
+ ["0xa4202b8b8afd5354e3e40a219bdc17f6001bf2cf", null],
+ ["0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", null],
+ ["0xa9647f4a0a14042d91dc33c0328030a7157c93ae", null],
+ ["0xaa6cffe5185732689c18f37a7f86170cb7304c2a", null],
+ ["0xaae4a2e3c51c04606dcb3723456e58f3ed214f45", null],
+ ["0xc37a43e940dfb5baf581a0b82b351d48305fc885", null],
+ ["0xd2571607e241ecf590ed94b12d87c94babe36db6", null],
+ ["0xf735071cbee190d76b704ce68384fc21e389fbe7", null]
+ ],
+ "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
+ },
"jeff": {
"in": [
["0x0000000000000000000000000000000000000000000000000000000000000045", "0x22b224a1420a802ab51d326e29fa98e34c4f24ea"],
diff --git a/tests/files/VMTests/RandomTests/201412231524.json b/tests/files/VMTests/RandomTests/201412231524.json
new file mode 100644
index 0000000000..87796042cf
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231524.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" : "0x63705a0b6b69a11044518876953776",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63705a0b6b69a11044518876953776",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63705a0b6b69a11044518876953776",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231526.json b/tests/files/VMTests/RandomTests/201412231526.json
new file mode 100644
index 0000000000..17758b8d89
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231526.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" : "0x5b6ca284a383618e389e20848652",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6ca284a383618e389e20848652",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6ca284a383618e389e20848652",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231529.json b/tests/files/VMTests/RandomTests/201412231529.json
new file mode 100644
index 0000000000..782e78a1c4
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231529.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" : "0x6a5a558f440b6d7530533a356b7589",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a5a558f440b6d7530533a356b7589",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a5a558f440b6d7530533a356b7589",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231535.json b/tests/files/VMTests/RandomTests/201412231535.json
new file mode 100644
index 0000000000..fc661805d9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231535.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" : "0x68931051429d9b75069160636bff",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x68931051429d9b75069160636bff",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x68931051429d9b75069160636bff",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231543.json b/tests/files/VMTests/RandomTests/201412231543.json
new file mode 100644
index 0000000000..2a6d004ae8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231543.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" : "0x5a385968087df24038513535",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a385968087df24038513535",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a385968087df24038513535",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231544.json b/tests/files/VMTests/RandomTests/201412231544.json
new file mode 100644
index 0000000000..4925a5abde
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231544.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" : "0x3463823507",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3463823507",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3463823507",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231545.json b/tests/files/VMTests/RandomTests/201412231545.json
new file mode 100644
index 0000000000..ad2b3a27e9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231545.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" : "0x66a3535b8b8af38a658b3b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66a3535b8b8af38a658b3b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66a3535b8b8af38a658b3b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231546.json b/tests/files/VMTests/RandomTests/201412231546.json
new file mode 100644
index 0000000000..58e7cd2d1e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231546.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" : "0x63794554ff426ef0a18a8a9c6e137a8c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63794554ff426ef0a18a8a9c6e137a8c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63794554ff426ef0a18a8a9c6e137a8c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231549.json b/tests/files/VMTests/RandomTests/201412231549.json
new file mode 100644
index 0000000000..51a58e1a39
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231549.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" : "0x66509a88803091046789893377",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66509a88803091046789893377",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66509a88803091046789893377",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231551.json b/tests/files/VMTests/RandomTests/201412231551.json
new file mode 100644
index 0000000000..fe7fad0628
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231551.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" : "0x426a507bf0a09c7b6a381314",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426a507bf0a09c7b6a381314",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426a507bf0a09c7b6a381314",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231552.json b/tests/files/VMTests/RandomTests/201412231552.json
new file mode 100644
index 0000000000..4d3acf6c21
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231552.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" : "0x306383a29e826a05865054039f36",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x306383a29e826a05865054039f36",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x306383a29e826a05865054039f36",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231553.json b/tests/files/VMTests/RandomTests/201412231553.json
new file mode 100644
index 0000000000..52d885a00c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231553.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" : "0x66691196a4a00209506d8290855570",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66691196a4a00209506d8290855570",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66691196a4a00209506d8290855570",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231556.json b/tests/files/VMTests/RandomTests/201412231556.json
new file mode 100644
index 0000000000..334f6644c1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231556.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" : "0x645b7753a4806e848481311373338b66",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x645b7753a4806e848481311373338b66",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x645b7753a4806e848481311373338b66",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231557.json b/tests/files/VMTests/RandomTests/201412231557.json
new file mode 100644
index 0000000000..7992fb0031
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231557.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" : "0x386609796d5a7b53",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x386609796d5a7b53",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x386609796d5a7b53",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231558.json b/tests/files/VMTests/RandomTests/201412231558.json
new file mode 100644
index 0000000000..ef3b6ae10a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231558.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" : "0x67767162694473797350685804",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x67767162694473797350685804",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x67767162694473797350685804",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231559.json b/tests/files/VMTests/RandomTests/201412231559.json
new file mode 100644
index 0000000000..fe298915b1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231559.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" : "0x33666b7c09ff376d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33666b7c09ff376d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33666b7c09ff376d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231601.json b/tests/files/VMTests/RandomTests/201412231601.json
new file mode 100644
index 0000000000..09aa5b75b1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231601.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" : "0x4368696e44388f615b36",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4368696e44388f615b36",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4368696e44388f615b36",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231602.json b/tests/files/VMTests/RandomTests/201412231602.json
new file mode 100644
index 0000000000..95e1ca48bb
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231602.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x323b42196b09660754097135335b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9995",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x323b42196b09660754097135335b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "cd1722f3947def4cf144679da39c4c32bdc35681" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x323b42196b09660754097135335b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231604.json b/tests/files/VMTests/RandomTests/201412231604.json
new file mode 100644
index 0000000000..6516f112b8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231604.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" : "0x6050693b0185f01830385835",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6050693b0185f01830385835",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6050693b0185f01830385835",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231606.json b/tests/files/VMTests/RandomTests/201412231606.json
new file mode 100644
index 0000000000..93d737617d
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231606.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" : "0x3a1563a385690668348e438532",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a1563a385690668348e438532",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a1563a385690668348e438532",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231610.json b/tests/files/VMTests/RandomTests/201412231610.json
new file mode 100644
index 0000000000..c0c1941ac0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231610.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" : "0x65329f329e31786a9905527af3",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65329f329e31786a9905527af3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65329f329e31786a9905527af3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231611.json b/tests/files/VMTests/RandomTests/201412231611.json
new file mode 100644
index 0000000000..be169fdd37
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231611.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" : "0x648b099057166169",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x648b099057166169",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x648b099057166169",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231612.json b/tests/files/VMTests/RandomTests/201412231612.json
new file mode 100644
index 0000000000..272360cedc
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231612.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" : "0x648b418282a168170b7b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x648b418282a168170b7b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x648b418282a168170b7b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231613.json b/tests/files/VMTests/RandomTests/201412231613.json
new file mode 100644
index 0000000000..5e573c9c3e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231613.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" : "0x6168616716912009f154",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6168616716912009f154",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6168616716912009f154",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231616.json b/tests/files/VMTests/RandomTests/201412231616.json
new file mode 100644
index 0000000000..4668a5fa2c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231616.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x44315a426414",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9976",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0000000000000000000000000000000000000100" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44315a426414",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44315a426414",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231617.json b/tests/files/VMTests/RandomTests/201412231617.json
new file mode 100644
index 0000000000..319d75badb
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231617.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" : "0x366e5279a28d1262769a6a535a9c9558",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x366e5279a28d1262769a6a535a9c9558",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x366e5279a28d1262769a6a535a9c9558",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231619.json b/tests/files/VMTests/RandomTests/201412231619.json
new file mode 100644
index 0000000000..47dd53b736
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231619.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" : "0x305b6a96a1928e7c9c56076d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x305b6a96a1928e7c9c56076d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x305b6a96a1928e7c9c56076d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231620.json b/tests/files/VMTests/RandomTests/201412231620.json
new file mode 100644
index 0000000000..a34fc6960a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231620.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" : "0x426c105531797997035a87408b18",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426c105531797997035a87408b18",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426c105531797997035a87408b18",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231622.json b/tests/files/VMTests/RandomTests/201412231622.json
new file mode 100644
index 0000000000..e7b4a3ddef
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231622.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" : "0x336d0284979d526c2032f187667f17",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x336d0284979d526c2032f187667f17",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x336d0284979d526c2032f187667f17",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231623.json b/tests/files/VMTests/RandomTests/201412231623.json
new file mode 100644
index 0000000000..5aea43ebe8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231623.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" : "0x436b748c52f188780b108c6b96",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x436b748c52f188780b108c6b96",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x436b748c52f188780b108c6b96",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231625.json b/tests/files/VMTests/RandomTests/201412231625.json
new file mode 100644
index 0000000000..d1be27e2d0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231625.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" : "0x69578e0b9af2098244338a6b9e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69578e0b9af2098244338a6b9e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69578e0b9af2098244338a6b9e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231626.json b/tests/files/VMTests/RandomTests/201412231626.json
new file mode 100644
index 0000000000..81c9941241
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231626.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" : "0x698d73727651077b193857669659986c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x698d73727651077b193857669659986c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x698d73727651077b193857669659986c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231627.json b/tests/files/VMTests/RandomTests/201412231627.json
new file mode 100644
index 0000000000..22db4ecd5a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231627.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" : "0x61a3746479129d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61a3746479129d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61a3746479129d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231629.json b/tests/files/VMTests/RandomTests/201412231629.json
new file mode 100644
index 0000000000..0766e10c89
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231629.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" : "0x638a058c78639b13",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x638a058c78639b13",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x638a058c78639b13",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231630.json b/tests/files/VMTests/RandomTests/201412231630.json
new file mode 100644
index 0000000000..67cf142294
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231630.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" : "0x41655674197220",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x41655674197220",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x41655674197220",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231631.json b/tests/files/VMTests/RandomTests/201412231631.json
new file mode 100644
index 0000000000..11062c07e3
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231631.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x6009316459a059",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9978",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0000000000000000000000000000000000000009" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6009316459a059",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6009316459a059",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231632.json b/tests/files/VMTests/RandomTests/201412231632.json
new file mode 100644
index 0000000000..93c1344b98
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231632.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" : "0x443318426c6f956f0b336e78383c4369",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9995",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x443318426c6f956f0b336e78383c4369",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x443318426c6f956f0b336e78383c4369",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231633.json b/tests/files/VMTests/RandomTests/201412231633.json
new file mode 100644
index 0000000000..f014bd1e2d
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231633.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" : "0x6473698a7f1340658e56",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6473698a7f1340658e56",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6473698a7f1340658e56",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231634.json b/tests/files/VMTests/RandomTests/201412231634.json
new file mode 100644
index 0000000000..c7727700c8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231634.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" : "0x65719aa3181753653597138b8e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65719aa3181753653597138b8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65719aa3181753653597138b8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231635.json b/tests/files/VMTests/RandomTests/201412231635.json
new file mode 100644
index 0000000000..c9c5212622
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231635.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" : "0x69798d6e9141115b131a6e6c1386",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69798d6e9141115b131a6e6c1386",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69798d6e9141115b131a6e6c1386",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231637.json b/tests/files/VMTests/RandomTests/201412231637.json
new file mode 100644
index 0000000000..bdd16f0ff6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231637.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" : "0x641378737e82670a328d789167",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x641378737e82670a328d789167",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x641378737e82670a328d789167",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231638.json b/tests/files/VMTests/RandomTests/201412231638.json
new file mode 100644
index 0000000000..80b936ea64
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231638.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" : "0x6045646b557c87",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6045646b557c87",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6045646b557c87",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231641.json b/tests/files/VMTests/RandomTests/201412231641.json
new file mode 100644
index 0000000000..29e23a5137
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231641.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" : "0x6272118c6d703a868015017b97162052",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6272118c6d703a868015017b97162052",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6272118c6d703a868015017b97162052",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231642.json b/tests/files/VMTests/RandomTests/201412231642.json
new file mode 100644
index 0000000000..a09f74c74b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231642.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" : "0x6b19134596f284a0353360996b6939",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b19134596f284a0353360996b6939",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b19134596f284a0353360996b6939",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231646.json b/tests/files/VMTests/RandomTests/201412231646.json
new file mode 100644
index 0000000000..071f396d5f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231646.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" : "0x65951208a181326c767c9977396385",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65951208a181326c767c9977396385",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65951208a181326c767c9977396385",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231647.json b/tests/files/VMTests/RandomTests/201412231647.json
new file mode 100644
index 0000000000..9abe830e29
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231647.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" : "0x6a9f6ca23b118650a19f3a5167a0a459",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a9f6ca23b118650a19f3a5167a0a459",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a9f6ca23b118650a19f3a5167a0a459",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231648.json b/tests/files/VMTests/RandomTests/201412231648.json
new file mode 100644
index 0000000000..0950d81113
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231648.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" : "0x403211545b6567326896",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9975",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x403211545b6567326896",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x403211545b6567326896",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231649.json b/tests/files/VMTests/RandomTests/201412231649.json
new file mode 100644
index 0000000000..a5fd738f49
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231649.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" : "0x36586333a18e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x36586333a18e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x36586333a18e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231650.json b/tests/files/VMTests/RandomTests/201412231650.json
new file mode 100644
index 0000000000..9195dda7c3
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231650.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" : "0x698640897c149c02068770698888",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x698640897c149c02068770698888",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x698640897c149c02068770698888",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231652.json b/tests/files/VMTests/RandomTests/201412231652.json
new file mode 100644
index 0000000000..1e0d270e08
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231652.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" : "0x66086c52a2970b6e658ff067",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66086c52a2970b6e658ff067",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66086c52a2970b6e658ff067",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231655.json b/tests/files/VMTests/RandomTests/201412231655.json
new file mode 100644
index 0000000000..7cb1a645d4
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231655.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" : "0x33596a089c13547908f3ff8473",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33596a089c13547908f3ff8473",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33596a089c13547908f3ff8473",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231656.json b/tests/files/VMTests/RandomTests/201412231656.json
new file mode 100644
index 0000000000..002adc177f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231656.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" : "0x658a3a577683633433698e0b92325815",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x658a3a577683633433698e0b92325815",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x658a3a577683633433698e0b92325815",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231657.json b/tests/files/VMTests/RandomTests/201412231657.json
new file mode 100644
index 0000000000..2c2d93ece6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231657.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" : "0x677af1721211348a9669433c930b8493",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x677af1721211348a9669433c930b8493",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x677af1721211348a9669433c930b8493",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231700.json b/tests/files/VMTests/RandomTests/201412231700.json
new file mode 100644
index 0000000000..d15f99283b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231700.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" : "0x633c7060a16b38441a3a428f6f5a5680",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x633c7060a16b38441a3a428f6f5a5680",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x633c7060a16b38441a3a428f6f5a5680",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231706.json b/tests/files/VMTests/RandomTests/201412231706.json
new file mode 100644
index 0000000000..19fd77e9f2
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231706.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" : "0x6333557d6567168f658a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6333557d6567168f658a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6333557d6567168f658a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231707.json b/tests/files/VMTests/RandomTests/201412231707.json
new file mode 100644
index 0000000000..0dbe95db29
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231707.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x440b6b0716",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x440b6b0716",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231708.json b/tests/files/VMTests/RandomTests/201412231708.json
new file mode 100644
index 0000000000..f2f44c9803
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231708.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" : "0x404342416670057b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9995",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x404342416670057b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x404342416670057b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231711.json b/tests/files/VMTests/RandomTests/201412231711.json
new file mode 100644
index 0000000000..086226a33b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231711.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" : "0x64836b3c80336d72433566867b570b76",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x64836b3c80336d72433566867b570b76",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x64836b3c80336d72433566867b570b76",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231712.json b/tests/files/VMTests/RandomTests/201412231712.json
new file mode 100644
index 0000000000..0e460d2555
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231712.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" : "0x334160506964656e099f950258",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x334160506964656e099f950258",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x334160506964656e099f950258",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231714.json b/tests/files/VMTests/RandomTests/201412231714.json
new file mode 100644
index 0000000000..540d8aaec1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231714.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" : "0x683a017b5334920742625a69588483",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x683a017b5334920742625a69588483",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x683a017b5334920742625a69588483",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231715.json b/tests/files/VMTests/RandomTests/201412231715.json
new file mode 100644
index 0000000000..96662a2121
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231715.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" : "0x628f190b6276399b5440647c3b7136",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9976",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x628f190b6276399b5440647c3b7136",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x628f190b6276399b5440647c3b7136",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231717.json b/tests/files/VMTests/RandomTests/201412231717.json
new file mode 100644
index 0000000000..46303f2e4c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231717.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" : "0x609b6c3a715134389e7d40301aff",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x609b6c3a715134389e7d40301aff",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x609b6c3a715134389e7d40301aff",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231723.json b/tests/files/VMTests/RandomTests/201412231723.json
new file mode 100644
index 0000000000..f00ef52395
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231723.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" : "0x6911699262109b5982168768456836",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6911699262109b5982168768456836",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6911699262109b5982168768456836",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412231727.json b/tests/files/VMTests/RandomTests/201412231727.json
new file mode 100644
index 0000000000..3a20f94fef
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412231727.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" : "0x66ff3c049d079833672059996fa1",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66ff3c049d079833672059996fa1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66ff3c049d079833672059996fa1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232225.json b/tests/files/VMTests/RandomTests/201412232225.json
new file mode 100644
index 0000000000..610e96357b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232225.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" : "0x6431703c0aa36a6d9da05791",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6431703c0aa36a6d9da05791",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6431703c0aa36a6d9da05791",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232226.json b/tests/files/VMTests/RandomTests/201412232226.json
new file mode 100644
index 0000000000..dd49687bdb
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232226.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x624314060b38",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x624314060b38",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232228.json b/tests/files/VMTests/RandomTests/201412232228.json
new file mode 100644
index 0000000000..f310618c57
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232228.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" : "0x6565877c6056136a7e670967",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6565877c6056136a7e670967",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6565877c6056136a7e670967",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232230.json b/tests/files/VMTests/RandomTests/201412232230.json
new file mode 100644
index 0000000000..c692af1a30
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232230.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" : "0x458010546b909b3b42049d2012",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9976",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x458010546b909b3b42049d2012",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x458010546b909b3b42049d2012",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232231.json b/tests/files/VMTests/RandomTests/201412232231.json
new file mode 100644
index 0000000000..a6f68ee386
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232231.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" : "0x621690786a6692556c510a8862107e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x621690786a6692556c510a8862107e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x621690786a6692556c510a8862107e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232232.json b/tests/files/VMTests/RandomTests/201412232232.json
new file mode 100644
index 0000000000..ced426ebf7
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232232.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" : "0x698d99f10970f07020ff825063619317",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x698d99f10970f07020ff825063619317",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x698d99f10970f07020ff825063619317",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232233.json b/tests/files/VMTests/RandomTests/201412232233.json
new file mode 100644
index 0000000000..6f2685b554
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232233.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" : "0x6341409a85368162177e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6341409a85368162177e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6341409a85368162177e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232234.json b/tests/files/VMTests/RandomTests/201412232234.json
new file mode 100644
index 0000000000..148480178e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232234.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" : "0x4463190344",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4463190344",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4463190344",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232235.json b/tests/files/VMTests/RandomTests/201412232235.json
new file mode 100644
index 0000000000..24e84b4f61
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232235.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x4031620143",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9978",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4031620143",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "c63e079ee08998b6045136a8ce6635c7912ec0b6" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4031620143",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232236.json b/tests/files/VMTests/RandomTests/201412232236.json
new file mode 100644
index 0000000000..bd8cf6a8d0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232236.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" : "0x33698b6f60084314598655",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33698b6f60084314598655",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33698b6f60084314598655",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232237.json b/tests/files/VMTests/RandomTests/201412232237.json
new file mode 100644
index 0000000000..7431224db6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232237.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" : "0x6615431505719a756a803a9b03",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6615431505719a756a803a9b03",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6615431505719a756a803a9b03",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232238.json b/tests/files/VMTests/RandomTests/201412232238.json
new file mode 100644
index 0000000000..fe57fadc47
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232238.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" : "0x638f9f9b6c623412",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x638f9f9b6c623412",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x638f9f9b6c623412",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232239.json b/tests/files/VMTests/RandomTests/201412232239.json
new file mode 100644
index 0000000000..6954e5552b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232239.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" : "0x3266049b39391235",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3266049b39391235",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3266049b39391235",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232240.json b/tests/files/VMTests/RandomTests/201412232240.json
new file mode 100644
index 0000000000..016007e5d6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232240.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" : "0x6354996306699a91179702",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6354996306699a91179702",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6354996306699a91179702",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232241.json b/tests/files/VMTests/RandomTests/201412232241.json
new file mode 100644
index 0000000000..e06f002561
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232241.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" : "0x6667703417606679651a6f8e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6667703417606679651a6f8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6667703417606679651a6f8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232242.json b/tests/files/VMTests/RandomTests/201412232242.json
new file mode 100644
index 0000000000..187beecc99
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232242.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" : "0x5a627678",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a627678",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a627678",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232243.json b/tests/files/VMTests/RandomTests/201412232243.json
new file mode 100644
index 0000000000..9c4debb695
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232243.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" : "0x32681550a4907a8e7305",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x32681550a4907a8e7305",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x32681550a4907a8e7305",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232244.json b/tests/files/VMTests/RandomTests/201412232244.json
new file mode 100644
index 0000000000..2221e2d098
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232244.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" : "0x32628c38",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x32628c38",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x32628c38",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232245.json b/tests/files/VMTests/RandomTests/201412232245.json
new file mode 100644
index 0000000000..744d0c09be
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232245.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" : "0x6b9371f376696fa17f15816789446e06",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b9371f376696fa17f15816789446e06",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b9371f376696fa17f15816789446e06",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232246.json b/tests/files/VMTests/RandomTests/201412232246.json
new file mode 100644
index 0000000000..10570bd098
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232246.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" : "0x627fa209666832659b6612",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x627fa209666832659b6612",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x627fa209666832659b6612",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232247.json b/tests/files/VMTests/RandomTests/201412232247.json
new file mode 100644
index 0000000000..5a4e4b8c8c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232247.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" : "0x65647255418f7f644408",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65647255418f7f644408",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65647255418f7f644408",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232248.json b/tests/files/VMTests/RandomTests/201412232248.json
new file mode 100644
index 0000000000..090cfd12b5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232248.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" : "0x6254938f669a177382456f",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6254938f669a177382456f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6254938f669a177382456f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232249.json b/tests/files/VMTests/RandomTests/201412232249.json
new file mode 100644
index 0000000000..dae482455c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232249.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" : "0x5868f00502361950688f",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5868f00502361950688f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5868f00502361950688f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232250.json b/tests/files/VMTests/RandomTests/201412232250.json
new file mode 100644
index 0000000000..78ad035781
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232250.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" : "0x606262556d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x606262556d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x606262556d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232252.json b/tests/files/VMTests/RandomTests/201412232252.json
new file mode 100644
index 0000000000..6ec63467a0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232252.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" : "0x626c6f0a63f08d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x626c6f0a63f08d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x626c6f0a63f08d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232253.json b/tests/files/VMTests/RandomTests/201412232253.json
new file mode 100644
index 0000000000..2af0327d5a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232253.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x6370199c7142383b4165196164",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9994",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "000000000000000000000000000000000000000d" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6370199c7142383b4165196164",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6370199c7142383b4165196164",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232254.json b/tests/files/VMTests/RandomTests/201412232254.json
new file mode 100644
index 0000000000..fd81675757
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232254.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" : "0x615833336c39a47d997244066a743740",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x615833336c39a47d997244066a743740",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x615833336c39a47d997244066a743740",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232255.json b/tests/files/VMTests/RandomTests/201412232255.json
new file mode 100644
index 0000000000..afdb01d7f4
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232255.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" : "0x426c343b76548989536320300175",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426c343b76548989536320300175",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426c343b76548989536320300175",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232256.json b/tests/files/VMTests/RandomTests/201412232256.json
new file mode 100644
index 0000000000..20ae3118b1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232256.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x3a609a316439f38370",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9977",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "000000000000000000000000000000000000009a" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a609a316439f38370",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a609a316439f38370",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232257.json b/tests/files/VMTests/RandomTests/201412232257.json
new file mode 100644
index 0000000000..c55291821f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232257.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" : "0x63818808146c71949e8430744411",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63818808146c71949e8430744411",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63818808146c71949e8430744411",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232258.json b/tests/files/VMTests/RandomTests/201412232258.json
new file mode 100644
index 0000000000..446b11a8fb
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232258.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" : "0x336441839b081364091a9d03",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x336441839b081364091a9d03",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x336441839b081364091a9d03",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232300.json b/tests/files/VMTests/RandomTests/201412232300.json
new file mode 100644
index 0000000000..777dfdee60
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232300.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" : "0x42336a98a03b816642831584",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x42336a98a03b816642831584",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x42336a98a03b816642831584",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232301.json b/tests/files/VMTests/RandomTests/201412232301.json
new file mode 100644
index 0000000000..1904566d8f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232301.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" : "0x6a67189e8545a236998870a36d5792",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a67189e8545a236998870a36d5792",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a67189e8545a236998870a36d5792",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232303.json b/tests/files/VMTests/RandomTests/201412232303.json
new file mode 100644
index 0000000000..950cbdb9e3
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232303.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" : "0x669937456d60798d6b019b17f09a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x669937456d60798d6b019b17f09a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x669937456d60798d6b019b17f09a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232304.json b/tests/files/VMTests/RandomTests/201412232304.json
new file mode 100644
index 0000000000..ca840ed47e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232304.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" : "0x61191965ff3b07f0",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61191965ff3b07f0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61191965ff3b07f0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232305.json b/tests/files/VMTests/RandomTests/201412232305.json
new file mode 100644
index 0000000000..a18a42c3e5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232305.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" : "0x38156d0978a30b33655113a245588992",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x38156d0978a30b33655113a245588992",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x38156d0978a30b33655113a245588992",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232306.json b/tests/files/VMTests/RandomTests/201412232306.json
new file mode 100644
index 0000000000..b565d84c0d
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232306.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" : "0x3a660739441536366e548167797b9e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9976",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a660739441536366e548167797b9e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a660739441536366e548167797b9e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232307.json b/tests/files/VMTests/RandomTests/201412232307.json
new file mode 100644
index 0000000000..12ceb63e40
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232307.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" : "0x3a596596315259",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a596596315259",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a596596315259",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232308.json b/tests/files/VMTests/RandomTests/201412232308.json
new file mode 100644
index 0000000000..7e6a515110
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232308.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" : "0x68747b45999d950a1369688e6f6e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x68747b45999d950a1369688e6f6e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x68747b45999d950a1369688e6f6e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232309.json b/tests/files/VMTests/RandomTests/201412232309.json
new file mode 100644
index 0000000000..5dbbe3376b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232309.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" : "0x5b6bf07aa4813b1389f0207e14",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6bf07aa4813b1389f0207e14",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6bf07aa4813b1389f0207e14",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232311.json b/tests/files/VMTests/RandomTests/201412232311.json
new file mode 100644
index 0000000000..4e2cca5dce
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232311.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" : "0x3659608b0452638303",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9993",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3659608b0452638303",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3659608b0452638303",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232312.json b/tests/files/VMTests/RandomTests/201412232312.json
new file mode 100644
index 0000000000..d70461cfd6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232312.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x5a0b73807b793b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a0b73807b793b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232313.json b/tests/files/VMTests/RandomTests/201412232313.json
new file mode 100644
index 0000000000..19ee3e8b95
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232313.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" : "0x610b89336c956951a03597619d8801",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x610b89336c956951a03597619d8801",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x610b89336c956951a03597619d8801",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232314.json b/tests/files/VMTests/RandomTests/201412232314.json
new file mode 100644
index 0000000000..ac7c63297f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232314.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" : "0x6244169d620b9e93690770",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6244169d620b9e93690770",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6244169d620b9e93690770",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232317.json b/tests/files/VMTests/RandomTests/201412232317.json
new file mode 100644
index 0000000000..b16ef5077f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232317.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" : "0x3854627693",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9978",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3854627693",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3854627693",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232318.json b/tests/files/VMTests/RandomTests/201412232318.json
new file mode 100644
index 0000000000..9c227c2a6d
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232318.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" : "0x596b6e19676c0237f0a47f7b39",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x596b6e19676c0237f0a47f7b39",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x596b6e19676c0237f0a47f7b39",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232319.json b/tests/files/VMTests/RandomTests/201412232319.json
new file mode 100644
index 0000000000..53837b6413
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232319.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" : "0x69853b20959c5af0838d3842663250",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69853b20959c5af0838d3842663250",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69853b20959c5af0838d3842663250",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232320.json b/tests/files/VMTests/RandomTests/201412232320.json
new file mode 100644
index 0000000000..87e41146f9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232320.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" : "0x69637511458a923a99425b68993b6169",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69637511458a923a99425b68993b6169",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69637511458a923a99425b68993b6169",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232321.json b/tests/files/VMTests/RandomTests/201412232321.json
new file mode 100644
index 0000000000..b415205d66
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232321.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x3a0b7176",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a0b7176",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232323.json b/tests/files/VMTests/RandomTests/201412232323.json
new file mode 100644
index 0000000000..e089db9369
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232323.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" : "0x653c8a5591898e6d3b4364806d023714",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x653c8a5591898e6d3b4364806d023714",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x653c8a5591898e6d3b4364806d023714",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232324.json b/tests/files/VMTests/RandomTests/201412232324.json
new file mode 100644
index 0000000000..29852711f5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232324.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" : "0x64f187a10b95667b5a6a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x64f187a10b95667b5a6a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x64f187a10b95667b5a6a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232327.json b/tests/files/VMTests/RandomTests/201412232327.json
new file mode 100644
index 0000000000..f6ea120fb5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232327.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" : "0x5b306a91608b949b07349c8951",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b306a91608b949b07349c8951",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b306a91608b949b07349c8951",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232328.json b/tests/files/VMTests/RandomTests/201412232328.json
new file mode 100644
index 0000000000..b5ed168d00
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232328.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" : "0x606c456e74418b673c39335159456af3",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x606c456e74418b673c39335159456af3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x606c456e74418b673c39335159456af3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232330.json b/tests/files/VMTests/RandomTests/201412232330.json
new file mode 100644
index 0000000000..c260f35ec1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232330.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" : "0x583830696d6d4398a35b86608e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x583830696d6d4398a35b86608e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x583830696d6d4398a35b86608e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232331.json b/tests/files/VMTests/RandomTests/201412232331.json
new file mode 100644
index 0000000000..ec4f5cf324
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232331.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" : "0x65635a9840643b6b6b30970536659786",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65635a9840643b6b6b30970536659786",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65635a9840643b6b6b30970536659786",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232335.json b/tests/files/VMTests/RandomTests/201412232335.json
new file mode 100644
index 0000000000..e9894c621f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232335.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" : "0x67f1821654409b73036481f36613",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x67f1821654409b73036481f36613",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x67f1821654409b73036481f36613",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232336.json b/tests/files/VMTests/RandomTests/201412232336.json
new file mode 100644
index 0000000000..6fd26bc5c7
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232336.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" : "0x6a675a67316d869b93758b916191",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a675a67316d869b93758b916191",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6a675a67316d869b93758b916191",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232338.json b/tests/files/VMTests/RandomTests/201412232338.json
new file mode 100644
index 0000000000..07a4c3489a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232338.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" : "0x636664690267a085518b8f7986",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x636664690267a085518b8f7986",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x636664690267a085518b8f7986",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232341.json b/tests/files/VMTests/RandomTests/201412232341.json
new file mode 100644
index 0000000000..4979c02852
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232341.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" : "0x406d1732976170a436736f206104f1",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x406d1732976170a436736f206104f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x406d1732976170a436736f206104f1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232342.json b/tests/files/VMTests/RandomTests/201412232342.json
new file mode 100644
index 0000000000..23122711dd
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232342.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" : "0x656b439a6e830b44106b43745411",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x656b439a6e830b44106b43745411",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x656b439a6e830b44106b43745411",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232343.json b/tests/files/VMTests/RandomTests/201412232343.json
new file mode 100644
index 0000000000..22f293187c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232343.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" : "0x3264633c34545265f0a267916d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3264633c34545265f0a267916d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3264633c34545265f0a267916d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232345.json b/tests/files/VMTests/RandomTests/201412232345.json
new file mode 100644
index 0000000000..0a7ca313f3
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232345.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" : "0x33505b6b3240458e869237774370",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33505b6b3240458e869237774370",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x33505b6b3240458e869237774370",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232348.json b/tests/files/VMTests/RandomTests/201412232348.json
new file mode 100644
index 0000000000..6a630a206e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232348.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x400b40ff",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x400b40ff",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232349.json b/tests/files/VMTests/RandomTests/201412232349.json
new file mode 100644
index 0000000000..5abc60d571
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232349.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" : "0x621a8e7a698d209a9457993831f2",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x621a8e7a698d209a9457993831f2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x621a8e7a698d209a9457993831f2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232351.json b/tests/files/VMTests/RandomTests/201412232351.json
new file mode 100644
index 0000000000..c42707c041
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232351.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" : "0x5b6c11303b937a750885a06d8bf1",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6c11303b937a750885a06d8bf1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6c11303b937a750885a06d8bf1",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232352.json b/tests/files/VMTests/RandomTests/201412232352.json
new file mode 100644
index 0000000000..c91bab832b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232352.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x410b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x410b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232353.json b/tests/files/VMTests/RandomTests/201412232353.json
new file mode 100644
index 0000000000..2ddd8bb0e5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232353.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" : "0x63338b4367805a6d7691519d403c506b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63338b4367805a6d7691519d403c506b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63338b4367805a6d7691519d403c506b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232354.json b/tests/files/VMTests/RandomTests/201412232354.json
new file mode 100644
index 0000000000..2e3332259d
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232354.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" : "0x66895a35159e1242695377",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66895a35159e1242695377",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66895a35159e1242695377",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232355.json b/tests/files/VMTests/RandomTests/201412232355.json
new file mode 100644
index 0000000000..b7951de1e3
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232355.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" : "0x62868d685967a159076a39",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x62868d685967a159076a39",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x62868d685967a159076a39",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232356.json b/tests/files/VMTests/RandomTests/201412232356.json
new file mode 100644
index 0000000000..23f796d25a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232356.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" : "0x306ef08b8f387255096581203a6e3b5a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x306ef08b8f387255096581203a6e3b5a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x306ef08b8f387255096581203a6e3b5a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232357.json b/tests/files/VMTests/RandomTests/201412232357.json
new file mode 100644
index 0000000000..51a5588855
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232357.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" : "0x4563154564",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4563154564",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4563154564",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232358.json b/tests/files/VMTests/RandomTests/201412232358.json
new file mode 100644
index 0000000000..346a08a81f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232358.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" : "0x607467780a35a43c9b1a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x607467780a35a43c9b1a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x607467780a35a43c9b1a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412232359.json b/tests/files/VMTests/RandomTests/201412232359.json
new file mode 100644
index 0000000000..3a51d6cd81
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412232359.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x63777703320b6d86f352",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63777703320b6d86f352",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240001.json b/tests/files/VMTests/RandomTests/201412240001.json
new file mode 100644
index 0000000000..4fc212c6c0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240001.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" : "0x4463446c3172666c318655",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4463446c3172666c318655",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4463446c3172666c318655",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240002.json b/tests/files/VMTests/RandomTests/201412240002.json
new file mode 100644
index 0000000000..7e65c1ee3e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240002.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" : "0x42657d6e3b593c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x42657d6e3b593c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x42657d6e3b593c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240004.json b/tests/files/VMTests/RandomTests/201412240004.json
new file mode 100644
index 0000000000..47b38fd28c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240004.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x6153030b7b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6153030b7b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240005.json b/tests/files/VMTests/RandomTests/201412240005.json
new file mode 100644
index 0000000000..e387cce6b2
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240005.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" : "0x5b6cf234675b5162730291176e01",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6cf234675b5162730291176e01",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b6cf234675b5162730291176e01",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240006.json b/tests/files/VMTests/RandomTests/201412240006.json
new file mode 100644
index 0000000000..aecb337baf
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240006.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" : "0x61864162457c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61864162457c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61864162457c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240007.json b/tests/files/VMTests/RandomTests/201412240007.json
new file mode 100644
index 0000000000..85f6ace5eb
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240007.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" : "0x6692a19ea30aa17e6a7b6351418c8e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6692a19ea30aa17e6a7b6351418c8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6692a19ea30aa17e6a7b6351418c8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240010.json b/tests/files/VMTests/RandomTests/201412240010.json
new file mode 100644
index 0000000000..add2acbeef
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240010.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" : "0x583066060b85637c8e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x583066060b85637c8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x583066060b85637c8e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240011.json b/tests/files/VMTests/RandomTests/201412240011.json
new file mode 100644
index 0000000000..1b4d8c88b2
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240011.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" : "0x3836643095353652676d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3836643095353652676d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3836643095353652676d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240012.json b/tests/files/VMTests/RandomTests/201412240012.json
new file mode 100644
index 0000000000..0469b08eaa
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240012.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" : "0x6780a4019a829659446653510185f2",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6780a4019a829659446653510185f2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6780a4019a829659446653510185f2",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240013.json b/tests/files/VMTests/RandomTests/201412240013.json
new file mode 100644
index 0000000000..249196e8d0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240013.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" : "0x657da3560988606b777a77128f12",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x657da3560988606b777a77128f12",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x657da3560988606b777a77128f12",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240014.json b/tests/files/VMTests/RandomTests/201412240014.json
new file mode 100644
index 0000000000..c95992dcfb
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240014.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" : "0x637a809755695692921272116d9d8b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x637a809755695692921272116d9d8b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x637a809755695692921272116d9d8b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240015.json b/tests/files/VMTests/RandomTests/201412240015.json
new file mode 100644
index 0000000000..0443ae12f5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240015.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" : "0x596a6fa050678e6491885a95",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x596a6fa050678e6491885a95",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x596a6fa050678e6491885a95",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240016.json b/tests/files/VMTests/RandomTests/201412240016.json
new file mode 100644
index 0000000000..63534bf530
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240016.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" : "0x40406c30114210346a1a9b30721292",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x40406c30114210346a1a9b30721292",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x40406c30114210346a1a9b30721292",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240017.json b/tests/files/VMTests/RandomTests/201412240017.json
new file mode 100644
index 0000000000..bc97885436
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240017.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" : "0x648610a31a9d6330",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x648610a31a9d6330",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x648610a31a9d6330",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240019.json b/tests/files/VMTests/RandomTests/201412240019.json
new file mode 100644
index 0000000000..b9e91d6b59
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240019.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" : "0x636f93019840326887a4108f52",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x636f93019840326887a4108f52",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x636f93019840326887a4108f52",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240020.json b/tests/files/VMTests/RandomTests/201412240020.json
new file mode 100644
index 0000000000..469541b726
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240020.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" : "0x608268357e7d3308836d40",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x608268357e7d3308836d40",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x608268357e7d3308836d40",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240021.json b/tests/files/VMTests/RandomTests/201412240021.json
new file mode 100644
index 0000000000..f336bd0c6e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240021.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" : "0x44506276",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44506276",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44506276",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240022.json b/tests/files/VMTests/RandomTests/201412240022.json
new file mode 100644
index 0000000000..34040d50b4
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240022.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" : "0x386a78800a30078e3132a207",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x386a78800a30078e3132a207",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x386a78800a30078e3132a207",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240023.json b/tests/files/VMTests/RandomTests/201412240023.json
new file mode 100644
index 0000000000..59ebb5276a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240023.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" : "0x66587a629c69345a5465f1984532",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9978",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66587a629c69345a5465f1984532",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66587a629c69345a5465f1984532",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240024.json b/tests/files/VMTests/RandomTests/201412240024.json
new file mode 100644
index 0000000000..8a38487146
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240024.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" : "0x59649368198f",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x59649368198f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x59649368198f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240025.json b/tests/files/VMTests/RandomTests/201412240025.json
new file mode 100644
index 0000000000..224784e079
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240025.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" : "0x5a64428f1789666655f0",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a64428f1789666655f0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5a64428f1789666655f0",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240026.json b/tests/files/VMTests/RandomTests/201412240026.json
new file mode 100644
index 0000000000..e3591cc051
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240026.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" : "0x676a16558b78588c886471",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x676a16558b78588c886471",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x676a16558b78588c886471",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240028.json b/tests/files/VMTests/RandomTests/201412240028.json
new file mode 100644
index 0000000000..1289b31894
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240028.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" : "0x689c098116ff14a4f1136c74379b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x689c098116ff14a4f1136c74379b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x689c098116ff14a4f1136c74379b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240030.json b/tests/files/VMTests/RandomTests/201412240030.json
new file mode 100644
index 0000000000..ea21a15a13
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240030.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x607e0b336d18533463",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x607e0b336d18533463",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240031.json b/tests/files/VMTests/RandomTests/201412240031.json
new file mode 100644
index 0000000000..a59e7139a8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240031.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" : "0x6558838b0404595a1634676d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9995",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6558838b0404595a1634676d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6558838b0404595a1634676d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240032.json b/tests/files/VMTests/RandomTests/201412240032.json
new file mode 100644
index 0000000000..4f2ed42537
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240032.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x330b6b73",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x330b6b73",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240034.json b/tests/files/VMTests/RandomTests/201412240034.json
new file mode 100644
index 0000000000..0dc11d5622
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240034.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" : "0x4535416b597c9e0415a4320a9f44",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4535416b597c9e0415a4320a9f44",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4535416b597c9e0415a4320a9f44",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240035.json b/tests/files/VMTests/RandomTests/201412240035.json
new file mode 100644
index 0000000000..b1cdfaf49c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240035.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x6698173681448d7b5b0b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6698173681448d7b5b0b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240037.json b/tests/files/VMTests/RandomTests/201412240037.json
new file mode 100644
index 0000000000..12a0c50176
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240037.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" : "0x659859849f9859681945",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659859849f9859681945",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659859849f9859681945",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240039.json b/tests/files/VMTests/RandomTests/201412240039.json
new file mode 100644
index 0000000000..949caeafd8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240039.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" : "0x63316053033569836a065a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63316053033569836a065a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63316053033569836a065a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240040.json b/tests/files/VMTests/RandomTests/201412240040.json
new file mode 100644
index 0000000000..098b397f98
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240040.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" : "0x66459e3511a39d1466868b1a7e5b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66459e3511a39d1466868b1a7e5b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66459e3511a39d1466868b1a7e5b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240041.json b/tests/files/VMTests/RandomTests/201412240041.json
new file mode 100644
index 0000000000..b4214c4ff1
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240041.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" : "0x638536ff74683a076f7d648e5261",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x638536ff74683a076f7d648e5261",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x638536ff74683a076f7d648e5261",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240042.json b/tests/files/VMTests/RandomTests/201412240042.json
new file mode 100644
index 0000000000..7a7711682f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240042.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" : "0x626f8a571965155943",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x626f8a571965155943",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x626f8a571965155943",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240044.json b/tests/files/VMTests/RandomTests/201412240044.json
new file mode 100644
index 0000000000..fbb10dd942
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240044.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" : "0x4569761168a085ff08527b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4569761168a085ff08527b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4569761168a085ff08527b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240045.json b/tests/files/VMTests/RandomTests/201412240045.json
new file mode 100644
index 0000000000..2c19c86675
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240045.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x440b7d521009763c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x440b7d521009763c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240047.json b/tests/files/VMTests/RandomTests/201412240047.json
new file mode 100644
index 0000000000..93210a7126
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240047.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" : "0x66350780181278f3675a5564a4a03b8d",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66350780181278f3675a5564a4a03b8d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66350780181278f3675a5564a4a03b8d",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240051.json b/tests/files/VMTests/RandomTests/201412240051.json
new file mode 100644
index 0000000000..df5777d587
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240051.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" : "0x34687b343b1679186e09",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34687b343b1679186e09",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34687b343b1679186e09",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240052.json b/tests/files/VMTests/RandomTests/201412240052.json
new file mode 100644
index 0000000000..1b2dac5d6e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240052.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" : "0x646e303b8f516b62715952a08143",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x646e303b8f516b62715952a08143",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x646e303b8f516b62715952a08143",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240053.json b/tests/files/VMTests/RandomTests/201412240053.json
new file mode 100644
index 0000000000..3bf5674f3b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240053.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" : "0x43665a1935346e75",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x43665a1935346e75",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x43665a1935346e75",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240054.json b/tests/files/VMTests/RandomTests/201412240054.json
new file mode 100644
index 0000000000..d3d79807b8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240054.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" : "0x62417cf166f27f169737789a6c9c0b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x62417cf166f27f169737789a6c9c0b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x62417cf166f27f169737789a6c9c0b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240055.json b/tests/files/VMTests/RandomTests/201412240055.json
new file mode 100644
index 0000000000..23101221b9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240055.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" : "0x659f32357bf28c306b459d9395068a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659f32357bf28c306b459d9395068a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659f32357bf28c306b459d9395068a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240056.json b/tests/files/VMTests/RandomTests/201412240056.json
new file mode 100644
index 0000000000..16703dd22e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240056.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" : "0x3067309a427d917340",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3067309a427d917340",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3067309a427d917340",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240058.json b/tests/files/VMTests/RandomTests/201412240058.json
new file mode 100644
index 0000000000..e503a12010
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240058.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" : "0x446a509893399956357f397c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x446a509893399956357f397c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x446a509893399956357f397c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240059.json b/tests/files/VMTests/RandomTests/201412240059.json
new file mode 100644
index 0000000000..dc87049050
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240059.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x651994649651940b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x651994649651940b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240100.json b/tests/files/VMTests/RandomTests/201412240100.json
new file mode 100644
index 0000000000..cf7080e616
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240100.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" : "0x6875f1151657436c6b9c690162",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6875f1151657436c6b9c690162",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6875f1151657436c6b9c690162",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240101.json b/tests/files/VMTests/RandomTests/201412240101.json
new file mode 100644
index 0000000000..121d7d20c6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240101.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" : "0x689863403864640984ff6612046552",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x689863403864640984ff6612046552",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x689863403864640984ff6612046552",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240103.json b/tests/files/VMTests/RandomTests/201412240103.json
new file mode 100644
index 0000000000..48ed88b8d0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240103.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" : "0x646b6272f1386837a175019344",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x646b6272f1386837a175019344",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x646b6272f1386837a175019344",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240104.json b/tests/files/VMTests/RandomTests/201412240104.json
new file mode 100644
index 0000000000..51ae819e0f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240104.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" : "0x5b64808c6c94",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b64808c6c94",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x5b64808c6c94",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240105.json b/tests/files/VMTests/RandomTests/201412240105.json
new file mode 100644
index 0000000000..1efb2ca7bf
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240105.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" : "0x30368013638a7e613350675b0b6552",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9993",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x30368013638a7e613350675b0b6552",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x30368013638a7e613350675b0b6552",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240106.json b/tests/files/VMTests/RandomTests/201412240106.json
new file mode 100644
index 0000000000..a4625e3a3c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240106.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" : "0x6aa0148488059a767a88828d6752",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6aa0148488059a767a88828d6752",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6aa0148488059a767a88828d6752",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240107.json b/tests/files/VMTests/RandomTests/201412240107.json
new file mode 100644
index 0000000000..cd84f56b05
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240107.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" : "0x6b50533490793104f2923c68126858",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b50533490793104f2923c68126858",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b50533490793104f2923c68126858",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240110.json b/tests/files/VMTests/RandomTests/201412240110.json
new file mode 100644
index 0000000000..d817941a39
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240110.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" : "0x44697507709b52f0835389",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44697507709b52f0835389",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44697507709b52f0835389",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240111.json b/tests/files/VMTests/RandomTests/201412240111.json
new file mode 100644
index 0000000000..0e5d2061ec
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240111.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" : "0x306e5af3368764706e1985938b928711",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x306e5af3368764706e1985938b928711",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x306e5af3368764706e1985938b928711",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240112.json b/tests/files/VMTests/RandomTests/201412240112.json
new file mode 100644
index 0000000000..bc76f4449c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240112.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" : "0x6991a114026998746040f26c40536c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6991a114026998746040f26c40536c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6991a114026998746040f26c40536c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240113.json b/tests/files/VMTests/RandomTests/201412240113.json
new file mode 100644
index 0000000000..224e2279a9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240113.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" : "0x34684076f38370533393",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34684076f38370533393",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34684076f38370533393",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240115.json b/tests/files/VMTests/RandomTests/201412240115.json
new file mode 100644
index 0000000000..c23b358080
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240115.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" : "0x34336a630542a1f34074139f90",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34336a630542a1f34074139f90",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34336a630542a1f34074139f90",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240116.json b/tests/files/VMTests/RandomTests/201412240116.json
new file mode 100644
index 0000000000..d6e9dcad98
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240116.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" : "0x416b77018c6a3b6085418f6a3a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x416b77018c6a3b6085418f6a3a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x416b77018c6a3b6085418f6a3a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240117.json b/tests/files/VMTests/RandomTests/201412240117.json
new file mode 100644
index 0000000000..c91bab832b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240117.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x410b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x410b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240119.json b/tests/files/VMTests/RandomTests/201412240119.json
new file mode 100644
index 0000000000..5628640206
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240119.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" : "0x633207887d65508510",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x633207887d65508510",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x633207887d65508510",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240120.json b/tests/files/VMTests/RandomTests/201412240120.json
new file mode 100644
index 0000000000..d9bd81435e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240120.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" : "0x59156d8e8866166a03526fa040670296",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x59156d8e8866166a03526fa040670296",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x59156d8e8866166a03526fa040670296",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240121.json b/tests/files/VMTests/RandomTests/201412240121.json
new file mode 100644
index 0000000000..95faf8f007
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240121.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" : "0x58455a13326590",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9994",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x58455a13326590",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x58455a13326590",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240122.json b/tests/files/VMTests/RandomTests/201412240122.json
new file mode 100644
index 0000000000..6ccd3a9ae3
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240122.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" : "0x659a573a376ef262059e590a4364a471",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9989",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659a573a376ef262059e590a4364a471",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659a573a376ef262059e590a4364a471",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240123.json b/tests/files/VMTests/RandomTests/201412240123.json
new file mode 100644
index 0000000000..9ddf2dffaa
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240123.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" : "0x659e394455318d66389b386c",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659e394455318d66389b386c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x659e394455318d66389b386c",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240124.json b/tests/files/VMTests/RandomTests/201412240124.json
new file mode 100644
index 0000000000..a29e0c49e9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240124.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x440b7967049a94453c8d8077a16769",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x440b7967049a94453c8d8077a16769",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240125.json b/tests/files/VMTests/RandomTests/201412240125.json
new file mode 100644
index 0000000000..1b71caa619
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240125.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" : "0x627642376c8d87185a5406328950840a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x627642376c8d87185a5406328950840a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x627642376c8d87185a5406328950840a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240126.json b/tests/files/VMTests/RandomTests/201412240126.json
new file mode 100644
index 0000000000..fe4e1f7512
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240126.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" : "0x386d5bf08365179b18898f58559776",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x386d5bf08365179b18898f58559776",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x386d5bf08365179b18898f58559776",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240127.json b/tests/files/VMTests/RandomTests/201412240127.json
new file mode 100644
index 0000000000..61f14cda70
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240127.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" : "0x34677d137f571a8450",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34677d137f571a8450",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x34677d137f571a8450",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240128.json b/tests/files/VMTests/RandomTests/201412240128.json
new file mode 100644
index 0000000000..2807e44209
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240128.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" : "0x44625056",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44625056",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x44625056",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240129.json b/tests/files/VMTests/RandomTests/201412240129.json
new file mode 100644
index 0000000000..eb993999e6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240129.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" : "0x69388e2091a41aa4417055697442",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69388e2091a41aa4417055697442",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x69388e2091a41aa4417055697442",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240130.json b/tests/files/VMTests/RandomTests/201412240130.json
new file mode 100644
index 0000000000..df14911a98
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240130.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" : "0x6991949e36033412978f906513890653",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6991949e36033412978f906513890653",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6991949e36033412978f906513890653",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240131.json b/tests/files/VMTests/RandomTests/201412240131.json
new file mode 100644
index 0000000000..1d393795b9
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240131.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60550b7a689d617c666b113573140a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60550b7a689d617c666b113573140a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240132.json b/tests/files/VMTests/RandomTests/201412240132.json
new file mode 100644
index 0000000000..996cceb38c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240132.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" : "0x4030687074850654657477",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4030687074850654657477",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4030687074850654657477",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240133.json b/tests/files/VMTests/RandomTests/201412240133.json
new file mode 100644
index 0000000000..2ed09c3087
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240133.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" : "0x664011374176203b65036770",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x664011374176203b65036770",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x664011374176203b65036770",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240134.json b/tests/files/VMTests/RandomTests/201412240134.json
new file mode 100644
index 0000000000..1b95fc3566
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240134.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" : "0x63336f042068628d417f7966",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63336f042068628d417f7966",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63336f042068628d417f7966",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240136.json b/tests/files/VMTests/RandomTests/201412240136.json
new file mode 100644
index 0000000000..1711a25184
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240136.json
@@ -0,0 +1,31 @@
+{
+ "randomVMtest" : {
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x6698059a329a72900b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6698059a329a72900b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240137.json b/tests/files/VMTests/RandomTests/201412240137.json
new file mode 100644
index 0000000000..b712123638
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240137.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" : "0x32430268f380158b93517e",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x32430268f380158b93517e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x32430268f380158b93517e",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240138.json b/tests/files/VMTests/RandomTests/201412240138.json
new file mode 100644
index 0000000000..13ee5245a0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240138.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" : "0x586738973b57f26b95",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x586738973b57f26b95",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x586738973b57f26b95",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240139.json b/tests/files/VMTests/RandomTests/201412240139.json
new file mode 100644
index 0000000000..ef5719cc28
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240139.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" : "0x6018646d166ca3",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6018646d166ca3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6018646d166ca3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240140.json b/tests/files/VMTests/RandomTests/201412240140.json
new file mode 100644
index 0000000000..50af4ddb5a
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240140.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" : "0x4542687b369e528b4479",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4542687b369e528b4479",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x4542687b369e528b4479",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240141.json b/tests/files/VMTests/RandomTests/201412240141.json
new file mode 100644
index 0000000000..d30c379a94
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240141.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" : "0x3a663bf314860414",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a663bf314860414",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x3a663bf314860414",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240142.json b/tests/files/VMTests/RandomTests/201412240142.json
new file mode 100644
index 0000000000..f0d652a41e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240142.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" : "0x426d16f1420890106a6164558c7551",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426d16f1420890106a6164558c7551",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426d16f1420890106a6164558c7551",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240148.json b/tests/files/VMTests/RandomTests/201412240148.json
new file mode 100644
index 0000000000..04ab40ea8f
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240148.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" : "0x666e3994068640536445710b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x666e3994068640536445710b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x666e3994068640536445710b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240149.json b/tests/files/VMTests/RandomTests/201412240149.json
new file mode 100644
index 0000000000..6b6006f78e
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240149.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" : "0x446c7e94116bf2168107398b1639",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x446c7e94116bf2168107398b1639",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x446c7e94116bf2168107398b1639",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240150.json b/tests/files/VMTests/RandomTests/201412240150.json
new file mode 100644
index 0000000000..d098717123
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240150.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" : "0x66516185a4ff78406d90057a819345",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66516185a4ff78406d90057a819345",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x66516185a4ff78406d90057a819345",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240151.json b/tests/files/VMTests/RandomTests/201412240151.json
new file mode 100644
index 0000000000..610739e5c0
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240151.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" : "0x6b6d8f998e8d739789868365766e408b",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b6d8f998e8d739789868365766e408b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6b6d8f998e8d739789868365766e408b",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240152.json b/tests/files/VMTests/RandomTests/201412240152.json
new file mode 100644
index 0000000000..bb2942d65b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240152.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" : "0x63076f9d3866a17f41958939",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63076f9d3866a17f41958939",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x63076f9d3866a17f41958939",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240153.json b/tests/files/VMTests/RandomTests/201412240153.json
new file mode 100644
index 0000000000..b773adc8ed
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240153.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" : "0x40617b3c1668929167f3",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9996",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x40617b3c1668929167f3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x40617b3c1668929167f3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240154.json b/tests/files/VMTests/RandomTests/201412240154.json
new file mode 100644
index 0000000000..f22abf009c
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240154.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" : "0x65a4f29b9d028b66959158",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65a4f29b9d028b66959158",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65a4f29b9d028b66959158",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240155.json b/tests/files/VMTests/RandomTests/201412240155.json
new file mode 100644
index 0000000000..c616e6e132
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240155.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" : "0x426b8d795802900176423a7a63",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426b8d795802900176423a7a63",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x426b8d795802900176423a7a63",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240156.json b/tests/files/VMTests/RandomTests/201412240156.json
new file mode 100644
index 0000000000..e5d7d42bc5
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240156.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" : "0x595a65173745917f",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x595a65173745917f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x595a65173745917f",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240157.json b/tests/files/VMTests/RandomTests/201412240157.json
new file mode 100644
index 0000000000..9760e6fae8
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240157.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" : "0x699e52966c9a9175f17d1067813859",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x699e52966c9a9175f17d1067813859",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x699e52966c9a9175f17d1067813859",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240158.json b/tests/files/VMTests/RandomTests/201412240158.json
new file mode 100644
index 0000000000..dbcb6e1e3b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240158.json
@@ -0,0 +1,53 @@
+{
+ "randomVMtest" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "code" : "0x677e6e5841a45096a215316a1601",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9977",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0000000000000000000000000000000000000000" : {
+ "balance" : "0",
+ "code" : "0x",
+ "nonce" : "0",
+ "storage" : {
+ }
+ },
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x677e6e5841a45096a215316a1601",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x677e6e5841a45096a215316a1601",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240159.json b/tests/files/VMTests/RandomTests/201412240159.json
new file mode 100644
index 0000000000..99c475b29b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240159.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" : "0x68919c56988603750974666d6b098e5a",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x68919c56988603750974666d6b098e5a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x68919c56988603750974666d6b098e5a",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240201.json b/tests/files/VMTests/RandomTests/201412240201.json
new file mode 100644
index 0000000000..f9b8c54396
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240201.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" : "0x343569541588518d719563f3",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x343569541588518d719563f3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x343569541588518d719563f3",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240202.json b/tests/files/VMTests/RandomTests/201412240202.json
new file mode 100644
index 0000000000..aff74db9e6
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240202.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" : "0x6292797167197b1205344281",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9998",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6292797167197b1205344281",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x6292797167197b1205344281",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/RandomTests/201412240204.json b/tests/files/VMTests/RandomTests/201412240204.json
new file mode 100644
index 0000000000..27ae65712b
--- /dev/null
+++ b/tests/files/VMTests/RandomTests/201412240204.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" : "0x65878e80f142515a65159511",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9997",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65878e80f142515a65159511",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x65878e80f142515a65159511",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ }
+}
diff --git a/tests/files/VMTests/vmArithmeticTest.json b/tests/files/VMTests/vmArithmeticTest.json
index 88d209dfaf..9d7cac99fc 100644
--- a/tests/files/VMTests/vmArithmeticTest.json
+++ b/tests/files/VMTests/vmArithmeticTest.json
@@ -1114,6 +1114,3634 @@
}
}
},
+ "expPowerOf256Of256_0" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60006101000a6101000a600055600060ff0a6101000a60015560006101010a6101000a60025560006101000a60ff0a600355600060ff0a60ff0a60045560006101010a60ff0a60055560006101000a6101010a600655600060ff0a6101010a60075560006101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7237",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006101000a6101000a600055600060ff0a6101000a60015560006101010a6101000a60025560006101000a60ff0a600355600060ff0a60ff0a60045560006101010a60ff0a60055560006101000a6101010a600655600060ff0a6101010a60075560006101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100",
+ "0x01" : "0x0100",
+ "0x02" : "0x0100",
+ "0x03" : "0xff",
+ "0x04" : "0xff",
+ "0x05" : "0xff",
+ "0x06" : "0x0101",
+ "0x07" : "0x0101",
+ "0x08" : "0x0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60006101000a6101000a600055600060ff0a6101000a60015560006101010a6101000a60025560006101000a60ff0a600355600060ff0a60ff0a60045560006101010a60ff0a60055560006101000a6101010a600655600060ff0a6101010a60075560006101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_1" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60016101000a6101000a600055600160ff0a6101000a60015560016101010a6101000a60025560016101000a60ff0a600355600160ff0a60ff0a60045560016101010a60ff0a60055560016101000a6101010a600655600160ff0a6101010a60075560016101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7822",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a6101000a600055600160ff0a6101000a60015560016101010a6101000a60025560016101000a60ff0a600355600160ff0a60ff0a60045560016101010a60ff0a60055560016101000a6101010a600655600160ff0a6101010a60075560016101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x06c3acd330b959ad6efabce6d2d2125e73a88a65a9880d203dddf5957f7f0001",
+ "0x04" : "0x8f965a06da0ac41dcb3a34f1d8ab7d8fee620a94faa42c395997756b007ffeff",
+ "0x05" : "0xbce9265d88a053c18bc229ebff404c1534e1db43de85131da0179fe9ff8100ff",
+ "0x06" : "0x02b5e9d7a094c19f5ebdd4f2e618f859ed15e4f1f0351f286bf849eb7f810001",
+ "0x07" : "0xc73b7a6f68385c653a24993bb72eea0e4ba17470816ec658cf9c5bedfd81ff01",
+ "0x08" : "0xb89fc178355660fe1c92c7d8ff11524702fad6e2255447946442356b00810101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a6101000a600055600160ff0a6101000a60015560016101010a6101000a60025560016101000a60ff0a600355600160ff0a60ff0a60045560016101010a60ff0a60055560016101000a6101010a600655600160ff0a6101010a60075560016101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_10" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600a6101000a6101000a600055600a60ff0a6101000a600155600a6101010a6101000a600255600a6101000a60ff0a600355600a60ff0a60ff0a600455600a6101010a60ff0a600555600a6101000a6101010a600655600a60ff0a6101010a600755600a6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7741",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a6101000a600055600a60ff0a6101000a600155600a6101010a6101000a600255600a6101000a60ff0a600355600a60ff0a60ff0a600455600a6101010a60ff0a600555600a6101000a6101010a600655600a60ff0a6101010a600755600a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xfe0f60957dc223578a0298879ec55c33085514ff7f0000000000000000000001",
+ "0x04" : "0xc1ea45f348b5d351c4d8fe5c77da979cadc33d866acc42e981278896b1f600ff",
+ "0x05" : "0x56ddb29bca94fb986ac0a40188b3b53f3216b3559bd8324a77ea8bd8a80a00ff",
+ "0x06" : "0x2d49ff6b0bbe177ae9317000b68fb921f7aa6aff810000000000000000000001",
+ "0x07" : "0x185fa9eab94cfe3016b69657e83b23fd24cc6960218254231c3db627a7f60101",
+ "0x08" : "0xa7a0223829f26d6c635368034320563df4aa5eb62efc87a42bb35f69b20a0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a6101000a600055600a60ff0a6101000a600155600a6101010a6101000a600255600a6101000a60ff0a600355600a60ff0a60ff0a600455600a6101010a60ff0a600555600a6101000a6101010a600655600a60ff0a6101010a600755600a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_11" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600b6101000a6101000a600055600b60ff0a6101000a600155600b6101010a6101000a600255600b6101000a60ff0a600355600b60ff0a60ff0a600455600b6101010a60ff0a600555600b6101000a6101010a600655600b60ff0a6101010a600755600b6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7732",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a6101000a600055600b60ff0a6101000a600155600b6101010a6101000a600255600b6101000a60ff0a600355600b60ff0a60ff0a600455600b6101010a60ff0a600555600b6101000a6101010a600655600b60ff0a6101010a600755600b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xe1440264b8ee0cea0218879ec55c33085514ff7f000000000000000000000001",
+ "0x04" : "0x29575fdce377b23043e489e358581474bc863187fa85f9945473a2be5889feff",
+ "0x05" : "0x3df8c030ec521fb109c4d887dbbc14c7c9c9921b27058e3503971b60b18b00ff",
+ "0x06" : "0x67799740340daf4a30f000b68fb921f7aa6aff81000000000000000000000001",
+ "0x07" : "0x540a4e4635b40585e09ff10b63ffe310dd717fca5c0a51570091e25e378bff01",
+ "0x08" : "0xdbbaef5c49ffee61b08cde6ebc8dba6e9a62d56c2355d1980cb9e790bc8b0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a6101000a600055600b60ff0a6101000a600155600b6101010a6101000a600255600b6101000a60ff0a600355600b60ff0a60ff0a600455600b6101010a60ff0a600555600b6101000a6101010a600655600b60ff0a6101010a600755600b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_12" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600c6101000a6101000a600055600c60ff0a6101000a600155600c6101010a6101000a600255600c6101000a60ff0a600355600c60ff0a60ff0a600455600c6101010a60ff0a600555600c6101000a6101010a600655600c60ff0a6101010a600755600c6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7723",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a6101000a600055600c60ff0a6101000a600155600c6101010a6101000a600255600c6101000a60ff0a600355600c60ff0a60ff0a600455600c6101010a60ff0a600555600c6101000a6101010a600655600c60ff0a6101010a600755600c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xb0e95b83a36ce98218879ec55c33085514ff7f00000000000000000000000001",
+ "0x04" : "0xc482ab56ec19186dc48c88f30861a850b2253b1ea6dc021589e569bd47f400ff",
+ "0x05" : "0xcf45c7f9af4bbe4a83055b55b97777ad5e0a3f08b129c9ae208c5d713c0c00ff",
+ "0x06" : "0xa5cbb62a421049b0f000b68fb921f7aa6aff8100000000000000000000000001",
+ "0x07" : "0x3bde6ca66dffe1bf5d727c3edea74c7a4af43b3912e6256d37705c8f3bf40101",
+ "0x08" : "0x3f49a1e40c5213aa4ffed57eb4c1ad2d181b2aaa289e9d59c2256c43480c0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a6101000a600055600c60ff0a6101000a600155600c6101010a6101000a600255600c6101000a60ff0a600355600c60ff0a60ff0a600455600c6101010a60ff0a600555600c6101000a6101010a600655600c60ff0a6101010a600755600c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_13" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600d6101000a6101000a600055600d60ff0a6101000a600155600d6101010a6101000a600255600d6101000a60ff0a600355600d60ff0a60ff0a600455600d6101010a60ff0a600555600d6101000a6101010a600655600d60ff0a6101010a600755600d6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7714",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a6101000a600055600d60ff0a6101000a600155600d6101010a6101000a600255600d6101000a60ff0a600355600d60ff0a60ff0a600455600d6101010a60ff0a600555600d6101000a6101010a600655600d60ff0a6101010a600755600d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xe02639036c698218879ec55c33085514ff7f0000000000000000000000000001",
+ "0x04" : "0x8be664bde946d939ce551b948b503787942d2a7734509288c1b62fd5c48bfeff",
+ "0x05" : "0xa923a28e7a75aef26c51580ffc686879e4a0b404b089bdbcd751d88b478d00ff",
+ "0x06" : "0x41ac5ea30fc9b0f000b68fb921f7aa6aff810000000000000000000000000001",
+ "0x07" : "0x0daa3a177ec975cb69bb4acf4a6e1be7bcc1ad33d1ffad97510f9fea9d8dff01",
+ "0x08" : "0x19e6822beb889be28310060f4fb9741bfd50a31fa81ec65de21f7b02548d0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a6101000a600055600d60ff0a6101000a600155600d6101010a6101000a600255600d6101000a60ff0a600355600d60ff0a60ff0a600455600d6101010a60ff0a600555600d6101000a6101010a600655600d60ff0a6101010a600755600d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_14" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600e6101000a6101000a600055600e60ff0a6101000a600155600e6101010a6101000a600255600e6101000a60ff0a600355600e60ff0a60ff0a600455600e6101010a60ff0a600555600e6101000a6101010a600655600e60ff0a6101010a600755600e6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7705",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a6101000a600055600e60ff0a6101000a600155600e6101010a6101000a600255600e6101000a60ff0a600355600e60ff0a60ff0a600455600e6101010a60ff0a600555600e6101000a6101010a600655600e60ff0a6101010a600755600e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xdb9902ec698218879ec55c33085514ff7f000000000000000000000000000001",
+ "0x04" : "0x83fab06c6c8fef761ebbb9534c06ac2a9d61820623008069062ff3b1e1f200ff",
+ "0x05" : "0x3f791dd183ed5b963bd86e0dba1a9dd5b8ceeb078f15c73062f1942fd40e00ff",
+ "0x06" : "0xe0bfa28fc9b0f000b68fb921f7aa6aff81000000000000000000000000000001",
+ "0x07" : "0x8133b760dfae27560eb490f235ddfa301f058dee4f01f3fe4b3567d0d3f20101",
+ "0x08" : "0xcd4cd0124e983af71620fb5f98275965c6a8bebc4b8adc288b63224ee20e0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a6101000a600055600e60ff0a6101000a600155600e6101010a6101000a600255600e6101000a60ff0a600355600e60ff0a60ff0a600455600e6101010a60ff0a600555600e6101000a6101010a600655600e60ff0a6101010a600755600e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_15" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600f6101000a6101000a600055600f60ff0a6101000a600155600f6101010a6101000a600255600f6101000a60ff0a600355600f60ff0a60ff0a600455600f6101010a60ff0a600555600f6101000a6101010a600655600f60ff0a6101010a600755600f6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7696",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a6101000a600055600f60ff0a6101000a600155600f6101010a6101000a600255600f6101000a60ff0a600355600f60ff0a60ff0a600455600f6101010a60ff0a600555600f6101000a6101010a600655600f60ff0a6101010a600755600f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x9882ec698218879ec55c33085514ff7f00000000000000000000000000000001",
+ "0x04" : "0x75c4915e18b96704209738f5ca765568bb4dc4113d56683977825a132c8dfeff",
+ "0x05" : "0x5c76839bf5a80b1da705dbdf43e4dd6770cd7501af11ff2dab7918dfe18f00ff",
+ "0x06" : "0xbf228fc9b0f000b68fb921f7aa6aff8100000000000000000000000000000001",
+ "0x07" : "0xc6a29131e7594004bc2aa79f0d2c402a1409c57c77d284c14b1a3ab0ff8fff01",
+ "0x08" : "0xe6b3e5cf6ec90e532fef7d08455ebf92a03e9e3f6e224ea0febdf1a9f08f0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a6101000a600055600f60ff0a6101000a600155600f6101010a6101000a600255600f6101000a60ff0a600355600f60ff0a60ff0a600455600f6101010a60ff0a600555600f6101000a6101010a600655600f60ff0a6101010a600755600f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_16" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60106101000a6101000a600055601060ff0a6101000a60015560106101010a6101000a60025560106101000a60ff0a600355601060ff0a60ff0a60045560106101010a60ff0a60055560106101000a6101010a600655601060ff0a6101010a60075560106101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7687",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a6101000a600055601060ff0a6101000a60015560106101010a6101000a60025560106101000a60ff0a600355601060ff0a60ff0a60045560106101010a60ff0a60055560106101000a6101010a600655601060ff0a6101010a60075560106101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x82ec698218879ec55c33085514ff7f0000000000000000000000000000000001",
+ "0x04" : "0x3122f4bcdf6dd8b265cd18eb6af28c879aed44a35e0bf59273e39e6c7ff000ff",
+ "0x05" : "0x6a2b3bc87a02c29b9d27757df43047ecd0f15485270fca27417a701c701000ff",
+ "0x06" : "0x228fc9b0f000b68fb921f7aa6aff810000000000000000000000000000000001",
+ "0x07" : "0x88e1259502eef93d46060aacc9e2ff506c734dade0b6714ab12d17e46ff00101",
+ "0x08" : "0x4a103813c12c12169b218296bb0a9eae80cf8d2b158aa70eb990f99480100101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a6101000a600055601060ff0a6101000a60015560106101010a6101000a60025560106101000a60ff0a600355601060ff0a60ff0a60045560106101010a60ff0a60055560106101000a6101010a600655601060ff0a6101010a60075560106101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_17" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60116101000a6101000a600055601160ff0a6101000a60015560116101010a6101000a60025560116101000a60ff0a600355601160ff0a60ff0a60045560116101010a60ff0a60055560116101000a6101010a600655601160ff0a6101010a60075560116101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7678",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a6101000a600055601160ff0a6101000a60015560116101010a6101000a60025560116101000a60ff0a600355601160ff0a60ff0a60045560116101010a60ff0a60055560116101000a6101010a600655601160ff0a6101010a60075560116101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xec698218879ec55c33085514ff7f000000000000000000000000000000000001",
+ "0x04" : "0x722ad218eb1995a2d257c4c06d8de993c203cfc8e3512df7d633e17e908ffeff",
+ "0x05" : "0x8ac9b5ec08d74612cb29f941481d274b51721af2296207c0da8d24667f9100ff",
+ "0x06" : "0x8fc9b0f000b68fb921f7aa6aff81000000000000000000000000000000000001",
+ "0x07" : "0x81d5ff63680841482299f3eab616446dcd336f537c0c565aa4112ab95d91ff01",
+ "0x08" : "0x9c6ca90dac4e97dea02ac969e8649ee9e6232e0c3f4797411151cb8f90910101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a6101000a600055601160ff0a6101000a60015560116101010a6101000a60025560116101000a60ff0a600355601160ff0a60ff0a60045560116101010a60ff0a60055560116101000a6101010a600655601160ff0a6101010a60075560116101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_18" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60126101000a6101000a600055601260ff0a6101000a60015560126101010a6101000a60025560126101000a60ff0a600355601260ff0a60ff0a60045560126101010a60ff0a60055560126101000a6101010a600655601260ff0a6101010a60075560126101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7669",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a6101000a600055601260ff0a6101000a60015560126101010a6101000a60025560126101000a60ff0a600355601260ff0a60ff0a60045560126101010a60ff0a60055560126101000a6101010a600655601260ff0a6101010a60075560126101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x698218879ec55c33085514ff7f00000000000000000000000000000000000001",
+ "0x04" : "0x8a2cbd9f40794e2205b13306f2aa0a43c60823c64b95d8601fa4f1e521ee00ff",
+ "0x05" : "0xc1b5a1e3a81da51b10d84e880f0113ff67b863ddad3faf1f4ecf413f101200ff",
+ "0x06" : "0xc9b0f000b68fb921f7aa6aff8100000000000000000000000000000000000001",
+ "0x07" : "0x410be68e49452a1fbcd863bf6e8d637f8eae4979c34c88d552afbcc20fee0101",
+ "0x08" : "0xf540cb714754b5b1eb0373833833bd7fb0ee925ce8b92962500b7a1c22120101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a6101000a600055601260ff0a6101000a60015560126101010a6101000a60025560126101000a60ff0a600355601260ff0a60ff0a60045560126101010a60ff0a60055560126101000a6101010a600655601260ff0a6101010a60075560126101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_19" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60136101000a6101000a600055601360ff0a6101000a60015560136101010a6101000a60025560136101000a60ff0a600355601360ff0a60ff0a60045560136101010a60ff0a60055560136101000a6101010a600655601360ff0a6101010a60075560136101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7660",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a6101000a600055601360ff0a6101000a60015560136101010a6101000a60025560136101000a60ff0a600355601360ff0a60ff0a60045560136101010a60ff0a60055560136101000a6101010a600655601360ff0a6101010a60075560136101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x8218879ec55c33085514ff7f0000000000000000000000000000000000000001",
+ "0x04" : "0xb795ad7ac24cfbb7435cf53bd3584f3d4b2709935635c3ceb66e761ff091feff",
+ "0x05" : "0x1f0bb7be91a0ccd0cca93d75cf03de3e6b56fe8f1c54242617665327219300ff",
+ "0x06" : "0xb0f000b68fb921f7aa6aff810000000000000000000000000000000000000001",
+ "0x07" : "0xad571756ecbff1bfdef064861e5e92c5d897a9cc380e54bdbaabd80bb793ff01",
+ "0x08" : "0xd8b5b531989e689f700dcdb43ab90e79a49dfbbb5a13dbf751df98bb34930101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a6101000a600055601360ff0a6101000a60015560136101010a6101000a60025560136101000a60ff0a600355601360ff0a60ff0a60045560136101010a60ff0a60055560136101000a6101010a600655601360ff0a6101010a60075560136101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60026101000a6101000a600055600260ff0a6101000a60015560026101010a6101000a60025560026101000a60ff0a600355600260ff0a60ff0a60045560026101010a60ff0a60055560026101000a6101010a600655600260ff0a6101010a60075560026101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7813",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a6101000a600055600260ff0a6101000a60015560026101010a6101000a60025560026101000a60ff0a600355600260ff0a60ff0a60045560026101010a60ff0a60055560026101000a6101010a600655600260ff0a6101010a60075560026101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x4ee4ceeaac565c81f55a87c43f82f7c889ef4fc7c679671e28d594ff7f000001",
+ "0x04" : "0x82f46a1b4e34d66712910615d2571d75606ceac51fa8ca8c58cf6ca881fe00ff",
+ "0x05" : "0x81c9fcefa5de158ae2007f25d35c0d11cd735342a48905955a5a6852800200ff",
+ "0x06" : "0x666ac362902470ed850709e2a29969d10cba09debc03c38d172aeaff81000001",
+ "0x07" : "0xeb30a3c678a01bde914548f98f3366dc0ffe9f85384ebf1111d03dad7ffe0101",
+ "0x08" : "0x72d0a7939b6303ce1d46e6e3f1b8be303bfdb2b00f41ad8076b0975782020101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a6101000a600055600260ff0a6101000a60015560026101010a6101000a60025560026101000a60ff0a600355600260ff0a60ff0a60045560026101010a60ff0a60055560026101000a6101010a600655600260ff0a6101010a60075560026101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_20" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60146101000a6101000a600055601460ff0a6101000a60015560146101010a6101000a60025560146101000a60ff0a600355601460ff0a60ff0a60045560146101010a60ff0a60055560146101000a6101010a600655601460ff0a6101010a60075560146101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7651",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a6101000a600055601460ff0a6101000a60015560146101010a6101000a60025560146101000a60ff0a600355601460ff0a60ff0a60045560146101010a60ff0a60055560146101000a6101010a600655601460ff0a6101010a60075560146101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x18879ec55c33085514ff7f000000000000000000000000000000000000000001",
+ "0x04" : "0x67e4797dc21f02ce4a7c52218c7dbea5d212e6c244e24f0ba4c08613c7ec00ff",
+ "0x05" : "0xa1ce1a085f258785846939cc1d2e8725ac94ad4dff8913234e00679fb41400ff",
+ "0x06" : "0xf000b68fb921f7aa6aff81000000000000000000000000000000000000000001",
+ "0x07" : "0xcce501857a1cb45473915a28082af950e0f78f7e2de68ce748adb661b3ec0101",
+ "0x08" : "0x3b2e28d274a16c08b58a23bad63bba6d7b09685769d1f68ca3873bedc8140101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a6101000a600055601460ff0a6101000a60015560146101010a6101000a60025560146101000a60ff0a600355601460ff0a60ff0a60045560146101010a60ff0a60055560146101000a6101010a600655601460ff0a6101010a60075560146101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_21" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60156101000a6101000a600055601560ff0a6101000a60015560156101010a6101000a60025560156101000a60ff0a600355601560ff0a60ff0a60045560156101010a60ff0a60055560156101000a6101010a600655601560ff0a6101010a60075560156101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7642",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a6101000a600055601560ff0a6101000a60015560156101010a6101000a60025560156101000a60ff0a600355601560ff0a60ff0a60045560156101010a60ff0a60055560156101000a6101010a600655601560ff0a6101010a60075560156101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x879ec55c33085514ff7f00000000000000000000000000000000000000000001",
+ "0x04" : "0x7fd07055ff50cdfe4b4bd9a15133d72d3607d92eb7ac81bac93db7ff4c93feff",
+ "0x05" : "0x665ac5c769e87f61d5993abc26522fbfca2734d76a63216b2d550d29c79500ff",
+ "0x06" : "0xb68fb921f7aa6aff8100000000000000000000000000000000000000000001",
+ "0x07" : "0x1c93db67c9884bc694686d69a25a5d7ed089841d5ce147fdd7199ab00d95ff01",
+ "0x08" : "0x485053d8ff66be52036597520344fac87b6a305426a9e49221d3f934dc950101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a6101000a600055601560ff0a6101000a60015560156101010a6101000a60025560156101000a60ff0a600355601560ff0a60ff0a60045560156101010a60ff0a60055560156101000a6101010a600655601560ff0a6101010a60075560156101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_22" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60166101000a6101000a600055601660ff0a6101000a60015560166101010a6101000a60025560166101000a60ff0a600355601660ff0a60ff0a60045560166101010a60ff0a60055560166101000a6101010a600655601660ff0a6101010a60075560166101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7633",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a6101000a600055601660ff0a6101000a60015560166101010a6101000a60025560166101000a60ff0a600355601660ff0a60ff0a60045560166101010a60ff0a60055560166101000a6101010a600655601660ff0a6101010a60075560166101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x9ec55c33085514ff7f0000000000000000000000000000000000000000000001",
+ "0x04" : "0xec447e662ac08957d7e290a421dbf54c0aaf43aadc9cc465ad0b02f071ea00ff",
+ "0x05" : "0xdc9178d3bab470096f01477c859b5f4173986640b659426412a653465c1600ff",
+ "0x06" : "0xb68fb921f7aa6aff810000000000000000000000000000000000000000000001",
+ "0x07" : "0xdcf0a770777610503596ae0311af46c171151ed45107d7e7bb8f74bb5bea0101",
+ "0x08" : "0x4d65773387993928c95c861274232d3fb6f6b7fe1b22e4e61a30e71172160101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a6101000a600055601660ff0a6101000a60015560166101010a6101000a60025560166101000a60ff0a600355601660ff0a60ff0a60045560166101010a60ff0a60055560166101000a6101010a600655601660ff0a6101010a60075560166101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_23" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60176101000a6101000a600055601760ff0a6101000a60015560176101010a6101000a60025560176101000a60ff0a600355601760ff0a60ff0a60045560176101010a60ff0a60055560176101000a6101010a600655601760ff0a6101010a60075560176101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7624",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a6101000a600055601760ff0a6101000a60015560176101010a6101000a60025560176101000a60ff0a600355601760ff0a60ff0a60045560176101010a60ff0a60055560176101000a6101010a600655601760ff0a6101010a60075560176101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xc55c33085514ff7f000000000000000000000000000000000000000000000001",
+ "0x04" : "0x537ca0f03f974303005f1e6693b55b72315a166841732e42b8353724a495feff",
+ "0x05" : "0x86418797ec60058de6cca47dfdbee79923ac49d7801e01840041ca76719700ff",
+ "0x06" : "0x8fb921f7aa6aff81000000000000000000000000000000000000000000000001",
+ "0x07" : "0x56a55341ab8d4318f1cfb55d5f21e2ba35d7e070a72bac6b2b21baae5f97ff01",
+ "0x08" : "0x55ddd0ec77909de6d8311116cf520398e816f928b06fdd90ec239d0488970101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a6101000a600055601760ff0a6101000a60015560176101010a6101000a60025560176101000a60ff0a600355601760ff0a60ff0a60045560176101010a60ff0a60055560176101000a6101010a600655601760ff0a6101010a60075560176101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_24" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60186101000a6101000a600055601860ff0a6101000a60015560186101010a6101000a60025560186101000a60ff0a600355601860ff0a60ff0a60045560186101010a60ff0a60055560186101000a6101010a600655601860ff0a6101010a60075560186101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7615",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a6101000a600055601860ff0a6101000a60015560186101010a6101000a60025560186101000a60ff0a600355601860ff0a60ff0a60045560186101010a60ff0a60055560186101000a6101010a600655601860ff0a6101010a60075560186101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x5c33085514ff7f00000000000000000000000000000000000000000000000001",
+ "0x04" : "0xd542e526003539ead104274aff2d78332366e29d328c2161f0c120731fe800ff",
+ "0x05" : "0xc706cb25e8384ce9bb5c9cb48415238ba03e16c448e292c0a101843b081800ff",
+ "0x06" : "0xb921f7aa6aff8100000000000000000000000000000000000000000000000001",
+ "0x07" : "0x4ca55f89202c524cb0f1cb3195d13c8d94a9f7a05c59e1d4031577c707e80101",
+ "0x08" : "0x8c4b0574e9156b80035f3ecdcf1fe79d273ed7559747a4322bcd338f20180101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a6101000a600055601860ff0a6101000a60015560186101010a6101000a60025560186101000a60ff0a600355601860ff0a60ff0a60045560186101010a60ff0a60055560186101000a6101010a600655601860ff0a6101010a60075560186101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_25" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60196101000a6101000a600055601960ff0a6101000a60015560196101010a6101000a60025560196101000a60ff0a600355601960ff0a60ff0a60045560196101010a60ff0a60055560196101000a6101010a600655601960ff0a6101010a60075560196101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7606",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a6101000a600055601960ff0a6101000a60015560196101010a6101000a60025560196101000a60ff0a600355601960ff0a60ff0a60045560196101010a60ff0a60055560196101000a6101010a600655601960ff0a6101010a60075560196101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x33085514ff7f0000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x7f510dd7198cac0a92ff7ea80451838c0dfa12114c41a0ef05907397f897feff",
+ "0x05" : "0x1275e752b6aee228ecba5e9b57ef1111deff3c651e2cfbf2cccd13151f9900ff",
+ "0x06" : "0x21f7aa6aff810000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x6646340ad51a03bb710caf05756b685b33c7dad62ae68d369243700ead99ff01",
+ "0x08" : "0x29d80e8060ef2221929bb18215586c742686d6860e028ca0456b443238990101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a6101000a600055601960ff0a6101000a60015560196101010a6101000a60025560196101000a60ff0a600355601960ff0a60ff0a60045560196101010a60ff0a60055560196101000a6101010a600655601960ff0a6101010a60075560196101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_26" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601a6101000a6101000a600055601a60ff0a6101000a600155601a6101010a6101000a600255601a6101000a60ff0a600355601a60ff0a60ff0a600455601a6101010a60ff0a600555601a6101000a6101010a600655601a60ff0a6101010a600755601a6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7597",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a6101000a600055601a60ff0a6101000a600155601a6101010a6101000a600255601a6101000a60ff0a600355601a60ff0a60ff0a600455601a6101010a60ff0a600555601a6101000a6101010a600655601a60ff0a6101010a600755601a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x085514ff7f000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x1d164db738eb6893868b361ad2803f97be35764456e82a837667a693d1e600ff",
+ "0x05" : "0x8b92c24abebf376a5aab5ff4dfd3538a03d38a10bced2aae8e1a8a85b81a00ff",
+ "0x06" : "0xf7aa6aff81000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x6931bda98c70e860a1f6a5224940f1ec7e6734cd9456c95806384f7cb7e60101",
+ "0x08" : "0x3402a9db66492dfc2a220715e76243469462f24edc56903ba1d8e96ed21a0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a6101000a600055601a60ff0a6101000a600155601a6101010a6101000a600255601a6101000a60ff0a600355601a60ff0a60ff0a600455601a6101010a60ff0a600555601a6101000a6101010a600655601a60ff0a6101010a600755601a6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_27" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601b6101000a6101000a600055601b60ff0a6101000a600155601b6101010a6101000a600255601b6101000a60ff0a600355601b60ff0a60ff0a600455601b6101010a60ff0a600555601b6101000a6101010a600655601b60ff0a6101010a600755601b6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7588",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a6101000a600055601b60ff0a6101000a600155601b6101010a6101000a600255601b6101000a60ff0a600355601b60ff0a60ff0a600455601b6101010a60ff0a600555601b6101000a6101010a600655601b60ff0a6101010a600755601b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x5514ff7f00000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x178918ffbcb401d4efd2f7dfb4d01a897172267f0f491121ac52dd614899feff",
+ "0x05" : "0x38ecff71480ca0b422f2ed6f780d5fead2ae234a49104b10a86f7f0dd19b00ff",
+ "0x06" : "0xaa6aff8100000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0xd02811cb5dc1d80567e810532b235b7672f5c78cd6e89bb511d5e2d8f79bff01",
+ "0x08" : "0x1b4e6404f474c18055d30bb8987672f59e97980d6f9de1764c0fbec5ec9b0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a6101000a600055601b60ff0a6101000a600155601b6101010a6101000a600255601b6101000a60ff0a600355601b60ff0a60ff0a600455601b6101010a60ff0a600555601b6101000a6101010a600655601b60ff0a6101010a600755601b6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_28" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601c6101000a6101000a600055601c60ff0a6101000a600155601c6101010a6101000a600255601c6101000a60ff0a600355601c60ff0a60ff0a600455601c6101010a60ff0a600555601c6101000a6101010a600655601c60ff0a6101010a600755601c6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7579",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a6101000a600055601c60ff0a6101000a600155601c6101010a6101000a600255601c6101000a60ff0a600355601c60ff0a60ff0a600455601c6101010a60ff0a600555601c6101000a6101010a600655601c60ff0a6101010a600755601c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x14ff7f0000000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0xffd368e44b3f85cb81ae394c9809ca9fa2db46a83d7880a912ab6d4a87e400ff",
+ "0x05" : "0x0981ad53c19b15a94bcf0bf20235dd0da9df25f46ae635029fe2062e6c1c00ff",
+ "0x06" : "0x6aff810000000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x19df06ffa28250867006726405fbc05d43dc2f9d2f025006db089bd46be40101",
+ "0x08" : "0x243fffe3a4f2982f45055c08f379648ab886da8027a7401117a8e0b8881c0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a6101000a600055601c60ff0a6101000a600155601c6101010a6101000a600255601c6101000a60ff0a600355601c60ff0a60ff0a600455601c6101010a60ff0a600555601c6101000a6101010a600655601c60ff0a6101010a600755601c6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_29" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601d6101000a6101000a600055601d60ff0a6101000a600155601d6101010a6101000a600255601d6101000a60ff0a600355601d60ff0a60ff0a600455601d6101010a60ff0a600555601d6101000a6101010a600655601d60ff0a6101010a600755601d6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7570",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a6101000a600055601d60ff0a6101000a600155601d6101010a6101000a600255601d6101000a60ff0a600355601d60ff0a60ff0a600455601d6101010a60ff0a600555601d6101000a6101010a600655601d60ff0a6101010a600755601d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xff7f000000000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0x41e065d46e0349cfe624c4e8a2034aea1f7edfff80e511cd8067d488949bfeff",
+ "0x05" : "0xa84162ca6675a22c4c79dfc4ea15f760db5a04dbf04246764199b668879d00ff",
+ "0x06" : "0xff81000000000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0x1226984faa6b05ebdbd45d8477fa4fd5b55bfd5061de03c319282b153d9dff01",
+ "0x08" : "0x5cc9e6b0b749fd94541ad00364bdec2fca7816981ca3e38f485decc7a49d0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a6101000a600055601d60ff0a6101000a600155601d6101010a6101000a600255601d6101000a60ff0a600355601d60ff0a60ff0a600455601d6101010a60ff0a600555601d6101000a6101010a600655601d60ff0a6101010a600755601d6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_3" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60036101000a6101000a600055600360ff0a6101000a60015560036101010a6101000a60025560036101000a60ff0a600355600360ff0a60ff0a60045560036101010a60ff0a60055560036101000a6101010a600655600360ff0a6101010a60075560036101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7804",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a6101000a600055600360ff0a6101000a60015560036101010a6101000a60025560036101000a60ff0a600355600360ff0a60ff0a60045560036101010a60ff0a60055560036101000a6101010a600655600360ff0a6101010a60075560036101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x109a00e1370d2d2922bf892e85becb54297354b2e5c75388d514ff7f00000001",
+ "0x04" : "0x54a792f15e9aba7e4ad9e716bc169eea3a6e2e9c49bf9b335874613c8081feff",
+ "0x05" : "0x5d24a14d8e5e039372cd0f6a0f31e9ed6b75adba9f16b1c5b3edd5ba818300ff",
+ "0x06" : "0x298e2f316b4ccded5ebf515998d9ec20df69404b04a441782a6aff8100000001",
+ "0x07" : "0x4335694e98f372183c62a2339fa4ad161e9b4c42240bdc9452abffd07783ff01",
+ "0x08" : "0xf0f0820797315acd063056bba76f6a9c3e281cdb5197a233967ca94684830101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a6101000a600055600360ff0a6101000a60015560036101010a6101000a60025560036101000a60ff0a600355600360ff0a60ff0a60045560036101010a60ff0a60055560036101000a6101010a600655600360ff0a6101010a60075560036101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_30" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601e6101000a6101000a600055601e60ff0a6101000a600155601e6101010a6101000a600255601e6101000a60ff0a600355601e60ff0a60ff0a600455601e6101010a60ff0a600555601e6101000a6101010a600655601e60ff0a6101010a600755601e6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7561",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a6101000a600055601e60ff0a6101000a600155601e6101010a6101000a600255601e6101000a60ff0a600355601e60ff0a60ff0a600455601e6101010a60ff0a600555601e6101000a6101010a600655601e60ff0a6101010a600755601e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x7f00000000000000000000000000000000000000000000000000000000000001",
+ "0x04" : "0xe9772778f50fa0a69cd10fa019ac56d72ac7a7d7af26c4ba28415c8f41e200ff",
+ "0x05" : "0x33f0385ef73feebdb952e5adb643dd0fa178fd9271578219ad50a73d241e00ff",
+ "0x06" : "0x8100000000000000000000000000000000000000000000000000000000000001",
+ "0x07" : "0xfd405cce8f73dffc04a6f0ff6ffc6bf7961876d09c5b4933a68f0cc623e20101",
+ "0x08" : "0xc5a8f4566fd2e96e4ce3a8b3ec0863e7b20bc3b2f3dc5261ba8a0174421e0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a6101000a600055601e60ff0a6101000a600155601e6101010a6101000a600255601e6101000a60ff0a600355601e60ff0a60ff0a600455601e6101010a60ff0a600555601e6101000a6101010a600655601e60ff0a6101010a600755601e6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_31" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601f6101000a6101000a600055601f60ff0a6101000a600155601f6101010a6101000a600255601f6101000a60ff0a600355601f60ff0a60ff0a600455601f6101010a60ff0a600555601f6101000a6101010a600655601f60ff0a6101010a600755601f6101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7552",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a6101000a600055601f60ff0a6101000a600155601f6101010a6101000a600255601f6101000a60ff0a600355601f60ff0a60ff0a600455601f6101010a60ff0a600555601f6101000a6101010a600655601f60ff0a6101010a600755601f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x01",
+ "0x04" : "0xf9cb87f5b1ab58602f52a1e9d392e5675b86a59a53943a8d4ec2a915dc9dfeff",
+ "0x05" : "0x893d729a64e318860ec5047e70e598da163eb41e71e74b04dfd4712d419f00ff",
+ "0x06" : "0x01",
+ "0x07" : "0xee5f2839c1b4f6ca05e6fdb04e2fb49c0f860b3765c27dc781a150cb7f9fff01",
+ "0x08" : "0xb4c358e3c6bcddfb509ea487d733df0e1854f29c3b6bfd4a8caabe3f609f0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a6101000a600055601f60ff0a6101000a600155601f6101010a6101000a600255601f6101000a60ff0a600355601f60ff0a60ff0a600455601f6101010a60ff0a600555601f6101000a6101010a600655601f60ff0a6101010a600755601f6101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_32" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60206101000a6101000a600055602060ff0a6101000a60015560206101010a6101000a60025560206101000a60ff0a600355602060ff0a60ff0a60045560206101010a60ff0a60055560206101000a6101010a600655602060ff0a6101010a60075560206101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7445",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a6101000a600055602060ff0a6101000a60015560206101010a6101000a60025560206101000a60ff0a600355602060ff0a60ff0a60045560206101010a60ff0a60055560206101000a6101010a600655602060ff0a6101010a60075560206101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01",
+ "0x03" : "0x01",
+ "0x04" : "0xb8247842bb5ce75c08d0c251669ed5870fa24a22952e5db3a7c66c59ffe000ff",
+ "0x05" : "0xee526e5a06f2a990b2bf6c951e5feabf0e07ee16877296e1be872db9e02000ff",
+ "0x06" : "0x01",
+ "0x07" : "0xeda7d024b6de40a9d3b966e71f10a4667edc5b71cab07aeabcac6249dfe00101",
+ "0x08" : "0x512ecfaeeb11205f0833e1054dcb1300488e0954be5af77a49e143aa00200101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a6101000a600055602060ff0a6101000a60015560206101010a6101000a60025560206101000a60ff0a600355602060ff0a60ff0a60045560206101010a60ff0a60055560206101000a6101010a600655602060ff0a6101010a60075560206101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_33" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60216101000a6101000a600055602160ff0a6101000a60015560216101010a6101000a60025560216101000a60ff0a600355602160ff0a60ff0a60045560216101010a60ff0a60055560216101000a6101010a600655602160ff0a6101010a60075560216101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7445",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a6101000a600055602160ff0a6101000a60015560216101010a6101000a60025560216101000a60ff0a600355602160ff0a60ff0a60045560216101010a60ff0a60055560216101000a6101010a600655602160ff0a6101010a60075560216101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01",
+ "0x03" : "0x01",
+ "0x04" : "0x8dcb65b5494eba78cd6756a6f9851f6e26d0f2bb9ecd7e9abd7e9b11209ffeff",
+ "0x05" : "0x6694bb31b20cd625f3756897dae6d738f2e64467b5b6f10fa3e07763ffa100ff",
+ "0x06" : "0x01",
+ "0x07" : "0xe678999aeffd1f1f45081f64de7f80ab083dd7df04721ed64ee04c03bda1ff01",
+ "0x08" : "0x39b68fb9898dd7568abd178397251ce8226a25c1d305a4e79573333520a10101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a6101000a600055602160ff0a6101000a60015560216101010a6101000a60025560216101000a60ff0a600355602160ff0a60ff0a60045560216101010a60ff0a60055560216101000a6101010a600655602160ff0a6101010a60075560216101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_4" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60046101000a6101000a600055600460ff0a6101000a60015560046101010a6101000a60025560046101000a60ff0a600355600460ff0a60ff0a60045560046101010a60ff0a60055560046101000a6101010a600655600460ff0a6101010a60075560046101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7795",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a6101000a600055600460ff0a6101000a60015560046101010a6101000a60025560046101000a60ff0a600355600460ff0a60ff0a60045560046101010a60ff0a60055560046101000a6101010a600655600460ff0a6101010a60075560046101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xe6540ce46eaf70da9d644015a661e0e245b13f307cb3885514ff7f0000000001",
+ "0x04" : "0x6526b38b05a6325b80e1c84ab41dc934fd70f33f1bd0eab3d1f61a4707fc00ff",
+ "0x05" : "0xe959516cd27e5d8fd487b72db2989b3ec2ba9fb7ead41554526fe5a3040400ff",
+ "0x06" : "0xe7498a48c6ce2530bbe814ee3440c8c44fffab7ad8a277aa6aff810000000001",
+ "0x07" : "0x2dffa3e901e5a392d15b79f4193d2168147d2aa7c55870b46c3a905d03fc0101",
+ "0x08" : "0xe16ea721c96539edb4f7fb82de0dad8cccb1e7a6966a6777635f6fb908040101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a6101000a600055600460ff0a6101000a60015560046101010a6101000a60025560046101000a60ff0a600355600460ff0a60ff0a60045560046101010a60ff0a60055560046101000a6101010a600655600460ff0a6101010a60075560046101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_5" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60056101000a6101000a600055600560ff0a6101000a60015560056101010a6101000a60025560056101000a60ff0a600355600560ff0a60ff0a60045560056101010a60ff0a60055560056101000a6101010a600655600560ff0a6101010a60075560056101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7786",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a6101000a600055600560ff0a6101000a60015560056101010a6101000a60025560056101000a60ff0a600355600560ff0a60ff0a60045560056101010a60ff0a60055560056101000a6101010a600655600560ff0a6101010a60075560056101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0xb581ac185aad71db2d177c286929c4c22809e5dcb3085514ff7f000000000001",
+ "0x04" : "0x75789eb2a64bc971389fbd11a1e6d7abbf95ad25e23fb9aa25e73a0bfc83feff",
+ "0x05" : "0xfc403fa42ceb6a0d0d3321bd9b2d8af25b1b667f87a04f496c78168d078500ff",
+ "0x06" : "0xcec5ec213b9cb5811f6ae00428fd7b6ef5a1af39a1f7aa6aff81000000000001",
+ "0x07" : "0x70ab32233202b98d382d17713fa0be391eaf74f85ba1740c9c3238c4ed85ff01",
+ "0x08" : "0xb622672a213faa79b32185ff93a7b27a8499e48f7b032cdb4d1a70300c850101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a6101000a600055600560ff0a6101000a60015560056101010a6101000a60025560056101000a60ff0a600355600560ff0a60ff0a60045560056101010a60ff0a60055560056101000a6101010a600655600560ff0a6101010a60075560056101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_6" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60066101000a6101000a600055600660ff0a6101000a60015560066101010a6101000a60025560066101000a60ff0a600355600660ff0a60ff0a60045560066101010a60ff0a60055560066101000a6101010a600655600660ff0a6101010a60075560066101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7777",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a6101000a600055600660ff0a6101000a60015560066101010a6101000a60025560066101000a60ff0a600355600660ff0a60ff0a60045560066101010a60ff0a60055560066101000a6101010a600655600660ff0a6101010a60075560066101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x1948059de1def03c4ec35fc22c2bb8f2bf45dc33085514ff7f00000000000001",
+ "0x04" : "0x41f818a8e24eb6d7bb7b193b4f2b5fdcf4bd0d453f2ac3499d8830d391fa00ff",
+ "0x05" : "0xede6fe4a943dfb5d967a2b85d6728759d40d2ef0ae4bc28bbb1867f98c0600ff",
+ "0x06" : "0x083c936cbaad5de592badc2e142fe4ebd6103921f7aa6aff8100000000000001",
+ "0x07" : "0x57385019fe4e0939ca3f35c37cadfaf52fba5b1cdfb02def3866e8068bfa0101",
+ "0x08" : "0x810ac878bd98428f6be8c6426ba9f9da09e3e33bf4fe10bfa3f8b12c92060101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a6101000a600055600660ff0a6101000a60015560066101010a6101000a60025560066101000a60ff0a600355600660ff0a60ff0a60045560066101010a60ff0a60055560066101000a6101010a600655600660ff0a6101010a60075560066101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_7" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60076101000a6101000a600055600760ff0a6101000a60015560076101010a6101000a60025560076101000a60ff0a600355600760ff0a60ff0a60045560076101010a60ff0a60055560076101000a6101010a600655600760ff0a6101010a60075560076101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7768",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a6101000a600055600760ff0a6101000a60015560076101010a6101000a60025560076101000a60ff0a600355600760ff0a60ff0a60045560076101010a60ff0a60055560076101000a6101010a600655600760ff0a6101010a60075560076101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x8bb02654111ad8c60ad8af132283a81f455c33085514ff7f0000000000000001",
+ "0x04" : "0xa8f75c129dbb8466d6703a2a0b8212131b3248d70e2478862ac40fe17485feff",
+ "0x05" : "0x5fd4d2de580383ee59f5e800ddb3f1717ceae03aede19d3dec5e5a69918700ff",
+ "0x06" : "0xc8624230b524b85d6340da48a5db20370fb921f7aa6aff810000000000000001",
+ "0x07" : "0x287b58a5a13cd7f454468ca616c181712f5ed25433a7d5a894b6ced35f87ff01",
+ "0x08" : "0x09930d11ac2804fa977bf951593c8dff8498779cc0cdc5812a4fba2f98870101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a6101000a600055600760ff0a6101000a60015560076101010a6101000a60025560076101000a60ff0a600355600760ff0a60ff0a60045560076101010a60ff0a60055560076101000a6101010a600655600760ff0a6101010a60075560076101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_8" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60086101000a6101000a600055600860ff0a6101000a60015560086101010a6101000a60025560086101000a60ff0a600355600860ff0a60ff0a60045560086101010a60ff0a60055560086101000a6101010a600655600860ff0a6101010a60075560086101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7759",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a6101000a600055600860ff0a6101000a60015560086101010a6101000a60025560086101000a60ff0a600355600860ff0a60ff0a60045560086101010a60ff0a60055560086101000a6101010a600655600860ff0a6101010a60075560086101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x230041a0e7602d6e459609ed39081ec55c33085514ff7f000000000000000001",
+ "0x04" : "0xc407d8a413ef9079ead457ed686a05ac81039c0cae0a7f6afd01e8461ff800ff",
+ "0x05" : "0x67a397e0692385e4cd83853aabce220a94d449e885fa867e96d3ef5e180800ff",
+ "0x06" : "0x70add926e753655d6d0ebe9c0f81368fb921f7aa6aff81000000000000000001",
+ "0x07" : "0x0bdce80b8378e43f13d454b9d0a4c83cf311b8eaa45d5122cfd544a217f80101",
+ "0x08" : "0x629c25790e1488998877a9ecdf0fb69637e77d8a4bdc1b46270093ba20080101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a6101000a600055600860ff0a6101000a60015560086101010a6101000a60025560086101000a60ff0a600355600860ff0a60ff0a60045560086101010a60ff0a60055560086101000a6101010a600655600860ff0a6101010a60075560086101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256Of256_9" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60096101000a6101000a600055600960ff0a6101000a60015560096101010a6101000a60025560096101000a60ff0a600355600960ff0a60ff0a60045560096101010a60ff0a60055560096101000a6101010a600655600960ff0a6101010a60075560096101010a6101010a600855",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "7750",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a6101000a600055600960ff0a6101000a60015560096101010a6101000a60025560096101000a60ff0a600355600960ff0a60ff0a60045560096101010a60ff0a60055560096101000a6101010a600655600960ff0a6101010a60075560096101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ "0x03" : "0x53017d8eb210db2c8cd4a299079ec55c33085514ff7f00000000000000000001",
+ "0x04" : "0x48be09b6c6ae2aa660f1972125cecbb1038b5d236ecf766ba786e2c4e887feff",
+ "0x05" : "0x2e350d847ba73dc2099f83f532951c47269d9fd7e411b50bae00a9581f8900ff",
+ "0x06" : "0x013ab9e1f0df89a184b4d07080b68fb921f7aa6aff8100000000000000000001",
+ "0x07" : "0xf387ed41c1050f9da667f429a3e8fb30b61a55ede97d7b8acd797a03cd89ff01",
+ "0x08" : "0x525696c22bb3ce00fd2e3f6bbb9b4ea1046a5e31fcff2fedf8f8c74d28890101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a6101000a600055600960ff0a6101000a60015560096101010a6101000a60025560096101000a60ff0a600355600960ff0a60ff0a60045560096101010a60ff0a60055560096101000a6101010a600655600960ff0a6101010a60075560096101010a6101010a600855",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_1" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60016101000a600055600160ff0a60015560016101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a600055600160ff0a60015560016101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100",
+ "0x01" : "0xff",
+ "0x02" : "0x0101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60016101000a600055600160ff0a60015560016101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_10" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600a6101000a600055600a60ff0a600155600a6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a600055600a60ff0a600155600a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000",
+ "0x01" : "0xf62c88d104d1882cf601",
+ "0x02" : "0x010a2d78d2fcd2782d0a01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600a6101000a600055600a60ff0a600155600a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_11" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600b6101000a600055600b60ff0a600155600b6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a600055600b60ff0a600155600b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000",
+ "0x01" : "0xf5365c4833ccb6a4c90aff",
+ "0x02" : "0x010b37a64bcfcf4aa5370b01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600b6101000a600055600b60ff0a600155600b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_12" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600c6101000a600055600c60ff0a600155600c6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a600055600c60ff0a600155600c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000",
+ "0x01" : "0xf44125ebeb98e9ee2441f401",
+ "0x02" : "0x010c42ddf21b9f19efdc420c01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600c6101000a600055600c60ff0a600155600c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_13" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600d6101000a600055600d60ff0a600155600d6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a600055600d60ff0a600155600d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000",
+ "0x01" : "0xf34ce4c5ffad5104361db20cff",
+ "0x02" : "0x010d4f20d00dbab909cc1e4e0d01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600d6101000a600055600d60ff0a600155600d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_14" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600e6101000a600055600e60ff0a600155600e6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a600055600e60ff0a600155600e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000",
+ "0x01" : "0xf25997e139ada3b331e7945af201",
+ "0x02" : "0x010e5c6ff0ddc873c2d5ea6c5b0e01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600e6101000a600055600e60ff0a600155600e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_15" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600f6101000a600055600f60ff0a600155600f6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a600055600f60ff0a600155600f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000",
+ "0x01" : "0xf1673e495873f60f7eb5acc6970eff",
+ "0x02" : "0x010f6acc60cea63c3698c056c7690f01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600f6101000a600055600f60ff0a600155600f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_16" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60106101000a600055601060ff0a60015560106101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a600055601060ff0a60015560106101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000",
+ "0x01" : "0xf075d70b0f1b82196f36f719d077f001",
+ "0x02" : "0x01107a372d2f74e272cf59171e30781001"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60106101000a600055601060ff0a60015560106101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_17" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60116101000a600055601160ff0a60015560116101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a600055601160ff0a60015560116101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000",
+ "0x01" : "0xef856134040c669755c7c022b6a77810ff",
+ "0x02" : "0x01118ab1645ca45755422870354ea8881101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60116101000a600055601160ff0a60015560116101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_18" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60126101000a600055601260ff0a60015560126101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a600055601260ff0a60015560126101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000",
+ "0x01" : "0xee95dbd2d0085a30be71f86293f0d098ee01",
+ "0x02" : "0x01129c3c15c100fbac976a98a583f730991201"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60126101000a600055601260ff0a60015560126101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_19" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60136101000a600055601360ff0a60015560136101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a600055601360ff0a60015560136101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000",
+ "0x01" : "0xeda745f6fd3851d68db3866a315cdfc85512ff",
+ "0x02" : "0x0113aed851d6c1fca84402033e297b27c9ab1301"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60136101000a600055601360ff0a60015560136101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60026101000a600055600260ff0a60015560026101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a600055600260ff0a60015560026101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000",
+ "0x01" : "0xfe01",
+ "0x02" : "0x010201"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60026101000a600055600260ff0a60015560026101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_20" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60146101000a600055601460ff0a60015560146101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a600055601460ff0a60015560146101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000",
+ "0x01" : "0xecb99eb1063b1984b725d2e3c72b82e88cbdec01",
+ "0x02" : "0x0114c2872a2898bea4ec46054167a4a2f174be1401"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60146101000a600055601460ff0a60015560146101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_21" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60156101000a600055601560ff0a60015560156101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a600055601560ff0a60015560156101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000",
+ "0x01" : "0xebcce5125534de6b326ead10e3645765a4312e14ff",
+ "0x02" : "0x0115d749b152c1576391324b46a90c47946632d21501"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60156101000a600055601560ff0a60015560156101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_22" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60166101000a600055601660ff0a60015560166101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a600055601660ff0a60015560166101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000",
+ "0x01" : "0xeae1182d42dfa98cc73c3e63d280f30e3e8cfce6ea01",
+ "0x02" : "0x0116ed20fb041418baf4c37d91efb553dbfa9904e71601"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60166101000a600055601660ff0a60015560166101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_23" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60176101000a600055601760ff0a60015560176101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a600055601760ff0a60015560176101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000000000",
+ "0x01" : "0xe9f63715159cc9e33a7502256eae721b304e6fea0316ff",
+ "0x02" : "0x0118040e1bff182cd3afb8410f81a5092fd6939debfd1701"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60176101000a600055601760ff0a60015560176101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_24" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60186101000a600055601860ff0a60015560186101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a600055601860ff0a60015560186101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe90c40de00872d19573a8d23493fc3a9151e217a1913e801",
+ "0x02" : "0x01191c122a1b1745008367f9509126ae39066a3189e9141801"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60186101000a600055601860ff0a60015560186101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_25" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60196101000a600055601960ff0a60015560196101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a600055601960ff0a60015560196101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe823349d2286a5ec3de3529625f683e56c0903589efad418ff",
+ "0x02" : "0x011a352e3c45325c4583eb6149e1b7d4e73f709bbb72fd2c1901"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60196101000a600055601960ff0a60015560196101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_26" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601a6101000a600055601a60ff0a600155601a6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a600055601a60ff0a600155601a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe73b116885641f4651a56f438fd08d61869cfa55465bd944e601",
+ "0x02" : "0x011b4f636a81778ea1c96f4cab2b998cbc26b00c572e7029451a01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601a6101000a600055601a60ff0a600155601a6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_27" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601b6101000a600055601b60ff0a600155601b6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a600055601b60ff0a600155601b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe653d6571cdebb270b53c9d44c40bcd425165d5af1157d6ba11aff",
+ "0x02" : "0x011c6ab2cdebf906306b38bbf7d6c52648e2d6bc63859e996e5f1b01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601b6101000a600055601b60ff0a600155601b6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_28" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601c6101000a600055601c60ff0a600155601c6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a600055601c60ff0a600155601c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe56d8280c5c1dc6be448760a77f47c1750f146fd962467ee3579e401",
+ "0x02" : "0x011d871d80b9e4ff369ba3f4b3ce9beb6f2bb9931fe9243807cd7a1c01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601c6101000a600055601c60ff0a600155601c6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_29" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601d6101000a600055601d60ff0a600155601d6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a600055601d60ff0a600155601d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe48814fe44fc1a8f78642d946d7c879b39a055b6988e438647446a1cff",
+ "0x02" : "0x011ea4a49e3a9ee435d23f98a8826a875a9ae54cb3090d5c3fd547961d01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601d6101000a600055601d60ff0a600155601d6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_3" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60036101000a600055600360ff0a60015560036101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a600055600360ff0a60015560036101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000",
+ "0x01" : "0xfd02ff",
+ "0x02" : "0x01030301"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60036101000a600055600360ff0a60015560036101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_30" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601e6101000a600055601e60ff0a600155601e6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a600055601e60ff0a600155601e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe3a38ce946b71e74e8ebc966d90f0b139e66b560e1f5b542c0fd25b2e201",
+ "0x02" : "0x011fc34942d8d9831a0811d8412aecf1e1f58031ffbc16699c151cddb31e01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601e6101000a600055601e60ff0a600155601e6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_31" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601f6101000a600055601f60ff0a600155601f6101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a600055601f60ff0a600155601f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x01" : "0xe2bfe95c5d7067567402dd9d7235fc088ac84eab8113bf8d7e3c288d2f1eff",
+ "0x02" : "0x0120e30c8c1bb25c9d2219ea196c17ded3d775b231bbd28005b131fa90d11f01"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601f6101000a600055601f60ff0a600155601f6101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_32" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60206101000a600055602060ff0a60015560206101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9285",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a600055602060ff0a60015560206101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x01" : "0xe1dd29730112f6ef1d8edabfd4c3c60c823d865cd592abcdf0bdec64a1efe001",
+ "0x02" : "0x2203ef98a7ce0ef9bf3c04038583f6b2ab4d27e3ed8e5285b6e32c8b61f02001"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60206101000a600055602060ff0a60015560206101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_33" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60216101000a600055602160ff0a60015560216101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9285",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a600055602160ff0a60015560216101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x01" : "0xfb4c498e11e3f82e714be514ef024675bb48d678bd192222cd2e783d4df020ff",
+ "0x02" : "0x25f3884075dd08b8fb400789097aa95df8750bd17be0d83c9a0fb7ed52102101"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60216101000a600055602160ff0a60015560216101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_4" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60046101000a600055600460ff0a60015560046101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a600055600460ff0a60015560046101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000",
+ "0x01" : "0xfc05fc01",
+ "0x02" : "0x0104060401"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60046101000a600055600460ff0a60015560046101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_5" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60056101000a600055600560ff0a60015560056101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a600055600560ff0a60015560056101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000",
+ "0x01" : "0xfb09f604ff",
+ "0x02" : "0x01050a0a0501"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60056101000a600055600560ff0a60015560056101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_6" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60066101000a600055600660ff0a60015560066101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a600055600660ff0a60015560066101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000",
+ "0x01" : "0xfa0eec0efa01",
+ "0x02" : "0x01060f140f0601"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60066101000a600055600660ff0a60015560066101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_7" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60076101000a600055600760ff0a60015560076101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a600055600760ff0a60015560076101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000",
+ "0x01" : "0xf914dd22eb06ff",
+ "0x02" : "0x0107152323150701"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60076101000a600055600760ff0a60015560076101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_8" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60086101000a600055600860ff0a60015560086101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a600055600860ff0a60015560086101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000",
+ "0x01" : "0xf81bc845c81bf801",
+ "0x02" : "0x01081c3846381c0801"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60086101000a600055600860ff0a60015560086101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf256_9" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x60096101000a600055600960ff0a60015560096101010a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a600055600960ff0a60015560096101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x01000000000000000000",
+ "0x01" : "0xf723ac7d8253dc08ff",
+ "0x02" : "0x010924547e7e54240901"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x60096101000a600055600960ff0a60015560096101010a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_128" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x608060020a600055607f60020a600155608160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x608060020a600055607f60020a600155608160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000000000000000000000000000",
+ "0x01" : "0x80000000000000000000000000000000",
+ "0x02" : "0x0200000000000000000000000000000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x608060020a600055607f60020a600155608160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_16" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x601060020a600055600f60020a600155601160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601060020a600055600f60020a600155601160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000",
+ "0x01" : "0x8000",
+ "0x02" : "0x020000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x601060020a600055600f60020a600155601160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_2" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600260020a600055600160020a600155600360020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600260020a600055600160020a600155600360020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x04",
+ "0x01" : "0x02",
+ "0x02" : "0x08"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600260020a600055600160020a600155600360020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_256" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x61010060020a60005560ff60020a60015561010160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9483",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61010060020a60005560ff60020a60015561010160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x01" : "0x8000000000000000000000000000000000000000000000000000000000000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x61010060020a60005560ff60020a60015561010160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_32" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x602060020a600055601f60020a600155602160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x602060020a600055601f60020a600155602160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100000000",
+ "0x01" : "0x80000000",
+ "0x02" : "0x0200000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x602060020a600055601f60020a600155602160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_4" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600460020a600055600360020a600155600560020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600460020a600055600360020a600155600560020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x10",
+ "0x01" : "0x08",
+ "0x02" : "0x20"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600460020a600055600360020a600155600560020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_64" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x604060020a600055603f60020a600155604160020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x604060020a600055603f60020a600155604160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x010000000000000000",
+ "0x01" : "0x8000000000000000",
+ "0x02" : "0x020000000000000000"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x604060020a600055603f60020a600155604160020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
+ "expPowerOf2_8" : {
+ "callcreates" : [
+ ],
+ "env" : {
+ "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "currentDifficulty" : "256",
+ "currentGasLimit" : "1000000",
+ "currentNumber" : "0",
+ "currentTimestamp" : "1",
+ "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
+ },
+ "exec" : {
+ "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
+ "caller" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "code" : "0x600860020a600055600760020a600155600960020a600255",
+ "data" : "0x",
+ "gas" : "10000",
+ "gasPrice" : "100000000000000",
+ "origin" : "cd1722f2947def4cf144679da39c4c32bdc35681",
+ "value" : "1000000000000000000"
+ },
+ "gas" : "9085",
+ "logs" : [
+ ],
+ "out" : "0x",
+ "post" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600860020a600055600760020a600155600960020a600255",
+ "nonce" : "0",
+ "storage" : {
+ "0x" : "0x0100",
+ "0x01" : "0x80",
+ "0x02" : "0x0200"
+ }
+ }
+ },
+ "pre" : {
+ "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
+ "balance" : "1000000000000000000",
+ "code" : "0x600860020a600055600760020a600155600960020a600255",
+ "nonce" : "0",
+ "storage" : {
+ }
+ }
+ }
+ },
"mod0" : {
"callcreates" : [
],
@@ -3258,4 +6886,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/tests/files/VMTests/vmIOandFlowOperationsTest.json b/tests/files/VMTests/vmIOandFlowOperationsTest.json
index 1209770864..24adc9d5dc 100644
--- a/tests/files/VMTests/vmIOandFlowOperationsTest.json
+++ b/tests/files/VMTests/vmIOandFlowOperationsTest.json
@@ -135,8 +135,6 @@
}
},
"jump0" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -155,20 +153,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9696",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x60236007566001600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -254,8 +238,6 @@
}
},
"jump0_jumpdest1" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -274,20 +256,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9696",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x602360085660015b600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -402,8 +370,6 @@
}
},
"jumpi0" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -422,20 +388,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9695",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x602360016009576001600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -492,8 +444,6 @@
}
},
"jumpi1_jumpdest" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -512,20 +462,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9695",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x60236001600a5760015b600255",
- "nonce" : "0",
- "storage" : {
- "0x02" : "0x23"
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
@@ -537,8 +473,6 @@
}
},
"jumpi2" : {
- "callcreates" : [
- ],
"env" : {
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"currentDifficulty" : "256",
@@ -557,19 +491,6 @@
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
"value" : "1000000000000000000"
},
- "gas" : "9997",
- "logs" : [
- ],
- "out" : "0x",
- "post" : {
- "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
- "balance" : "1000000000000000000",
- "code" : "0x60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff576002600355",
- "nonce" : "0",
- "storage" : {
- }
- }
- },
"pre" : {
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
"balance" : "1000000000000000000",
diff --git a/tests/files/index.js b/tests/files/index.js
index 34a03d8b2b..99c19aa132 100644
--- a/tests/files/index.js
+++ b/tests/files/index.js
@@ -4,8 +4,11 @@ module.exports = {
hexencode: require('./BasicTests/hexencodetest'),
keyaddrtests: require('./BasicTests/keyaddrtest'),
rlptest: require('./BasicTests/rlptest'),
- trietest: require('./TrieTests/trietest'),
- trietestnextprev: require('./TrieTests/trietestnextprev'),
+ trieTests: {
+ trietest: require('./TrieTests/trietest'),
+ trietestnextprev: require('./TrieTests/trietestnextprev'),
+ trieanyorder: require('./TrieTests/trieanyorder')
+ },
txtest: require('./BasicTests/txtest'),
StateTests: {
stExample: require('./StateTests/stExample.json'),
@@ -13,6 +16,7 @@ module.exports = {
stLogTests: require('./StateTests/stLogTests.json'),
stPreCompiledContracts: require('./StateTests/stPreCompiledContracts'),
stRecursiveCreate: require('./StateTests/stRecursiveCreate'),
+ stRefundTest: require('./StateTests/stRefundTest'),
stSpecial: require('./StateTests/stSpecialTest'),
stSystemOperationsTest: require('./StateTests/stSystemOperationsTest'),
stTransactionTest: require('./StateTests/stTransactionTest')
diff --git a/tests/helper/trie.go b/tests/helper/trie.go
index 32432cc7a5..3cfb0bbe5e 100644
--- a/tests/helper/trie.go
+++ b/tests/helper/trie.go
@@ -1,6 +1,6 @@
package helper
-import "github.com/ethereum/go-ethereum/trie"
+import "github.com/ethereum/go-ethereum/ptrie"
type MemDatabase struct {
db map[string][]byte
@@ -24,8 +24,8 @@ func (db *MemDatabase) Print() {}
func (db *MemDatabase) Close() {}
func (db *MemDatabase) LastKnownTD() []byte { return nil }
-func NewTrie() *trie.Trie {
+func NewTrie() *ptrie.Trie {
db, _ := NewMemDatabase()
- return trie.New(db, "")
+ return ptrie.New(nil, db)
}
diff --git a/tests/helper/vm.go b/tests/helper/vm.go
index e174e0892e..123003faa3 100644
--- a/tests/helper/vm.go
+++ b/tests/helper/vm.go
@@ -55,9 +55,11 @@ func (self *Env) PrevHash() []byte { return self.parent }
func (self *Env) Coinbase() []byte { return self.coinbase }
func (self *Env) Time() int64 { return self.time }
func (self *Env) Difficulty() *big.Int { return self.difficulty }
-func (self *Env) BlockHash() []byte { return nil }
func (self *Env) State() *state.StateDB { return self.state }
func (self *Env) GasLimit() *big.Int { return self.gasLimit }
+func (self *Env) GetHash(n uint64) []byte {
+ return nil
+}
func (self *Env) AddLog(log state.Log) {
self.logs = append(self.logs, log)
}
@@ -74,19 +76,19 @@ func (self *Env) vm(addr, data []byte, gas, price, value *big.Int) *core.Executi
return exec
}
-func (self *Env) Call(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *Env) Call(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
ret, err := exe.Call(addr, caller)
self.Gas = exe.Gas
return ret, err
}
-func (self *Env) CallCode(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *Env) CallCode(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(caller.Address(), data, gas, price, value)
return exe.Call(addr, caller)
}
-func (self *Env) Create(caller vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *Env) Create(caller vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(caller)
}
@@ -126,10 +128,9 @@ func RunState(statedb *state.StateDB, env, tx map[string]string) ([]byte, state.
message := NewMessage(keyPair.Address(), to, data, value, gas, price)
Log.DebugDetailf("message{ to: %x, from %x, value: %v, gas: %v, price: %v }\n", message.to[:4], message.from[:4], message.value, message.gas, message.price)
- st := core.NewStateTransition(coinbase, message, statedb, nil)
vmenv := NewEnvFromMap(statedb, env, tx)
+ st := core.NewStateTransition(vmenv, message, coinbase)
vmenv.origin = keyPair.Address()
- st.Env = vmenv
ret, err := st.TransitionState()
statedb.Update(vmenv.Gas)
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index 1efda7fe00..698b0aefc2 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -78,6 +78,12 @@ func RunVmTest(p string, t *testing.T) {
helper.CreateFileTests(t, p, &tests)
for name, test := range tests {
+ /*
+ helper.Logger.SetLogLevel(5)
+ if name != "jump0_jumpdest2" {
+ continue
+ }
+ */
statedb := state.New(helper.NewTrie())
for addr, account := range test.Pre {
obj := StateObjectFromAccount(addr, account)
@@ -107,16 +113,17 @@ func RunVmTest(p string, t *testing.T) {
logs state.Logs
)
- if len(test.Exec) > 0 {
+ isVmTest := len(test.Exec) > 0
+ if isVmTest {
ret, logs, gas, err = helper.RunVm(statedb, env, test.Exec)
} else {
ret, logs, gas, err = helper.RunState(statedb, env, test.Transaction)
}
- // When an error is returned it doesn't always mean the tests fails.
- // Have to come up with some conditional failing mechanism.
+ // Log the error if there is one. Error does not mean failing test.
+ // A test fails if err != nil and post params are specified in the test.
if err != nil {
- helper.Log.Infoln(err)
+ helper.Log.Infof("%s's: %v\n", name, err)
}
rexp := helper.FromHex(test.Out)
@@ -124,10 +131,14 @@ func RunVmTest(p string, t *testing.T) {
t.Errorf("%s's return failed. Expected %x, got %x\n", name, rexp, ret)
}
- if len(test.Gas) > 0 {
- gexp := ethutil.Big(test.Gas)
- if gexp.Cmp(gas) != 0 {
- t.Errorf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas)
+ if isVmTest {
+ if len(test.Gas) == 0 && err == nil {
+ t.Errorf("%s's gas unspecified, indicating an error. VM returned (incorrectly) successfull", name)
+ } else {
+ gexp := ethutil.Big(test.Gas)
+ if gexp.Cmp(gas) != 0 {
+ t.Errorf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas)
+ }
}
}
@@ -154,7 +165,6 @@ func RunVmTest(p string, t *testing.T) {
}
if len(test.Logs) > 0 {
- // Logs within the test itself aren't correct, missing empty fields (32 0s)
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)) {
diff --git a/ui/qt/qwhisper/message.go b/ui/qt/qwhisper/message.go
new file mode 100644
index 0000000000..c876473996
--- /dev/null
+++ b/ui/qt/qwhisper/message.go
@@ -0,0 +1,23 @@
+package qwhisper
+
+import (
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/ethutil"
+ "github.com/ethereum/go-ethereum/whisper"
+)
+
+type Message struct {
+ ref *whisper.Message
+ Flags int32
+ Payload string
+ From string
+}
+
+func ToQMessage(msg *whisper.Message) *Message {
+ return &Message{
+ ref: msg,
+ Flags: int32(msg.Flags),
+ Payload: ethutil.Bytes2Hex(msg.Payload),
+ From: ethutil.Bytes2Hex(crypto.FromECDSAPub(msg.Recover())),
+ }
+}
diff --git a/ui/qt/qwhisper/watch.go b/ui/qt/qwhisper/watch.go
new file mode 100644
index 0000000000..0ccedc7194
--- /dev/null
+++ b/ui/qt/qwhisper/watch.go
@@ -0,0 +1,13 @@
+package qwhisper
+
+import (
+ "fmt"
+ "unsafe"
+)
+
+type Watch struct {
+}
+
+func (self *Watch) Arrived(v unsafe.Pointer) {
+ fmt.Println(v)
+}
diff --git a/ui/qt/qwhisper/whisper.go b/ui/qt/qwhisper/whisper.go
index 8f05c06953..0627acd298 100644
--- a/ui/qt/qwhisper/whisper.go
+++ b/ui/qt/qwhisper/whisper.go
@@ -3,7 +3,6 @@ package qwhisper
import (
"fmt"
"time"
- "unsafe"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethutil"
@@ -19,13 +18,6 @@ func fromHex(s string) []byte {
}
func toHex(b []byte) string { return "0x" + ethutil.Bytes2Hex(b) }
-type Watch struct {
-}
-
-func (self *Watch) Arrived(v unsafe.Pointer) {
- fmt.Println(v)
-}
-
type Whisper struct {
*whisper.Whisper
view qml.Object
@@ -41,9 +33,14 @@ func (self *Whisper) SetView(view qml.Object) {
self.view = view
}
-func (self *Whisper) Post(data string, to, from string, topics []string, pow, ttl uint32) {
- msg := whisper.NewMessage(fromHex(data))
- envelope, err := msg.Seal(time.Duration(pow), whisper.Opts{
+func (self *Whisper) Post(payload []string, to, from string, topics []string, priority, ttl uint32) {
+ var data []byte
+ for _, d := range payload {
+ data = append(data, fromHex(d)...)
+ }
+
+ msg := whisper.NewMessage(data)
+ envelope, err := msg.Seal(time.Duration(priority*100000), whisper.Opts{
Ttl: time.Duration(ttl),
To: crypto.ToECDSAPub(fromHex(to)),
From: crypto.ToECDSA(fromHex(from)),
@@ -70,15 +67,19 @@ func (self *Whisper) HasIdentity(key string) bool {
return self.Whisper.HasIdentity(crypto.ToECDSA(fromHex(key)))
}
-func (self *Whisper) Watch(opts map[string]interface{}) *Watch {
+func (self *Whisper) Watch(opts map[string]interface{}, view *qml.Common) int {
filter := filterFromMap(opts)
+ var i int
filter.Fn = func(msg *whisper.Message) {
- fmt.Println(msg)
+ if view != nil {
+ view.Call("onShhMessage", ToQMessage(msg), i)
+ }
}
- i := self.Whisper.Watch(filter)
+
+ i = self.Whisper.Watch(filter)
self.watches[i] = &Watch{}
- return self.watches[i]
+ return i
}
func filterFromMap(opts map[string]interface{}) (f whisper.Filter) {
diff --git a/vm/analysis.go b/vm/analysis.go
index fef448b7ba..411df56861 100644
--- a/vm/analysis.go
+++ b/vm/analysis.go
@@ -1,34 +1,19 @@
package vm
-import (
- "math/big"
+import "gopkg.in/fatih/set.v0"
- "github.com/ethereum/go-ethereum/ethutil"
-)
+func analyseJumpDests(code []byte) (dests *set.Set) {
+ dests = set.New()
-func analyseJumpDests(code []byte) (dests map[uint64]*big.Int) {
- dests = make(map[uint64]*big.Int)
-
- lp := false
- var lpv *big.Int
for pc := uint64(0); pc < uint64(len(code)); pc++ {
var op OpCode = OpCode(code[pc])
switch op {
case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32:
a := uint64(op) - uint64(PUSH1) + 1
- if uint64(len(code)) > pc+1+a {
- lpv = ethutil.BigD(code[pc+1 : pc+1+a])
- }
pc += a
- lp = true
- case JUMP, JUMPI:
- if lp {
- dests[pc] = lpv
- }
-
- default:
- lp = false
+ case JUMPDEST:
+ dests.Add(pc)
}
}
return
diff --git a/vm/closure.go b/vm/closure.go
deleted file mode 100644
index 97b31ada04..0000000000
--- a/vm/closure.go
+++ /dev/null
@@ -1,107 +0,0 @@
-package vm
-
-import (
- "math/big"
-
- "github.com/ethereum/go-ethereum/state"
-)
-
-type ClosureRef interface {
- ReturnGas(*big.Int, *big.Int)
- Address() []byte
- SetCode([]byte)
-}
-
-type Closure struct {
- caller ClosureRef
- object ClosureRef
- Code []byte
- message *state.Message
-
- Gas, UsedGas, Price *big.Int
-
- Args []byte
-}
-
-// Create a new closure for the given data items
-func NewClosure(msg *state.Message, caller ClosureRef, object ClosureRef, code []byte, gas, price *big.Int) *Closure {
- c := &Closure{message: msg, caller: caller, object: object, Code: code, Args: nil}
-
- // Gas should be a pointer so it can safely be reduced through the run
- // This pointer will be off the state transition
- c.Gas = gas //new(big.Int).Set(gas)
- // In most cases price and value are pointers to transaction objects
- // and we don't want the transaction's values to change.
- c.Price = new(big.Int).Set(price)
- c.UsedGas = new(big.Int)
-
- return c
-}
-
-func (c *Closure) GetOp(x uint64) OpCode {
- return OpCode(c.GetByte(x))
-}
-
-func (c *Closure) GetByte(x uint64) byte {
- if x < uint64(len(c.Code)) {
- return c.Code[x]
- }
-
- return 0
-}
-
-func (c *Closure) GetBytes(x, y int) []byte {
- if x >= len(c.Code) || y >= len(c.Code) {
- return nil
- }
-
- return c.Code[x : x+y]
-}
-
-func (c *Closure) GetRangeValue(x, y uint64) []byte {
- if x >= uint64(len(c.Code)) || y >= uint64(len(c.Code)) {
- return nil
- }
-
- return c.Code[x : x+y]
-}
-
-func (c *Closure) Return(ret []byte) []byte {
- // Return the remaining gas to the caller
- c.caller.ReturnGas(c.Gas, c.Price)
-
- return ret
-}
-
-/*
- * Gas functions
- */
-func (c *Closure) UseGas(gas *big.Int) bool {
- if c.Gas.Cmp(gas) < 0 {
- return false
- }
-
- // Sub the amount of gas from the remaining
- c.Gas.Sub(c.Gas, gas)
- c.UsedGas.Add(c.UsedGas, gas)
-
- return true
-}
-
-// Implement the caller interface
-func (c *Closure) ReturnGas(gas, price *big.Int) {
- // Return the gas to the closure
- c.Gas.Add(c.Gas, gas)
- c.UsedGas.Sub(c.UsedGas, gas)
-}
-
-/*
- * Set / Get
- */
-func (c *Closure) Address() []byte {
- return c.object.Address()
-}
-
-func (self *Closure) SetCode(code []byte) {
- self.Code = code
-}
diff --git a/vm/context.go b/vm/context.go
new file mode 100644
index 0000000000..d14df1aa77
--- /dev/null
+++ b/vm/context.go
@@ -0,0 +1,102 @@
+package vm
+
+import (
+ "math"
+ "math/big"
+
+ "github.com/ethereum/go-ethereum/ethutil"
+)
+
+type ContextRef interface {
+ ReturnGas(*big.Int, *big.Int)
+ Address() []byte
+ SetCode([]byte)
+}
+
+type Context struct {
+ caller ContextRef
+ object ContextRef
+ Code []byte
+
+ Gas, UsedGas, Price *big.Int
+
+ Args []byte
+}
+
+// Create a new context for the given data items
+func NewContext(caller ContextRef, object ContextRef, code []byte, gas, price *big.Int) *Context {
+ c := &Context{caller: caller, object: object, Code: code, Args: nil}
+
+ // Gas should be a pointer so it can safely be reduced through the run
+ // This pointer will be off the state transition
+ c.Gas = gas //new(big.Int).Set(gas)
+ // In most cases price and value are pointers to transaction objects
+ // and we don't want the transaction's values to change.
+ c.Price = new(big.Int).Set(price)
+ c.UsedGas = new(big.Int)
+
+ return c
+}
+
+func (c *Context) GetOp(n uint64) OpCode {
+ return OpCode(c.GetByte(n))
+}
+
+func (c *Context) GetByte(n uint64) byte {
+ if n < uint64(len(c.Code)) {
+ return c.Code[n]
+ }
+
+ return 0
+}
+
+func (c *Context) GetBytes(x, y int) []byte {
+ return c.GetRangeValue(uint64(x), uint64(y))
+}
+
+func (c *Context) GetRangeValue(x, size uint64) []byte {
+ x = uint64(math.Min(float64(x), float64(len(c.Code))))
+ y := uint64(math.Min(float64(x+size), float64(len(c.Code))))
+
+ return ethutil.LeftPadBytes(c.Code[x:y], int(size))
+}
+
+func (c *Context) Return(ret []byte) []byte {
+ // Return the remaining gas to the caller
+ c.caller.ReturnGas(c.Gas, c.Price)
+
+ return ret
+}
+
+/*
+ * Gas functions
+ */
+func (c *Context) UseGas(gas *big.Int) bool {
+ if c.Gas.Cmp(gas) < 0 {
+ return false
+ }
+
+ // Sub the amount of gas from the remaining
+ c.Gas.Sub(c.Gas, gas)
+ c.UsedGas.Add(c.UsedGas, gas)
+
+ return true
+}
+
+// Implement the caller interface
+func (c *Context) ReturnGas(gas, price *big.Int) {
+ // Return the gas to the context
+ c.Gas.Add(c.Gas, gas)
+ c.UsedGas.Sub(c.UsedGas, gas)
+}
+
+/*
+ * Set / Get
+ */
+func (c *Context) Address() []byte {
+ return c.object.Address()
+}
+
+func (self *Context) SetCode(code []byte) {
+ self.Code = code
+}
diff --git a/vm/environment.go b/vm/environment.go
index d77fb14193..8ec13ee412 100644
--- a/vm/environment.go
+++ b/vm/environment.go
@@ -2,6 +2,7 @@ package vm
import (
"errors"
+ "fmt"
"math/big"
"github.com/ethereum/go-ethereum/ethutil"
@@ -13,11 +14,10 @@ type Environment interface {
Origin() []byte
BlockNumber() *big.Int
- PrevHash() []byte
+ GetHash(n uint64) []byte
Coinbase() []byte
Time() int64
Difficulty() *big.Int
- BlockHash() []byte
GasLimit() *big.Int
Transfer(from, to Account, amount *big.Int) error
AddLog(state.Log)
@@ -25,14 +25,9 @@ type Environment interface {
Depth() int
SetDepth(i int)
- Call(me ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
- CallCode(me ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
- Create(me ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, ClosureRef)
-}
-
-type Object interface {
- GetStorage(key *big.Int) *ethutil.Value
- SetStorage(key *big.Int, value *ethutil.Value)
+ Call(me ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
+ CallCode(me ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error)
+ Create(me ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, ContextRef)
}
type Account interface {
@@ -74,3 +69,7 @@ func (self *Log) Data() []byte {
func (self *Log) RlpData() interface{} {
return []interface{}{self.address, ethutil.ByteSliceToInterface(self.topics), self.data}
}
+
+func (self *Log) String() string {
+ return fmt.Sprintf("[A=%x T=%x D=%x]", self.address, self.topics, self.data)
+}
diff --git a/vm/stack.go b/vm/stack.go
index 6091479cb7..b9eaa10cd4 100644
--- a/vm/stack.go
+++ b/vm/stack.go
@@ -91,6 +91,12 @@ func (st *Stack) Get(amount *big.Int) []*big.Int {
return nil
}
+func (st *Stack) require(n int) {
+ if st.Len() < n {
+ panic(fmt.Sprintf("stack underflow (%d <=> %d)", st.Len(), n))
+ }
+}
+
func (st *Stack) Print() {
fmt.Println("### stack ###")
if len(st.data) > 0 {
diff --git a/vm/types.go b/vm/types.go
index ec9c7e74e6..1ea80a212d 100644
--- a/vm/types.go
+++ b/vm/types.go
@@ -59,7 +59,7 @@ const (
const (
// 0x40 range - block operations
- PREVHASH OpCode = 0x40 + iota
+ BLOCKHASH OpCode = 0x40 + iota
COINBASE
TIMESTAMP
NUMBER
@@ -216,7 +216,7 @@ var opCodeToString = map[OpCode]string{
GASPRICE: "TXGASPRICE",
// 0x40 range - block operations
- PREVHASH: "PREVHASH",
+ BLOCKHASH: "BLOCKHASH",
COINBASE: "COINBASE",
TIMESTAMP: "TIMESTAMP",
NUMBER: "NUMBER",
diff --git a/vm/virtual_machine.go b/vm/virtual_machine.go
index 3b6f98ab2e..23ac4878f6 100644
--- a/vm/virtual_machine.go
+++ b/vm/virtual_machine.go
@@ -4,7 +4,7 @@ import "math/big"
type VirtualMachine interface {
Env() Environment
- Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, data []byte) ([]byte, error)
+ Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, data []byte) ([]byte, error)
Printf(string, ...interface{}) VirtualMachine
Endl() VirtualMachine
}
diff --git a/vm/vm.go b/vm/vm.go
index 22172cb3ae..a5ea297b32 100644
--- a/vm/vm.go
+++ b/vm/vm.go
@@ -20,7 +20,7 @@ func New(env Environment, typ Type) VirtualMachine {
}
}
-func (self *Vm) Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, data []byte) (ret []byte, err error) {
+func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, data []byte) (ret []byte, err error) {
panic("not implemented")
}
diff --git a/vm/vm_debug.go b/vm/vm_debug.go
index fd16a3895e..92e4154e4f 100644
--- a/vm/vm_debug.go
+++ b/vm/vm_debug.go
@@ -37,31 +37,27 @@ func NewDebugVm(env Environment) *DebugVm {
return &DebugVm{env: env, logTy: lt, Recoverable: true}
}
-func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
+func (self *DebugVm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
self.env.SetDepth(self.env.Depth() + 1)
msg := self.env.State().Manifest().AddMessage(&state.Message{
To: me.Address(), From: caller.Address(),
- Input: callData,
- Origin: self.env.Origin(),
- Block: self.env.BlockHash(), Timestamp: self.env.Time(), Coinbase: self.env.Coinbase(), Number: self.env.BlockNumber(),
+ Input: callData,
+ Origin: self.env.Origin(),
+ Timestamp: self.env.Time(), Coinbase: self.env.Coinbase(), Number: self.env.BlockNumber(),
Value: value,
})
- closure := NewClosure(msg, caller, me, code, gas, price)
-
- if p := Precompiled[string(me.Address())]; p != nil {
- return self.RunPrecompiled(p, callData, closure)
- }
+ context := NewContext(caller, me, code, gas, price)
if self.Recoverable {
// Recover from any require exception
defer func() {
if r := recover(); r != nil {
- self.Endl()
+ self.Printf(" %v", r).Endl()
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- ret = closure.Return(nil)
+ ret = context.Return(nil)
err = fmt.Errorf("%v", r)
@@ -69,52 +65,43 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}()
}
+ if p := Precompiled[string(me.Address())]; p != nil {
+ return self.RunPrecompiled(p, callData, context)
+ }
+
var (
op OpCode
- destinations = analyseJumpDests(closure.Code)
+ destinations = analyseJumpDests(context.Code)
mem = NewMemory()
stack = NewStack()
pc uint64 = 0
step = 0
prevStep = 0
statedb = self.env.State()
- require = func(m int) {
- if stack.Len() < m {
- panic(fmt.Sprintf("%04v (%v) stack err size = %d, required = %d", pc, op, stack.Len(), m))
- }
- }
jump = func(from uint64, to *big.Int) {
p := to.Uint64()
- self.Printf(" ~> %v", to)
- // Return to start
- if p == 0 {
- pc = 0
- } else {
- nop := OpCode(closure.GetOp(p))
- if !(nop == JUMPDEST || destinations[from] != nil) {
- panic(fmt.Sprintf("invalid jump destination (%v) %v", nop, p))
- } else if nop == JUMP || nop == JUMPI {
- panic(fmt.Sprintf("not allowed to JUMP(I) in to JUMP"))
- }
-
- pc = to.Uint64()
-
+ nop := context.GetOp(p)
+ if !destinations.Has(p) {
+ panic(fmt.Sprintf("invalid jump destination (%v) %v", nop, p))
}
+ self.Printf(" ~> %v", to)
+ pc = to.Uint64()
+
self.Endl()
}
)
+ vmlogger.Debugf("(%d) (%x) %x (code=%d) gas: %v (d) %x\n", self.env.Depth(), caller.Address()[:4], context.Address(), len(code), context.Gas, callData)
+
// Don't bother with the execution if there's no code.
if len(code) == 0 {
- return closure.Return(nil), nil
+ return context.Return(nil), nil
}
- vmlogger.Debugf("(%d) (%x) %x gas: %v (d) %x\n", self.env.Depth(), caller.Address()[:4], closure.Address(), closure.Gas, callData)
-
for {
prevStep = step
// The base for all big integer arithmetic
@@ -122,165 +109,22 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
step++
// Get the memory location of pc
- op = closure.GetOp(pc)
+ op = context.GetOp(pc)
- gas := new(big.Int)
- addStepGasUsage := func(amount *big.Int) {
- if amount.Cmp(ethutil.Big0) >= 0 {
- gas.Add(gas, amount)
- }
- }
+ self.Printf("(pc) %-3d -o- %-14s (m) %-4d (s) %-4d ", pc, op.String(), mem.Len(), stack.Len())
- addStepGasUsage(GasStep)
+ newMemSize, gas := self.calculateGasAndSize(context, caller, op, statedb, mem, stack)
- var newMemSize *big.Int = ethutil.Big0
- // Stack Check, memory resize & gas phase
- switch op {
- // Stack checks only
- case ISZERO, CALLDATALOAD, POP, JUMP, NOT: // 1
- require(1)
- case ADD, SUB, DIV, SDIV, MOD, SMOD, LT, GT, SLT, SGT, EQ, AND, OR, XOR, BYTE: // 2
- require(2)
- case ADDMOD, MULMOD: // 3
- require(3)
- case SWAP1, SWAP2, SWAP3, SWAP4, SWAP5, SWAP6, SWAP7, SWAP8, SWAP9, SWAP10, SWAP11, SWAP12, SWAP13, SWAP14, SWAP15, SWAP16:
- n := int(op - SWAP1 + 2)
- require(n)
- case DUP1, DUP2, DUP3, DUP4, DUP5, DUP6, DUP7, DUP8, DUP9, DUP10, DUP11, DUP12, DUP13, DUP14, DUP15, DUP16:
- n := int(op - DUP1 + 1)
- require(n)
- case LOG0, LOG1, LOG2, LOG3, LOG4:
- n := int(op - LOG0)
- require(n + 2)
+ self.Printf("(g) %-3v (%v)", gas, context.Gas)
- gas.Set(GasLog)
- addStepGasUsage(new(big.Int).Mul(big.NewInt(int64(n)), GasLog))
-
- mSize, mStart := stack.Peekn()
- addStepGasUsage(mSize)
-
- newMemSize = calcMemSize(mStart, mSize)
- case EXP:
- require(2)
-
- gas.Set(big.NewInt(int64(len(stack.data[stack.Len()-2].Bytes()) + 1)))
- // Gas only
- case STOP:
- gas.Set(ethutil.Big0)
- case SUICIDE:
- require(1)
-
- gas.Set(ethutil.Big0)
- case SLOAD:
- require(1)
-
- gas.Set(GasSLoad)
- // Memory resize & Gas
- case SSTORE:
- require(2)
-
- var mult *big.Int
- y, x := stack.Peekn()
- val := statedb.GetState(closure.Address(), x.Bytes())
- if len(val) == 0 && len(y.Bytes()) > 0 {
- // 0 => non 0
- mult = ethutil.Big3
- } else if len(val) > 0 && len(y.Bytes()) == 0 {
- statedb.Refund(caller.Address(), GasSStoreRefund)
-
- mult = ethutil.Big0
- } else {
- // non 0 => non 0 (or 0 => 0)
- mult = ethutil.Big1
- }
- gas.Set(new(big.Int).Mul(mult, GasSStore))
- case BALANCE:
- require(1)
- gas.Set(GasBalance)
- case MSTORE:
- require(2)
- newMemSize = calcMemSize(stack.Peek(), u256(32))
- case MLOAD:
- require(1)
-
- newMemSize = calcMemSize(stack.Peek(), u256(32))
- case MSTORE8:
- require(2)
- newMemSize = calcMemSize(stack.Peek(), u256(1))
- case RETURN:
- require(2)
-
- newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
- case SHA3:
- require(2)
-
- gas.Set(GasSha)
-
- newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
- case CALLDATACOPY:
- require(2)
-
- newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-3])
- case CODECOPY:
- require(3)
-
- newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-3])
- case EXTCODECOPY:
- require(4)
-
- newMemSize = calcMemSize(stack.data[stack.Len()-2], stack.data[stack.Len()-4])
- case CALL, CALLCODE:
- require(7)
- gas.Set(GasCall)
- addStepGasUsage(stack.data[stack.Len()-1])
-
- x := calcMemSize(stack.data[stack.Len()-6], stack.data[stack.Len()-7])
- y := calcMemSize(stack.data[stack.Len()-4], stack.data[stack.Len()-5])
-
- newMemSize = ethutil.BigMax(x, y)
- case CREATE:
- require(3)
- gas.Set(GasCreate)
-
- newMemSize = calcMemSize(stack.data[stack.Len()-2], stack.data[stack.Len()-3])
- }
-
- if newMemSize.Cmp(ethutil.Big0) > 0 {
- newMemSize.Add(newMemSize, u256(31))
- newMemSize.Div(newMemSize, u256(32))
- newMemSize.Mul(newMemSize, u256(32))
-
- switch op {
- 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 {
- memGasUsage := new(big.Int).Sub(newMemSize, u256(int64(mem.Len())))
- memGasUsage.Mul(GasMemory, memGasUsage)
- memGasUsage.Div(memGasUsage, u256(32))
-
- addStepGasUsage(memGasUsage)
-
- }
-
- }
-
- self.Printf("(pc) %-3d -o- %-14s", pc, op.String())
- self.Printf(" (m) %-4d (s) %-4d (g) %-3v (%v)", mem.Len(), stack.Len(), gas, closure.Gas)
-
- if !closure.UseGas(gas) {
+ if !context.UseGas(gas) {
self.Endl()
- tmp := new(big.Int).Set(closure.Gas)
+ tmp := new(big.Int).Set(context.Gas)
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- return closure.Return(nil), OOG(gas, tmp)
+ return context.Return(nil), OOG(gas, tmp)
}
mem.Resize(newMemSize.Uint64())
@@ -558,9 +402,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => %x", data)
// 0x30 range
case ADDRESS:
- stack.Push(ethutil.BigD(closure.Address()))
+ stack.Push(ethutil.BigD(context.Address()))
- self.Printf(" => %x", closure.Address())
+ self.Printf(" => %x", context.Address())
case BALANCE:
addr := stack.Pop().Bytes()
@@ -576,7 +420,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => %x", origin)
case CALLER:
- caller := closure.caller.Address()
+ caller := context.caller.Address()
stack.Push(ethutil.BigD(caller))
self.Printf(" => %x", caller)
@@ -633,7 +477,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
code = statedb.GetCode(addr)
} else {
- code = closure.Code
+ code = context.Code
}
l := big.NewInt(int64(len(code)))
@@ -643,11 +487,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
case CODECOPY, EXTCODECOPY:
var code []byte
if op == EXTCODECOPY {
- addr := stack.Pop().Bytes()
-
- code = statedb.GetCode(addr)
+ code = statedb.GetCode(stack.Pop().Bytes())
} else {
- code = closure.Code
+ code = context.Code
}
var (
@@ -663,24 +505,26 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
} else if cOff+l > size {
l = uint64(math.Min(float64(cOff+l), float64(size)))
}
-
codeCopy := code[cOff : cOff+l]
mem.Set(mOff, l, codeCopy)
- self.Printf(" => [%v, %v, %v] %x", mOff, cOff, l, code[cOff:cOff+l])
+ self.Printf(" => [%v, %v, %v] %x", mOff, cOff, l, codeCopy)
case GASPRICE:
- stack.Push(closure.Price)
+ stack.Push(context.Price)
- self.Printf(" => %v", closure.Price)
+ self.Printf(" => %v", context.Price)
// 0x40 range
- case PREVHASH:
- prevHash := self.env.PrevHash()
+ case BLOCKHASH:
+ num := stack.Pop()
+ if num.Cmp(new(big.Int).Sub(self.env.BlockNumber(), ethutil.Big256)) < 0 {
+ stack.Push(ethutil.Big0)
+ } else {
+ stack.Push(ethutil.BigD(self.env.GetHash(num.Uint64())))
+ }
- stack.Push(ethutil.BigD(prevHash))
-
- self.Printf(" => 0x%x", prevHash)
+ self.Printf(" => 0x%x", stack.Peek().Bytes())
case COINBASE:
coinbase := self.env.Coinbase()
@@ -710,18 +554,15 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// 0x50 range
case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32:
- //a := big.NewInt(int64(op) - int64(PUSH1) + 1)
a := uint64(op - PUSH1 + 1)
- //pc.Add(pc, ethutil.Big1)
- val := ethutil.BigD(closure.GetRangeValue(pc+1, a))
+ byts := context.GetRangeValue(pc+1, a)
// Push value to stack
- stack.Push(val)
+ stack.Push(ethutil.BigD(byts))
pc += a
- //pc.Add(pc, a.Sub(a, big.NewInt(1)))
step += int(op) - int(PUSH1) + 1
- self.Printf(" => 0x%x", val.Bytes())
+ self.Printf(" => 0x%x", byts)
case POP:
stack.Pop()
case DUP1, DUP2, DUP3, DUP4, DUP5, DUP6, DUP7, DUP8, DUP9, DUP10, DUP11, DUP12, DUP13, DUP14, DUP15, DUP16:
@@ -743,7 +584,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}
data := mem.Geti(mStart.Int64(), mSize.Int64())
- log := &Log{closure.Address(), topics, data}
+ log := &Log{context.Address(), topics, data}
self.env.AddLog(log)
self.Printf(" => %v", log)
@@ -768,15 +609,15 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
self.Printf(" => [%v] 0x%x", off, val)
case SLOAD:
loc := stack.Pop()
- val := ethutil.BigD(statedb.GetState(closure.Address(), loc.Bytes()))
+ val := ethutil.BigD(statedb.GetState(context.Address(), loc.Bytes()))
stack.Push(val)
self.Printf(" {0x%x : 0x%x}", loc.Bytes(), val.Bytes())
case SSTORE:
val, loc := stack.Popn()
- statedb.SetState(closure.Address(), loc.Bytes(), val)
+ statedb.SetState(context.Address(), loc.Bytes(), val)
- closure.message.AddStorageChange(loc.Bytes())
+ msg.AddStorageChange(loc.Bytes())
self.Printf(" {0x%x : 0x%x}", loc.Bytes(), val.Bytes())
case JUMP:
@@ -798,7 +639,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
case MSIZE:
stack.Push(big.NewInt(int64(mem.Len())))
case GAS:
- stack.Push(closure.Gas)
+ stack.Push(context.Gas)
// 0x60 range
case CREATE:
@@ -807,7 +648,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
value = stack.Pop()
size, offset = stack.Popn()
input = mem.Get(offset.Int64(), size.Int64())
- gas = new(big.Int).Set(closure.Gas)
+ gas = new(big.Int).Set(context.Gas)
// Snapshot the current stack so we are able to
// revert back to it later.
@@ -815,15 +656,15 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
)
// Generate a new address
- n := statedb.GetNonce(closure.Address())
- addr := crypto.CreateAddress(closure.Address(), n)
- statedb.SetNonce(closure.Address(), n+1)
+ n := statedb.GetNonce(context.Address())
+ addr := crypto.CreateAddress(context.Address(), n)
+ statedb.SetNonce(context.Address(), n+1)
self.Printf(" (*) %x", addr).Endl()
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- ret, err, ref := self.env.Create(closure, addr, input, gas, price, value)
+ ret, err, ref := self.env.Create(context, addr, input, gas, price, value)
if err != nil {
stack.Push(ethutil.BigFalse)
@@ -832,7 +673,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// gas < len(ret) * CreateDataGas == NO_CODE
dataGas := big.NewInt(int64(len(ret)))
dataGas.Mul(dataGas, GasCreateByte)
- if closure.UseGas(dataGas) {
+ if context.UseGas(dataGas) {
ref.SetCode(ret)
msg.Output = ret
}
@@ -844,7 +685,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
// Debug hook
if self.Dbg != nil {
- self.Dbg.SetCode(closure.Code)
+ self.Dbg.SetCode(context.Code)
}
case CALL, CALLCODE:
self.Endl()
@@ -865,9 +706,9 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
err error
)
if op == CALLCODE {
- ret, err = self.env.CallCode(closure, addr.Bytes(), args, gas, price, value)
+ ret, err = self.env.CallCode(context, addr.Bytes(), args, gas, price, value)
} else {
- ret, err = self.env.Call(closure, addr.Bytes(), args, gas, price, value)
+ ret, err = self.env.Call(context, addr.Bytes(), args, gas, price, value)
}
if err != nil {
@@ -880,40 +721,40 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
mem.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
- self.Printf("resume %x (%v)", closure.Address(), closure.Gas)
+ self.Printf("resume %x (%v)", context.Address(), context.Gas)
// Debug hook
if self.Dbg != nil {
- self.Dbg.SetCode(closure.Code)
+ self.Dbg.SetCode(context.Code)
}
case RETURN:
size, offset := stack.Popn()
ret := mem.Get(offset.Int64(), size.Int64())
- self.Printf(" => (%d) 0x%x", len(ret), ret).Endl()
+ self.Printf(" => [%v, %v] (%d) 0x%x", offset, size, len(ret), ret).Endl()
- return closure.Return(ret), nil
+ return context.Return(ret), nil
case SUICIDE:
receiver := statedb.GetOrNewStateObject(stack.Pop().Bytes())
- balance := statedb.GetBalance(closure.Address())
+ balance := statedb.GetBalance(context.Address())
self.Printf(" => (%x) %v", receiver.Address()[:4], balance)
receiver.AddAmount(balance)
- statedb.Delete(closure.Address())
+ statedb.Delete(context.Address())
fallthrough
- case STOP: // Stop the closure
+ case STOP: // Stop the context
self.Endl()
- return closure.Return(nil), nil
+ return context.Return(nil), nil
default:
vmlogger.Debugf("(pc) %-3v Invalid opcode %x\n", pc, op)
- closure.ReturnGas(big.NewInt(1), nil)
+ context.ReturnGas(big.NewInt(1), nil)
- return closure.Return(nil), fmt.Errorf("Invalid opcode %x", op)
+ return context.Return(nil), fmt.Errorf("Invalid opcode %x", op)
}
pc++
@@ -925,11 +766,11 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
if pc == uint64(instrNo) {
self.Stepping = true
- if !self.Dbg.BreakHook(prevStep, op, mem, stack, statedb.GetStateObject(closure.Address())) {
+ if !self.Dbg.BreakHook(prevStep, op, mem, stack, statedb.GetStateObject(context.Address())) {
return nil, nil
}
} else if self.Stepping {
- if !self.Dbg.StepHook(prevStep, op, mem, stack, statedb.GetStateObject(closure.Address())) {
+ if !self.Dbg.StepHook(prevStep, op, mem, stack, statedb.GetStateObject(context.Address())) {
return nil, nil
}
}
@@ -939,22 +780,177 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *
}
}
-func (self *DebugVm) RunPrecompiled(p *PrecompiledAccount, callData []byte, closure *Closure) (ret []byte, err error) {
+func (self *DebugVm) calculateGasAndSize(context *Context, caller ContextRef, op OpCode, statedb *state.StateDB, mem *Memory, stack *Stack) (*big.Int, *big.Int) {
+ gas := new(big.Int)
+ addStepGasUsage := func(amount *big.Int) {
+ if amount.Cmp(ethutil.Big0) >= 0 {
+ gas.Add(gas, amount)
+ }
+ }
+
+ addStepGasUsage(GasStep)
+
+ var newMemSize *big.Int = ethutil.Big0
+ var additionalGas *big.Int = new(big.Int)
+ // Stack Check, memory resize & gas phase
+ switch op {
+ // Stack checks only
+ case ISZERO, CALLDATALOAD, POP, JUMP, NOT: // 1
+ stack.require(1)
+ case JUMPI, ADD, SUB, DIV, SDIV, MOD, SMOD, LT, GT, SLT, SGT, EQ, AND, OR, XOR, BYTE, SIGNEXTEND: // 2
+ stack.require(2)
+ case ADDMOD, MULMOD: // 3
+ stack.require(3)
+ case SWAP1, SWAP2, SWAP3, SWAP4, SWAP5, SWAP6, SWAP7, SWAP8, SWAP9, SWAP10, SWAP11, SWAP12, SWAP13, SWAP14, SWAP15, SWAP16:
+ n := int(op - SWAP1 + 2)
+ stack.require(n)
+ case DUP1, DUP2, DUP3, DUP4, DUP5, DUP6, DUP7, DUP8, DUP9, DUP10, DUP11, DUP12, DUP13, DUP14, DUP15, DUP16:
+ n := int(op - DUP1 + 1)
+ stack.require(n)
+ case LOG0, LOG1, LOG2, LOG3, LOG4:
+ n := int(op - LOG0)
+ stack.require(n + 2)
+
+ gas.Set(GasLog)
+ addStepGasUsage(new(big.Int).Mul(big.NewInt(int64(n)), GasLog))
+
+ mSize, mStart := stack.Peekn()
+ addStepGasUsage(mSize)
+
+ newMemSize = calcMemSize(mStart, mSize)
+ case EXP:
+ stack.require(2)
+
+ gas.Set(big.NewInt(int64(len(stack.data[stack.Len()-2].Bytes()) + 1)))
+ // Gas only
+ case STOP:
+ gas.Set(ethutil.Big0)
+ case SUICIDE:
+ stack.require(1)
+
+ gas.Set(ethutil.Big0)
+ case SLOAD:
+ stack.require(1)
+
+ gas.Set(GasSLoad)
+ // Memory resize & Gas
+ case SSTORE:
+ stack.require(2)
+
+ var mult *big.Int
+ y, x := stack.Peekn()
+ val := statedb.GetState(context.Address(), x.Bytes())
+ if len(val) == 0 && len(y.Bytes()) > 0 {
+ // 0 => non 0
+ mult = ethutil.Big3
+ } else if len(val) > 0 && len(y.Bytes()) == 0 {
+ statedb.Refund(caller.Address(), GasSStoreRefund)
+
+ mult = ethutil.Big0
+ } else {
+ // non 0 => non 0 (or 0 => 0)
+ mult = ethutil.Big1
+ }
+ gas.Set(new(big.Int).Mul(mult, GasSStore))
+ case BALANCE:
+ stack.require(1)
+ gas.Set(GasBalance)
+ case MSTORE:
+ stack.require(2)
+ newMemSize = calcMemSize(stack.Peek(), u256(32))
+ case MLOAD:
+ stack.require(1)
+
+ newMemSize = calcMemSize(stack.Peek(), u256(32))
+ case MSTORE8:
+ stack.require(2)
+ newMemSize = calcMemSize(stack.Peek(), u256(1))
+ case RETURN:
+ stack.require(2)
+
+ newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
+ case SHA3:
+ stack.require(2)
+ gas.Set(GasSha)
+ newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
+ additionalGas.Set(stack.data[stack.Len()-2])
+ case CALLDATACOPY:
+ stack.require(2)
+
+ newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-3])
+ additionalGas.Set(stack.data[stack.Len()-3])
+ case CODECOPY:
+ stack.require(3)
+
+ newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-3])
+ additionalGas.Set(stack.data[stack.Len()-3])
+ case EXTCODECOPY:
+ stack.require(4)
+
+ newMemSize = calcMemSize(stack.data[stack.Len()-2], stack.data[stack.Len()-4])
+ additionalGas.Set(stack.data[stack.Len()-4])
+ case CALL, CALLCODE:
+ stack.require(7)
+ gas.Set(GasCall)
+ addStepGasUsage(stack.data[stack.Len()-1])
+
+ x := calcMemSize(stack.data[stack.Len()-6], stack.data[stack.Len()-7])
+ y := calcMemSize(stack.data[stack.Len()-4], stack.data[stack.Len()-5])
+
+ newMemSize = ethutil.BigMax(x, y)
+ case CREATE:
+ stack.require(3)
+ gas.Set(GasCreate)
+
+ newMemSize = calcMemSize(stack.data[stack.Len()-2], stack.data[stack.Len()-3])
+ }
+
+ switch op {
+ case CALLDATACOPY, CODECOPY, EXTCODECOPY:
+ additionalGas.Add(additionalGas, u256(31))
+ additionalGas.Div(additionalGas, u256(32))
+ addStepGasUsage(additionalGas)
+ case SHA3:
+ additionalGas.Add(additionalGas, u256(31))
+ additionalGas.Div(additionalGas, u256(32))
+ additionalGas.Mul(additionalGas, GasSha3Byte)
+ addStepGasUsage(additionalGas)
+ }
+
+ if newMemSize.Cmp(ethutil.Big0) > 0 {
+ newMemSize.Add(newMemSize, u256(31))
+ newMemSize.Div(newMemSize, u256(32))
+ newMemSize.Mul(newMemSize, u256(32))
+
+ if newMemSize.Cmp(u256(int64(mem.Len()))) > 0 {
+ memGasUsage := new(big.Int).Sub(newMemSize, u256(int64(mem.Len())))
+ memGasUsage.Mul(GasMemory, memGasUsage)
+ memGasUsage.Div(memGasUsage, u256(32))
+
+ addStepGasUsage(memGasUsage)
+ }
+
+ }
+
+ return newMemSize, gas
+}
+
+func (self *DebugVm) RunPrecompiled(p *PrecompiledAccount, callData []byte, context *Context) (ret []byte, err error) {
gas := p.Gas(len(callData))
- if closure.UseGas(gas) {
+ if context.UseGas(gas) {
ret = p.Call(callData)
self.Printf("NATIVE_FUNC => %x", ret)
self.Endl()
- return closure.Return(ret), nil
+ return context.Return(ret), nil
} else {
self.Endl()
- tmp := new(big.Int).Set(closure.Gas)
+ tmp := new(big.Int).Set(context.Gas)
- closure.UseGas(closure.Gas)
+ context.UseGas(context.Gas)
- return closure.Return(nil), OOG(gas, tmp)
+ return context.Return(nil), OOG(gas, tmp)
}
}
diff --git a/whisper/envelope.go b/whisper/envelope.go
index 066e20f6a3..9d28dfa6be 100644
--- a/whisper/envelope.go
+++ b/whisper/envelope.go
@@ -79,6 +79,7 @@ func (self *Envelope) Open(prv *ecdsa.PrivateKey) (msg *Message, err error) {
if prv != nil {
message.Payload, err = crypto.Decrypt(prv, payload)
switch err {
+ case nil: // OK
case ecies.ErrInvalidPublicKey: // Payload isn't encrypted
message.Payload = payload
return &message, err
diff --git a/whisper/messages_test.go b/whisper/messages_test.go
index cba103011d..93caa31b36 100644
--- a/whisper/messages_test.go
+++ b/whisper/messages_test.go
@@ -40,12 +40,11 @@ func TestMessageEncryptDecrypt(t *testing.T) {
msg1, err := envelope.Open(prv2)
if err != nil {
- fmt.Println(err)
+ t.Error(err)
t.FailNow()
}
if !bytes.Equal(msg1.Payload, data) {
- fmt.Println("encryption error. data did not match")
- t.FailNow()
+ t.Error("encryption error. data did not match")
}
}
diff --git a/whisper/whisper.go b/whisper/whisper.go
index 9721ca9f9a..ffcdd7d409 100644
--- a/whisper/whisper.go
+++ b/whisper/whisper.go
@@ -175,7 +175,7 @@ func (self *Whisper) add(envelope *Envelope) error {
if !self.expiry[envelope.Expiry].Has(hash) {
self.expiry[envelope.Expiry].Add(hash)
- self.postEvent(envelope)
+ go self.postEvent(envelope)
}
return nil
diff --git a/xeth/hexface.go b/xeth/hexface.go
index 6c084f947c..c3d8cef864 100644
--- a/xeth/hexface.go
+++ b/xeth/hexface.go
@@ -138,10 +138,10 @@ type KeyVal struct {
func (self *JSXEth) EachStorage(addr string) string {
var values []KeyVal
object := self.World().SafeGet(ethutil.Hex2Bytes(addr))
- object.EachStorage(func(name string, value *ethutil.Value) {
- value.Decode()
- values = append(values, KeyVal{ethutil.Bytes2Hex([]byte(name)), ethutil.Bytes2Hex(value.Bytes())})
- })
+ it := object.Trie().Iterator()
+ for it.Next() {
+ values = append(values, KeyVal{ethutil.Bytes2Hex(it.Key), ethutil.Bytes2Hex(it.Value)})
+ }
valuesJson, err := json.Marshal(values)
if err != nil {
diff --git a/xeth/js_types.go b/xeth/js_types.go
index 04018f6a5f..4bb1f4e7da 100644
--- a/xeth/js_types.go
+++ b/xeth/js_types.go
@@ -42,21 +42,21 @@ func NewJSBlock(block *types.Block) *JSBlock {
}
txlist := ethutil.NewList(ptxs)
- puncles := make([]*JSBlock, len(block.Uncles))
- for i, uncle := range block.Uncles {
- puncles[i] = NewJSBlock(uncle)
+ puncles := make([]*JSBlock, len(block.Uncles()))
+ for i, uncle := range block.Uncles() {
+ puncles[i] = NewJSBlock(types.NewBlockWithHeader(uncle))
}
ulist := ethutil.NewList(puncles)
return &JSBlock{
ref: block, Size: block.Size().String(),
- Number: int(block.Number.Uint64()), GasUsed: block.GasUsed.String(),
- GasLimit: block.GasLimit.String(), Hash: ethutil.Bytes2Hex(block.Hash()),
+ Number: int(block.NumberU64()), GasUsed: block.GasUsed().String(),
+ GasLimit: block.GasLimit().String(), Hash: ethutil.Bytes2Hex(block.Hash()),
Transactions: txlist, Uncles: ulist,
- Time: block.Time,
- Coinbase: ethutil.Bytes2Hex(block.Coinbase),
- PrevHash: ethutil.Bytes2Hex(block.PrevHash),
- Bloom: ethutil.Bytes2Hex(block.LogsBloom),
+ Time: block.Time(),
+ Coinbase: ethutil.Bytes2Hex(block.Coinbase()),
+ PrevHash: ethutil.Bytes2Hex(block.ParentHash()),
+ Bloom: ethutil.Bytes2Hex(block.Bloom()),
Raw: block.String(),
}
}
@@ -70,7 +70,7 @@ func (self *JSBlock) ToString() string {
}
func (self *JSBlock) GetTransaction(hash string) *JSTransaction {
- tx := self.ref.GetTransaction(ethutil.Hex2Bytes(hash))
+ tx := self.ref.Transaction(ethutil.Hex2Bytes(hash))
if tx == nil {
return nil
}
diff --git a/xeth/vm_env.go b/xeth/vm_env.go
index 7fb674a94b..1470b9eaa5 100644
--- a/xeth/vm_env.go
+++ b/xeth/vm_env.go
@@ -10,6 +10,7 @@ import (
)
type VMEnv struct {
+ chain *core.ChainManager
state *state.StateDB
block *types.Block
value *big.Int
@@ -18,7 +19,7 @@ type VMEnv struct {
depth int
}
-func NewEnv(state *state.StateDB, block *types.Block, value *big.Int, sender []byte) *VMEnv {
+func NewEnv(chain *core.ChainManager, state *state.StateDB, block *types.Block, value *big.Int, sender []byte) *VMEnv {
return &VMEnv{
state: state,
block: block,
@@ -28,17 +29,23 @@ func NewEnv(state *state.StateDB, block *types.Block, value *big.Int, sender []b
}
func (self *VMEnv) Origin() []byte { return self.sender }
-func (self *VMEnv) BlockNumber() *big.Int { return self.block.Number }
-func (self *VMEnv) PrevHash() []byte { return self.block.PrevHash }
-func (self *VMEnv) Coinbase() []byte { return self.block.Coinbase }
-func (self *VMEnv) Time() int64 { return self.block.Time }
-func (self *VMEnv) Difficulty() *big.Int { return self.block.Difficulty }
-func (self *VMEnv) BlockHash() []byte { return self.block.Hash() }
+func (self *VMEnv) BlockNumber() *big.Int { return self.block.Number() }
+func (self *VMEnv) PrevHash() []byte { return self.block.ParentHash() }
+func (self *VMEnv) Coinbase() []byte { return self.block.Coinbase() }
+func (self *VMEnv) Time() int64 { return self.block.Time() }
+func (self *VMEnv) Difficulty() *big.Int { return self.block.Difficulty() }
+func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit() }
func (self *VMEnv) Value() *big.Int { return self.value }
func (self *VMEnv) State() *state.StateDB { return self.state }
-func (self *VMEnv) GasLimit() *big.Int { return self.block.GasLimit }
func (self *VMEnv) Depth() int { return self.depth }
func (self *VMEnv) SetDepth(i int) { self.depth = i }
+func (self *VMEnv) GetHash(n uint64) []byte {
+ if block := self.chain.GetBlockByNumber(n); block != nil {
+ return block.Hash()
+ }
+
+ return nil
+}
func (self *VMEnv) AddLog(log state.Log) {
self.state.AddLog(log)
}
@@ -50,16 +57,16 @@ func (self *VMEnv) vm(addr, data []byte, gas, price, value *big.Int) *core.Execu
return core.NewExecution(self, addr, data, gas, price, value)
}
-func (self *VMEnv) Call(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) Call(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(addr, data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) CallCode(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
+func (self *VMEnv) CallCode(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error) {
exe := self.vm(me.Address(), data, gas, price, value)
return exe.Call(addr, me)
}
-func (self *VMEnv) Create(me vm.ClosureRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ClosureRef) {
+func (self *VMEnv) Create(me vm.ContextRef, addr, data []byte, gas, price, value *big.Int) ([]byte, error, vm.ContextRef) {
exe := self.vm(addr, data, gas, price, value)
return exe.Create(me)
}
diff --git a/xeth/pipe.go b/xeth/xeth.go
similarity index 88%
rename from xeth/pipe.go
rename to xeth/xeth.go
index 06820cc865..a10ccfc8b5 100644
--- a/xeth/pipe.go
+++ b/xeth/xeth.go
@@ -20,19 +20,19 @@ type VmVars struct {
}
type XEth struct {
- obj core.EthManager
- blockManager *core.BlockManager
- chainManager *core.ChainManager
- world *World
+ obj core.EthManager
+ blockProcessor *core.BlockProcessor
+ chainManager *core.ChainManager
+ world *World
Vm VmVars
}
func New(obj core.EthManager) *XEth {
pipe := &XEth{
- obj: obj,
- blockManager: obj.BlockManager(),
- chainManager: obj.ChainManager(),
+ obj: obj,
+ blockProcessor: obj.BlockProcessor(),
+ chainManager: obj.ChainManager(),
}
pipe.world = NewWorld(pipe)
@@ -87,7 +87,7 @@ func (self *XEth) ExecuteObject(object *Object, data []byte, value, gas, price *
self.Vm.State = self.World().State().Copy()
- vmenv := NewEnv(self.Vm.State, block, value.BigInt(), initiator.Address())
+ vmenv := NewEnv(self.chainManager, self.Vm.State, block, value.BigInt(), initiator.Address())
return vmenv.Call(initiator, object.Address(), data, gas.BigInt(), price.BigInt(), value.BigInt())
}
@@ -139,9 +139,9 @@ func (self *XEth) Transact(key *crypto.KeyPair, to []byte, value, gas, price *et
// Do some pre processing for our "pre" events and hooks
block := self.chainManager.NewBlock(key.Address())
- coinbase := state.GetStateObject(key.Address())
- coinbase.SetGasPool(block.GasLimit)
- self.blockManager.ApplyTransactions(coinbase, state, block, types.Transactions{tx}, true)
+ coinbase := state.GetOrNewStateObject(key.Address())
+ coinbase.SetGasPool(block.GasLimit())
+ self.blockProcessor.ApplyTransactions(coinbase, state, block, types.Transactions{tx}, true)
err := self.obj.TxPool().Add(tx)
if err != nil {