Add optimism and arbitrum testnets (#151)

This commit is contained in:
a10zn8
2023-03-01 13:06:03 +03:00
committed by GitHub
parent a036920c98
commit f025a68b72
6 changed files with 51 additions and 5 deletions

View File

@@ -9,15 +9,17 @@ enum class BlockchainType {
if (chain == Chain.TESTNET_ROPSTEN || if (chain == Chain.TESTNET_ROPSTEN ||
chain == Chain.POLYGON || chain == Chain.POLYGON ||
chain == Chain.OPTIMISM || chain == Chain.OPTIMISM ||
chain == Chain.ARBITRUM ||
chain == Chain.BSC || chain == Chain.BSC ||
chain == Chain.TESTNET_GOERLI || chain == Chain.TESTNET_GOERLI ||
chain == Chain.ETHEREUM || chain == Chain.ETHEREUM ||
chain == Chain.TESTNET_SEPOLIA chain == Chain.TESTNET_SEPOLIA ||
chain == Chain.TESTNET_ARBITRUM ||
chain == Chain.TESTNET_OPTIMISM
) { ) {
return EVM_POS return EVM_POS
} }
if (chain == Chain.ETHEREUM_CLASSIC || if (chain == Chain.ETHEREUM_CLASSIC ||
chain == Chain.ARBITRUM ||
chain == Chain.FANTOM || chain == Chain.FANTOM ||
chain == Chain.RSK || chain == Chain.RSK ||
chain == Chain.TESTNET_KOVAN || chain == Chain.TESTNET_KOVAN ||

View File

@@ -50,7 +50,13 @@ enum class Chain(val id: Int, val chainCode: String, val chainName: String) {
"Ropsten Testnet" "Ropsten Testnet"
), ),
TESTNET_RINKEBY(10007, "RINKEBY", "Rinkeby Testnet"), TESTNET_RINKEBY(10007, "RINKEBY", "Rinkeby Testnet"),
TESTNET_SEPOLIA(10008, "SEPOLIA", "Sepolia Testnet"); TESTNET_SEPOLIA(10008, "SEPOLIA", "Sepolia Testnet"),
TESTNET_ARBITRUM(
10009,
"ARBITRUM_TESTNET",
"Arbitrum Testnet"
),
TESTNET_OPTIMISM(10010, "OPTIMISM_TESTNET", "Optimism Testnet");
companion object { companion object {
fun byId(id: Int): Chain { fun byId(id: Int): Chain {

View File

@@ -67,6 +67,8 @@ class Global {
"bitcoin-testnet" to Chain.TESTNET_BITCOIN, "bitcoin-testnet" to Chain.TESTNET_BITCOIN,
"sepolia" to Chain.TESTNET_SEPOLIA, "sepolia" to Chain.TESTNET_SEPOLIA,
"sepolia-testnet" to Chain.TESTNET_SEPOLIA, "sepolia-testnet" to Chain.TESTNET_SEPOLIA,
"optimism-testnet" to Chain.TESTNET_OPTIMISM,
"optimism-arbitrum" to Chain.TESTNET_OPTIMISM,
) )
fun chainById(id: String?): Chain { fun chainById(id: String?): Chain {

View File

@@ -229,6 +229,22 @@ class DefaultEthereumMethods(
"\"11155111\"" "\"11155111\""
} }
Chain.ARBITRUM == chain -> {
"\"42161\""
}
Chain.OPTIMISM == chain -> {
"\"10\""
}
Chain.TESTNET_ARBITRUM == chain -> {
"\"421613\""
}
Chain.TESTNET_OPTIMISM == chain -> {
"\"420\""
}
else -> throw RpcException(-32602, "Invalid chain") else -> throw RpcException(-32602, "Invalid chain")
} }
} }
@@ -271,6 +287,22 @@ class DefaultEthereumMethods(
"\"0xaa36a7\"" "\"0xaa36a7\""
} }
Chain.ARBITRUM == chain -> {
"\"0xa4b1\""
}
Chain.OPTIMISM == chain -> {
"\"0xa\""
}
Chain.TESTNET_ARBITRUM == chain -> {
"\"0x66eed\""
}
Chain.TESTNET_OPTIMISM == chain -> {
"\"0x1A4\""
}
else -> throw RpcException(-32602, "Invalid chain") else -> throw RpcException(-32602, "Invalid chain")
} }
} }

View File

@@ -69,7 +69,11 @@ open class EthereumMultistream(
private var subscribe = EthereumEgressSubscription(this, NoPendingTxes()) private var subscribe = EthereumEgressSubscription(this, NoPendingTxes())
private val supportsEIP1559 = when (chain) { private val supportsEIP1559 = when (chain) {
Chain.ETHEREUM, Chain.TESTNET_ROPSTEN, Chain.TESTNET_GOERLI, Chain.TESTNET_RINKEBY, Chain.TESTNET_SEPOLIA -> true Chain.ETHEREUM, Chain.TESTNET_ROPSTEN,
Chain.TESTNET_GOERLI, Chain.TESTNET_RINKEBY,
Chain.TESTNET_SEPOLIA, Chain.ARBITRUM,
Chain.OPTIMISM, Chain.TESTNET_ARBITRUM,
Chain.TESTNET_OPTIMISM -> true
else -> false else -> false
} }
private val feeEstimation = if (supportsEIP1559) EthereumPriorityFees(this, reader, 256) private val feeEstimation = if (supportsEIP1559) EthereumPriorityFees(this, reader, 256)