// npm 패키지
@arthur2079/provider-metamask
MetaMask Wallet integration for hub. [Homepage](https://metamask.io/) | [Docs](https://docs.metamask.io/)
버전
2
메인테이너
1
라이선스
MIT
최초 publish
2026-06-03
publisher
arthur2079
tarball
88,893 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2026-06-03
// exfil path
what is read → where it shipssteals
- ● Crypto wallet
sends to
(no destination string extracted — payload may be dynamic / obfuscated)
evidence in excerpt
> icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/metamask/icon.svg', > 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en', > 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en', > firefox: 'https://addons.mozilla.org/en-US/firefox/addon/ether-metamask', > edge: 'https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US',
// offending code· @0.0.0-experimental-02e44603-20260603· 2 files flagged
- @0.0.0-experimental-02e44603-20260603··AUTO-PUBLISHED·publisher: arthur2079heuristic 64/100static flags 1llm skippednew-publisher:23dpublisher-multi-name-burst:44publisher-version-pump:45reads-wallet-files
// offending code· 2 files flaggedpatterns: 1
--- package/src/constants.ts (excerpt) --- import { type ProviderMetadata } from '@arthur2079/wallets-core'; import { type BlockchainMeta, evmBlockchains, solanaBlockchain, } from 'rango-types'; import getSigners from './signer.js'; import { getInstanceOrThrow } from './utils.js'; export const WALLET_ID = 'metamask'; export const WALLET_STANDARD_NAME = 'MetaMask'; export const SOLANA_WALLET_STANDARD_MAINNET = 'solana:mainnet'; export const metadata: ProviderMetadata = { name: 'MetaMask', icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/metamask/icon.svg', extensions: { chrome: 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en', brave: 'https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en', firefox: 'https://addons.mozilla.org/en-US/firefox/addon/ether-metamask', edge: 'https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm?hl=en-US', homepage: 'https://metamask.io/download/', }, properties: [ { name: 'namespaces', value: { selection: 'multiple', data: [ { label: 'EVM', value: 'EVM', id: 'ETH', getSupportedChains: (allBlockchains: BlockchainMeta[]) => evmBlockchains(allBlockchains), }, { label: 'Solana', value: 'Solana', id: 'SOLANA', getSupportedChains: (allBlo --- package/src/legacy/index.ts (excerpt) --- import type { LegacyProviderInterface } from '@arthur2079/wallets-core/legacy'; import type { CanEagerConnect, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo, } from '@arthur2079/wallets-shared'; import type { BlockchainMeta, SignerFactory } from 'rango-types'; import { canEagerlyConnectToEvm, canSwitchNetworkToEvm, getEvmAccounts, subscribeToEvm, switchNetworkForEvm, WalletTypes, } from '@arthur2079/wallets-shared'; import { evmBlockchains } from 'rango-types'; import signer from '../signer.js'; import { metamask as metamask_instance } from '../utils.js'; const WALLET = WalletTypes.META_MASK; export const config = { type: WALLET, }; export const getInstance = metamask_instance; export const connect: Connect = async ({ instance }) => { /* * Note: We need to get `chainId` here, because for the first time * after opening the browser, wallet is locked, and don't give us accounts and chainId * on `check` phase, so `network` will be null. For this case we need to get chainId * whenever we are requesting accounts. */ const { accounts, chainId } = await getEvmAccounts(instance); return { accounts, chainId, }; }; export const subscribe: Subscribe = subscribeToEvm; export const switchNetwork: SwitchNetwork = switchNetworkForEvm; export const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm; // eslint-disable-next-line @typescript-eslint/no-explicit-any type Provider = any; export const getSi
