Skip to content

Commit 8a6c265

Browse files
authored
Add Monad support (#775)
1 parent e824c8f commit 8a6c265

File tree

9 files changed

+15
-6
lines changed

9 files changed

+15
-6
lines changed

core/base/src/constants/chains.ts

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ const chainIdAndChainEntries = [
5252
[ 45, "Worldchain" ],
5353
[ 46, "Ink" ],
5454
[ 47, "HyperEVM" ],
55+
[ 48, "Monad" ],
5556
[ 3104, "Wormchain" ],
5657
[ 4000, "Cosmoshub" ],
5758
[ 4001, "Evmos" ],

core/base/src/constants/contracts/core.ts

+1
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export const coreBridgeContracts = [[
9393
["HyperEVM", "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd"],
9494
["Xlayer", "0xA31aa3FDb7aF7Db93d18DDA4e19F811342EDF780"],
9595
["Linea", "0x79A1027a6A159502049F10906D333EC57E95F083"],
96+
["Monad", "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd"],
9697
["MonadDevnet", "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd"],
9798
]], [
9899
"Devnet", [

core/base/src/constants/finality.ts

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ const finalityThresholds = [
6565
["Unichain", 512],
6666
["Ink", 512],
6767
["HyperEVM", 1],
68+
["Monad", 1],
6869
["Cosmoshub", 0],
6970
["Evmos", 0],
7071
["Kujira", 0],
@@ -116,6 +117,7 @@ const blockTimeMilliseconds = [
116117
["Kujira", 3_000],
117118
["Mantle", 2_000],
118119
["Moonbeam", 12_000],
120+
["Monad", 1_000],
119121
["MonadDevnet", 1_000],
120122
["Near", 1_500],
121123
["Neon", 30_000],

core/base/src/constants/nativeChainIds.ts

+1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ const chainNetworkNativeChainIdEntries = [
116116
["HyperEVM", 998n],
117117
["Xlayer", 195n],
118118
["Linea", 59141n], // Sepolia
119+
["Monad", 10143n],
119120
["MonadDevnet", 41454n],
120121
],
121122
],

core/base/src/constants/platforms.ts

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ const platformAndChainsEntries = [[
4141
"Worldchain",
4242
"Ink",
4343
"HyperEVM",
44+
"Monad",
4445
"MonadDevnet",
4546
]], [
4647
"Solana", [

core/base/src/constants/rpc.ts

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ const rpcConfig = [[
9696
["Worldchain", "https://worldchain-sepolia.g.alchemy.com/public"],
9797
["Ink", "https://rpc-qnd-sepolia.inkonchain.com"],
9898
["HyperEVM", "https://api.hyperliquid-testnet.xyz/evm"],
99+
["Monad", ""], // TODO: No public rpc is currently available, override with a custom rpc for now.
99100
["MonadDevnet", ""], // TODO: No public rpc is currently available, override with a custom rpc for now.
100101
["Noble", "https://noble-testnet-rpc.polkachu.com/"],
101102
]], [

core/icons/scripts/genIcons.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ const makeChainCondition = (chain: Chain): string => {
2121
return `(chain === "${chain}" || chain === "${chain}Sepolia")`;
2222
} else if (chain === "Sei") {
2323
return `(chain === "${chain}" || chain === "${chain}evm")`;
24-
} else if (chain.includes("Sepolia") || chain.includes("Holesky") || chain === "Seievm") {
24+
} else if (chain === "Monad") {
25+
return `(chain === "${chain}" || chain === "${chain}Devnet")`;
26+
} else if (chain.includes("Sepolia") || chain.includes("Holesky") || chain === "Seievm" || chain === "MonadDevnet") {
2527
return "";
2628
} else {
2729
return `(chain === "${chain}")`;

core/icons/src/constants/chainIcons.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@ export function chainToIcon(chain: Chain): string {
215215
PREFIX +
216216
"PHN2ZyB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjE0NCIgdmlld0JveD0iMCAwIDE0NCAxNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0NCA3MS42OTkxQzE0NCAxMTkuMzA2IDExNC44NjYgMTM0LjU4MiA5OS41MTU2IDEyMC45OEM4Ni44ODA0IDEwOS44ODkgODMuMTIxMSA4Ni40NTIxIDY0LjExNiA4NC4wNDU2QzM5Ljk5NDIgODEuMDExMyAzNy45MDU3IDExMy4xMzMgMjIuMDMzNCAxMTMuMTMzQzMuNTUwNCAxMTMuMTMzIDAgODYuMjQyOCAwIDcyLjQzMTVDMCA1OC4zMDYzIDMuOTY4MDkgMzkuMDU0MiAxOS43MzYgMzkuMDU0MkMzOC4xMTQ2IDM5LjA1NDIgMzkuMTU4OCA2Ni41NzIyIDYyLjEzMiA2NS4xMDczQzg1LjAwMDcgNjMuNTM3OSA4NS40MTg0IDM0Ljg2ODkgMTAwLjI0NyAyMi42MjcxQzExMy4xOTUgMTIuMDU5MyAxNDQgMjMuNDY0MSAxNDQgNzEuNjk5MVoiIGZpbGw9IiM5N0ZDRTQiLz48L3N2Zz4="
217217
);
218+
} else if (chain === "Monad" || chain === "MonadDevnet") {
219+
return (
220+
PREFIX +
221+
"PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTUuOTk5OSAwQzExLjM3OTUgMCAwIDExLjM3OTIgMCAxNS45OTk5QzAgMjAuNjIwNiAxMS4zNzk1IDMyIDE1Ljk5OTkgMzJDMjAuNjIwMyAzMiAzMiAyMC42MjA0IDMyIDE1Ljk5OTlDMzIgMTEuMzc5NCAyMC42MjA1IDAgMTUuOTk5OSAwWk0xMy41MDY2IDI1LjE0OTJDMTEuNTU4MiAyNC42MTgzIDYuMzE5ODEgMTUuNDU1IDYuODUwODMgMTMuNTA2NkM3LjM4MTg1IDExLjU1ODEgMTYuNTQ1IDYuMzE5NzkgMTguNDkzMyA2Ljg1MDhDMjAuNDQxOCA3LjM4MTczIDI1LjY4MDIgMTYuNTQ0OSAyNS4xNDkyIDE4LjQ5MzRDMjQuNjE4MiAyMC40NDE4IDE1LjQ1NSAyNS42ODAyIDEzLjUwNjYgMjUuMTQ5MloiIGZpbGw9IiM4MzZFRjkiLz48L3N2Zz4="
222+
);
218223
} else if (chain === "Wormchain") {
219224
return (
220225
PREFIX +
@@ -270,11 +275,6 @@ export function chainToIcon(chain: Chain): string {
270275
PREFIX +
271276
"PHN2ZyB3aWR0aD0iNjAwIiBoZWlnaHQ9IjYwMCIgdmlld0JveD0iMCAwIDYwMCA2MDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjYwMCIgaGVpZ2h0PSI2MDAiIHJ4PSIzMDAiIGZpbGw9IiMwMjA0MTgiLz48cGF0aCBkPSJNNDQyLjkyOSAzMzguNDg4QzQ0Mi45MzkgMzUyLjI4IDQ0MC4yNzkgMzY1LjczMiA0MzUuMDA5IDM3OC40NjVDNDI5LjcyOSAzOTEuMjE4IDQyMi4xMSA0MDIuNjEzIDQxMi4zNzUgNDEyLjM1N0M0MDIuNjExIDQyMi4xMTEgMzkxLjIwNiA0MjkuNzIgMzc4LjQ3MiA0MzQuOTlDMzY1Ljc1NyA0NDAuMjUxIDM1Mi4zMzQgNDQyLjkzIDMzOC41ODEgNDQyLjkzSDMzOC41MDNIMzM4LjQ4NEgzMzguMDc2QzMxNi4wNDQgNDQyLjkzIDI5NC4xNzYgNDM1Ljc0NyAyNzYuNDU0IDQyMi42OTRDMjU4LjYxNCA0MDkuNTUyIDI0NS4yMSAzOTAuNjQ2IDIzOC41NDIgMzY4LjgxOEMyMzUuNTUzIDM1OC45NzcgMjM0LjAzOSAzNDguNzk1IDIzNC4wNTggMzM4LjUyN1YyNjEuNTEzQzIzNC4wNjggMjU0LjE3NiAyMzYuOTIxIDI0Ny4yODUgMjQyLjExNCAyNDIuMDkzQzI0Ny4zMDcgMjM2LjkxIDI1NC4xOTggMjM0LjA1NiAyNjEuNTE2IDIzNC4wNDdDMjY4Ljg0NCAyMzQuMDY2IDI3NS43MzUgMjM2LjkzOSAyODAuOTE4IDI0Mi4xMTJDMjg2LjA5MSAyNDcuMjk1IDI4OC45NTUgMjU0LjE4NiAyODguOTc0IDI2MS41MDRWMzM4LjQ5OEMyODguOTg0IDM1MS43MTcgMjk0LjE0NyAzNjQuMTU5IDMwMy41MjMgMzczLjUwNkMzMTAuNDczIDM4MC40MzYgMzE5LjIzNyAzODUuMTA0IDMyOC44NjUgMzg2Ljk5NkMzMzguNDg0IDM4OC45MDggMzQ4LjM3NCAzODcuOTI4IDM1Ny40NDkgMzg0LjE3MkMzNjYuNTE0IDM4MC40MTYgMzc0LjE5MiAzNzQuMTI3IDM3OS42NTYgMzY1Ljk2NUMzODUuMTMgMzU3LjgxMiAzODguMDMyIDM0OC4zMiAzODguMDUyIDMzOC40ODhWMTg0LjUyOUMzODguMDUyIDE4MC45MDkgMzg4Ljc1MSAxNzcuMzY2IDM5MC4xMzkgMTc0LjAxOEMzOTEuNTE3IDE3MC42NzkgMzkzLjUxNiAxNjcuNjggMzk2LjA4OCAxNjUuMTE4QzM5OC42NTEgMTYyLjU2NSA0MDEuNjQgMTYwLjU1NiA0MDQuOTg5IDE1OS4xNjhDNDExLjY3NiAxNTYuNDEyIDQxOS4yOTUgMTU2LjQwMiA0MjUuOTkyIDE1OS4xNjhDNDI5LjM0MSAxNjAuNTU2IDQzMi4zMyAxNjIuNTY1IDQzNC44OTIgMTY1LjExOEM0MzcuNDU1IDE2Ny42OCA0MzkuNDU0IDE3MC42NzkgNDQwLjg0MiAxNzQuMDE4QzQ0Mi4yMyAxNzcuMzY2IDQ0Mi45MjkgMTgwLjkwOSA0NDIuOTI5IDE4NC41MjlWMzM4LjQ4OFpNMjI2LjUxNyAyMjYuNDg2QzIxNy4xNiAyMzUuODQyIDIxMS45OTcgMjQ4LjI4NSAyMTEuOTg3IDI2MS41MDRWNDE1LjQ3M0MyMTEuOTg3IDQyMi44IDIwOS4xMzQgNDI5LjY5MSAyMDMuOTQxIDQzNC44ODRDMTkzLjU3NSA0NDUuMjY5IDE3NS40ODMgNDQ1LjI2OSAxNjUuMTA4IDQzNC44ODRDMTU5LjkyNSA0MjkuNjkxIDE1Ny4wNzEgNDIyLjggMTU3LjA3MSA0MTUuNDczVjI2MS41MTNDMTU3LjA5MSAyMzYuNDgzIDE2Ni4xMDcgMjEyLjI2NyAxODIuNDYyIDE5My4zMjJDMTk4LjgyNiAxNzQuMzc3IDIyMS40NiAxNjEuOTM0IDI0Ni4yMiAxNTguMjY2QzI1MS4zMTUgMTU3LjUwOSAyNTYuNDMgMTU3LjEzIDI2MS41MjYgMTU3LjEzQzI4MS4yIDE1Ny4xMyAzMDAuNjExIDE2Mi43MDEgMzE3LjQwMyAxNzMuMzI5QzMyNS4zMzIgMTc4LjM0NyAzMzIuNDg2IDE4NC4zNzQgMzM4LjcxNyAxOTEuMjA2QzMzOC43NzUgMTkxLjE0OCAzMzguODE0IDE5MS4wOCAzMzguODcyIDE5MS4wMjJMMzM5LjAxOCAxOTEuNTc1QzM0OS4yNTcgMjAyLjkwMiAzNTYuOTgzIDIxNi40MTIgMzYxLjQ3NyAyMzEuMjIyTDM2MS45MDQgMjMyLjYzQzM2NC42MzEgMjQyLjAyNSAzNjYuMDEgMjUxLjc0IDM2Ni4wMTkgMjYxLjUwNFYzMzguNDg4QzM2Ni4wMTkgMzQzLjkzMyAzNjQuNDE4IDM0OS4yMDMgMzYxLjM5IDM1My43MjZDMzU4LjM2MSAzNTguMjQ5IDM1NC4xMSAzNjEuNzQzIDM0OS4wODMgMzYzLjgzOUMzNDUuODEyIDM2NS4xOTggMzQyLjM1NiAzNjUuODM4IDMzOC44NzIgMzY1Ljg3N1YzNjUuOTI2QzMzOC43MzYgMzY1LjkyNiAzMzguNjEgMzY1Ljg4NyAzMzguNDc0IDM2NS44ODdDMzM2LjcyNyAzNjUuODg3IDMzNC45NyAzNjUuNzcgMzMzLjIyMyAzNjUuNDIxQzMzMi4yMTQgMzY1LjIyNyAzMzEuMjM0IDM2NC45MTYgMzMwLjI2MyAzNjQuNjA2VjM2NC40N0MzMjkuNjAzIDM2NC4yNTYgMzI4LjkyNCAzNjQuMTUgMzI4LjI4MyAzNjMuODc4QzMyMy4yNTUgMzYxLjc4MSAzMTkuMDA0IDM1OC4yODcgMzE1Ljk3NiAzNTMuNzY1QzMxMi45NDggMzQ5LjIzMiAzMTEuMzQ2IDM0My45NjIgMzExLjM0NiAzMzguNTI3VjI2OC44MDJIMzExLjMyN1YyNjEuNDk0QzMxMS4zMDcgMjU0LjkyMyAzMTAuMDI2IDI0OC41MjcgMzA3LjUxMiAyNDIuNDkxQzMwNC45ODkgMjM2LjQ0NCAzMDEuMzQ5IDIzMS4wMjggMjk2LjcgMjI2LjM5OUMyOTIuMDUxIDIyMS43NzkgMjg2LjYxNiAyMTguMTc4IDI4MC41NCAyMTUuNjg0QzI3NC40NzQgMjEzLjE4OSAyNjguMDI5IDIxMS44NSAyNjEuNTI2IDIxMS45NjdDMjQ4LjMwNiAyMTEuOTc2IDIzNS44NzMgMjE3LjE0IDIyNi41MTcgMjI2LjQ4NlpNNDUwLjQ3IDE0OS41MzFDNDQxLjExNCAxNDAuMTg0IDQyOC42OSAxMzUuMDMxIDQxNS40ODEgMTM1LjAxMUg0MTUuNDYxQzQwMi4yNTEgMTM1LjA1IDM4OS44MzggMTQwLjIxMyAzODAuNTAxIDE0OS41NkMzNzEuMTgzIDE1OC45MDYgMzY2LjAzOSAxNzEuMzIgMzY2LjAxOSAxODQuNTI5VjE5MC4wOUMzNTIuMTAxIDE2OS43NTcgMzMyLjQ3NiAxNTMuODQgMzA5LjM5NSAxNDQuNDA2QzI4MC42MzcgMTMyLjY4MiAyNDguNjY2IDEzMS44NzYgMjE5LjMzNCAxNDIuMjIyQzE5NC41NDYgMTUxLjAxNiAxNzMuNDE2IDE2Ny4wMSAxNTguMjM2IDE4OC40NzlDMTQzLjA1NiAyMDkuOTU4IDEzNS4wMTkgMjM1LjIxMSAxMzUgMjYxLjUwNFY0MTUuNDczQzEzNSA0MjguNzAxIDE0MC4xNTQgNDQxLjEzNCAxNDkuNTEgNDUwLjQ5QzE1OC44NTcgNDU5Ljg0NiAxNzEuMyA0NjUgMTg0LjUyOSA0NjVDMTk3Ljc1OCA0NjUgMjEwLjE5MSA0NTkuODQ2IDIxOS41NDggNDUwLjQ5QzIyOC45MDQgNDQxLjEzNCAyMzQuMDU4IDQyOC43MDEgMjM0LjA1OCA0MTUuNDczVjQwOS45NUMyNDcuOTg2IDQzMC4yNzQgMjY3LjU5MiA0NDYuMTkxIDI5MC42NzMgNDU1LjYwNUMzMTkuNDEyIDQ2Ny4zMjkgMzUxLjM3MyA0NjguMDk2IDM4MC42OTUgNDU3Ljc3OUM0MDUuNDc0IDQ0OC45OTYgNDI2LjU4NCA0MzIuOTkxIDQ0MS43NzQgNDExLjUyMkM0NTYuOTQ0IDM5MC4wNDQgNDY0Ljk4MSAzNjQuODEgNDY1IDMzOC41MjdWMTg0LjUxOUM0NjQuOTgxIDE3MS4zMSA0NTkuODE3IDE1OC44ODcgNDUwLjQ3IDE0OS41MzFaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNl8yMDIpIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzZfMjAyIiB4MT0iMTIwLjQ0MSIgeTE9IjQ2Mi41NjIiIHgyPSI0NjMuMTA5IiB5Mj0iOTUuNDYzNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMC4wNSIgc3RvcC1jb2xvcj0id2hpdGUiLz48c3RvcCBvZmZzZXQ9IjAuMzgiIHN0b3AtY29sb3I9IiNBN0IzRkYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM3NEE0RkYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4="
272277
);
273-
} else if (chain === "MonadDevnet") {
274-
return (
275-
PREFIX +
276-
"PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTUuOTk5OSAwQzExLjM3OTUgMCAwIDExLjM3OTIgMCAxNS45OTk5QzAgMjAuNjIwNiAxMS4zNzk1IDMyIDE1Ljk5OTkgMzJDMjAuNjIwMyAzMiAzMiAyMC42MjA0IDMyIDE1Ljk5OTlDMzIgMTEuMzc5NCAyMC42MjA1IDAgMTUuOTk5OSAwWk0xMy41MDY2IDI1LjE0OTJDMTEuNTU4MiAyNC42MTgzIDYuMzE5ODEgMTUuNDU1IDYuODUwODMgMTMuNTA2NkM3LjM4MTg1IDExLjU1ODEgMTYuNTQ1IDYuMzE5NzkgMTguNDkzMyA2Ljg1MDhDMjAuNDQxOCA3LjM4MTczIDI1LjY4MDIgMTYuNTQ0OSAyNS4xNDkyIDE4LjQ5MzRDMjQuNjE4MiAyMC40NDE4IDE1LjQ1NSAyNS42ODAyIDEzLjUwNjYgMjUuMTQ5MloiIGZpbGw9IiM4MzZFRjkiLz48L3N2Zz4="
277-
);
278278
} else {
279279
// This case is never reached
280280
const _: never = chain;

0 commit comments

Comments
 (0)