Skip to content

Commit

Permalink
Add EvmDevelopment (revert Development to original)
Browse files Browse the repository at this point in the history
  • Loading branch information
larskuhtz committed Jan 20, 2025
1 parent 72f9b9d commit 36b1543
Show file tree
Hide file tree
Showing 6 changed files with 142 additions and 80 deletions.
1 change: 1 addition & 0 deletions chainweb.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ library
, Chainweb.VerifierPlugin.Hyperlane.Utils
, Chainweb.Version
, Chainweb.Version.Development
, Chainweb.Version.EvmDevelopment
, Chainweb.Version.Guards
, Chainweb.Version.Mainnet
, Chainweb.Version.Pact5Development
Expand Down
3 changes: 2 additions & 1 deletion src/Chainweb/Chainweb/Configuration.hs
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ import Chainweb.Time hiding (second)
import Chainweb.Utils
import Chainweb.Version
import Chainweb.Version.Development
import Chainweb.Version.EvmDevelopment
import Chainweb.Version.Mainnet
import Chainweb.Version.Pact5Development
import Chainweb.Version.RecapDevelopment
Expand Down Expand Up @@ -636,7 +637,7 @@ validateChainwebVersion v = do
, "just yet."
]
where
isDevelopment = _versionCode v `elem` [_versionCode dv | dv <- [recapDevnet, devnet, pact5Devnet]]
isDevelopment = _versionCode v `elem` [_versionCode dv | dv <- [recapDevnet, devnet, pact5Devnet, evmDevnet]]

validateBackupConfig :: ConfigValidation BackupConfig []
validateBackupConfig c =
Expand Down
43 changes: 37 additions & 6 deletions src/Chainweb/PayloadProvider/EVM/Genesis.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,23 @@ module Chainweb.PayloadProvider.EVM.Genesis
) where
import Chainweb.Version
import Chainweb.PayloadProvider.EVM.Header
import Chainweb.Version.Development
import Chainweb.Version.EvmDevelopment
import Chainweb.Utils
import Chainweb.PayloadProvider.EVM.Utils (decodeRlpM)

-- -------------------------------------------------------------------------- --
-- Genesis Blocks
--
-- Development chain-0, chain-1
-- EVM Development headers for chain-0 and chain-1.
--
-- NOTE that the header value does not depend on the chainId/netId.
--
-- {
-- "hash": "0x98efcc5c3598a2de7bf8e8e522b61752d198f7cf50f4f60e5a86d301ad38f9a0",
-- "hash": "0x557c3fc4b87c8bce45002e8fe4db07546324caec6459cb67c64389110c9fd942",
-- "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
-- "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
-- "miner": "0x0000000000000000000000000000000000000000",
-- "stateRoot": "0xa4b758475d7995b93a1801deec833284409e03940bc1a3c5850c66f920e2a133",
-- "stateRoot": "0x7d2b86c493412a586f03e4aee1ab94837c6a8fff21ff7c6045dc1330d5b0d49e",
-- "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
-- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
-- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
Expand All @@ -49,12 +52,40 @@ import Chainweb.PayloadProvider.EVM.Utils (decodeRlpM)
-- "size": "0x247",
-- "withdrawals": []
-- }
--
-- block payload hash: -EffZgInrtrokWVn5iqO2fuTbtG2-noDdhXr0pHQA4E

