core, core/state, trie: Hardfork EIP155, EIP161, EIP170
This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org>
This commit is contained in:
@@ -17,26 +17,32 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"math/big"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/ethereum/go-ethereum/params"
|
||||
)
|
||||
|
||||
func TestTransactions(t *testing.T) {
|
||||
err := RunTransactionTests(filepath.Join(transactionTestDir, "ttTransactionTest.json"), TransSkipTests)
|
||||
config := ¶ms.ChainConfig{}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "ttTransactionTest.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestWrongRLPTransactions(t *testing.T) {
|
||||
err := RunTransactionTests(filepath.Join(transactionTestDir, "ttWrongRLPTransaction.json"), TransSkipTests)
|
||||
config := ¶ms.ChainConfig{}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "ttWrongRLPTransaction.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func Test10MBTransactions(t *testing.T) {
|
||||
err := RunTransactionTests(filepath.Join(transactionTestDir, "tt10mbDataField.json"), TransSkipTests)
|
||||
config := ¶ms.ChainConfig{}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "tt10mbDataField.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -44,21 +50,76 @@ func Test10MBTransactions(t *testing.T) {
|
||||
|
||||
// homestead tests
|
||||
func TestHomesteadTransactions(t *testing.T) {
|
||||
err := RunTransactionTests(filepath.Join(transactionTestDir, "Homestead", "ttTransactionTest.json"), TransSkipTests)
|
||||
config := ¶ms.ChainConfig{
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "Homestead", "ttTransactionTest.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHomesteadWrongRLPTransactions(t *testing.T) {
|
||||
err := RunTransactionTests(filepath.Join(transactionTestDir, "Homestead", "ttWrongRLPTransaction.json"), TransSkipTests)
|
||||
config := ¶ms.ChainConfig{
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "Homestead", "ttWrongRLPTransaction.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHomestead10MBTransactions(t *testing.T) {
|
||||
err := RunTransactionTests(filepath.Join(transactionTestDir, "Homestead", "tt10mbDataField.json"), TransSkipTests)
|
||||
config := ¶ms.ChainConfig{
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "Homestead", "tt10mbDataField.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHomesteadVitalik(t *testing.T) {
|
||||
config := ¶ms.ChainConfig{
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "Homestead", "ttTransactionTestEip155VitaliksTests.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTxEIP155Transaction(t *testing.T) {
|
||||
config := ¶ms.ChainConfig{
|
||||
ChainId: big.NewInt(1),
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
EIP155Block: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "EIP155", "ttTransactionTest.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTxEIP155VitaliksTests(t *testing.T) {
|
||||
config := ¶ms.ChainConfig{
|
||||
ChainId: big.NewInt(1),
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
EIP155Block: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "EIP155", "ttTransactionTestEip155VitaliksTests.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTxEIP155VRule(t *testing.T) {
|
||||
config := ¶ms.ChainConfig{
|
||||
ChainId: big.NewInt(1),
|
||||
HomesteadBlock: big.NewInt(0),
|
||||
EIP155Block: big.NewInt(0),
|
||||
}
|
||||
err := RunTransactionTests(config, filepath.Join(transactionTestDir, "EIP155", "ttTransactionTestVRule.json"), TransSkipTests)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user