status-go/services/wallet/common/const.go

71 lines
1.7 KiB
Go
Raw Normal View History

2023-04-18 14:33:59 +00:00
package common
import (
"strconv"
"time"
)
2023-09-04 10:18:46 +00:00
2023-04-18 14:33:59 +00:00
type ChainID uint64
const (
UnknownChainID uint64 = 0
2023-04-18 14:33:59 +00:00
EthereumMainnet uint64 = 1
EthereumGoerli uint64 = 5
EthereumSepolia uint64 = 11155111
OptimismMainnet uint64 = 10
OptimismGoerli uint64 = 420
2023-11-16 20:46:01 +00:00
OptimismSepolia uint64 = 11155420
2023-04-18 14:33:59 +00:00
ArbitrumMainnet uint64 = 42161
ArbitrumGoerli uint64 = 421613
2023-10-10 12:30:12 +00:00
ArbitrumSepolia uint64 = 421614
2023-04-18 14:33:59 +00:00
)
2023-09-04 10:18:46 +00:00
type ContractType byte
const (
ContractTypeUnknown ContractType = iota
ContractTypeERC20
ContractTypeERC721
ContractTypeERC1155
)
func (c ChainID) String() string {
return strconv.Itoa(int(c))
}
func (c ChainID) IsMainnet() bool {
switch uint64(c) {
case EthereumMainnet, OptimismMainnet, ArbitrumMainnet:
return true
case EthereumGoerli, EthereumSepolia, OptimismGoerli, OptimismSepolia, ArbitrumGoerli, ArbitrumSepolia:
return false
case UnknownChainID:
return false
}
return false
}
func AllChainIDs() []ChainID {
return []ChainID{
ChainID(EthereumMainnet),
ChainID(EthereumGoerli),
ChainID(EthereumSepolia),
ChainID(OptimismMainnet),
ChainID(OptimismGoerli),
2023-11-16 20:46:01 +00:00
ChainID(OptimismSepolia),
ChainID(ArbitrumMainnet),
ChainID(ArbitrumGoerli),
2023-10-10 12:30:12 +00:00
ChainID(ArbitrumSepolia),
}
}
2023-09-04 10:18:46 +00:00
var AverageBlockDurationForChain = map[ChainID]time.Duration{
ChainID(UnknownChainID): time.Duration(12000) * time.Millisecond,
ChainID(EthereumMainnet): time.Duration(12000) * time.Millisecond,
ChainID(EthereumGoerli): time.Duration(12000) * time.Millisecond,
ChainID(OptimismMainnet): time.Duration(400) * time.Millisecond,
ChainID(OptimismGoerli): time.Duration(2000) * time.Millisecond,
ChainID(ArbitrumMainnet): time.Duration(300) * time.Millisecond,
ChainID(ArbitrumGoerli): time.Duration(1500) * time.Millisecond,
}