coinley-test 0.0.52 → 0.0.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1921,38 +1921,47 @@ class SimpleMetaMaskWallet2 {
1921
1921
  this.account = null;
1922
1922
  this.chainId = null;
1923
1923
  this.walletType = "metamask";
1924
+ this.provider = null;
1924
1925
  }
1925
1926
  async connect() {
1926
1927
  if (!window.ethereum) {
1927
1928
  throw new Error("MetaMask not installed. Please install MetaMask extension.");
1928
1929
  }
1929
- if (window.ethereum.providers) {
1930
- console.log("🔍 Multiple wallets detected:", window.ethereum.providers.length);
1931
- const metamaskProvider = window.ethereum.providers.find((provider) => provider.isMetaMask);
1932
- if (!metamaskProvider) {
1933
- throw new Error("MetaMask not found among installed wallets");
1934
- }
1935
- console.log("🦊 Using MetaMask provider specifically");
1936
- window.ethereum = metamaskProvider;
1937
- } else if (!window.ethereum.isMetaMask) {
1938
- throw new Error("Please use MetaMask wallet");
1939
- }
1940
1930
  try {
1941
- console.log("🦊 Requesting MetaMask account access...");
1942
- const accounts = await window.ethereum.request({
1931
+ console.log("🦊 ISOLATING MetaMask provider...");
1932
+ let metamaskProvider = null;
1933
+ if (window.ethereum.providers && window.ethereum.providers.length > 0) {
1934
+ console.log("🔍 Multiple wallet providers detected:", window.ethereum.providers.length);
1935
+ metamaskProvider = window.ethereum.providers.find((provider) => {
1936
+ return provider.isMetaMask && !provider.isPhantom;
1937
+ });
1938
+ if (!metamaskProvider) {
1939
+ throw new Error("MetaMask provider not found among installed wallets. Please ensure MetaMask is installed.");
1940
+ }
1941
+ console.log("🦊 MetaMask provider isolated successfully");
1942
+ } else if (window.ethereum.isMetaMask && !window.ethereum.isPhantom) {
1943
+ metamaskProvider = window.ethereum;
1944
+ console.log("🦊 Single MetaMask provider detected");
1945
+ } else {
1946
+ throw new Error("MetaMask provider not available. Please install MetaMask or disable conflicting wallets.");
1947
+ }
1948
+ this.provider = metamaskProvider;
1949
+ console.log("🦊 Requesting MetaMask account access using isolated provider...");
1950
+ const accounts = await this.provider.request({
1943
1951
  method: "eth_requestAccounts"
1944
1952
  });
1945
1953
  if (!accounts || accounts.length === 0) {
1946
1954
  throw new Error("No accounts found in MetaMask");
1947
1955
  }
1948
- const chainId = await window.ethereum.request({
1956
+ const chainId = await this.provider.request({
1949
1957
  method: "eth_chainId"
1950
1958
  });
1951
1959
  this.account = accounts[0];
1952
1960
  this.chainId = chainId;
1953
- console.log("✅ MetaMask connected successfully:");
1961
+ console.log("✅ MetaMask connected successfully (isolated):");
1954
1962
  console.log(" Account:", this.account);
1955
1963
  console.log(" Chain ID:", this.chainId);
1964
+ console.log(" Provider isolated:", !!this.provider);
1956
1965
  return { account: this.account, chainId: this.chainId };
1957
1966
  } catch (error) {
1958
1967
  console.error("MetaMask connection failed:", error);
@@ -1960,22 +1969,19 @@ class SimpleMetaMaskWallet2 {
1960
1969
  }
1961
1970
  }
1962
1971
  async sendTransaction(txParams) {
1963
- if (!this.account) {
1964
- throw new Error("Wallet not connected");
1972
+ if (!this.account || !this.provider) {
1973
+ throw new Error("MetaMask wallet not connected or provider not isolated");
1965
1974
  }
1966
1975
  try {
1967
- console.log("🦊 Sending REAL MetaMask transaction:", txParams);
1968
- console.log("💰 REAL TRANSACTION - This will deduct real money from MetaMask!");
1969
- if (!window.ethereum.isMetaMask) {
1970
- throw new Error("Not using MetaMask provider");
1971
- }
1976
+ console.log("🦊 Sending REAL MetaMask transaction using ISOLATED provider:", txParams);
1977
+ console.log("💰 REAL METAMASK TRANSACTION - This will deduct real money!");
1972
1978
  const fullTxParams = {
1973
1979
  ...txParams,
1974
1980
  from: this.account
1975
1981
  };
1976
1982
  try {
1977
- console.log("⛽ Estimating gas for real MetaMask transaction...");
1978
- const gasEstimate = await window.ethereum.request({
1983
+ console.log("⛽ Estimating gas using isolated MetaMask provider...");
1984
+ const gasEstimate = await this.provider.request({
1979
1985
  method: "eth_estimateGas",
1980
1986
  params: [fullTxParams]
1981
1987
  });
@@ -1987,9 +1993,9 @@ class SimpleMetaMaskWallet2 {
1987
1993
  console.warn("Gas estimation failed:", gasError);
1988
1994
  fullTxParams.gas = "0x15F90";
1989
1995
  }
1990
- console.log("📤 REAL MetaMask transaction params:", fullTxParams);
1991
- console.log("🚨 SENDING REAL TRANSACTION - MONEY WILL BE DEDUCTED!");
1992
- const txHash = await window.ethereum.request({
1996
+ console.log("📤 REAL MetaMask transaction params (isolated):", fullTxParams);
1997
+ console.log("🚨 SENDING REAL METAMASK TRANSACTION - MONEY WILL BE DEDUCTED!");
1998
+ const txHash = await this.provider.request({
1993
1999
  method: "eth_sendTransaction",
1994
2000
  params: [fullTxParams]
1995
2001
  });
@@ -2010,7 +2016,7 @@ class SimpleMetaMaskWallet2 {
2010
2016
  }
2011
2017
  }
2012
2018
  isConnected() {
2013
- return !!this.account;
2019
+ return !!this.account && !!this.provider;
2014
2020
  }
2015
2021
  }
2016
2022
  class SimplePhantomWallet {
@@ -3115,8 +3121,18 @@ const EnhancedSimpleCoinleyPayment = ({
3115
3121
  }
3116
3122
  };
3117
3123
  const handleWalletSelection = (walletType) => {
3124
+ console.log(`📱 Switching to ${walletType} wallet - ISOLATING providers...`);
3125
+ setConnectedWallet(null);
3126
+ setSelectedWalletType(null);
3127
+ setError("");
3128
+ const newWallets = {
3129
+ metamask: new SimpleMetaMaskWallet2(),
3130
+ phantom: new SimplePhantomWallet()
3131
+ };
3132
+ setWallets(newWallets);
3118
3133
  setSelectedWalletType(walletType);
3119
- console.log(`📱 Selected wallet type: ${walletType}`);
3134
+ console.log(`✅ Wallet isolation complete for ${walletType}`);
3135
+ console.log(`🔒 All other wallets disconnected and reset`);
3120
3136
  };
3121
3137
  const connectWallet = async (walletType = selectedWalletType) => {
3122
3138
  if (!walletType) {
@@ -3126,18 +3142,35 @@ const EnhancedSimpleCoinleyPayment = ({
3126
3142
  try {
3127
3143
  setLoading(true);
3128
3144
  setError("");
3145
+ console.log(`🔗 Connecting to ${walletType} wallet with ISOLATION...`);
3129
3146
  const wallet = wallets[walletType];
3130
3147
  if (!wallet) {
3131
3148
  throw new Error(`Wallet ${walletType} not found`);
3132
3149
  }
3133
- console.log(`🔗 Connecting to ${walletType} wallet...`);
3150
+ if (walletType === "metamask") {
3151
+ console.log("🦊 Isolating MetaMask - disconnecting Phantom...");
3152
+ if (window.solana && window.solana.disconnect) {
3153
+ try {
3154
+ await window.solana.disconnect();
3155
+ console.log("👻 Phantom disconnected for MetaMask isolation");
3156
+ } catch (e) {
3157
+ console.log("👻 Phantom was not connected or disconnect failed");
3158
+ }
3159
+ }
3160
+ } else if (walletType === "phantom") {
3161
+ console.log("👻 Isolating Phantom - ensuring MetaMask separation...");
3162
+ console.log("🦊 MetaMask provider will be isolated during Phantom connection");
3163
+ }
3134
3164
  const connection = await wallet.connect();
3135
3165
  setConnectedWallet(wallet);
3136
3166
  setSelectedWalletType(walletType);
3137
- console.log(`✅ ${walletType} wallet connected successfully:`, connection.account);
3167
+ console.log(`✅ ${walletType} wallet connected successfully with ISOLATION:`, connection.account);
3168
+ console.log(`🔒 Other wallets are isolated and won't interfere`);
3138
3169
  } catch (err) {
3139
3170
  console.error(`${walletType} wallet connection failed:`, err);
3140
3171
  setError(err.message);
3172
+ setConnectedWallet(null);
3173
+ setSelectedWalletType(null);
3141
3174
  } finally {
3142
3175
  setLoading(false);
3143
3176
  }