Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ Enkrypt is a web3 wallet built from the ground up to support the multi-chain fut
- Shiden EVM
- Sepolia
- Syscoin NEVM
- Taraxa
- Telos EVM
- Unique
- Vara Network
Expand All @@ -109,6 +110,12 @@ Enkrypt is a web3 wallet built from the ground up to support the multi-chain fut
- zkSync
- zkSync Goerli
- 5ireChain
- Story
- Abstract
- Berachain
- Ink Onchain
- Unichain
- Gravity
- More coming soon!

Looking to add your project? [Contact us!](https://mewwallet.typeform.com/enkrypt-inquiry?typeform-source=www.enkrypt.com)
Expand Down
7 changes: 4 additions & 3 deletions packages/extension/src/libs/nft-handlers/simplehash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,17 @@ export default async (
[NetworkNames.Palm]: 'palm',
[NetworkNames.ProofOfPlayApex]: 'proof-of-play',
[NetworkNames.Scroll]: 'scroll',
[NetworkNames.Unichain]: 'unichain',
[NetworkNames.Bera]: 'berachain'
};
if (!Object.keys(supportedNetworks).includes(network.name))
throw new Error('Simplehash: network not supported');
let allItems: SHNFTType[] = [];
const fetchAll = (continuation?: string): Promise<void> => {
const query = continuation
? continuation
: `${SH_ENDPOINT}owners_v2?chains=${
supportedNetworks[network.name as keyof typeof supportedNetworks]
}&wallet_addresses=${address}&filters=spam_score__lte=75`;
: `${SH_ENDPOINT}owners_v2?chains=${supportedNetworks[network.name as keyof typeof supportedNetworks]
}&wallet_addresses=${address}&filters=spam_score__lte=75`;
return cacheFetch(
{
url: query,
Expand Down
12 changes: 8 additions & 4 deletions packages/extension/src/providers/common/libs/new-features.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import { NetworkNames } from '@enkryptcom/types';

const newNetworks = [
NetworkNames.Form,
NetworkNames.Rollux,
NetworkNames.SyscoinNEVM,
NetworkNames.Fire,
NetworkNames.Story,
NetworkNames.Abstract,
NetworkNames.Gravity,
NetworkNames.Unichain,
NetworkNames.Bera,
NetworkNames.Ink,
NetworkNames.Taraxa,
NetworkNames.Coti,
];
const newSwaps: NetworkNames[] = [];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ const NetworkEndpoints: Record<string, string> = {
[NetworkNames.ProofOfPlayApex]: 'https://explorer.apex.proofofplay.com/',
[NetworkNames.Scroll]: 'https://api.scrollscan.com/',
[NetworkNames.Fraxtal]: 'https://api.fraxscan.com/',
[NetworkNames.Ink]: 'https://explorer.inkonchain.com/',
[NetworkNames.Coti]: 'https://mainnet.cotiscan.io/',
};

export { NetworkEndpoints };
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ const supportedNetworks: Record<SupportedNetworkNames, SupportedNetwork> = {
cgPlatform: CoingeckoPlatform.Canto,
},
[NetworkNames.Rootstock]: {
tbName: 'rsk',
cgPlatform: CoingeckoPlatform.Rootstock,
bsEndpoint: true,
},
Expand Down Expand Up @@ -194,6 +193,30 @@ const supportedNetworks: Record<SupportedNetworkNames, SupportedNetwork> = {
tbName: '',
cgPlatform: CoingeckoPlatform.Solana,
},
[NetworkNames.Gravity]: {
tbName: 'gravity',
cgPlatform: CoingeckoPlatform.Gravity,
},
[NetworkNames.Abstract]: {
tbName: 'abs',
cgPlatform: CoingeckoPlatform.Abstract,
},
[NetworkNames.Story]: {
tbName: 'story',
cgPlatform: CoingeckoPlatform.Story,
},
[NetworkNames.Ink]: {
cgPlatform: CoingeckoPlatform.Ink,
bsEndpoint: true,
},
[NetworkNames.Bera]: {
tbName: 'bera',
cgPlatform: CoingeckoPlatform.Berachain,
},
[NetworkNames.Unichain]: {
tbName: 'uni',
cgPlatform: CoingeckoPlatform.Unichain,
}
};

const getTokens = (
Expand Down Expand Up @@ -251,15 +274,15 @@ export default (

const marketInfo = supportedNetworks[networkName].cgPlatform
? await marketData.getMarketInfoByContracts(
Object.keys(balances).filter(
contract => contract !== NATIVE_TOKEN_ADDRESS,
),
supportedNetworks[networkName].cgPlatform as CoingeckoPlatform,
)
Object.keys(balances).filter(
contract => contract !== NATIVE_TOKEN_ADDRESS,
),
supportedNetworks[networkName].cgPlatform as CoingeckoPlatform,
)
: tokens.reduce(
(obj, cur) => ({ ...obj, [cur.contract]: null }),
{} as Record<string, CoinGeckoTokenMarket | null>,
);
(obj, cur) => ({ ...obj, [cur.contract]: null }),
{} as Record<string, CoinGeckoTokenMarket | null>,
);
if (network.coingeckoID) {
const nativeMarket = await marketData.getMarketData([
network.coingeckoID,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ const TokenList: Record<SupportedNetworkNames, string> = {
[NetworkNames.TomoChain]: `https://tokens.coingecko.com/${CoingeckoPlatform.TomoChain}/all.json`,
[NetworkNames.XLayer]: `https://tokens.coingecko.com/${CoingeckoPlatform.XLayer}/all.json`,
[NetworkNames.ZkSync]: `https://tokens.coingecko.com/${CoingeckoPlatform.Zksync}/all.json`,
[NetworkNames.Gravity]: `https://tokens.coingecko.com/${CoingeckoPlatform.Gravity}/all.json`,
[NetworkNames.Abstract]: `https://tokens.coingecko.com/${CoingeckoPlatform.Abstract}/all.json`,
[NetworkNames.Story]: `https://tokens.coingecko.com/${CoingeckoPlatform.Story}/all.json`,
[NetworkNames.Ink]: `https://tokens.coingecko.com/${CoingeckoPlatform.Ink}/all.json`,
[NetworkNames.Bera]: `https://tokens.coingecko.com/${CoingeckoPlatform.Berachain}/all.json`,
[NetworkNames.Unichain]: `https://tokens.coingecko.com/${CoingeckoPlatform.Unichain}/all.json`,
};

const getKnownNetworkTokens = async (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,11 @@ export type SupportedNetworkNames =
| NetworkNames.OpBNB
| NetworkNames.Scroll
| NetworkNames.Rari
| NetworkNames.Gravity
| NetworkNames.Unichain
| NetworkNames.Abstract
| NetworkNames.Bera
| NetworkNames.Ink
| NetworkNames.Story
| NetworkNames.Base
| NetworkNames.ImmutableZkevm;
26 changes: 26 additions & 0 deletions packages/extension/src/providers/ethereum/networks/abstract.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import icon from './icons/abstract.webp';
import { NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';
import assetsInfoHandler from '@/providers/ethereum/libs/assets-handlers/assetinfo-mew';

const absOptions: EvmNetworkOptions = {
name: NetworkNames.Abstract,
name_long: 'Abstract',
homePage: 'https://www.abs.xyz/',
blockExplorerTX: 'https://abscan.org/tx/[[txHash]]',
blockExplorerAddr: 'https://abscan.org/address/[[address]]',
chainID: '0xAB5',
isTestNetwork: false,
currencyName: 'ETH',
currencyNameLong: 'ETH',
node: 'https://api.mainnet.abs.xyz',
icon,
coingeckoID: 'ethereum',
assetsInfoHandler,
activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

const abstract = new EvmNetwork(absOptions);

export default abstract;
29 changes: 29 additions & 0 deletions packages/extension/src/providers/ethereum/networks/bera.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import icon from './icons/bera.webp';
import { CoingeckoPlatform, NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
import assetsInfoHandler from '@/providers/ethereum/libs/assets-handlers/assetinfo-mew';
import shNFTHandler from '@/libs/nft-handlers/simplehash';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';

const beraOptions: EvmNetworkOptions = {
name: NetworkNames.Bera,
name_long: 'Berachain',
homePage: 'https://www.berachain.com/',
blockExplorerTX: 'https://berascan.com/tx/[[txHash]]',
blockExplorerAddr: 'https://berascan.com/address/[[address]]',
chainID: '0x138DE',
isTestNetwork: false,
currencyName: 'BERA',
currencyNameLong: 'BERA',
coingeckoID: 'berachain-bera',
node: 'https://rpc.berachain.com/',
icon,
coingeckoPlatform: CoingeckoPlatform.Berachain,
NFTHandler: shNFTHandler,
assetsInfoHandler,
activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

const bera = new EvmNetwork(beraOptions);

export default bera;
24 changes: 24 additions & 0 deletions packages/extension/src/providers/ethereum/networks/coti.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import icon from './icons/coti.png';
import { NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';
import { EtherscanActivity } from '../libs/activity-handlers';

const coti: EvmNetworkOptions = {
name: NetworkNames.Coti,
name_long: 'COTI',
homePage: 'https://coti.io/',
blockExplorerTX: 'https://mainnet.cotiscan.io/tx/[[txHash]]',
blockExplorerAddr: 'https://mainnet.cotiscan.io/address/[[address]]',
chainID: '0x282B34',
isTestNetwork: false,
currencyName: 'COTI',
currencyNameLong: 'COTI',
node: 'https://mainnet.coti.io/rpc',
icon,
activityHandler: wrapActivityHandler(EtherscanActivity),
};

const cotiDevnet = new EvmNetwork(coti);

export default cotiDevnet;
27 changes: 27 additions & 0 deletions packages/extension/src/providers/ethereum/networks/gravity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import icon from './icons/gravity.webp';
import { CoingeckoPlatform, NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
import assetsInfoHandler from '@/providers/ethereum/libs/assets-handlers/assetinfo-mew';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';

const gravityOptions: EvmNetworkOptions = {
name: NetworkNames.Gravity,
name_long: 'Gravity',
homePage: 'https://gravity.xyz/',
blockExplorerTX: 'https://explorer.gravity.xyz/tx/[[txHash]]',
blockExplorerAddr: 'https://explorer.gravity.xyz/address/[[address]]',
chainID: '0x659',
isTestNetwork: false,
currencyName: 'G',
currencyNameLong: 'G',
coingeckoID: 'g-token',
node: 'https://rpc.gravity.xyz',
icon,
coingeckoPlatform: CoingeckoPlatform.Gravity,
assetsInfoHandler,
activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

const gravity = new EvmNetwork(gravityOptions);

export default gravity;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions packages/extension/src/providers/ethereum/networks/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,14 @@ import holeskyNode from './holesky';
import bitrockNode from './bitrock';
import fraxtalNode from './fraxtal';
import _5ireNode from './5ire';
import beraNode from './bera';
import storyNode from './story';
import gravityNode from './gravity';
import unichainNode from './unichain';
import abstractNode from './abstract';
import inkNode from './inkonchain';
import taraxa from './taraxa';
import coti from './coti';

export default {
sepolia: sepoliaNode,
Expand Down Expand Up @@ -138,5 +146,13 @@ export default {
holesky: holeskyNode,
bitrock: bitrockNode,
frax: fraxtalNode,
taraxa: taraxa,
'5ire': _5ireNode,
bera: beraNode,
story: storyNode,
gravity: gravityNode,
unichain: unichainNode,
abstract: abstractNode,
ink: inkNode,
coti: coti
};
27 changes: 27 additions & 0 deletions packages/extension/src/providers/ethereum/networks/inkonchain.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import icon from './icons/ink.webp';
import { NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
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 inkOptions: EvmNetworkOptions = {
name: NetworkNames.Ink,
name_long: 'Ink Onchain',
homePage: 'https://inkonchain.com/',
blockExplorerTX: 'https://explorer.inkonchain.com/tx/[[txHash]]',
blockExplorerAddr: 'https://explorer.inkonchain.com/address/[[address]]',
chainID: '0xDEF1',
isTestNetwork: false,
currencyName: 'ETH',
currencyNameLong: 'ETH',
node: 'https://rpc-gel.inkonchain.com',
icon,
coingeckoID: 'ethereum',
assetsInfoHandler,
activityHandler: wrapActivityHandler(EtherscanActivity),
};

const ink = new EvmNetwork(inkOptions);

export default ink;
26 changes: 26 additions & 0 deletions packages/extension/src/providers/ethereum/networks/story.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import icon from './icons/story.webp';
import { NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';
import assetsInfoHandler from '@/providers/ethereum/libs/assets-handlers/assetinfo-mew';

const storyOptions: EvmNetworkOptions = {
name: NetworkNames.Story,
name_long: 'Story',
homePage: 'https://www.story.foundation/',
blockExplorerTX: 'https://www.storyscan.xyz/tx/[[txHash]]',
blockExplorerAddr: 'https://www.storyscan.xyz/address/[[address]]',
chainID: '0x5EF',
isTestNetwork: false,
currencyName: 'IP',
currencyNameLong: 'IP',
node: 'https://mainnet.storyrpc.io',
icon,
coingeckoID: 'story-2',
assetsInfoHandler,
activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

const story = new EvmNetwork(storyOptions);

export default story;
24 changes: 24 additions & 0 deletions packages/extension/src/providers/ethereum/networks/taraxa.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import icon from './icons/tara.webp';
import wrapActivityHandler from '@/libs/activity-state/wrap-activity-handler';
import { CoingeckoPlatform, NetworkNames } from '@enkryptcom/types';
import { EvmNetwork, EvmNetworkOptions } from '../types/evm-network';
const taraxaOptions: EvmNetworkOptions = {
name: NetworkNames.Taraxa,
name_long: 'Taraxa',
homePage: 'https://taraxa.io',
blockExplorerTX: 'https://tara.to/tx/[[txHash]]',
blockExplorerAddr: 'https://tara.to/address/[[address]]',
chainID: '0x349',
isTestNetwork: false,
currencyName: 'TARA',
currencyNameLong: 'Taraxa',
node: 'https://rpc.mainnet.taraxa.io',
icon,
coingeckoID: 'taraxa',
coingeckoPlatform: CoingeckoPlatform.Taraxa,
activityHandler: wrapActivityHandler(() => Promise.resolve([])),
};

const taraxa = new EvmNetwork(taraxaOptions);

export default taraxa;
Loading