text: //
  //  BREthereumNetwork
  //  breadwallet-core Ethereum
  //
  //  Created by Ed Gamble on 3/13/18.
  //  Copyright (c) 2018 breadwallet LLC
  //
  //  Permission is hereby granted, free of charge, to any person obtaining a copy
  //  of this software and associated documentation files (the "Software"), to deal
  //  in the Software without restriction, including without limitation the rights
  //  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  //  copies of the Software, and to permit persons to whom the Software is
  //  furnished to do so, subject to the following conditions:
  //
  //  The above copyright notice and this permission notice shall be included in
  //  all copies or substantial portions of the Software.
  //
  //  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  //  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  //  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  //  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  //  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  //  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  //  THE SOFTWARE.
  
  #include <stdlib.h>
  #include "BREthereumNetwork.h"
  
  struct BREthereumNetworkRecord {
      int chainId;
  };
  
  extern BREthereumChainId
  networkGetChainId (BREthereumNetwork network) {
      return network->chainId;
  }
  
  //
  // Mainnet
  //
  static struct BREthereumNetworkRecord ethereumMainnetRecord = {
      1
  };
  const BREthereumNetwork ethereumMainnet = &ethereumMainnetRecord;
  
  /*
  // MainnetChainConfig is the chain parameters to run a node on the main network.
  MainnetChainConfig = &ChainConfig{
    ChainId:        big.NewInt(1),
    HomesteadBlock: big.NewInt(1150000),
    DAOForkBlock:   big.NewInt(1920000),
    DAOForkSupport: true,
    EIP150Block:    big.NewInt(2463000),
    EIP150Hash:     common.HexToHash("0x2086799aeebeae135c246c65021c82b4e15a2c451340993aacfd2751886514f0"),
    EIP155Block:    big.NewInt(2675000),
    EIP158Block:    big.NewInt(2675000),
    ByzantiumBlock: big.NewInt(4370000),
    Ethash: new(EthashConfig),
  }
  */
  
  //
  // Testnet
  //
  static struct BREthereumNetworkRecord ethereumTestnetRecord = {
      3
  };
  const BREthereumNetwork ethereumTestnet = &ethereumTestnetRecord;
  
  /*
  // TestnetChainConfig contains the chain parameters to run a node on the Ropsten test network.
  TestnetChainConfig = &ChainConfig{
    ChainId:        big.NewInt(3),
    HomesteadBlock: big.NewInt(0),
    DAOForkBlock:   nil,
    DAOForkSupport: true,
    EIP150Block:    big.NewInt(0),
    EIP150Hash:     common.HexToHash("0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d"),
    EIP155Block:    big.NewInt(10),
    EIP158Block:    big.NewInt(10),
    ByzantiumBlock: big.NewInt(1700000),
    Ethash: new(EthashConfig),
  }
  */
  //
  // Rinkeby
  //
  static struct BREthereumNetworkRecord ethereumRinkebyRecord = {
      4
  };
  const BREthereumNetwork ethereumRinkeby = &ethereumRinkebyRecord;
  
  /*
  // RinkebyChainConfig contains the chain parameters to run a node on the Rinkeby test network.
  RinkebyChainConfig = &ChainConfig{
    ChainId:        big.NewInt(4),
    HomesteadBlock: big.NewInt(1),
    DAOForkBlock:   nil,
    DAOForkSupport: true,
    EIP150Block:    big.NewInt(2),
    EIP150Hash:     common.HexToHash("0x9b095b36c15eaf13044373aef8ee0bd3a382a5abb92e402afa44b8249c3a90e9"),
    EIP155Block:    big.NewInt(3),
    EIP158Block:    big.NewInt(3),
    ByzantiumBlock: big.NewInt(1035301),
    Clique: &CliqueConfig{
      Period: 15,
      Epoch:  30000,
    },
  }
  */
  