Skip to content

Commit 73e34c0

Browse files
Kien NgoMananTankjnsdls
authored
[wallet, react] Add Magic Eden wallet (#2347)
Co-authored-by: Manan Tank <[email protected]> Co-authored-by: Jonas Daniels <[email protected]>
1 parent cc22fa8 commit 73e34c0

File tree

19 files changed

+468
-1
lines changed

19 files changed

+468
-1
lines changed

.changeset/friendly-hairs-hope.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@thirdweb-dev/react-core": patch
3+
"@thirdweb-dev/wallets": patch
4+
"@thirdweb-dev/react": patch
5+
---
6+
7+
Add Magic Eden wallet

packages/react-core/src/core/hooks/wallet-hooks.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type {
99
EmbeddedWallet,
1010
FrameWallet,
1111
LocalWallet,
12+
MagicEdenWallet,
1213
MagicLink,
1314
MetaMaskWallet,
1415
OKXWallet,
@@ -56,6 +57,7 @@ export type WalletIdToWalletTypeMap = {
5657
cryptoDefiWallet: CryptoDefiWallet;
5758
rabby: RabbyWallet;
5859
xdefi: XDEFIWallet;
60+
magicEden: MagicEdenWallet
5961
};
6062

6163
/**

packages/react/src/evm/locales/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ export function enDefault(): ThirdwebLocale {
164164
},
165165
},
166166
coinbaseWallet: extensionAndQRScanScreens("Coinbase"),
167+
magicEdenWallet: extensionAndQRScanScreens("Magic Eden"),
167168
metamaskWallet: extensionAndQRScanScreens("MetaMask"),
168169
okxWallet: extensionAndQRScanScreens("OKX"),
169170
phantomWallet: extensionAndQRScanScreens("Phantom"),

packages/react/src/evm/locales/es.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ export function esDefault(): ThirdwebLocale {
167167
},
168168
},
169169
coinbaseWallet: extensionAndQRScanScreens("Coinbase"),
170+
magicEdenWallet: extensionAndQRScanScreens("Magic Eden"),
170171
metamaskWallet: extensionAndQRScanScreens("MetaMask"),
171172
okxWallet: extensionAndQRScanScreens("OKX"),
172173
coreWallet: extensionAndQRScanScreens("Core"),

packages/react/src/evm/locales/ja.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ export function jaDefault(): ThirdwebLocale {
167167
},
168168
},
169169
coinbaseWallet: extensionAndQRScanScreens("Coinbase"),
170+
magicEdenWallet: extensionAndQRScanScreens("Magic Eden"),
170171
metamaskWallet: extensionAndQRScanScreens("MetaMask"),
171172
okxWallet: extensionAndQRScanScreens("OKX"),
172173
coreWallet: extensionAndQRScanScreens("Core"),

packages/react/src/evm/locales/tl.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ export function tlDefault(): ThirdwebLocale {
169169
},
170170
},
171171
coinbaseWallet: extensionAndQRScanScreens("Coinbase"),
172+
magicEdenWallet: extensionAndQRScanScreens("Magic Eden"),
172173
metamaskWallet: extensionAndQRScanScreens("MetaMask"),
173174
okxWallet: extensionAndQRScanScreens("OKX"),
174175
phantomWallet: extensionAndQRScanScreens("Phantom"),

packages/react/src/evm/locales/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ export type ThirdwebLocale = {
235235
signIn: string;
236236
submitEmail: string;
237237
};
238+
magicEdenWallet: ExtensionAndQRScreensLocale;
238239
metamaskWallet: ExtensionAndQRScreensLocale;
239240
okxWallet: ExtensionAndQRScreensLocale;
240241
oneKeyWallet: ExtensionAndQRScreensLocale;

packages/react/src/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ export {
2626
export { localWallet } from "./wallet/wallets/localWallet/localWallet";
2727
export type { LocalWalletConfigOptions } from "./wallet/wallets/localWallet/types";
2828

29+
export {
30+
magicEdenWallet,
31+
type MagicEdenWalletConfigOptions,
32+
} from "./wallet/wallets/magicEden/magicEdenWallet";
33+
2934
export {
3035
magicLink,
3136
type MagicWalletConfigOptions,
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
import { ConnectUIProps } from "@thirdweb-dev/react-core";
2+
import { ConnectingScreen } from "../../ConnectWallet/screens/ConnectingScreen";
3+
import { useCallback, useEffect, useRef, useState } from "react";
4+
import { GetStartedScreen } from "../../ConnectWallet/screens/GetStartedScreen";
5+
import { MagicEdenWallet } from "@thirdweb-dev/wallets";
6+
import { wait } from "../../../utils/wait";
7+
import { useTWLocale } from "../../../evm/providers/locale-provider";
8+
9+
export const MagicEdenConnectUI = (props: ConnectUIProps<MagicEdenWallet>) => {
10+
const [screen, setScreen] = useState<"connecting" | "get-started">(
11+
"connecting",
12+
);
13+
const locale = useTWLocale().wallets.magicEdenWallet;
14+
const { walletConfig, connected } = props;
15+
const [errorConnecting, setErrorConnecting] = useState(false);
16+
const { connect } = props;
17+
18+
const hideBackButton = props.supportedWallets.length === 1;
19+
const { goBack } = props;
20+
21+
const connectToExtension = useCallback(async () => {
22+
try {
23+
connectPrompted.current = true;
24+
setScreen("connecting");
25+
setErrorConnecting(false);
26+
await wait(1000);
27+
await connect();
28+
connected();
29+
} catch (e) {
30+
setErrorConnecting(true);
31+
console.error(e);
32+
}
33+
}, [connected, connect]);
34+
35+
const connectPrompted = useRef(false);
36+
useEffect(() => {
37+
if (connectPrompted.current) {
38+
return;
39+
}
40+
41+
const isInstalled = walletConfig.isInstalled
42+
? walletConfig.isInstalled()
43+
: false;
44+
45+
(async () => {
46+
if (isInstalled) {
47+
connectToExtension();
48+
}
49+
50+
// if magic-eden wallet is not injected
51+
else {
52+
setScreen("get-started");
53+
}
54+
})();
55+
}, [walletConfig, connected, connect, goBack, connectToExtension]);
56+
57+
if (screen === "connecting") {
58+
return (
59+
<ConnectingScreen
60+
locale={{
61+
getStartedLink: locale.getStartedLink,
62+
instruction: locale.connectionScreen.instruction,
63+
tryAgain: locale.connectionScreen.retry,
64+
inProgress: locale.connectionScreen.inProgress,
65+
failed: locale.connectionScreen.failed,
66+
}}
67+
hideBackButton={hideBackButton}
68+
onBack={props.goBack}
69+
walletName={walletConfig.meta.name}
70+
walletIconURL={walletConfig.meta.iconURL}
71+
onGetStarted={() => {
72+
setScreen("get-started");
73+
}}
74+
onRetry={() => {
75+
connectToExtension();
76+
}}
77+
errorConnecting={errorConnecting}
78+
/>
79+
);
80+
}
81+
82+
if (screen === "get-started") {
83+
return (
84+
<GetStartedScreen
85+
locale={{
86+
scanToDownload: locale.getStartedScreen.instruction,
87+
}}
88+
walletIconURL={walletConfig.meta.iconURL}
89+
walletName={walletConfig.meta.name}
90+
chromeExtensionLink={walletConfig.meta.urls?.chrome}
91+
googlePlayStoreLink={walletConfig.meta.urls?.android}
92+
appleStoreLink={walletConfig.meta.urls?.ios}
93+
onBack={() => {
94+
props.goBack();
95+
}}
96+
/>
97+
);
98+
}
99+
100+
return null;
101+
};
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import type { WalletOptions, WalletConfig } from "@thirdweb-dev/react-core";
2+
import { MagicEdenWallet } from "@thirdweb-dev/wallets";
3+
import { MagicEdenConnectUI } from "./MagicEdenConnectUI";
4+
import { getInjectedMagicEdenProvider } from "@thirdweb-dev/wallets";
5+
6+
/**
7+
* @wallet
8+
*/
9+
export type MagicEdenWalletConfigOptions = {
10+
/**
11+
* If `true`, the wallet will be tagged as "recommended" in ConnectWallet Modal. Default is `false`
12+
*/
13+
recommended?: boolean;
14+
};
15+
16+
/**
17+
* A wallet configurator for [Phantom Wallet](https://phantom.app/) which allows integrating the wallet with React.
18+
*
19+
* It returns a [`WalletConfig`](https://portal.thirdweb.com/references/react/v4/WalletConfig) object which can be used to connect the wallet to via [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) component or [`useConnect`](https://portal.thirdweb.com/references/react/v4/useConnect) hook as mentioned in [Connecting Wallets](https://portal.thirdweb.com/react/v4/connecting-wallets) guide
20+
*
21+
* @example
22+
* ```ts
23+
* phantomWallet({
24+
* recommended: true,
25+
* })
26+
* ```
27+
*
28+
* @param options -
29+
* Optional configuration options for the wallet
30+
*
31+
* ### recommended (optional)
32+
* If `true`, the wallet will be tagged as "recommended" in [`ConnectWallet`](https://portal.thirdweb.com/react/v4/components/ConnectWallet) Modal UI. Default is `false`
33+
*
34+
* @wallet
35+
*/
36+
export const magicEdenWallet = (
37+
options?: MagicEdenWalletConfigOptions,
38+
): WalletConfig<MagicEdenWallet> => {
39+
return {
40+
recommended: options?.recommended,
41+
id: "Magic Eden",
42+
meta: {
43+
name: "Magic Eden Wallet",
44+
urls: {
45+
chrome:
46+
"https://chromewebstore.google.com/detail/magic-eden-wallet/mkpegjkblkkefacfnmkajcjmabijhclg",
47+
},
48+
iconURL:
49+
"data:image/png;base64,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" },
50+
create: (walletOptions: WalletOptions) => new MagicEdenWallet(walletOptions),
51+
connectUI: MagicEdenConnectUI,
52+
isInstalled() {
53+
return !!getInjectedMagicEdenProvider();
54+
},
55+
};
56+
};

0 commit comments

Comments
 (0)