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 +64 -31
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/vanilla/coinley-vanilla.umd.js +3 -3
- package/dist/vanilla/coinley-vanilla.umd.js.map +1 -1
- package/dist/vanilla/style.css +1 -1
- package/package.json +1 -1
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("🦊
|
|
1942
|
-
|
|
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
|
|
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("
|
|
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
|
|
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
|
|
1978
|
-
const gasEstimate = await
|
|
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
|
|
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(
|
|
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
|
-
|
|
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
|
}
|