-- | Genesis Headers for the EVM Payload Provider
--
-- NOTE: These headers must match the block payload hashes in the respective
-- Chainweb.Version.* modules.
--
-- How to get the headers:
--
-- 1. Run the EVM with the chain specification for the network:
--
-- @
-- docker compose up -d chainweb-evm-chain0
-- @
--
-- 2. Query the EVM genesis header with `eth_getBlockByNumber` at height 0
--
-- @
-- docker compose run --rm -ti curl -sL http://chainweb-evm-chain0:8545 -XPOST -H 'content-type:application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0", false]}' |
-- jq -rc '.result' |
-- sed -e 's/"/\\"/g'
-- @
--
-- 3. In ghci bind the output value to constant @a@ and
--
-- @
-- hdr <- decodeOrThrow @IO @E.Header a
-- -- print block payload hash
-- encodeToText $ E._hdrPayloadHash hdr
-- -- encode header to base64
-- encodeB64UrlNoPaddingText $ putRlpByteString hdr
-- @
--
genesisBlocks
:: HasChainwebVersion v
=> HasChainId c
Expand All @@ -64,8 +95,8 @@ genesisBlocks
genesisBlocks v c = go (_chainwebVersion v) (_chainId c)
where
-- Ethereum NetworkID 1789
go Development (ChainId 0) = f "-QI-oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoB3MTejex116q4W1Z7bM1BrTEkUblIp0E_ChQv1A1JNHlAAAAAAAAAAAAAAAAAAAAAAAAAAAoKS3WEddeZW5OhgB3uyDMoRAngOUC8GjxYUMZvkg4qEzoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhuQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAhAHJw4CAhGSQ_dKAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAAAAhDuaygCgVugfFxvMVab_g0XmksD4bltI4BuZbK3AAWIvteNjtCGAgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
go Development (ChainId 1) = f "-QI-oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoB3MTejex116q4W1Z7bM1BrTEkUblIp0E_ChQv1A1JNHlAAAAAAAAAAAAAAAAAAAAAAAAAAAoKS3WEddeZW5OhgB3uyDMoRAngOUC8GjxYUMZvkg4qEzoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhuQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAhAHJw4CAhGSQ_dKAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAAAAhDuaygCgVugfFxvMVab_g0XmksD4bltI4BuZbK3AAWIvteNjtCGAgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
go EvmDevelopment (ChainId 0) = f "-QI-oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoB3MTejex116q4W1Z7bM1BrTEkUblIp0E_ChQv1A1JNHlAAAAAAAAAAAAAAAAAAAAAAAAAAAoH0rhsSTQSpYbwPkruGrlIN8ao__If98YEXcEzDVsNSeoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhuQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAhAHJw4CAhGSQ_dKAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAAAAhDuaygCgVugfFxvMVab_g0XmksD4bltI4BuZbK3AAWIvteNjtCGAgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
go EvmDevelopment (ChainId 1) = f "-QI-oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoB3MTejex116q4W1Z7bM1BrTEkUblIp0E_ChQv1A1JNHlAAAAAAAAAAAAAAAAAAAAAAAAAAAoH0rhsSTQSpYbwPkruGrlIN8ao__If98YEXcEzDVsNSeoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhoFboHxcbzFWm_4NF5pLA-G5bSOAbmWytwAFiL7XjY7QhuQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAhAHJw4CAhGSQ_dKAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAAAAhDuaygCgVugfFxvMVab_g0XmksD4bltI4BuZbK3AAWIvteNjtCGAgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
go _ _ = error "requested genesis block for unsupported chain"

f t = case decodeB64UrlNoPaddingText t >>= decodeRlpM of
Expand Down
72 changes: 0 additions & 72 deletions src/Chainweb/Version/Development.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,78 +26,6 @@ pattern Development <- ((== devnet) -> True) where

