diff --git a/common/domain/chainid.go b/common/domain/chainid.go index c2165d26..e40f6622 100644 --- a/common/domain/chainid.go +++ b/common/domain/chainid.go @@ -101,8 +101,9 @@ func TranslateEmitterAddress(chainID sdk.ChainID, address string) (string, error sdk.ChainIDHolesky, sdk.ChainIDWormchain, sdk.ChainIDScroll, - sdk.ChainIDBlast, - sdk.ChainIDXLayer: + sdk.ChainIDXLayer, + sdk.ChainIDMantle, + sdk.ChainIDBlast: return "0x" + hex.EncodeToString(addressBytes[12:]), nil @@ -192,6 +193,7 @@ func NormalizeTxHashByChainId(chainID sdk.ChainID, txHash string) string { sdk.ChainIDMoonbeam, sdk.ChainIDArbitrum, sdk.ChainIDOptimism, + sdk.ChainIDMantle, sdk.ChainIDSepolia, sdk.ChainIDArbitrumSepolia, sdk.ChainIDBaseSepolia, @@ -268,6 +270,8 @@ func EncodeTrxHashByChainID(chainID sdk.ChainID, txHash []byte) (string, error) return hex.EncodeToString(txHash), nil case sdk.ChainIDScroll: return hex.EncodeToString(txHash), nil + case sdk.ChainIDMantle: + return hex.EncodeToString(txHash), nil case sdk.ChainIDBlast: return hex.EncodeToString(txHash), nil case sdk.ChainIDXLayer: @@ -323,8 +327,10 @@ func DecodeNativeAddressToHex(chainID sdk.ChainID, address string) (string, erro sdk.ChainIDHolesky, sdk.ChainIDWormchain, sdk.ChainIDScroll, - sdk.ChainIDBlast, - sdk.ChainIDXLayer: + sdk.ChainIDXLayer, + sdk.ChainIDMantle, + sdk.ChainIDBlast: + return address, nil // Terra addresses use bench32 encoding diff --git a/tx-tracker/chains/chains.go b/tx-tracker/chains/chains.go index c07b4d2e..d25e40d6 100644 --- a/tx-tracker/chains/chains.go +++ b/tx-tracker/chains/chains.go @@ -85,6 +85,7 @@ func FetchTx( sdk.ChainIDScroll, sdk.ChainIDBlast, sdk.ChainIDXLayer, + sdk.ChainIDMantle, sdk.ChainIDPolygonSepolia: // polygon amoy apiEvm := &apiEvm{ chainId: chainId, diff --git a/tx-tracker/chains/util.go b/tx-tracker/chains/util.go index c3981b7c..d5010c5f 100644 --- a/tx-tracker/chains/util.go +++ b/tx-tracker/chains/util.go @@ -136,6 +136,7 @@ func FormatTxHashByChain(chainId sdk.ChainID, txHash string) string { sdk.ChainIDScroll, sdk.ChainIDBlast, sdk.ChainIDXLayer, + sdk.ChainIDMantle, sdk.ChainIDPolygonSepolia: return txHashLowerCaseWith0x(txHash) case sdk.ChainIDSei, sdk.ChainIDWormchain: diff --git a/tx-tracker/config/structs.go b/tx-tracker/config/structs.go index ac71d6db..b00e6615 100644 --- a/tx-tracker/config/structs.go +++ b/tx-tracker/config/structs.go @@ -124,6 +124,10 @@ type RpcProviderSettings struct { KlaytnRequestsPerMinute uint16 `split_words:"true" required:"false"` KlaytnFallbackUrls string `split_words:"true" required:"false"` KlaytnFallbackRequestsPerMinute string `split_words:"true" required:"false"` + MantleBaseUrl string `split_words:"true" required:"false"` + MantleRequestsPerMinute uint16 `split_words:"true" required:"false"` + MantleFallbackUrls string `split_words:"true" required:"false"` + MantleFallbackRequestsPerMinute string `split_words:"true" required:"false"` MoonbeamBaseUrl string `split_words:"true" required:"false"` MoonbeamRequestsPerMinute uint16 `split_words:"true" required:"false"` MoonbeamFallbackUrls string `split_words:"true" required:"false"` @@ -470,6 +474,17 @@ func (r RpcProviderSettings) ToMap() (map[sdk.ChainID][]RpcConfig, error) { } rpcs[sdk.ChainIDBase] = baseRpcConfigs + // add mantle rpcs + mantleRpcConfigs, err := addRpcConfig( + r.MantleBaseUrl, + r.MantleRequestsPerMinute, + r.MantleFallbackUrls, + r.MantleFallbackRequestsPerMinute) + if err != nil { + return nil, err + } + rpcs[sdk.ChainIDMantle] = mantleRpcConfigs + // add blast rpcs blastRpcConfigs, err := addRpcConfig( r.BlastBaseUrl,