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 ||
chain == Chain.POLYGON ||
chain == Chain.OPTIMISM ||
chain == Chain.ARBITRUM ||
chain == Chain.BSC ||
chain == Chain.TESTNET_GOERLI ||
chain == Chain.ETHEREUM ||
chain == Chain.TESTNET_SEPOLIA
chain == Chain.TESTNET_SEPOLIA ||
chain == Chain.TESTNET_ARBITRUM ||
chain == Chain.TESTNET_OPTIMISM
) {
return EVM_POS
}
if (chain == Chain.ETHEREUM_CLASSIC ||
chain == Chain.ARBITRUM ||
chain == Chain.FANTOM ||
chain == Chain.RSK ||
chain == Chain.TESTNET_KOVAN ||

View File

@@ -50,7 +50,13 @@ enum class Chain(val id: Int, val chainCode: String, val chainName: String) {
"Ropsten 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 {
fun byId(id: Int): Chain {

View File

@@ -67,6 +67,8 @@ class Global {
"bitcoin-testnet" to Chain.TESTNET_BITCOIN,
"sepolia" 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 {

View File

@@ -229,6 +229,22 @@ class DefaultEthereumMethods(
"\"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")
}
}
@@ -271,6 +287,22 @@ class DefaultEthereumMethods(
"\"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")
}
}

View File

@@ -69,7 +69,11 @@ open class EthereumMultistream(
private var subscribe = EthereumEgressSubscription(this, NoPendingTxes())
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
}
private val feeEstimation = if (supportsEIP1559) EthereumPriorityFees(this, reader, 256)