devnet :: ChainwebVersion
devnet = ChainwebVersion
{ _versionCode = ChainwebVersionCode 0x00000002
, _versionName = ChainwebVersionName "development"
, _versionForks = tabulateHashMap $ \case
-- TODO: for now, Pact 5 is never enabled on devnet.
-- this will change as it stabilizes.
Pact5Fork -> AllChains ForkNever
_ -> AllChains ForkAtGenesis
, _versionUpgrades = AllChains mempty
, _versionGraphs = Bottom (minBound, twentyChainGraph)
, _versionBlockDelay = BlockDelay 30_000_000
, _versionWindow = WindowWidth 120
, _versionHeaderBaseSizeBytes = 318 - 110
, _versionBootstraps = []
, _versionGenesis = VersionGenesis
{ _genesisBlockTarget = AllChains $ HashTarget (maxBound `div` 500_000)
, _genesisTime = onChains
$ (unsafeChainId 0, BlockCreationTime (Time (secondsToTimeSpan 1687223762)))
: (unsafeChainId 1, BlockCreationTime (Time (secondsToTimeSpan 1687223762)))
: [ (unsafeChainId i, BlockCreationTime [timeMicrosQQ| 2019-07-17T18:28:37.613832 |]) | i <- [2..19] ]
, _genesisBlockPayload = onChains $
[ (unsafeChainId 0, unsafeFromText "plZHoqJDhxYMKoCLHAtK0dCCRLrMwiV54NyEERCx9rE")
, (unsafeChainId 1, unsafeFromText "plZHoqJDhxYMKoCLHAtK0dCCRLrMwiV54NyEERCx9rE")
, (unsafeChainId 2, unsafeFromText "Gnh6QWze67ODyy4BoV4ZOeih72e_Cqos2BJM41sMgVc")
, (unsafeChainId 3, unsafeFromText "Ta08GYak3xnTr0HvJq9e37RTigd56N7m2aj_cxI1oC0")
, (unsafeChainId 4, unsafeFromText "eliqzAQ0JGxPD_73dwO7mXsX_tEOz6HJuLsDNJxqSd4")
, (unsafeChainId 5, unsafeFromText "F7-cmj0XXGKxjKm-dDSmMSpD9jwCjzrdQmwQgsjPj2g")
, (unsafeChainId 6, unsafeFromText "VK7rBExdlAUo9maErP19WJSgVMTc37xpEa_VXWELF74")
, (unsafeChainId 7, unsafeFromText "CnAxuzvToxp-bNZ_lnhCAJCEU4hzXuNJmGRMJx5bBWE")
, (unsafeChainId 8, unsafeFromText "abMl-fqTLY1EmiiFILE_orgsbAB_kKAshAx-zIQFoEM")
, (unsafeChainId 9, unsafeFromText "o5G8VKfB7I1Qv_Y8paCFHIS6vZuMYUgYBtV6-fDqzYA")
, (unsafeChainId 10, unsafeFromText "1DJiGUHIrXDNS7M3RJlUorw_07gjLRetb1q9tlt7aZs")
, (unsafeChainId 11, unsafeFromText "ot-tryHcaC7uvHkT1MqYsbLDV1ApZa2KGvjzddIonYU")
, (unsafeChainId 12, unsafeFromText "MjGGd7Osb09dEE2mfpDFISrAfWNnDqEqEYuRm5nFXSs")
, (unsafeChainId 13, unsafeFromText "ljaDzDMfFMOO4AZYC63_KIPAINZwRXUzKZ5FyB1pDjs")
, (unsafeChainId 14, unsafeFromText "W9lvCyH_NAJx89mnCQcwl5OknI89IM_5rn_TR6KkobQ")
, (unsafeChainId 15, unsafeFromText "PGKV488wnfsEgv28CtuAT16JNWmMRB-42TDMIr4jRGQ")
, (unsafeChainId 16, unsafeFromText "8J1yMti75X1Gnjn2AEpWMw-8nzOK6ysHo5c4SBIiNGo")
, (unsafeChainId 17, unsafeFromText "XlIsxdG3YnbxapDq71wY85-ghlIK3c5vfD_WEXgKcRM")
, (unsafeChainId 18, unsafeFromText "968Xg-0Jqm1nTgFi69or2yuFprmg7_SDKcrcWIItW74")
, (unsafeChainId 19, unsafeFromText "7CRqrZPgJ9JYuCWAQtO2bqxlFDUw_i2Hlk52duk8A0s")
]
}

-- still the *default* block gas limit is set, see
-- defaultChainwebConfiguration._configBlockGasLimit
, _versionMaxBlockGasLimit = Bottom (minBound, Nothing)
, _versionCheats = VersionCheats
{ _disablePow = True
, _fakeFirstEpochStart = True
, _disablePact = False
}
, _versionDefaults = VersionDefaults
{ _disablePeerValidation = True
, _disableMempoolSync = False
}
, _versionVerifierPluginNames = AllChains $ Bottom
(minBound, Set.fromList $ map VerifierName ["hyperlane_v3_message", "allow"])
, _versionQuirks = noQuirks
, _versionServiceDate = Nothing

-- FIXME make this safe for graph changes
, _versionPayloadProviderTypes = onChains
$ (unsafeChainId 0, EvmProvider 1789)
: (unsafeChainId 1, EvmProvider 1790)
: [ (unsafeChainId i, MinimalProvider) | i <- [2..19] ]
}

