github.com/core-coin/go-core/v2@v2.1.9/tests/init.go (about)

     1  // Copyright 2015 by the Authors
     2  // This file is part of the go-core library.
     3  //
     4  // The go-core library is free software: you can redistribute it and/or modify
     5  // it under the terms of the GNU Lesser General Public License as published by
     6  // the Free Software Foundation, either version 3 of the License, or
     7  // (at your option) any later version.
     8  //
     9  // The go-core library is distributed in the hope that it will be useful,
    10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  // GNU Lesser General Public License for more details.
    13  //
    14  // You should have received a copy of the GNU Lesser General Public License
    15  // along with the go-core library. If not, see <http://www.gnu.org/licenses/>.
    16  
    17  package tests
    18  
    19  import (
    20  	"fmt"
    21  	"math/big"
    22  	"sort"
    23  
    24  	"github.com/core-coin/go-core/v2/params"
    25  )
    26  
    27  // Forks table defines supported forks and their chain config.
    28  var Forks = map[string]*params.ChainConfig{
    29  	"Frontier": {
    30  		NetworkID: big.NewInt(1),
    31  	},
    32  	"Homestead": {
    33  		NetworkID: big.NewInt(1),
    34  	},
    35  	"CIP150": {
    36  		NetworkID: big.NewInt(1),
    37  	},
    38  	"CIP158": {
    39  		NetworkID: big.NewInt(1),
    40  	},
    41  	"Byzantium": {
    42  		NetworkID: big.NewInt(1),
    43  	},
    44  	"Constantinople": {
    45  		NetworkID: big.NewInt(1),
    46  	},
    47  	"ConstantinopleFix": {
    48  		NetworkID: big.NewInt(1),
    49  	},
    50  	"Istanbul": {
    51  		NetworkID: big.NewInt(1),
    52  	},
    53  	"FrontierToHomesteadAt5": {
    54  		NetworkID: big.NewInt(1),
    55  	},
    56  	"HomesteadToCIP150At5": {
    57  		NetworkID: big.NewInt(1),
    58  	},
    59  	"HomesteadToDaoAt5": {
    60  		NetworkID: big.NewInt(1),
    61  	},
    62  	"CIP158ToByzantiumAt5": {
    63  		NetworkID: big.NewInt(1),
    64  	},
    65  	"ByzantiumToConstantinopleAt5": {
    66  		NetworkID: big.NewInt(1),
    67  	},
    68  	"ByzantiumToConstantinopleFixAt5": {
    69  		NetworkID: big.NewInt(1),
    70  	},
    71  	"ConstantinopleFixToIstanbulAt5": {
    72  		NetworkID: big.NewInt(1),
    73  	},
    74  	"Berlin": {
    75  		NetworkID: big.NewInt(1),
    76  	},
    77  }
    78  
    79  // Returns the set of defined fork names
    80  func AvailableForks() []string {
    81  	var availableForks []string
    82  	for k := range Forks {
    83  		availableForks = append(availableForks, k)
    84  	}
    85  	sort.Strings(availableForks)
    86  	return availableForks
    87  }
    88  
    89  // UnsupportedForkError is returned when a test requests a fork that isn't implemented.
    90  type UnsupportedForkError struct {
    91  	Name string
    92  }
    93  
    94  func (e UnsupportedForkError) Error() string {
    95  	return fmt.Sprintf("unsupported fork %q", e.Name)
    96  }