diff --git a/packages/extension/src/libs/nft-handlers/simplehash.ts b/packages/extension/src/libs/nft-handlers/simplehash.ts index 7c47e937..7e4cc6a5 100644 --- a/packages/extension/src/libs/nft-handlers/simplehash.ts +++ b/packages/extension/src/libs/nft-handlers/simplehash.ts @@ -30,6 +30,7 @@ export default async ( [NetworkNames.ImmutableZkevm]: "immutable-zkevm", [NetworkNames.Forma]: "forma", [NetworkNames.Godwoken]: "godwoken", + [NetworkNames.Linea]: "linea", }; if (!Object.keys(supportedNetworks).includes(network.name)) throw new Error("Simplehash: network not supported"); diff --git a/packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts b/packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts index 8cc4d72a..6e756ec7 100644 --- a/packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts +++ b/packages/extension/src/providers/ethereum/libs/activity-handlers/providers/etherscan/configs.ts @@ -61,6 +61,7 @@ const NetworkEndpoints: Record = { [NetworkNames.Ham]: "https://explorer.ham.fun/", [NetworkNames.ImmutableZkevm]: "https://explorer.immutable.com/", [NetworkNames.Forma]: "https://explorer.forma.art/", + [NetworkNames.Linea]: "https://api.lineascan.build/", }; export { NetworkEndpoints }; diff --git a/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts b/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts index ba522fb5..25b2a7ed 100644 --- a/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts +++ b/packages/extension/src/providers/ethereum/libs/assets-handlers/assetinfo-mew.ts @@ -143,6 +143,10 @@ const supportedNetworks: Record = { tbName: "ckb", cgPlatform: CoingeckoPlatform.Godwoken, }, + [NetworkNames.Linea]: { + tbName: "linea", + cgPlatform: CoingeckoPlatform.Linea, + }, }; const getTokens = ( diff --git a/packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts b/packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts index f3110a10..5e26a8d0 100644 --- a/packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts +++ b/packages/extension/src/providers/ethereum/libs/assets-handlers/token-lists.ts @@ -32,6 +32,7 @@ const TokenList: Record = { [NetworkNames.Sanko]: `https://tokens.coingecko.com/${CoingeckoPlatform.Sanko}/all.json`, [NetworkNames.Degen]: `https://tokens.coingecko.com/${CoingeckoPlatform.Degen}/all.json`, [NetworkNames.Godwoken]: `https://tokens.coingecko.com/${CoingeckoPlatform.Godwoken}/all.json`, + [NetworkNames.Linea]: `https://tokens.coingecko.com/${CoingeckoPlatform.Linea}/all.json`, }; const getKnownNetworkTokens = async ( diff --git a/packages/extension/src/providers/ethereum/libs/assets-handlers/types/tokenbalance-mew.ts b/packages/extension/src/providers/ethereum/libs/assets-handlers/types/tokenbalance-mew.ts index fade10d0..2a7a3340 100644 --- a/packages/extension/src/providers/ethereum/libs/assets-handlers/types/tokenbalance-mew.ts +++ b/packages/extension/src/providers/ethereum/libs/assets-handlers/types/tokenbalance-mew.ts @@ -54,4 +54,5 @@ export type SupportedNetworkNames = | NetworkNames.Sanko | NetworkNames.Degen | NetworkNames.Blast - | NetworkNames.Godwoken; + | NetworkNames.Godwoken + | NetworkNames.Linea; diff --git a/packages/extension/src/providers/ethereum/networks/icons/linea.png b/packages/extension/src/providers/ethereum/networks/icons/linea.png new file mode 100644 index 00000000..2be7f7cd Binary files /dev/null and b/packages/extension/src/providers/ethereum/networks/icons/linea.png differ diff --git a/packages/extension/src/providers/ethereum/networks/index.ts b/packages/extension/src/providers/ethereum/networks/index.ts index add2c2cb..bc08dc09 100644 --- a/packages/extension/src/providers/ethereum/networks/index.ts +++ b/packages/extension/src/providers/ethereum/networks/index.ts @@ -44,10 +44,14 @@ import blastNode from "./blast"; import sankoNode from "./dmt"; import degenNode from "./degen"; import hamNode from "./ham"; +<<<<<<< HEAD import zcdNode from "./zcd"; import immutableZkevmNode from "./immutable-zkevm"; import formaNode from "./forma"; import godwokenNode from "./godwoken"; +======= +import lineaNode from "./linea"; +>>>>>>> 038fec6090829b22db483c800d7701b36f74285b export default { sepolia: sepoliaNode, @@ -105,8 +109,12 @@ export default { sanko: sankoNode, degen: degenNode, ham: hamNode, +<<<<<<< HEAD zcd: zcdNode, immutableZkevm: immutableZkevmNode, forma: formaNode, godwoken: godwokenNode, +======= + linea: lineaNode, +>>>>>>> 038fec6090829b22db483c800d7701b36f74285b }; diff --git a/packages/extension/src/providers/ethereum/networks/linea.ts b/packages/extension/src/providers/ethereum/networks/linea.ts new file mode 100644 index 00000000..da392eed --- /dev/null +++ b/packages/extension/src/providers/ethereum/networks/linea.ts @@ -0,0 +1,28 @@ +import { CoingeckoPlatform, NetworkNames } from "@enkryptcom/types"; +import { EvmNetwork, EvmNetworkOptions } from "../types/evm-network"; +import shNFTHandler from "@/libs/nft-handlers/simplehash"; +import { EtherscanActivity } from "../libs/activity-handlers"; +import wrapActivityHandler from "@/libs/activity-state/wrap-activity-handler"; +import assetsInfoHandler from "@/providers/ethereum/libs/assets-handlers/assetinfo-mew"; + +const lineaOptions: EvmNetworkOptions = { + name: NetworkNames.Linea, + name_long: "Linea", + homePage: "https://linea.build/", + blockExplorerTX: "https://lineascan.build/tx/[[txHash]]", + blockExplorerAddr: "https://lineascan.build/address/[[address]]", + chainID: `0xe708`, + isTestNetwork: false, + currencyName: "ETH", + currencyNameLong: "Ethereum", + node: "https://rpc.linea.build", + icon: require("./icons/linea.png"), + coingeckoPlatform: CoingeckoPlatform.Linea, + NFTHandler: shNFTHandler, + assetsInfoHandler, + activityHandler: wrapActivityHandler(EtherscanActivity), +}; + +const linea = new EvmNetwork(lineaOptions); + +export default linea; diff --git a/packages/types/src/networks.ts b/packages/types/src/networks.ts index 49fdeaf9..e021e31f 100644 --- a/packages/types/src/networks.ts +++ b/packages/types/src/networks.ts @@ -78,13 +78,11 @@ export enum NetworkNames { Sanko = "sanko", Degen = "degen", Ham = "ham", -<<<<<<< HEAD ZChains = "ZCD", ImmutableZkevm = "ImmutableZkevm", Forma = "Forma", -======= Godwoken = "godwoken", ->>>>>>> 9aa19afbeeddf0b41a6f8f82589ee488cef7c269 + Linea = "Linea", } export enum CoingeckoPlatform { @@ -134,4 +132,5 @@ export enum CoingeckoPlatform { Degen = "degen", ImmutableZkevm = "immutable", Godwoken = "godwoken", + Linea = "linea", }