-- Original devnet
-- FIXME we should revert this and instead introduce a new devnet for the EVM work
--
devnet_ :: ChainwebVersion
devnet_ = ChainwebVersion
{ _versionCode = ChainwebVersionCode 0x00000002
, _versionName = ChainwebVersionName "development"
, _versionForks = tabulateHashMap $ \case
Expand Down
98 changes: 98 additions & 0 deletions src/Chainweb/Version/EvmDevelopment.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{-# language LambdaCase #-}
{-# language NumericUnderscores #-}
{-# language OverloadedStrings #-}
{-# language PatternSynonyms #-}
{-# language QuasiQuotes #-}
{-# language ViewPatterns #-}

module Chainweb.Version.EvmDevelopment
( evmDevnet
, pattern EvmDevelopment
) where

import qualified Data.Set as Set

import Chainweb.BlockCreationTime
import Chainweb.ChainId
import Chainweb.Difficulty
import Chainweb.Graph
import Chainweb.Time
import Chainweb.Utils
import Chainweb.Utils.Rule
import Chainweb.Version

import Pact.Types.Verifier

pattern EvmDevelopment :: ChainwebVersion
pattern EvmDevelopment <- ((== evmDevnet) -> True) where
EvmDevelopment = evmDevnet

evmDevnet :: ChainwebVersion
evmDevnet = ChainwebVersion
{ _versionCode = ChainwebVersionCode 0x0000_000a
, _versionName = ChainwebVersionName "evm-development"
, _versionForks = tabulateHashMap $ \case
-- TODO: for now, Pact 5 is never enabled on EVM devnet.
-- this will change as it stabilizes.
Pact5Fork -> AllChains ForkNever
_ -> AllChains ForkAtGenesis
, _versionUpgrades = AllChains mempty
, _versionGraphs = Bottom (minBound, twentyChainGraph)
, _versionBlockDelay = BlockDelay 30_000_000
, _versionWindow = WindowWidth 120
, _versionHeaderBaseSizeBytes = 318 - 110
, _versionBootstraps = []
, _versionGenesis = VersionGenesis
{ _genesisBlockTarget = AllChains $ HashTarget (maxBound `div` 500_000)
, _genesisTime = onChains
$ (unsafeChainId 0, BlockCreationTime (Time (secondsToTimeSpan 1687223762)))
: (unsafeChainId 1, BlockCreationTime (Time (secondsToTimeSpan 1687223762)))
: [ (unsafeChainId i, BlockCreationTime [timeMicrosQQ| 2019-07-17T18:28:37.613832 |]) | i <- [2..19] ]
, _genesisBlockPayload = onChains $
[ (unsafeChainId 0, unsafeFromText "-EffZgInrtrokWVn5iqO2fuTbtG2-noDdhXr0pHQA4E")
, (unsafeChainId 1, unsafeFromText "-EffZgInrtrokWVn5iqO2fuTbtG2-noDdhXr0pHQA4E")
, (unsafeChainId 2, unsafeFromText "Gnh6QWze67ODyy4BoV4ZOeih72e_Cqos2BJM41sMgVc")
, (unsafeChainId 3, unsafeFromText "Ta08GYak3xnTr0HvJq9e37RTigd56N7m2aj_cxI1oC0")
, (unsafeChainId 4, unsafeFromText "eliqzAQ0JGxPD_73dwO7mXsX_tEOz6HJuLsDNJxqSd4")
, (unsafeChainId 5, unsafeFromText "F7-cmj0XXGKxjKm-dDSmMSpD9jwCjzrdQmwQgsjPj2g")
, (unsafeChainId 6, unsafeFromText "VK7rBExdlAUo9maErP19WJSgVMTc37xpEa_VXWELF74")
, (unsafeChainId 7, unsafeFromText "CnAxuzvToxp-bNZ_lnhCAJCEU4hzXuNJmGRMJx5bBWE")
, (unsafeChainId 8, unsafeFromText "abMl-fqTLY1EmiiFILE_orgsbAB_kKAshAx-zIQFoEM")
, (unsafeChainId 9, unsafeFromText "o5G8VKfB7I1Qv_Y8paCFHIS6vZuMYUgYBtV6-fDqzYA")
, (unsafeChainId 10, unsafeFromText "1DJiGUHIrXDNS7M3RJlUorw_07gjLRetb1q9tlt7aZs")
, (unsafeChainId 11, unsafeFromText "ot-tryHcaC7uvHkT1MqYsbLDV1ApZa2KGvjzddIonYU")
, (unsafeChainId 12, unsafeFromText "MjGGd7Osb09dEE2mfpDFISrAfWNnDqEqEYuRm5nFXSs")
, (unsafeChainId 13, unsafeFromText "ljaDzDMfFMOO4AZYC63_KIPAINZwRXUzKZ5FyB1pDjs")
, (unsafeChainId 14, unsafeFromText "W9lvCyH_NAJx89mnCQcwl5OknI89IM_5rn_TR6KkobQ")
, (unsafeChainId 15, unsafeFromText "PGKV488wnfsEgv28CtuAT16JNWmMRB-42TDMIr4jRGQ")
, (unsafeChainId 16, unsafeFromText "8J1yMti75X1Gnjn2AEpWMw-8nzOK6ysHo5c4SBIiNGo")
, (unsafeChainId 17, unsafeFromText "XlIsxdG3YnbxapDq71wY85-ghlIK3c5vfD_WEXgKcRM")
, (unsafeChainId 18, unsafeFromText "968Xg-0Jqm1nTgFi69or2yuFprmg7_SDKcrcWIItW74")
, (unsafeChainId 19, unsafeFromText "7CRqrZPgJ9JYuCWAQtO2bqxlFDUw_i2Hlk52duk8A0s")
]
}

-- still the *default* block gas limit is set, see
-- defaultChainwebConfiguration._configBlockGasLimit
, _versionMaxBlockGasLimit = Bottom (minBound, Nothing)
, _versionCheats = VersionCheats
{ _disablePow = True
, _fakeFirstEpochStart = True
, _disablePact = False
}
, _versionDefaults = VersionDefaults
{ _disablePeerValidation = True
, _disableMempoolSync = False
}
, _versionVerifierPluginNames = AllChains $ Bottom
(minBound, Set.fromList $ map VerifierName ["hyperlane_v3_message", "allow"])
, _versionQuirks = noQuirks
, _versionServiceDate = Nothing

-- FIXME make this safe for graph changes
, _versionPayloadProviderTypes = onChains
$ (unsafeChainId 0, EvmProvider 1789)
: (unsafeChainId 1, EvmProvider 1790)
: [ (unsafeChainId i, MinimalProvider) | i <- [2..19] ]
}

5 changes: 4 additions & 1 deletion src/Chainweb/Version/Registry.hs
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import GHC.Stack

import Chainweb.Version
import Chainweb.Version.Development
import Chainweb.Version.EvmDevelopment
import Chainweb.Version.Pact5Development
import Chainweb.Version.RecapDevelopment
import Chainweb.Version.Mainnet
Expand Down Expand Up @@ -140,6 +141,7 @@ lookupVersionByCode code
| code == _versionCode recapDevnet = "recapDevnet version used but not registered, remember to do so after it's configured. " <> perhaps
| code == _versionCode devnet = "devnet version used but not registered, remember to do so after it's configured. " <> perhaps
| code == _versionCode pact5Devnet = "Pact 5 devnet version used but not registered, remember to do so after it's configured. " <> perhaps
| code == _versionCode evmDevnet = "EVM devnet version used but not registered, remember to do so after it's configured. " <> perhaps
| otherwise = "version not registered with code " <> show code <> ", have you seen Chainweb.Test.TestVersions.testVersions?"

perhaps = "Perhaps you are attempting to run a different devnet version than a previous run, and you need to delete your db directory before restarting devnet with the new version?"
Expand All @@ -161,6 +163,7 @@ lookupVersionByName name
| name == _versionName recapDevnet = "recapDevnet version used but not registered, remember to do so after it's configured"
| name == _versionName devnet = "devnet version used but not registered, remember to do so after it's configured"
| name == _versionName pact5Devnet = "Pact 5 devnet version used but not registered, remember to do so after it's configured"
| name == _versionName evmDevnet = "EVM devnet version used but not registered, remember to do so after it's configured"
| otherwise = "version not registered with name " <> show name <> ", have you seen Chainweb.Test.TestVersions.testVersions?"

fabricateVersionWithName :: HasCallStack => ChainwebVersionName -> ChainwebVersion
Expand All @@ -169,7 +172,7 @@ fabricateVersionWithName name =

-- | Versions known to us by name.
knownVersions :: [ChainwebVersion]
knownVersions = [mainnet, testnet04, testnet05, recapDevnet, devnet, pact5Devnet]
knownVersions = [mainnet, testnet04, testnet05, recapDevnet, devnet, pact5Devnet, evmDevnet]

-- | Look up a known version by name, usually with `m` instantiated to some
-- configuration parser monad.
Expand Down

0 comments on commit 36b1543

Please sign in to comment.