fixed stack level
This commit is contained in:
parent
fd5c5b2969
commit
c59c826ab4
|
@ -85,9 +85,6 @@
|
||||||
|
|
||||||
function refresh() {
|
function refresh() {
|
||||||
document.querySelector("#balance").innerHTML = contract.call({from:eth.coinbase}).balance(eth.coinbase);
|
document.querySelector("#balance").innerHTML = contract.call({from:eth.coinbase}).balance(eth.coinbase);
|
||||||
|
|
||||||
var table = document.querySelector("#table_body");
|
|
||||||
table.innerHTML = ""; // clear
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function transact() {
|
function transact() {
|
||||||
|
|
|
@ -2,8 +2,9 @@ package vm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/ethereum/go-ethereum/params"
|
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -37,8 +38,8 @@ func baseCheck(op OpCode, stack *stack, gas *big.Int) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if r.stackPush && len(stack.data)-r.stackPop+1 > int(params.StackLimit.Int64()) {
|
if r.stackPush && len(stack.data)-r.stackPop > int(params.StackLimit.Int64()) {
|
||||||
return fmt.Errorf("stack limit reached (%d)", params.StackLimit.Int64())
|
return fmt.Errorf("stack limit reached %d (%d)", len(stack.data), params.StackLimit.Int64())
|
||||||
}
|
}
|
||||||
|
|
||||||
gas.Add(gas, r.gas)
|
gas.Add(gas, r.gas)
|
||||||
|
|
|
@ -81,6 +81,13 @@ func RunVmTest(p string, t *testing.T) {
|
||||||
helper.CreateFileTests(t, p, &tests)
|
helper.CreateFileTests(t, p, &tests)
|
||||||
|
|
||||||
for name, test := range tests {
|
for name, test := range tests {
|
||||||
|
/*
|
||||||
|
vm.Debug = true
|
||||||
|
helper.Logger.SetLogLevel(5)
|
||||||
|
if name != "Call1MB1024Calldepth" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
*/
|
||||||
db, _ := ethdb.NewMemDatabase()
|
db, _ := ethdb.NewMemDatabase()
|
||||||
statedb := state.New(common.Hash{}, db)
|
statedb := state.New(common.Hash{}, db)
|
||||||
for addr, account := range test.Pre {
|
for addr, account := range test.Pre {
|
||||||
|
@ -311,3 +318,24 @@ func TestStateTransaction(t *testing.T) {
|
||||||
const fn = "../files/StateTests/stTransactionTest.json"
|
const fn = "../files/StateTests/stTransactionTest.json"
|
||||||
RunVmTest(fn, t)
|
RunVmTest(fn, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCallCreateCallCode(t *testing.T) {
|
||||||
|
const fn = "../files/StateTests/stCallCreateCallCodeTest.json"
|
||||||
|
RunVmTest(fn, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMemory(t *testing.T) {
|
||||||
|
const fn = "../files/StateTests/stMemoryTest.json"
|
||||||
|
RunVmTest(fn, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestQuadraticComplexity(t *testing.T) {
|
||||||
|
t.Skip() // takes too long
|
||||||
|
const fn = "../files/StateTests/stQuadraticComplexityTest.json"
|
||||||
|
RunVmTest(fn, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSolidity(t *testing.T) {
|
||||||
|
const fn = "../files/StateTests/stSolidityTest.json"
|
||||||
|
RunVmTest(fn, t)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue