diff --git a/docs/04-upstream-config.adoc b/docs/04-upstream-config.adoc index 097bf2c5..7f0b2b73 100644 --- a/docs/04-upstream-config.adoc +++ b/docs/04-upstream-config.adoc @@ -149,6 +149,8 @@ Currently, dshackle supports next chains (should be used as chain names in confi - bitcoin (bitcoin-testnet) - base - base-goerli +- linea +- linea-goerli === Roles and Fallback upstream diff --git a/emerald-grpc b/emerald-grpc index a89869a1..1afdf11b 160000 --- a/emerald-grpc +++ b/emerald-grpc @@ -1 +1 @@ -Subproject commit a89869a14dc8c11ae8cd5380ac9fede5d2680f5e +Subproject commit 1afdf11bbfb439eb4cd30a85cec3bc5996b34d10 diff --git a/src/main/kotlin/io/emeraldpay/dshackle/BlockchainType.kt b/src/main/kotlin/io/emeraldpay/dshackle/BlockchainType.kt index 062f781b..5efd0955 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/BlockchainType.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/BlockchainType.kt @@ -23,7 +23,9 @@ enum class BlockchainType { chain == Chain.ZKSYNC__TESTNET || chain == Chain.POLYGON_POS__MUMBAI || chain == Chain.BASE__MAINNET || - chain == Chain.BASE__GOERLI + chain == Chain.BASE__GOERLI || + chain == Chain.LINEA__MAINNET || + chain == Chain.LINEA__GOERLI ) { return EVM_POS } diff --git a/src/main/kotlin/io/emeraldpay/dshackle/Chain.kt b/src/main/kotlin/io/emeraldpay/dshackle/Chain.kt index 528f8b62..6d4baa1d 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/Chain.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/Chain.kt @@ -48,6 +48,7 @@ enum class Chain(val id: Int, val chainCode: String, val chainName: String) { ), ZKSYNC__MAINNET(1009, "ZKSYNC", "ZkSync Era"), BASE__MAINNET(1010, "BASE", "Base"), + LINEA__MAINNET(1011, "LINEA", "Linea"), // Testnets ETHEREUM__MORDEN(10001, "MORDEN", "Morden Testnet"), @@ -86,7 +87,8 @@ enum class Chain(val id: Int, val chainCode: String, val chainName: String) { "POLYGON_POS_MUMBAI", "Polygon POS Mumbai Testnet" ), - BASE__GOERLI(10014, "BASE_GOERLI", "Base Goerli Testnet"); + BASE__GOERLI(10014, "BASE_GOERLI", "Base Goerli Testnet"), + LINEA__GOERLI(10015, "LINEA_GOERLI", "Linea Goerli Testnet"); companion object { fun byId(id: Int): Chain { diff --git a/src/main/kotlin/io/emeraldpay/dshackle/Global.kt b/src/main/kotlin/io/emeraldpay/dshackle/Global.kt index 98f8da97..f05ed86e 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/Global.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/Global.kt @@ -79,6 +79,8 @@ class Global { "polygon-mumbai" to Chain.POLYGON_POS__MUMBAI, "base" to Chain.BASE__MAINNET, "base-goerli" to Chain.BASE__GOERLI, + "linea" to Chain.LINEA__MAINNET, + "linea-goerli" to Chain.LINEA__GOERLI, ) fun chainById(id: String?): Chain { diff --git a/src/main/kotlin/io/emeraldpay/dshackle/upstream/calls/DefaultEthereumMethods.kt b/src/main/kotlin/io/emeraldpay/dshackle/upstream/calls/DefaultEthereumMethods.kt index 1737a357..4b0f5fbb 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/upstream/calls/DefaultEthereumMethods.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/upstream/calls/DefaultEthereumMethods.kt @@ -274,6 +274,9 @@ class DefaultEthereumMethods( Chain.BASE__MAINNET to HardcodedData("\"8453\"", "\"0x2105\""), Chain.BASE__GOERLI to HardcodedData("\"84531\"", "\"0x14a33\""), + + Chain.LINEA__MAINNET to HardcodedData("\"59144\"", "\"0xe708\""), + Chain.LINEA__GOERLI to HardcodedData("\"59140\"", "\"0xe704\""), ) override fun executeHardcoded(method: String): ByteArray {